2016-12-02 1 views
0

Je suis nouveau sur Salesforce et j'utilise Java Salesforce API (par exemple, com.sforce.soap.metadata, com.sforce.ws). Je sais comment interroger le code Java en utilisant la syntaxe soql.Comment obtenir les métadonnées d'une requête de résultats soql sans enregistrements retournés?

Parfois, le soql ne renvoie pas de résultats, ce qui rend impossible l'obtention de détails sur les champs des résultats, donc j'ai besoin d'obtenir des métadonnées sur la requête soq, que les résultats soient retournés. Si je le SOQL suivant:

SELECT Name FROM Position_c WHERE Id NOT IN SELECT Position__c FROM Job_Application__c) 

Quelqu'un peut-il me dire s'il est possible d'utiliser Java pour obtenir les métadonnées sur cette requête, même si la requête renvoie aucun résultat? Ce serait bien si vous pouviez inclure un petit extrait de code montrant comment le faire.

Répondre

0

Je ne pense pas qu'il existe un moyen de le sortir d'une requête 0 lignes. Cependant, vous pouvez regarder les métadonnées pour n'importe quel objet en utilisant le describeObject.

https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobject.htm

+0

Les états SOQL seront utilisés pour obtenir des résultats de requête qui seront traduits aux tables sql; d'où la nécessité de créer une table SQL même si aucun enregistrement n'est retourné. Les instructions soql sont fournies par l'utilisateur et peuvent donc être n'importe quoi. Par conséquent, pour utiliser la technique que vous avez mentionnée, il sera nécessaire d'analyser l'instruction soql et de trouver les objets impliqués - ce qui est une tâche MAJEURE à accomplir. Nous parlons vraiment de soi-disant analyseur de moteur soql/Pas une tâche facile à accomplir. Je préférerais laisser cette option en dernier recours. – NeverEndingStoryWow