2

開発者コンソールでこのコードを実行すると

PushTopic pushTopic = new PushTopic();
pushTopic.ApiVersion = 23.0;
pushTopic.Name = 'Test';
pushTopic.Description = 'test';
pushtopic.Query = 'SELECT Id, Account.Name FROM Case';
insert pushTopic;
System.debug('Created new PushTopic: '+ pushTopic.Id);

次のメッセージが表示されます。

致命的なエラー System.DmlException: 挿入に失敗しました。行 0 の最初の例外。最初のエラー: INVALID_FIELD、リレーションシップはサポートされていません: [QUERY]

同じクエリがクエリ エディターで正常に実行されますが、それをプッシュ トピックに割り当てると、INVALID_FIELD 例外が発生します。

要点が、例外メッセージが示す内容である場合、その関係はプッシュ トピック オブジェクトではサポートされていません。探しているデータを返すプッシュ トピック オブジェクトを作成するにはどうすればよいですか?

4

2 に答える 2

0

PushTopics は、SOQL クエリの非常に小さなサブセットをサポートしてい ます。

ただし、これは機能するはずです:

PushTopic casePushTopic = new PushTopic();
pushTopic.ApiVersion = 23.0;
pushTopic.Name = 'CaseTopic';
pushTopic.Description = 'test';
pushtopic.Query = 'SELECT Id, Account.Id FROM Case';
insert pushTopic;

PushTopic accountPushTopic = new PushTopic();
pushTopic.ApiVersion = 23.0;
pushTopic.Name = 'AccountTopic';
pushTopic.Description = 'test';
pushtopic.Query = 'SELECT Id, Name FROM Account';
insert pushTopic;

ただし、ユースケースによって異なりますが、RDBMS に複製する場合はこれで十分です。結合を使用して完全なデータを取得できます。

于 2015-07-13T11:32:55.040 に答える