以下の質問の回答によれば、Toolong APIを使ってEntityDefinitionオブジェクトのIsCustomizableがtrueならカスタム項目が追加できるオブジェクトとのことです。
Postmanを使って確かめたいと思います。
PostmanからSalesforceにアクセスする方法は、以下を参考にして下さい。
- Postman : Salesforceで初めて使う時の処理手順
- Postman : Salesforceで使う時の処理手順(既に一度接続した環境に対して)
- Postman : Salesforceで使う時の処理手順(Salesforceの接続環境を切り替える)
EntityDefinitionオブジェクトの検索
Toolongを展開して、Tooling Queryをクリックして選択します
qのパラメータに以下を設定します。SOQL文のスペースを+で置き換えた形です。
select+id,NamespacePrefix,MasterLabel,QualifiedApiName,DeveloperName,IsCustomizable+from+Entitydefinition+where+DeveloperName='Account'
検索結果は以下の通りでした。取引先なのでカスタム項目は追加できます。よってIsCustomizableはtrueです。
Tooling Queryでのエラー
qパラメータ:where句を省いた検索
select+id,NamespacePrefix,MasterLabel,QualifiedApiName,DeveloperName,IsCustomizable+from+Entitydefinition
結果の件数が多いのかもしれません
[
{
"message": "EntityDefinition does not support queryMore(), use LIMIT to restrict the results to a single batch",
"errorCode": "EXCEEDED_ID_LIMIT"
}
]
qパラメータ:取引先と取引先責任者で検索します
select+id,NamespacePrefix,MasterLabel,QualifiedApiName,DeveloperName,IsCustomizable+from+Entitydefinition+where+DeveloperName='Account'+OR+DeveloperName='Contact'
やはり検索結果の件数が多かったようです。2つのオブジェクトは問題なく検索できます。
qパラメータ:わざと存在しないオブジェクトを検索
select+id,NamespacePrefix,MasterLabel,QualifiedApiName,DeveloperName,IsCustomizable+from+Entitydefinition+where+DeveloperName='Account1'
{
"size": 0,
"totalSize": 0,
"done": true,
"queryLocator": null,
"entityTypeName": null,
"records": []
}
qパラメータ:カスタムオブジェクトの場合DeveloperNameでは__cは不要です。
select+id,NamespacePrefix,MasterLabel,QualifiedApiName,DeveloperName,IsCustomizable+from+Entitydefinition+where+DeveloperName='Candidate'