在Salesforce批处理类中,我正在尝试做类似的事情,但是它给了我错误
global class PurgerefundcasesBatch implements Database.Batchable<sObject> {
private static final String refund = 'refund';
String query = String query = 'SELECT id, SubStatus__c FROM Case ' +
'WHERE SubStatus__c ='+ refund +' AND createdDate < LAST_N_DAYS:10';
global PurgerefundcasesBatch() {
}
.......
.........
}
获取以下错误..
Timestamp: Tue, 13 Feb 2018 21:59:17
Result: [OPERATION FAILED]: classes/PurgeDraftcasesBatch.cls: Missing ';' at 'query' (Line: 12, Column: 24)
classes/PurgeDraftcasesBatch.cls: Unexpected token '='. (Line: 12, Column: 30)
classes/PurgeDraftcasesBatch.cls: Unexpected token '='. (Line: 12, Column: 30)
classes/PurgeDraftcasesBatch.cls: Unexpected token '+'. (Line: 13, Column: 41)
classes/PurgeDraftcasesBatch.cls: Unexpected token '+'. (Line: 13, Column: 41)
classes/PurgeDraftcasesBatch.cls: Variable does not exist: String (Line: 12, Column: 17)
classes/PurgeDraftcasesBatch.cls: Invalid loop variable type expected SObject was Case (Line: 26, Column: 4)`
主要ISSIUE是您以错误的方式设置查询变量。您不能像:
那样定义它String query = String query =
String query = 'SELECT id, ELC_SubStatus__c FROM Case WHERE SubStatus__c ='+ refund +' AND createdDate < LAST_N_DAYS:10';
我能够像下面这样做。有关动态查询注意事项,请参考动态SOQL
private static final String refund = 'refund';
String query = 'SELECT id, SubStatus__c FROM Case ' +
'WHERE SubStatus__c = :refund AND createdDate < LAST_N_DAYS:10';