2017-09-22 7 views
0

Je tente d'interroger un objet personnalisé qui a une relation de référence de détail principal avec des opportunités. Lorsque je construis la requête dynamique, je reçois une erreur SOQL:Requête SOAP Apex supprimant la désignation de type d'objet de l'ID dans la requête

System.QueryException: unexpected token: 'A000000VmhPyIAJ'

Les trois premiers caractères de l'ID ont été abandonnées dans cette exception, l'ID complet est:

006A000000VmhPyIAJ

Si je vider le chaîne de requête avec System.debug je reçois ce (avec l'ID complet):

SELECT id, isdeleted, name, createddate, createdbyid, lastmodifieddate, lastmodifiedbyid, systemmodstamp, lastactivitydate, opportunity__c, issue__c, description__c, ... FROM Exceptions__c WHERE Opportunity__c = 006A000000VmhPyIAJ

Si je passe cette même chaîne exacte dans le I obtenir des résultats database.query() comme prévu.

Quelqu'un at-il une idée de ce qui cause? Le code qui génère cette requête est une bibliothèque que j'utilise pour des centaines d'autres requêtes à travers notre Apex personnalisé, et aucune de ces requêtes échoue.

Le bloc de requête réelle:

try { 

    String query = 'SELECT id, isdeleted, name, createddate, createdbyid, lastmodifieddate, lastmodifiedbyid, systemmodstamp, lastactivitydate, opportunity__c, issue__c, description__c, ... FROM Exceptions__c WHERE Opportunity__c = 006A000000VmhPyIAJ'; 
    exceptions = database.query(query); 

} catch (e DmlException) {

System.debug('DmlException: ' + e); 

}

Répondre

0

oublié pour échapper à des guillemets simples sur la valeur où la clause.

WHERE Opportunity__c = '006A000000VmhPyIAJ'