組織IDをつかった本番組織とSandbox組織の判定についてです。Sandbox組織では数式の値をテスト用に変更したかったので組織IDをつかってフラグを用意してみました。
IF($Organization.Id == '00DX0000000XXXX' ,true ,false )
これでSandbox組織作成時に値を変更しなくても大丈夫と思ったのですが、この組織IDを表す「'00DX0000000XXXX'」という文字列ですが、Sandbox組織作成時に自動でSandbox組織のIDに置換される仕組みが用意されているみたいです。数式だからかなと思ったのですがカスタム表示ラベル内で値を定義しても同様に置換されるみたいでした。
※組織ID「'00DX0000000XXXX'」は仮の値です。実際のIDは設定の組織のページで確認できます。
組織IDをつかって本番環境とSandbox組織は上記の仕様があるみたいなので、利用時には少し注意が必要そうです。ちなみにSandbox組織作成時には特定のApexクラスの処理を実行する仕組みが用意されています。SandboxPostCopy インターフェースの仕組みをつかった方法です。
組織IDの文字列判定はちょっと難しそうなので、今回は本番とSandboxのフラグをカスタム設定にもたせて、SandboxPostCopy機能でApexコードを実行してSandbox作成時にフラグを更新する方法で対処しようと思いました。