Upsert CustomField and FieldPermissions with Excel.
This is Electron-based application.
Windows 64bit.
- Download salesforce-xlsx-to-customfiled-win32-x64-1.0.0.zip
- Run "salesforce-xlsx-to-customfiled.exe".
- Input login information.
- Choose "Samples/MinimumSample_Account.xlsx".
- Press "Execute" button.
- Finish when all permission results are displayed.
There are sample definitions in "CustomFieldTest__c.xlsx" file.
If you defined formula type field, perhaps the field will be error. Please retry.
Download sfxtcf.js
npm init -y
npm install --save-dev jsforce@1.10.1
npm install --save-dev xlsx
-CreatedFolder
├ node_modules
├ package.json
├ package-lock.json
├ sfxtcf.js
└[.xles file]
Refer JSforce document
// jsforce メタデータの保存と更新
const conn = new jsforce.Connection({ loginUrl: 'https://test.salesforce.com/' }); //ログインURLの指定する
const username = "xxxx@xxxxxx.xxx"; //ログイン用ユーザーネーム
const password = "password";// パスワードとセキュリティトークン スペース無しでつなげる IP制限を解除しているとトークンは不要
node sfxtcf.js xxxx.xlsx
Finish when all permission results are displayed.
Pull requests are welcome.
Copyright (c) 2021 Takahiro Komori
エクセルファイルに定義したカスタム項目情報をSheetJSで読み取り、JSforceで metadata API を使って一括登録するものです。
もともと自分と社内向けにコマンドラインで動かしていたものをElectronを使ってデスクトップアプリケーションとして動くようにしました。
Windowsのみ
※テストしていないけどコマンドライン版なら他の環境でも使えるかもしれません
- salesforce-xlsx-to-customfiled-win32-x64-1.0.0.zip をダウンロードします
- 展開して「salesforce-xlsx-to-customfiled.exe」を実行します。
- 立ち上がった画面にログイン情報を入力します
- samplesフォルダの「MinimumSample_Account.xlsx」を選択します
- 「Execute」ボタンを押します
- 権限の結果が表示されたら完了です
取引先にabcText__cが生成されていたら成功です。
samplesの中の「CustomFieldTest__c.xlsx」に対応しているデータ型の記入例があります。
Metadata APIの仕様上、数式や積み上げ集計項目はエラーになりやすいです。
予め条件になる項目が登録された状態でないとCreateが成功しません。
再実行すると定義に間違いが無ければ成功します。
sfxtcf.js を使います。
Node.jsがインストールされている必要があります。 動作確認済みのバージョンは14.17.2です。
npm init -y
例えばSalesforce DXを使っていて既にプロジェクトフォルダがあり、その中で使いたいといったときはpackage.jsonがあるはずなのでこの作業は必要ありません。
npm install --save-dev jsforce@1.10.1
npm install --save-dev xlsx
ソース中のコメントを参考にしてログイン情報を書き換えます。
// jsforce メタデータの保存と更新
const conn = new jsforce.Connection({ loginUrl: 'https://test.salesforce.com/' }); //ログインURLの指定する
const username = "[xxxx@xxxxxx.xxx]"; //ログイン用ユーザーネーム
const password = "[password+token]";// パスワードとセキュリティトークン スペース無しでつなげる IP制限を解除しているとトークンは不要
作業用フォルダは以下のようになっているはずです。
-CreatedFolder
├ node_modules
├ package.json
├ package-lock.json
├ sfxtcf.js
└[.xles file]
nodeコマンドから第一引数に「sfxtcf.js」を指定して、第二引数にカスタム項目を定義したエクセルファイルを指定します。
node sfxtcf.js xxxx.xlsx
エラー等が表示されずに最後に permission result が表示されたら成功です。