- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
SalesforceでTaskのWhatId親レコードのRecordTypeを取得する方法
Salesforceでは、TaskオブジェクトのWhatIdフィールドを利用して、その親レコード(関連先)のRecordType情報を取得することができます。特に、以下のようなSOQLクエリを実行することで、親レコードのRecordTypeのNameやDeveloperNameを簡単に取得可能です。
基本的なSOQLクエリ例:
List<Task> tasks = [ SELECT Id, What.RecordType.Name, What.RecordType.DeveloperName FROM Task WHERE Id = 'YOUR_TASK_ID' ];
このクエリでは、
- What.RecordType.Name および What.RecordType.DeveloperName を参照することで、Taskの関連先レコード(WhatIdが指すオブジェクト)のRecordType情報を取得します。
- 関連先のオブジェクトにRecordTypeが存在しない場合は、これらのフィールドはNULLとなります。
注意点
Person Accountの場合:
Person Accountの場合は特有の動作があるため、RecordTypeの取得に関して追加の注意が必要です。具体的な実装やテスト環境で確認してください。Flowでの制限:
APIバージョン63.0以降、Flowの「Get Records」要素では、What.RecordType.xxx のような式を使用して親レコードのRecordType情報を直接取得することはサポートされていません。Activityオブジェクトのカスタムフォーミュラ:
Activity(TaskおよびEvent)のフォーミュラフィールドで What.RecordType.xxx を使用すると、構文エラーが発生します。これは、Activityオブジェクトに対する制約のためです。
まとめ
Apexコードを使用して、TaskオブジェクトのWhatIdフィールドを介して親レコードのRecordType情報を取得するのは非常に簡単です。上記のSOQLクエリを利用すれば、親レコードが持つRecordTypeのNameやDeveloperNameを効率的に取得でき、実際の運用に役立ちます。Flowなど他のツールでは制約があるため、複雑な権限やレコード関連情報を取得する場合は、Apexでの実装が推奨されます。
コメント
コメントを投稿