| | |
| | | * Class名: AgencyShareUpdateBatch |
| | | * 理由: 现在只有 Agency_Opportunity__c, 以后会有扩展的可能 |
| | | */ |
| | | global class AgencyShareUpdateBatch implements Database.Batchable<sObject> { |
| | | //20230203 lt 计划的作业优化 --- 继承加“, Database.Stateful”,不然removeOtherSc方法空指针 |
| | | global class AgencyShareUpdateBatch implements Database.Batchable<sObject>, Database.Stateful { |
| | | |
| | | //20230203 lt 计划的作业优化 一小时两次 start |
| | | private BatchEmailUtil.ScBean scB1; |
| | | //20230203 lt 计划的作业优化 一小时两次 end |
| | | |
| | | global AgencyShareUpdateBatch() { |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext bc) { |
| | | |
| | | //20230203 lt 计划的作业优化 一小时两次 start |
| | | scB1 = BatchEmailUtil.setSc1('AgencyShareUpdateBatchSchedule', 0, 23, 0, '0 30 *', null); |
| | | if (System.Test.isRunningTest() == false) { |
| | | for(CronTrigger ct : [SELECT Id FROM CronTrigger WHERE CronJobDetail.Name =: scB1.scName]) { |
| | | System.abortJob(ct.Id); |
| | | } |
| | | system.schedule(scB1.scName, scB1.scTime, new AgencyShareUpdateBatchSchedule()); |
| | | } |
| | | //20230203 lt 计划的作业优化 一小时两次 end |
| | | |
| | | return Database.getQueryLocator([SELECT Id |
| | | , OCSM_Owner__c |
| | | , Department_Class_Opp__c |
| | |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext bc) { |
| | | BatchEmailUtil.removeOtherSc('AgencyShareUpdateBatchSchedule', scB1.scName); //20230203 lt 计划的作业优化 |
| | | |
| | | // 如果前一个603的batch正在等待状态,则取消掉前一个batch的执行 |
| | | List<AsyncApexJob> lstJobs = [SELECT Id FROM AsyncApexJob WHERE (Status = 'Queued' OR Status = 'Holding') AND ApexClass.Name = 'NFM603Batch']; |