プログラマ38の日記

主にプログラムメモです。

【Salesforce/Excel】直接ロールを作成するExcelマクロを作りました

Salesforceの環境構築をする際に、ロールの設定を行いますがロールの作成や更新を簡単にするためのExcelマクロを作成しました。

 

ダウンロードはこちらからになります。

マクロでは、メタデータAPIを使用しますので実行するユーザは該当するシステム権限が必要になります。

 

使い方は次の通りです。

Salesforceとの接続情報を設定する
②通信設定する
③ロール内容を登録する
④登録ボタンをクリックする

f:id:crmprogrammer38:20170919092640p:plain

①の入力項目は次です。

sfdc.endpoint login.salesforce/test.salesforceを選択
sfdc.username ログインユーザ
sfdc.password ログインパスワード

②の入力項目は次です。

proxy.host httpプロキシのホスト
proxy.port httpプロキシのポート番号
proxy.username httpプロキシのユーザ
proxy.password httpプロキシのパスワード

③の入力項目は次です。

表示ラベル ロールの名前
ロール名(API名) ロールのAPI
このロールの上位ロール名 上位ロールのAPI
レポートに表示するロール名  左記の通り
処理結果 正常に作成/更新されたか、エラーの場合はエラー内容を表示

 

最後に

このマクロを作成しようと思ったきっかけはデータローダで作成しようとして煩わしさを感じたからになります。
データローダで「ロール(UserRole)」オブジェクトに登録することでロールを作成することができますが、データローダでParentRoleIdは、一度ロールを作成した後にSalesforce IDで更新する必要があります。(対して手間ではないのですが。。)

階層が深かったり、多くのロールを作成する際にはストレスが減るかなーと思い作ってみました。
(でも結局、組織の設定に依存するので、取引先所有者のケースアクセスレベル(CaseAccessForAccountOwner)、取引先所有者の取引先責任者アクセスレベル(ContactAccessForAccountOwner)、取引先所有者の商談アクセスレベル(OpportunityAccessForAccountOwner)など後で更新することになります。
)

動作は、Windows10とWindows7で行っています。(Windows7ではTLS1.1以上にするパッチを当てています。パッチはこちらを参考)

 

ロールは手でも充分作成できるのでマクロの必要性はあまり感じないのですが、このマクロはメタデータAPIのupsertMetadataを使っているところがポイントとなります。

UpsertMetadataでは、メタデータAPIで提供されているMetadata全てが作成、更新可能です。

今回はロールですが、カスタム表示ラベル、カスタム項目、リストビューなど数が多いのにデータローダでは作成できないものを作成する際に応用できます。