ツール API を使用してトリガーを非アクティブ化しようとしています。私は開発者組織で成功しました。しかし、実際の開発者組織ではこれを行うことができませんでした。これは Salesforce ツール API のバグですか?
これがアルゴリズムの基本です。
- 一意の名前で MetadataContainer を作成する
- MetadataContainer を保存
- Body、MetadataContainerId、ContentEntityId、および Metadata[apiVersion=33.0 packageVersions=[] status="Inactive" urls=nil>] を設定する ApexTriggerMember を作成します。
- メタデータの変更["ステータス"]="非アクティブ"
- ApexTriggerMember を保存
- ContainerAsyncRequest の作成/保存
- 完了するまでコンテナを監視します。
- 必要に応じてエラーを表示する
サンドボックスで、Apex エンター コード hereTriggerMember を再クエリした後、読み取り専用項目「コンテンツ」が適切であることを確認しました。また、MetadataContainerId が "Completed" の State を持つ ContainerAsyncRequest を指すようになったことも確認しました。
これが私の結果です。成功したように見えますが、ApexTrigger は非アクティブ化されません ContentEntityId = 01q.............[非アクティブ化したい ApexTrigger]
Content="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<ApexTrigger xmlns=\"urn:metadata.tooling.soap.sforce.com\">
<apiVersion>33.0</apiVersion>
<status>Inactive</status>
</ApexTrigger>"
Metadata={apiVersion=33.0 packageVersions=nil status="Inactive" urls=nil> attributes= {type="ApexTriggerMember"
url="/services/data/v33.0/tooling/sobjects/ ApexTriggerMember/401L0000000DCI8IAO"
}
}