作成および更新後のスクリプトの実行」機能です。今回はサンプルとなるApexクラスを作って、Sandbox作成時にテストデータを作成する例をご紹介します。Sandbox作成時に動かしたいApexクラスを作るまずはApexクラスを作ります。Apexの開発は通常本番組織では行えないので、Sandbox上で作ることになります。ポイントは"SandboxPostCopy"インタフェースを実装することです。sampleData;}}サンプルでは取引先のデータを10件ほど作っています。テストクラスを作る続いてはテストクラスです。results.size());}}テストメソッドでSandbox作成時の動作をさせるにはTest.testSandboxPostCopyScript()を使います。第3引数でSandboxIDを渡しますが、ここでは適当な値が思いつかないので組織IDと同じ値を渡しています。本番組織にデプロイする作成したApexクラスを本番環境にデプロイします。変更セットなり、デプロイツールなり好きなものを使いましょう。Sandbox作成時に作成したApexクラス名を指定するさて、ここまでで準備は完了しているので、後は実際にSandboxを作成・更新することになります。本番組織の設定メニューからSandboxの作成画面を表示します。今回は1個しか作れない組織&既にSandboxがあるので更新を実行します。ウィザードを進めると次のようにApexクラスを入力する画面になるので、ここでSandboxPostCopyを継承した動作させたいApexクラスを指定します。ちなみにSandbox有効化後に動作させたいApexがない場合は空白のまま進みます。Sandboxが有効化されるとApexが動作してテストデータが作られる有効化されたSandboxにログインして取引先を確認してみると、Apex内でinsertしたサンプルデータができ・・・ていない!?リリースノートなどを確認しても、書き方としてはこれで問題ないはずなのですが・・この後何度か実施してみたり、別組織でも試したのですが残念ながら結果は同じでした。これについては引き続き調査を実施して、原因が分かりましたら記事をアップデートさせて頂きます。本件、Salesforceサポートに確認したところ、製品側の問題ということでした。近いうちに修正予定ということなので、動作確認ができましたらこちらに追記させて頂きます。【20160408追記】サポートから修正されたと連絡があり、今回のサンプルで動作することをが確認できました。ちなみに作成されたテストデータを見て気付いたのですが、レコードの所有者が「自動化プロセス」となっていたので、共有ルールなどによるアクセス範囲を考える場合は、きちんとユーザーを指定してinsertした方がいいかもしれません。まとめさて、強引に締めるために今回実施した手順をまとめさせて頂きます。"SandboxPostCopy"インタフェースを継承したApexクラスを作るテストクラスを作成する(Test.testSandboxPostCopyScript()を使って対象クラスを動かす)作成したApexを本番組織にデプロイするSandbox作成時に作成したApexクラスを指定するSandboxが有効化されるとApexが動作してテストデータが作られる?Spring'16のアップデートで組織で有効にできるSandbox数が増えることもあり、今まで以上にSandboxの活用が進むことと思いますが、このように手動でやっていた部分を自動化することで、より効率的にオペレーションをすることができます。今回はテストデータの作成で検証してみましたが、他にもいろいろな手順を自動化できると思いますので試してみてください。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。