Salesforceでの開発で初期データを準備、投入する

Salesforceで開発するときには、DevHubとスクラッチ組織を使うと便利です。

もちろん、本番組織を使ったり(これはオススメしません)、Sandboxを使ったりしてもいいのですが、DevHubとスクラッチ組織での開発だと以下のメリットがあります。

  • 自分だけの開発環境で開発できるため、別の人の開発の影響を受けにくい
  • VisualStudio Codeが使えるので快適(vs 開発者コンソール)
  • コンポーネントの独立性のが高まりメンテナンス性が向上する
  • 常にまっさらな環境で開発できる
  • GitHubやBitbucketなどでソース管理ができる

といいことばかりなので、まだ移行されていない方は是非チャレンジして欲しいテーマです。

常にまっさらな環境で開発できると言うのはメリットでもありますが、テストデータもないため、もちろん自分で準備する必要があります。Sandboxだと前回まで開発していたデータは残っているので、データを準備するという意味ではSandboxの方が便利かも知れません。

しかし、データの構造、データ間の関連性がどうなってるか分からない環境で開発するのは骨が折れるのも確かです。

そういう時のために、プロジェクトで使うデータを作成し、スクラッチ組織で使えるようにしておくと便利です。

データを準備する

まずは、Sandboxかスクラッチ組織でデータを作ります。Salesforceの画面で登録します(データインポートウィザード、Dataloaderを使ってもOKです)

ここでは、以下のような取引先情報を準備します。

取引先名都道府県(請求先)
取引先A北海道
取引先B青森県
取引先C岩手県
取引先D秋田県
取引先E宮城県
取引先F山形県
取引先G福島県

VisualStudio Codeで以下のコマンドを実行します。

sfdx force:data:tree:export -q "select Name,BillingState from Account" -d data

プロジェクトのdataフォルダにAccount.jsonと言うファイルが作成されます。

{
    "records": [
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef1"
            },
            "Name": "取引先A",
            "BillingState": "北海道"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef2"
            },
            "Name": "取引先B",
            "BillingState": "青森県"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef3"
            },
            "Name": "取引先C",
            "BillingState": "岩手県"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef4"
            },
            "Name": "取引先D",
            "BillingState": "秋田県"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef5"
            },
            "Name": "取引先E",
            "BillingState": "宮城県"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef6"
            },
            "Name": "取引先F",
            "BillingState": "山形県"
        },
        {
            "attributes": {
                "type": "Account",
                "referenceId": "AccountRef7"
            },
            "Name": "取引先G",
            "BillingState": "福島県"
        }
    ]
}

データを投入する

プロジェクトのdataフォルダに初期データファイル(ここではAccount.json)を投入します。

sfdx force:data:tree:import --sobjecttreefiles data/Account.json

簡単ですね。