Tooling API のトラブル

[APIのまとめに戻る](https://qiita.com/Keiji_otsubo/items/f44e752b618c8524885b)


このようなエラーの時

:::note alert
[{"message":"sObject type 'ProfileLayout' is not supported.","errorCode":"INVALID_TYPE"}]
:::

[Page layout Isssue](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000BrPUF)


結局は

Since it is working in lower env can you check if there is any permission change that happened to Profile, The profile should have Modify all Data, view all data, Setup permissions? I think this is not a problem since the profile would have the same permissions in both the org but cross-check 

プロファイルにアクセス許可の変更が発生したかどうかを確認します。プロファイルには、すべてのデータの変更、すべてのデータの表示、アクセス許可の設定が必要です。

---------------------------------------

:::note alert
"message": "sObject type 'SandboxProcess' is not supported.", 
"errorCode": "INVALID_TYPE"
:::

[Tooling Api is returning error (sobject type INVALID_TYPE) when queried on SandboxProcess object](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FWttLSAT)


# FullName: `Account.${field.name}__c`,Metadata: {label: field.label,type: 'Number',precision: 18,scale: 0,description: field.description,externalId: false,unique: false,},

+ [Need Help Updating Field Permissions After Creating a Field with Tooling API](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eq8al)

:::note
REST API を介してFieldPermissionsを作成、読み取り、更新、および削除できるようになりました(注: Tooling API ではなく、通常の REST API です)。そのため、Tooling API を使用してフィールドを作成した後、このプロセスを別の手順として自動化できます。

You can now Create, Read, Update, and Delete FieldPermissions via the REST API, (note: not the Tooling API, just the normal REST API), so it is possible to automate this process as a separate step after using the Tooling API to create the field.

https://salesforce.stackexchange.com/questions/208307/is-it-possible-to-use-the-tooling-api-to-update-field-level-security-on-profiles
:::


# FIELD_INTEGRITY_EXCEPTION

+ [Could not resolve standard field's name tooling API.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ajaSu)

:::note
Make sure your Meta data is complete, it should have all the custom fields values not just one , unless you are creating a new picklist.
I assume your metadata is missing the label name for the picklist.

https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T41CaSAJ

メタデータが完全であることを確認してください。新しい選択リストを作成する場合を除き、メタデータには 1 つだけではなくすべてのカスタム フィールド値が含まれている必要があります。
メタデータに選択リストのラベル名が欠落していると思います。
:::


# PlatformEventChannelMember

+ [Why I can't create PlatformEventChannelMember for AccountContactRelationChangeEvent as selectedEntity?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007XIJte)

:::note alert

```Json
[
    {
        "message": "The PlatformEventChannelMember can't be created because it references an invalid event in the \"selectedEntity\" field. If referencing a platform event, ensure the event is defined. To check the valid event name format to use, refer to the documentation.",

        "errorCode": "INVALID_INPUT",
        "fields": []
    }
]
```
:::

This object is available in API version 47.0 and later.

https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_platformeventchannelmember.htm

:::note
I was using version 53.0 and jumped to 60.0 and it succeed!!!!!

It was extremely frustrating that support could not help me with something so simple, just because we are not on a premium subscription.

バージョン 53.0 を使用していましたが、60.0 にジャンプして成功しました!!!!

プレミアム サブスクリプションを利用していないという理由だけで、サポートがこのような単純な問題を解決できなかったのは非常にイライラしました。
:::


# その他の情報
+ [ContactオブジェクトのすべてのMetadataComponentDependencyレコードを取得する方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FSJWh)
+ [Tooling APIを使ってコンポーネントが使用されている場所の調査する](https://qiita.com/Keiji_otsubo/items/4729c2094cec33291f11)

# カスタム項目の作成者・作成日を一覧で取得したい

+ [カスタム項目の作成者・作成日を一覧で取得したい](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000O6lB3)

:::note
CustomFieldオブジェクトを照会し、Use Tooling APIを選択する必要があります。

```
SELECT DeveloperName, CreatedDate FROM CustomField WHERE TableEnumOrId = 'Account'
```

https://www.simplysfdc.com/2022/05/salesforce-retrieve-custom-field.html
:::