2019-01-05

DML文でSalesforceオブジェクトを操作できるsoql-cliを作った

SQLのDML構文でSalesforceのレコードを更新してみたい。ということで作ってみました

インストール方法

Linuxユーザ、macOSユーザはこちら
$ curl -sL http://install.freedom-man.com/soql | bash

Windowsユーザはこちら

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile ^
  -InputFormat None -ExecutionPolicy Bypass ^
  -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://install.freedom-man.com/soql.ps1'))" ^
  && SET "PATH=%PATH%;%APPDATA%\land\bin"

使い方

インターフェースはこんな感じ
$ soql -u {USERNAME} -h {ENDPOINT} [-d] [-e {COMMMAND}] [-v]

たとえばSandbox環境に対してインタラクティブな実行をしたいならこんな感じで実行すればOK

$ soql -u foo@example.com -h test.salesforce.com

実行できるSQL文やコマンドは以下の通り。

SELECT文(まぁそのままSOQL実行してるだけ)

> SELECT Id, Name FROM Account WHERE Name = 'foo'

INSERT文

> INSERT INTO Account(Name, Website) VALUES ("foo", "https://github.com/tzmfreedom/soql-cli")

UPDATE文

> UPDATE Account SET Name = 'foo', Website = 'https://github.com/tzmfreedom/soql-cli'

DELETE文

> DELETE FROM Account WHERE Name = 'foo'

インタラクティブモードの終了

> exit # or quit

INSERT/UPDATE/DELETE文は構文解析してAST化した後、APIを叩いています。

また、ロールバックの機能を持っていないので気をつけてご利用ください。技術的にはロールバック機能を実現できそうなので気が向いたら付けてみようかなー。

このエントリーをはてなブックマークに追加