こんにちは、にいるです。
今回は「ToDoの関連先オブジェクトの項目値を取得する方法」について紹介します。
1.ToDoの関連先レコードのオブジェクトの情報を取得したかった
ToDoには関連先という項目があります。
この項目は多態的で、取引先、商談、ケース、カスタムオブジェクトなどのレコードをルックアップで入力することができます。
今回、ここで入力した関連先レコードのNameやレコードタイプを取得したかったんですが、どうにもうまくいかなく悩んでいました。
WhatIdなので、そこに.表記でリレーション辿れるかなと思ったんですがだめでした。
1 2 |
// あかんやつ SELECT Id, Subject,WhatId,WhatId.RecordtypeId FROM Task |
そこで、whatでいけるかなと思い書いて見るとクエリエディターが実行されたんですよね。
1 2 |
// OKなやつ SELECT Id, Subject, What.RecordtypeId FROM Task |
実行結果です。
これを応用すると、関連先レコードのオブジェクト判定だけでなく、レコードタイプも指定できますし、関連先のName項目も取得できます。
これは、レコードタイプをWhere区で指定して、ToDoを抽出しています。
その結果、指定したレコードタイプの商談は1つだけ存在していて、その商談に6つのToDoが子レコードとして紐づいています。
1 |
SELECT Id, Subject,WhatId,What.Name,What.RecordtypeId FROM Task Where What.RecordtypeId = '0120o000001dA2i' |
ただ関連先は多態的な項目なので、共通して設定されているNameやTypeやRecordtypeIdくらいしか取れないかもしれません。
システム項目のCreatedDateも試しましたが、エラーでした。
2.まとめ
いかがでしたでしょうか。
結果、ToDoにある関連先項目は、SOQL上でリレーションを辿るときはwhatIdでなく、参照項目として使用する場合はwhatにしないといけません。
リファレンスも探したんですが、どの項目を使用できるかの記載しているものはありませんでした。
もしどなたか知っていれば教えてください!
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント