| | |
| | | global class Sfdc2SapDealersContractBatch implements Database.Batchable<sObject>, Database.AllowsCallouts { |
| | | //xinhonglu |
| | | global Sfdc2SapDealersContractBatch() { |
| | | |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext BC) { |
| | | |
| | | return Database.getQueryLocator( |
| | | [SELECT Id,RecordType_DeveloperName__c , RecordTypeId , |
| | | Sap2sfdcDealers_ModifycationLogo__c, Is_Active_Formula__c, |
| | | ContractSfdc2SapLog__c |
| | | FROM Account |
| | | where Is_Active_Formula__c = '有效' |
| | | and ((Parent.Sap2sfdcDealers_ModifycationLogo__c = '1' and Parent.RecordType_DeveloperName__c = 'Agency') |
| | | or Sap2sfdcDealers_ModifycationLogo__c = '1' )]); |
| | | //[SELECT Id,RecordType_DeveloperName__c , RecordTypeId , Sap2sfdcDealers_ModifycationLogo__c, Is_Active_Formula__c,ContractSfdc2SapLog__c FROM Account where Is_Active_Formula__c = '有效' and ((Parent.Sap2sfdcDealers_ModifycationLogo__c = '1' and Parent.RecordType_DeveloperName__c = 'Agency') or (Sap2sfdcDealers_ModifycationLogo__c = '1' and RecordType_DeveloperName__c = 'Agency'))] |
| | | //); |
| | | } |
| | | |
| | | Boolean IsNeedExecute = false; // 2021-03-10 mzy WLIG-BYHD79 SFDC环境batch合并调查 是否符合执行条件 |
| | | |
| | | //xinhonglu |
| | | global Sfdc2SapDealersContractBatch() { |
| | | |
| | | global void execute(Database.BatchableContext BC, List<Account> accList) { |
| | | String[] needSendTypes = new String[] {'契約', '販売店'}; |
| | | List<Account> updateAccountList = new List<Account>(); |
| | | Map<String, String> purposeOfAdviceMap = new Map<String, String>(); |
| | | List<RecordType> rects = [select Id, Name |
| | | from RecordType |
| | | where IsActive = true |
| | | and SobjectType = 'Account' |
| | | and Name IN :needSendTypes]; |
| | | Map<String, String> needSendRectMap = new Map<String, String>(); |
| | | for (RecordType rect : rects) { |
| | | needSendRectMap.put(rect.Id, rect.Name); |
| | | } |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | //iflog.Type__c = 'NFM001'; |
| | | //iflog.ErrorLog__c = ''; |
| | | //iflog.Log__c = 'callout start\n'; |
| | | //iflog.Id = '20181211'; |
| | | //insert iflog; |
| | | |
| | | // 2021-03-10 mzy WLIG-BYHD79 SFDC环境batch合并调查 start |
| | | global Sfdc2SapDealersContractBatch(Boolean NeedExecute) { |
| | | this.IsNeedExecute = NeedExecute; |
| | | } |
| | | // 2021-03-10 mzy WLIG-BYHD79 SFDC环境batch合并调查 end |
| | | |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext BC) { |
| | | System.debug('================================进入batch'); |
| | | return Database.getQueryLocator( |
| | | [SELECT Id, RecordType_DeveloperName__c , RecordTypeId , |
| | | Sap2sfdcDealers_ModifycationLogo__c, Is_Active_Formula__c, |
| | | ContractSfdc2SapLog__c |
| | | FROM Account |
| | | where Is_Active_Formula__c = '有效' |
| | | and ((Parent.Sap2sfdcDealers_ModifycationLogo__c = '1' and Parent.RecordType_DeveloperName__c = 'Agency') |
| | | or Sap2sfdcDealers_ModifycationLogo__c = '1' )]); |
| | | //[SELECT Id,RecordType_DeveloperName__c , RecordTypeId , Sap2sfdcDealers_ModifycationLogo__c, Is_Active_Formula__c,ContractSfdc2SapLog__c FROM Account where Is_Active_Formula__c = '有效' and ((Parent.Sap2sfdcDealers_ModifycationLogo__c = '1' and Parent.RecordType_DeveloperName__c = 'Agency') or (Sap2sfdcDealers_ModifycationLogo__c = '1' and RecordType_DeveloperName__c = 'Agency'))] |
| | | //); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, List<Account> accList) { |
| | | |
| | | String[] needSendTypes = new String[] {'契約', '販売店'}; |
| | | List<Account> updateAccountList = new List<Account>(); |
| | | Map<String, String> purposeOfAdviceMap = new Map<String, String>(); |
| | | List<RecordType> rects = [select Id, Name |
| | | from RecordType |
| | | where IsActive = true |
| | | and SobjectType = 'Account' |
| | | and Name IN :needSendTypes]; |
| | | Map<String, String> needSendRectMap = new Map<String, String>(); |
| | | for (RecordType rect : rects) { |
| | | needSendRectMap.put(rect.Id, rect.Name); |
| | | //iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id]; |
| | | System.debug(Logginglevel.DEBUG, 'NFM001_' + iflog.Name + ' start'); |
| | | |
| | | //Savepoint sp = Database.setSavepoint(); |
| | | try{ |
| | | List<String> accIds = new List<String>(); |
| | | for(Account acc:accList){ |
| | | acc.Sap2sfdcDealers_ModifycationLogo__c = '0'; |
| | | if (needSendRectMap.get(acc.RecordTypeId) == '契約'){ |
| | | accIds.add(acc.Id); |
| | | |
| | | } |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | //iflog.Type__c = 'NFM001'; |
| | | //iflog.ErrorLog__c = ''; |
| | | //iflog.Log__c = 'callout start\n'; |
| | | //iflog.Id = '20181211'; |
| | | //insert iflog; |
| | | |
| | | //iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id]; |
| | | System.debug(Logginglevel.DEBUG, 'NFM001_' + iflog.Name + ' start'); |
| | | |
| | | //Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<String> accIds = new List<String>(); |
| | | List<String> accIdList2Applet = new List<String>(); |
| | | for (Account acc : accList) { |
| | | acc.Sap2sfdcDealers_ModifycationLogo__c = '0'; |
| | | if (needSendRectMap.get(acc.RecordTypeId) == '契約') { |
| | | accIds.add(acc.Id); |
| | | |
| | | } |
| | | purposeOfAdviceMap.put(acc.Id, acc.ContractSfdc2SapLog__c); |
| | | if (needSendRectMap.get(acc.RecordTypeId) == '販売店'){ |
| | | accIdList2Applet.add(acc.Id); |
| | | } |
| | | //if (needSendRectMap.get(acc.RecordTypeId) == '販売店'){ |
| | | // //acc.Sap2sfdcDealers_ModifycationLogo__c = '0'; |
| | | // updateAccountList.add(acc); |
| | | //} |
| | | updateAccountList.add(acc); |
| | | } |
| | | //if(updateAccountList.size()>0){ |
| | | // upsert updateAccountList; |
| | | //} |
| | | NFM001Controller.calloutNotFuture(null, accIds, purposeOfAdviceMap, needSendRectMap); |
| | | system.debug('accIdList2Applet--->'+accIdList2Applet); |
| | | if (accIdList2Applet.size() > 0) { |
| | | NFM601Controller.executefuture(null, accIdList2Applet); |
| | | } |
| | | if (updateAccountList.size() > 0) { |
| | | upsert updateAccountList; |
| | | } |
| | | // system.debug('accIdList2Applet--->'+accIdList2Applet); |
| | | // if (accIdList2Applet.size() > 0) { |
| | | // NFM601Controller.executefuture(null, accIdList2Applet); |
| | | // } |
| | | |
| | | iflog.Log__c = 'end\n'; |
| | | } catch (Exception ex) { |
| | | // エラーが発生した場合 |
| | | //Database.rollback(sp); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | iflog.Log__c = 'end\n'; |
| | | } |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | |
| | | } |
| | | |
| | | purposeOfAdviceMap.put(acc.Id, acc.ContractSfdc2SapLog__c); |
| | | //if (needSendRectMap.get(acc.RecordTypeId) == '販売店'){ |
| | | // //acc.Sap2sfdcDealers_ModifycationLogo__c = '0'; |
| | | // updateAccountList.add(acc); |
| | | //} |
| | | updateAccountList.add(acc); |
| | | } |
| | | //if(updateAccountList.size()>0){ |
| | | // upsert updateAccountList; |
| | | //} |
| | | NFM001Controller.calloutNotFuture(null, accIds, purposeOfAdviceMap, needSendRectMap); |
| | | if(updateAccountList.size()>0){ |
| | | upsert updateAccountList; |
| | | } |
| | | iflog.Log__c = 'end\n'; |
| | | }catch (Exception ex) { |
| | | // エラーが発生した場合 |
| | | //Database.rollback(sp); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | iflog.Log__c = 'end\n'; |
| | | } |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | |
| | | } |
| | | |
| | | } |