2

Tooling API を使用してトリガーを作成しようとしています。これは Salesforce 内で実行されており、同じ Salesforce 組織で実行されています。これは開発組織で行われており、実行中のユーザーは管理者です。

を作成するMetadataContainerと、期待どおりに動作します。を作成するApexTriggerMemberと、次のエラーが表示されます。

INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY

途中でのプロセスのデバッグは次のとおりです。

The JSON that is sent to create the MetadataContainer
{"Name":"Container 2013-03-08 17:28:06"}

送信先の URL

https://na11.salesforce.com/services/data/v27.0/tooling/sobjects/MetadataContainer/

応答:

{"id":"1dcG0000000PAwZIAW","success":true,"errors":[]}

ApexTriggerMember を作成するために送信される JSON

{"MetadataContainerId":"1dcG0000000PAwZIAW","Body":"trigger TestTrg1 on Account (after insert, after update, before insert, before update) {\n\n}"}

送信先の URL:

https://na11.salesforce.com/services/data/v27.0/tooling/sobjects/ApexTriggerMember/

応答:

[{"fields":[],"message":"insufficient access rights on cross-reference id","errorCode":"INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY"}]

どんな助けでも大歓迎です。

4

1 に答える 1

1

同じことを試しましたが、SOAPバージョンのToolingAPIを使用しました。

ApexTriggerMember.ContentEntityIdを既存のトリガーID(キープレフィックス01q)として指定した場合は、正常に機能しました。もちろん、これは新しいトリガーを作成するのではなく、既存のトリガーを更新することです。

ContentEntityIdを設定しなかった場合、まったく同じエラーが発生します。「相互参照IDのアクセス権が不十分です」(StatusCode.INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY)

ドキュメントには(私の強調)と書かれています:

ContentEntityId
タイプ:参照
プロパティ:作成、フィルター、グループ化、並べ替え
説明:
Apexトリガーへの参照。ApexTriggerMemberごとに存在できるContentEntityIdは1つだけです。そうでない場合、エラーが報告されます。 この項目は必須です。

したがって、フィールドは必須ですが、まだ割り当てるIDがありません...

専用のSalesforceStackExchangeで同様の質問をしたことに注意してください-ToolingAPIを使用して新しいApexトリガーを作成するにはどうすればよいですか?

于 2013-03-15T01:43:41.383 に答える