1

Salesforce SOQLを使用すると、次の方法で所有者IDを取得できます。

SELECT Case.OwnerId 
FROM Case 
WHERE Case.CaseNumber = '00001234'

次に、このクエリでケースを所有するユーザーのユーザーの詳細を取得できます。

SELECT User.Id, User.Name, User.Custom_Field__c 
FROM User 
WHERE User.Id = '001A0000001abc1DEF'

しかし、1つのステートメントで機能させることはできません。これは、所有者が実際にはユーザーであるにもかかわらず、所有者!=ユーザーであるためだと思います。私が試してみました:

SELECT Owner.Custom_Field__c
FROM Case 
WHERE Case.CaseNumber = '00001234'

しかし、Custom_Field__cが有効なフィールドではないというエラーが表示されます。

4

2 に答える 2

5

ケースの所有者はポリモーフィックな関係であり、複数の異なるタイプの1つである可能性があります。その場合、SOQL-Rを使用すると、ポイントされているタイプに共通するフィールドのサブセットのみを選択できるため(これらはすべて、「名前」と呼ばれる疑似エンティティで公開されます)、カスタムをクエリすることはできません。ユーザーのフィールド。Caseでクエリを実行してから、所有者のセットを収集し、ユーザーやグループにクエリを実行して、より詳細な情報を取得する必要があります。

于 2011-10-03T15:56:50.180 に答える
2

これは、SOQLの半結合で行うことができます。私はそれをテストしました、そしてそれは所有者が多形であるにもかかわらずそれでも機能します:

SELECT Custom_Field__c 
FROM User 
WHERE Id IN (SELECT OwnerId 
             FROM Case
             WHERE Case.CaseNumber = '00001234')
于 2011-10-03T23:59:12.410 に答える