これはGYOMUハック/業務ハック Advent Calendar 2019の13日目の記事です。
モチベーションについて
GYOMUハックエンジニアをやっていると、データインポートのような業務を回す上では重要な作業が出てきます。
だけど私的にはあまり面白くなく、辛い作業です。(この手の作業をもくもくとこなせる人を尊敬します)
この手の作業が楽しくなるように工夫してみます。
どうやるか?
ツールを作ります。
Salesforceならデータローダやデータインポートウィザードがあるのですが、プログラミングの練習だと思って作ります。
Common LispでSalesforce連携ができないかと思い、途中まで作ったライブラリがこちらです。
https://github.com/tamurashingo/cl-salesforce-bulk
(defparameter *upsert-record*
"Name,Description,ExternalId__c
\"Tamu Systems, Inc.\",\"update record\",C00001
\"new company\",\"create record\",C00002
")
(ql:quickload :cl-salesforce-bulk)
(defvar *conn* (cl-salesforce-bulk.connection:login "tamura.shingo@gmail.com" "password#password" "37.0"))
(cl-salesforce-bulk.api:bulk/upsert *conn* "Account" *upsert-record* "ExternalId__c")
気をつけた点
このツールがなくても誰も困らないようにする
Salesforceであれば、データローダやデータインポートウィザードがあるので、何かの理由で実行環境が使えなくなっても業務は回ります。自分が担当じゃなくなったときは「データローダでインポートをお願いします」で済みます。
これがCommonLisp処理系を入れてコマンドラインから sbcl
を起動して〜、だとなにかエラーがあったときに対応できる可能性は結構低いです。
(逆にこのツールがないとみんな困る状況になるまでツールが成長してしまったのであれば、みんなが分かる言語やライブラリで書き直したほうが良いと思います)
ツール作成が本業にならないようにする
あくまでモチベーション維持、モチベーションアップのためにやることです。
本業(GYOMUハック)のじゃまにならない程度の稼働におさえます。
まとめ
- ツールを作ってモチベーションアップ
- プログラミングは楽しい
- いつでも標準のやり方に戻れる程度のやつを作ろう