2017-09-22 1 views
0

Ich versuche, ein benutzerdefiniertes Objekt abzufragen, das eine Hauptdetail-Nachschlagebeziehung mit Opportunities hat. Wenn ich die Abfrage dynamisch aufbauen Ich erhalte eine SOQL Fehler:Apex-SOQL-Abfrage, die die Objekttypbezeichnung von der ID in der Abfrage entfernt

System.QueryException: unexpected token: 'A000000VmhPyIAJ'

Die ersten drei Zeichen der ID haben in dieser Ausnahme fallen gelassen worden, die volle Identifikation ist:

006A000000VmhPyIAJ

Wenn ich die Dump Query-String mit System.debug ich diese (mit der vollen ID) erhalten:

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

Wenn ich diese genau die gleiche Zeichenfolge in das database.query() übergeben ich Ergebnisse zu erhalten, wie erwartet.

Hat jemand eine Idee, was das verursacht? Der Code, der diese Abfrage generiert, ist eine Bibliothek, die ich für hunderte von anderen Abfragen außerhalb des benutzerdefinierten Apex verwende und keine dieser Abfragen schlägt fehl.

Die eigentliche Abfrage Block:

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 (DmlException e) {

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

}

Antwort

0

vergessen Apostrophe auf der Where-Klausel Wert zu entkommen.

WHERE Opportunity__c = '006A000000VmhPyIAJ'

Verwandte Themen