SandboxPostCopy インターフェース
Sandbox 環境をビジネス対応にするために、データ操作またはビジネスロジックタスクを自動化します。このインターフェースを拡張してコピー後タスクを実行するメソッドを追加してから、Sandbox の作成時にクラスを指定します。
名前空間
使用方法
このインターフェースを実装する Apex クラスを作成します。Sandbox 作成中にクラスを指定します。Sandbox が作成されたら、自動化プロセスユーザーの権限を使用してクラスの runApexClass(context) メソッドが実行されます。
SandboxPostCopy のメソッド
SandboxPostCopy のメソッドは次のとおりです。
SandboxPostCopy の実装例
SandboxPostCopy インターフェースの簡単な実装とその実装のテストの例を次に示します。SandboxPostCopy 実装をテストするには、System.Test.testSandboxPostCopyScript() メソッドを使用します。
この例では、System.SandboxPostCopy インターフェースが実装されます。
1global class PrepareMySandbox implements SandboxPostCopy {
2
3 global PrepareMySandbox() {
4 //Implementations of SandboxPostCopy must have a no-arg constructor.
5 //This constructor is used during the sandbox copy process.
6 //You can also implement constructors with arguments, but be aware that
7 //they won’t be used by the sandbox copy process (unless as part of the
8 //no-arg constructor).
9 this(some_args);
10 }
11
12 global PrepareMySandbox(String some_args) {
13 //Logic for constructor.
14 }
15
16 global void runApexClass(SandboxContext context) {
17 System.debug('Org ID: ' + context.organizationId());
18 System.debug('Sandbox ID: ' + context.sandboxId());
19 System.debug('Sandbox Name: ' + context.sandboxName());
20
21 // Insert logic here to prepare the sandbox for use.
22 }
23}次の例では、System.Test.testSandboxPostCopyScript() メソッドを使用して実装をテストします。このメソッドは、SandboxPostCopy インターフェースを実装するクラスの 1 つの参照と、runApexClass(context) メソッドに渡すコンテキストオブジェクトの 3 つの項目の合計 4 つのパラメーターを取ります。メソッドのオーバーロードでは、テストを自動化プロセスユーザーとして実行する必要があるかどうかを示す Boolean のパラメーターが必要に応じて使用されます。
1@isTest
2class PrepareMySandboxTest {
3
4 @isTest
5 static void testMySandboxPrep() {
6 // Insert logic here to create records of the objects that the class you’re testing
7 // manipulates.
8
9 Test.startTest();
10
11//Execute test script with RunAsAutoProcUser set to true
12 Test.testSandboxPostCopyScript(
13 new PrepareMySandbox(), UserInfo.getOrganizationId(),
14 UserInfo.getOrganizationId(), UserInfo.getOrganizationName(), true);
15
16 Test.stopTest();
17
18 // Insert assert statements here to check that the records you created above have
19 // the values you expect.
20 }
21}テストについての詳細は、「Apex のテスト」を参照してください。