DEで個人取引先を有効にする方法

Salesforce,雑談

通常Salesforceと契約した環境で個人取引先を有効化する場合、組織にログインしヘルプからケースを起票します。Developer Edition(以下、DE)の場合も同じようにすれば個人取引先を有効化できるのか調べたのですがダメでした。ただ、個人取引先を有効にしたスクラッチ組織を作る、というひと手間をかけることで環境を整えることが出来ます。

前提

  • Windows 10
  • DE取得済み
  • SalesforceCLIインストール済み

手順

「Dev Hub」有効化

対象のDEで「Dev Hub」を有効化します。

認証

コマンドプロンプトで「Dev Hub」が有効になった組織を認証します。

sfdx force:auth:web:login -d -a DevHub

-d:認証された組織をスクラッチ組織を作成するためのデフォルトの組織に設定します。

-a:組織にエイリアスを付けます。ここでは「DevHub」という名前です。

設定ファイル作成

個人取引先を有効にするための設定ファイルを作成します。

{   
     "orgName": "Sample",   
     "edition": "Enterprise",   
     "features": ["PersonAccounts"]   
 }

ここではシンプルな設定内容ですが、ほかにも色々と設定が可能です。詳細は以下のサイトで確認できます。

  1. 独自のスクラッチ組織定義ファイルを作成する
  2. スクラッチ組織の機能

1ではorgNameやeditionなどと並列の設定、2ではfeaturesの内容が記載されています。

スクラッチ組織作成

コマンドプロンプトでスクラッチ組織を作成します。ここでは先ほど作成した設定ファイルの内容をもとに30日間有効なスクラッチ組織を作成しています。

$ sfdx force:org:create -f person-account-def.json --durationdays 30 -a MyScratchOrg --setdefaultusername
Successfully created scratch org: XXX, username: YYY@example.com

作成できると、スクラッチ組織のユーザー名が表示されます。

スクラッチ組織表示

作成した組織を表示します。

$ sfdx force:org:open -u YYY@example.com 
Access org XXX as user YYY9@example.com with the following URL: https://[scratch org url]
Waiting to resolve the Lightning Experience-enabled custom domain...... done

パスワード生成

組織に接続するのにいつもコマンドプロンプトからだと不便なのでパスワードを生成します。

$ sfdx force:user:password:generate --targetusername YYY@example.com 
Successfully set the password "ZZZ" for user YYY@example.com. 
You can see the password again by running "sfdx force:user:display -u YYY@example.com".

ZZZの部分にパスワードが表示されます。

詳細情報表示

対象ユーザの詳細情報が知りたい場合は以下のコマンドを実行します。

$ sfdx force:user:display -u YYY@example.com 
=== User Description 
key           label 
────────────  ──────────────────────────────────────────────────────────────────────────────────────────────────────────────── 
Username      YYY@example.com 
Profile Name  システム管理者 
Id            XYZ 
Org Id        XXX 
Access Token  AAA
Instance Url  https://[scratch org url] 
Login Url     https://[scratch org url] 
Password      ZZZ

これでブラウザからログインするための情報が取得できました。

組織の削除

不要になった組織は期限がくれば削除されますが、手動で削除することもできます。

$ sfdx force:org:delete  -u YYY@example.com 
Enqueue scratch org with name: YYY@example.com for deletion?  Are you sure (y/n)?: y 
Successfully marked scratch org YYY@example.com for deletion

参考