Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.38 KB | None | 0 0
  1. global String queryString;
  2. global Map<String, Batch_Execution_History__c> historyMap;
  3. global Integer recordsPassed = 0;
  4. global Integer recordsFailed = 0;
  5. global Set<Id> accounts_Reset = new Set<Id>();
  6. global Boolean trackBatchExecution = true;
  7.  
  8. global IS_CertificationRollUpBatch(){
  9. queryString = 'SELECT id,Contact_ID__c FROM Certification__c';
  10. historyMap = (Map<String, Batch_Execution_History__c>)Batch_Execution_History__c.getAll();
  11. if(historyMap != null && historyMap.containsKey('IS_CertificationRollUpBatch')){
  12. String lastRun = historyMap.get('IS_CertificationRollUpBatch').Last_Run_On__c;
  13. if(lastRun != null){
  14. queryString += ' WHERE LastModifiedDate >= ' + lastRun;
  15. }
  16. }
  17. queryString += ' ORDER BY Contact_ID__c, Certification_Code__c ';
  18. }
  19.  
  20. //INSALES-4204 - For historical Clean up
  21. global IS_CertificationRollUpBatch(String Dummy){
  22. queryString = 'SELECT id,Contact_ID__c FROM Certification__c';
  23. queryString += ' ORDER BY Contact_ID__c, Certification_Code__c ';
  24. }
  25.  
  26. global IS_CertificationRollUpBatch(ID tempAccountID){
  27.  
  28. historyMap = (Map<String, Batch_Execution_History__c>)Batch_Execution_History__c.getAll();
  29. String contactIDs = '';
  30. for(Contact con : [SELECT ID FROM Contact WHERE AccountID = :tempAccountID]){
  31. if(contactIDs == '')
  32. contactIDs = '(';
  33. contactIDs += ''' + con.id + '',';
  34. }
  35. queryString = 'SELECT id,Contact_ID__c FROM Certification__c';
  36. if(contactIDs != ''){
  37. contactIDs = contactIDs.removeEnd(',');
  38. contactIDs = contactIDs + ')';
  39. queryString += ' WHERE Contact_ID__c in ' + contactIDs;
  40. }
  41. if(historyMap != null && historyMap.containsKey('IS_CertificationRollUpBatch')){
  42. String lastRun = historyMap.get('IS_CertificationRollUpBatch').Last_Run_On__c;
  43. //String lastRunStr = string.valueOf(lastRun).replaceFirst(' ','T');
  44. //lastRunStr = lastRunStr + 'Z';
  45. if (tempAccountID == null && lastRun != null){
  46. queryString += ' AND LastModifiedDate >= ' + lastRun;
  47. }
  48. }
  49. queryString += ' ORDER BY Contact_ID__c, Certification_Code__c ';
  50.  
  51. system.debug('query string ' + queryString);
  52. trackBatchExecution = false;
  53. }
  54.  
  55. global Database.QueryLocator start(Database.BatchableContext bc){
  56. System.debug('queryString===='+queryString);
  57. return Database.getQueryLocator(queryString);
  58. }
  59.  
  60. /****************************************************************************
  61. //execute the batch
  62. /***************************************************************************/
  63. global void execute(Database.BatchableContext bc, List<SObject> data) {
  64.  
  65. Set<Id> contactIds = new Set<Id>();
  66. List<Account> accountForContacts = new List<Account>();
  67. Map<Id, Contact> contactMap = new Map<Id, Contact>();
  68. List<Id> countryAccounts = new List<Id>();
  69. List<Certification__c> expiredCertifications = new List<Certification__c>();
  70. List<Certification__c> certificationRecordsForAllContacts = new List<Certification__c>();
  71. Map<Id, Id> contactCountryAccountMap = new Map<Id, Id>();
  72. Map<Id, Set<ID>> accountContactSetMap = new Map<Id, Set<ID>>();
  73.  
  74. for(Certification__c certification : (List<Certification__c>)data){
  75. contactIds.add(certification.Contact_ID__c);
  76. }
  77.  
  78. if(contactIds.size() > 0){
  79. for(Contact contact : ([SELECT id, AccountID, Account.ParentId , Account.IsPartner,
  80. Account.Partner_Hierarchy_Level__c
  81. FROM Contact
  82. WHERE Id in :contactIds])) {
  83. System.debug('contact.Account.Partner_Hierarchy_Level__c==='+contact.Account.Partner_Hierarchy_Level__c);
  84. System.debug('contact.Account.isPartner==='+contact.Account.isPartner);
  85. if(contact.Account.Partner_Hierarchy_Level__c == IS_Constants.PARTNER_HIER_COUNTRY && contact.Account.isPartner){
  86. countryAccounts.add(contact.AccountID);
  87. }
  88. if(contact.Account.Partner_Hierarchy_Level__c == IS_Constants.PARTNER_HIER_SITE && contact.Account.isPartner){
  89. countryAccounts.add(contact.Account.ParentId);
  90. }
  91. }
  92. }
  93. if(countryAccounts.size() > 0){
  94.  
  95. // Reset Accounts first
  96. // accounts_Reset
  97. Set<Id> accountIds_reset_TEMP = new Set<Id>();
  98. for(Id accId : countryAccounts) {
  99. if(!accounts_Reset.contains(accId)) {
  100. accounts_Reset.add(accId);
  101. accountIds_reset_TEMP.add(accId);
  102. }
  103. }
  104. if(accountIds_reset_TEMP.size() > 0) {
  105. List<Partner_Certification__c> partnerCertificationsToBeDeleted = [SELECT Id
  106. FROM Partner_Certification__c
  107. WHERE Account_ID__c IN :accountIds_reset_TEMP];
  108. if(partnerCertificationsToBeDeleted.size() > 0) {
  109. delete partnerCertificationsToBeDeleted;
  110. }
  111. }
  112. // Reset Accounts first
  113.  
  114. contactMap = new Map<Id, Contact>([ SELECT Id,Name, AccountID, Account.ParentId , Account.IsPartner,
  115. Account.Partner_Hierarchy_Level__c
  116. FROM Contact
  117. WHERE AccountId in :countryAccounts
  118. OR Account.ParentId in :countryAccounts]);
  119.  
  120. for(Contact con : contactMap.values()) {
  121. if(con.Account.Partner_Hierarchy_Level__c == IS_Constants.PARTNER_HIER_COUNTRY && con.Account.isPartner){
  122. contactCountryAccountMap.put(con.id, con.AccountID);
  123. if(accountContactSetMap.containsKey(con.AccountID)) {
  124. accountContactSetMap.get(con.AccountID).add(con.id);
  125. } else {
  126. accountContactSetMap.put(con.AccountID, new Set<ID>{con.id});
  127. }
  128. }
  129. if(con.Account.Partner_Hierarchy_Level__c == IS_Constants.PARTNER_HIER_SITE && con.Account.isPartner){
  130. contactCountryAccountMap.put(con.id, con.Account.ParentId);
  131. if(accountContactSetMap.containsKey(con.Account.ParentId)){
  132. accountContactSetMap.get(con.Account.ParentId).add(con.id);
  133. } else {
  134. accountContactSetMap.put(con.Account.ParentId, new Set<ID>{con.id});
  135. }
  136. }
  137. }
  138. }
  139. //Map<ID, List<Certification__c>> accountCertifications = new Map<ID, List<Certification__c>>();
  140. Map<ID, List<Certification__c>> contactCertifications = new Map<ID, List<Certification__c>>();
  141. if(contactMap.size() > 0){
  142. certificationRecordsForAllContacts = [SELECT Activity_Type__c, Certification_Code__c,
  143. Contact_ID__c, Certification_Status__c,
  144. System_Status__c, Expiration_Date__c,
  145. Name, Certification_Group_Name__c
  146. FROM Certification__c
  147. WHERE Contact_ID__c in :contactMap.keyset()
  148. AND System_Status__c =: IS_Constants.ACTIVE_STATUS
  149. AND Certification_Status__c = :IS_Constants.CERT_STATUS_COMPLETE
  150. AND Certification_Code__c != null
  151. ORDER BY Contact_ID__c, Certification_Code__c ];
  152.  
  153. if(certificationRecordsForAllContacts != null && certificationRecordsForAllContacts.size() > 0){
  154. for(Certification__c certifications : certificationRecordsForAllContacts){
  155. if(certifications.Expiration_Date__c != null){
  156. if(certifications.Expiration_Date__c <= system.Today()){
  157. certifications.System_Status__c = IS_Constants.CERT_STATUS_EXPIRE;
  158. expiredCertifications.add(certifications);
  159. }else{
  160. /*if(accountCertifications.containsKey(contactCountryAccountMap.get(certifications.Contact_ID__c))){
  161. accountCertifications.get(contactCountryAccountMap.get(certifications.Contact_ID__c)).add(certifications);
  162. }else{
  163. accountCertifications.put(contactCountryAccountMap.get(certifications.Contact_ID__c), new List<Certification__c>{certifications});
  164. }*/
  165. if(contactCertifications.containsKey(certifications.Contact_ID__c)){
  166. contactCertifications.get(certifications.Contact_ID__c).add(certifications);
  167. }else{
  168. contactCertifications.put(certifications.Contact_ID__c, new List<Certification__c>{certifications});
  169. }
  170. }
  171. }else{
  172. /*if(accountCertifications.containsKey(contactCountryAccountMap.get(certifications.Contact_ID__c))){
  173. accountCertifications.get(contactCountryAccountMap.get(certifications.Contact_ID__c)).add(certifications);
  174. }else{
  175. accountCertifications.put(contactCountryAccountMap.get(certifications.Contact_ID__c), new List<Certification__c>{certifications});
  176. }*/
  177. if(contactCertifications.containsKey(certifications.Contact_ID__c)){
  178. contactCertifications.get(certifications.Contact_ID__c).add(certifications);
  179. }else{
  180. contactCertifications.put(certifications.Contact_ID__c, new List<Certification__c>{certifications});
  181. }
  182. }
  183. }
  184. }
  185. if(contactCertifications.size() > 0){
  186. //createOrUpdatePartnerCertificationRecord(accountCertifications, contactCertifications, accountContactSetMap);
  187. createOrUpdatePartnerCertificationRecord(contactCertifications, accountContactSetMap);
  188.  
  189. //Call function to create certification wise contacts -- INSALES-4204
  190. createPartnerCertCon(contactCertifications, accountContactSetMap);
  191. }
  192. if(expiredCertifications.size() > 0){
  193. update expiredCertifications;
  194. }
  195.  
  196. }
  197. }
  198.  
  199. private void createOrUpdatePartnerCertificationRecord(Map<ID, List<Certification__c>> contactCertifications,
  200. Map<ID, Set<ID>> accountContactSetMap){
  201.  
  202. Map<Id, List<Partner_Certification__c>> accountPartnerCertificationRec = new Map<Id,List<Partner_Certification__c>>();
  203. Map<Id, List<Partner_Certification__c>> existingPartnerCertiMap = new Map<Id, List<Partner_Certification__c>>();
  204. Map<ID,Partner_Certification__c> certificationsToUpdate = new Map<ID,Partner_Certification__c>();
  205. List<Partner_Certification__c> certificationsToCreate = new List<Partner_Certification__c>();
  206. Partner_Certification__c tempPartnerCertification;
  207. List<Partner_Certification__c> updatedPartnerCerti;
  208. Map<Id, List<Partner_Certification__c>> contactPartnerCertificationRec = new Map<Id,List<Partner_Certification__c>>();
  209. for(Partner_Certification__c exisPartnerCertiftication : [SELECT Account_ID__c, Activity_Type__c,Name,
  210. Total_Summary__c
  211. FROM Partner_Certification__c
  212. WHERE Account_ID__c in :accountContactSetMap.keyset()]){
  213. if(existingPartnerCertiMap.containsKey(exisPartnerCertiftication.Account_ID__c)){
  214. existingPartnerCertiMap.get(exisPartnerCertiftication.Account_ID__c).add(exisPartnerCertiftication);
  215. }else{
  216. existingPartnerCertiMap.put(exisPartnerCertiftication.Account_ID__c, new List<Partner_Certification__c>{exisPartnerCertiftication});
  217. }
  218. }
  219. Boolean sameCertificationFound = false;
  220. for(ID accountID : accountContactSetMap.keyset()){
  221. for(ID contactID : accountContactSetMap.get(accountID)){
  222. if(contactCertifications.containsKey(contactID)){
  223. for(Certification__c certification : contactCertifications.get(contactID)){
  224. if(contactPartnerCertificationRec.containsKey(contactID)){
  225. updatedPartnerCerti = contactPartnerCertificationRec.get(contactID);
  226. sameCertificationFound = false;
  227. for(Partner_Certification__c partnerCertiTemp : updatedPartnerCerti){
  228. if(String.isNotBlank(partnerCertiTemp.Activity_Type__c) && partnerCertiTemp.Activity_Type__c.equals(certification.Activity_Type__c)
  229. && String.isNotBlank(partnerCertiTemp.Name) && partnerCertiTemp.Name.equals(certification.Certification_Group_Name__c)){
  230. sameCertificationFound = true;
  231. break;
  232. }
  233. }
  234. if(!sameCertificationFound){
  235. tempPartnerCertification = new Partner_Certification__c();
  236. tempPartnerCertification.Activity_Type__c = certification.Activity_Type__c;
  237. tempPartnerCertification.Total_Summary__c = 1.0;
  238. tempPartnerCertification.Account_ID__c = accountID;
  239. tempPartnerCertification.Name = certification.Certification_Group_Name__c;
  240. contactPartnerCertificationRec.get(contactID).add(tempPartnerCertification);
  241. }
  242. }
  243. else {
  244. tempPartnerCertification = new Partner_Certification__c();
  245. tempPartnerCertification.Activity_Type__c = certification.Activity_Type__c;
  246. tempPartnerCertification.Total_Summary__c = 1.0;
  247. tempPartnerCertification.Name = certification.Certification_Group_Name__c;
  248. tempPartnerCertification.Account_ID__c = accountID;
  249. updatedPartnerCerti = new List<Partner_Certification__c>{tempPartnerCertification};
  250. contactPartnerCertificationRec.put(contactID,updatedPartnerCerti);
  251. }
  252. }
  253. }
  254. }
  255. }
  256. system.debug('contactPartnerCertificationRec : ' + contactPartnerCertificationRec);
  257. for(ID accountID : accountContactSetMap.keyset()){
  258. for(ID contactID : accountContactSetMap.get(accountID)){
  259. if(contactPartnerCertificationRec.containsKey(contactID)){
  260. for(Partner_Certification__c partnerCerti : contactPartnerCertificationRec.get(contactID)){
  261. if(accountPartnerCertificationRec.containsKey(accountID)){
  262. updatedPartnerCerti = accountPartnerCertificationRec.get(accountID);
  263. sameCertificationFound = false;
  264. for(Partner_Certification__c partnerCertiTemp : updatedPartnerCerti){
  265. if(String.isNotBlank(partnerCertiTemp.Activity_Type__c) && partnerCertiTemp.Activity_Type__c.equals(partnerCerti.Activity_Type__c)
  266. && String.isNotBlank(partnerCertiTemp.Name) && partnerCertiTemp.Name.equals(partnerCerti.Name)){
  267. sameCertificationFound = true;
  268. partnerCertiTemp.Total_Summary__c = partnerCertiTemp.Total_Summary__c + 1;
  269. break;
  270. }
  271. }
  272. if(!sameCertificationFound){
  273. accountPartnerCertificationRec.get(accountID).add(partnerCerti);
  274. }
  275. }else{
  276. accountPartnerCertificationRec.put(accountID,new List<Partner_Certification__c>{partnerCerti});
  277. }
  278. }
  279. }
  280. }
  281. }
  282. /*for(ID accountID : accountCertifications.keyset()){
  283. for(Certification__c certification : accountCertifications.get(accountID)){
  284. if(accountPartnerCertificationRec.containsKey(accountID)){
  285. updatedPartnerCerti = accountPartnerCertificationRec.get(accountID);
  286. sameCertificationFound = false;
  287. for(Partner_Certification__c partnerCertiTemp : updatedPartnerCerti){
  288. if(partnerCertiTemp.Activity_Type__c.equals(certification.Activity_Type__c)
  289. && partnerCertiTemp.Name.equals(certification.Name)){
  290. partnerCertiTemp.Total_Summary__c = partnerCertiTemp.Total_Summary__c + 1;
  291. sameCertificationFound = true;
  292. break;
  293. }
  294. }
  295. if(!sameCertificationFound){
  296. tempPartnerCertification = new Partner_Certification__c();
  297. tempPartnerCertification.Activity_Type__c = certification.Activity_Type__c;
  298. tempPartnerCertification.Specialization_Product_Family__c = certification.Specialization_Product_Family__c;
  299. tempPartnerCertification.Total_Summary__c = 1.0;
  300. tempPartnerCertification.Account_ID__c = accountID;
  301. tempPartnerCertification.Name = certification.Name;
  302. accountPartnerCertificationRec.get(accountID).add(tempPartnerCertification);
  303. }
  304. }else{
  305. tempPartnerCertification = new Partner_Certification__c();
  306. tempPartnerCertification.Activity_Type__c = certification.Activity_Type__c;
  307. tempPartnerCertification.Specialization_Product_Family__c = certification.Specialization_Product_Family__c;
  308. tempPartnerCertification.Total_Summary__c = 1.0;
  309. tempPartnerCertification.Name = certification.Name;
  310. tempPartnerCertification.Account_ID__c = accountID;
  311. updatedPartnerCerti = new List<Partner_Certification__c>{tempPartnerCertification};
  312. accountPartnerCertificationRec.put(accountID,updatedPartnerCerti);
  313. }
  314. }
  315. }
  316. */
  317. Boolean partnerCertificationFound = false;
  318. for(ID accountID : accountPartnerCertificationRec.keyset()){
  319. partnerCertificationFound = false;
  320. for(Partner_Certification__c updatedCerti : accountPartnerCertificationRec.get(accountID)){
  321. if(existingPartnerCertiMap != null && existingPartnerCertiMap.containsKey(accountID)){
  322. for(Partner_Certification__c existingCerti : existingPartnerCertiMap.get(accountID)){
  323. partnerCertificationFound = false;
  324. system.debug('Activity_Type__c' + existingCerti.Activity_type__c);
  325. //system.debug('productfamily:' + existingCerti.Specialization_Product_Family__c);
  326. if(String.isNotBlank(existingCerti.Activity_Type__c) && existingCerti.Activity_Type__c.equals(updatedCerti.Activity_Type__c)
  327. && existingCerti.Name.equals(updatedCerti.Name)){
  328. existingCerti.Total_Summary__c = updatedCerti.Total_Summary__c;
  329. certificationsToUpdate.put(existingCerti.id, existingCerti);
  330. partnerCertificationFound = true;
  331. break;
  332. }
  333. }
  334. }
  335. if(!partnerCertificationFound)
  336. certificationsToCreate.add(updatedCerti);
  337. }
  338. }
  339.  
  340.  
  341. if(certificationsToCreate.size() > 0){
  342. List<Database.Saveresult> srList = Database.insert(certificationsToCreate, false);
  343. for(Database.Saveresult sr : srList){
  344. if(sr.isSuccess()){
  345. recordsPassed++;
  346. }else{
  347. recordsFailed++;
  348. }
  349. }
  350. }
  351. if(certificationsToUpdate.size() > 0){
  352. List<Database.Saveresult> srList = Database.Update(certificationsToUpdate.values(), false);
  353. for(Database.Saveresult sr : srList){
  354. if(sr.isSuccess()){
  355. recordsPassed++;
  356. }else{
  357. recordsFailed++;
  358. }
  359. }
  360. }
  361.  
  362. }
  363.  
  364. //INSALES-4204: This function creates Partner_Certification_Contacts__c
  365. private void createPartnerCertCon(Map<ID, List<Certification__c>> contactCertifications,
  366. Map<ID, Set<ID>> accountContactSetMap){
  367. List<Partner_Certification_Contacts__c> prtCertConLst = new List<Partner_Certification_Contacts__c>();
  368. Partner_Certification_Contacts__c prtCertCon;
  369. //For each account from input Set -- accountContactSetMap.keyset
  370. //For each contact under the account --Map<ID, Set<ID>> accountContactSetMap
  371. //For each cert under the contact -- Map<ID, List<Certification__c>> contactCertifications
  372. //Form a Map<AccId, Map<Certification_Group_Name__c+Activity_type__c, List<CertificationRecord>>>
  373. Map<Id, Map<String, List<Certification__c>>> prtCertGrpCertMap = new Map<Id, Map<String, List<Certification__c>>>();
  374. Map<String, List<Certification__c>> certGrpCertMap = new Map<String, List<Certification__c>>();
  375. List<Certification__c> certLst = new List<Certification__c>();
  376.  
  377. for(ID accountID : accountContactSetMap.keyset()){
  378. for(ID contactID : accountContactSetMap.get(accountID)){
  379. if(contactCertifications.containsKey(contactID)){
  380. for(Certification__c certification : contactCertifications.get(contactID)){
  381. if(prtCertGrpCertMap.containsKey(accountID)){
  382. certGrpCertMap = prtCertGrpCertMap.get(accountID);
  383. if(certGrpCertMap.containsKey(certification.Certification_Group_Name__c+certification.Activity_Type__c)){
  384. prtCertGrpCertMap.get(accountID).get(certification.Certification_Group_Name__c+certification.Activity_Type__c).add(certification);
  385. }
  386. else{
  387. certLst = new List<Certification__c>();
  388. certLst.add(certification);
  389. prtCertGrpCertMap.get(accountID).put(certification.Certification_Group_Name__c+certification.Activity_Type__c, certLst);
  390. }
  391.  
  392. }
  393. else{
  394. certLst = new List<Certification__c>();
  395. certLst.add(certification);
  396. certGrpCertMap = new Map<String, List<Certification__c>>();
  397. certGrpCertMap.put(certification.Certification_Group_Name__c+certification.Activity_Type__c, certLst);
  398. prtCertGrpCertMap.put(accountID, certGrpCertMap);
  399. }
  400. }
  401. }
  402. }
  403. }
  404.  
  405. //For each account from input set -- accountContactSetMap.keyset
  406. //For each partner_Cert under account [Select part_cert table with accid
  407. //Get certification from above map with AccId, Certification_Group_Name__c+Activity_type__c=partner_cert.Name+ActivityType
  408. //Create new PartnerCertCon
  409. //populate CertId, ContactId, Partner_Cert
  410. List<Partner_Certification__c> partCertLst = [select Id, Account_ID__c,Name,Activity_Type__c from Partner_Certification__c Where Account_ID__c IN: accountContactSetMap.keyset()];
  411. Map<Id, List<Partner_Certification__c>> PrtPrtCertMap = new Map<Id, List<Partner_Certification__c>>();
  412.  
  413. List<Partner_Certification__c> tmpPartCertLst;
  414.  
  415. for(Partner_Certification__c partCert: partCertLst){
  416. if(PrtPrtCertMap.containsKey(partCert.Account_ID__c)){
  417. tmpPartCertLst = PrtPrtCertMap.get(partCert.Account_ID__c);
  418. tmpPartCertLst.add(partCert);
  419. PrtPrtCertMap.put(partCert.Account_ID__c, tmpPartCertLst);
  420. }
  421. else{
  422. tmpPartCertLst = new List<Partner_Certification__c>();
  423. tmpPartCertLst.add(partCert);
  424. PrtPrtCertMap.put(partCert.Account_ID__c, tmpPartCertLst);
  425. }
  426. }
  427.  
  428.  
  429. for(ID accountID : accountContactSetMap.keyset()){
  430. for(Partner_Certification__c partCert: PrtPrtCertMap.get(accountID)){
  431. if(prtCertGrpCertMap.containsKey(accountID)){
  432. certGrpCertMap = prtCertGrpCertMap.get(accountID);
  433. if(certGrpCertMap.containsKey(partCert.Name+partCert.Activity_Type__c)){
  434. certLst = certGrpCertMap.get(partCert.Name+partCert.Activity_Type__c);
  435. for(Certification__c cert: certLst){
  436. prtCertCon = new Partner_Certification_Contacts__c();
  437. prtCertCon.Partner_Certification__c = partCert.Id;
  438. prtCertCon.Contact_Name__c = cert.Contact_Id__c;
  439. prtCertCon.Certification__c = cert.Id;
  440. prtCertConLst.add(prtCertCon);
  441. }
  442. }
  443. else{
  444. //No else block needed. if no cert group found
  445. }
  446. }
  447. else{
  448. //No else block needed. If no partner cert found, no need to create respective contacts
  449. }
  450. }
  451. }
  452.  
  453. if(prtCertConLst.size()>0){
  454. Database.insert(prtCertConLst, false);
  455. }
  456. }
  457.  
  458. /****************************************************************************
  459. finish the batch
  460. /***************************************************************************/
  461. global void finish(Database.BatchableContext bc){
  462. if(trackBatchExecution) {
  463. Batch_Execution_History__c historyToUpdate;
  464. if(historyMap != null && historyMap.containsKey('IS_CertificationRollUpBatch')){
  465. historyToUpdate = historyMap.get('IS_CertificationRollUpBatch');
  466. }else{
  467. historyToUpdate = new Batch_Execution_History__c();
  468. historyToUpdate.Name = 'IS_CertificationRollUpBatch';
  469. }
  470. historyToUpdate.Last_Run_On__c = Datetime.now().formatGMT('yyyy-MM-dd'T'HH:mm:ss.sssZ');
  471. historyToUpdate.Number_of_records_failed__c = recordsFailed;
  472. historyToUpdate.Number_of_records_processed__c = recordsPassed;
  473. upsert historyToUpdate;
  474. }
  475. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement