日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Use Batch Apex

發布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Use Batch Apex 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



如果您有很多記錄要處理,例如數據清理或歸檔,則Batch Apex可能是您最好的解決方案。



假設您要使用Batch Apex處理100萬條記錄。

對于要處理的每批記錄,一次調用批處理類的執行邏輯。

每次調用批處理類時,該作業都會被放置在Apex作業隊列中,并作為離散事務執行

此功能有兩個很棒的優點:







在批處理Apex中使用狀態

Batch Apex通常是無狀態的。批處理Apex作業的每次執行均被視為離散事務。

例如,一個包含1,000條記錄并使用默認批處理大小的批處理Apex作業被視為5個事務,每個事務200條記錄。



假設您有一項業務要求,其中規定,美國公司的所有聯系人都必須以其母公司的Account 地址作為其郵寄地址。

不幸的是,用戶正在輸入沒有正確地址的新聯系人!

編寫一個Batch Apex類,以確保強制執行此要求。

global class UpdateContactAddresses implements Database.Batchable<sObject>, Database.Stateful {// instance member to retain state across transactionsglobal Integer recordsProcessed = 0;global Database.QueryLocator start(Database.BatchableContext bc) {return Database.getQueryLocator('SELECT ID, BillingStreet, BillingCity, BillingState, ' +'BillingPostalCode, (SELECT ID, MailingStreet, MailingCity, ' +'MailingState, MailingPostalCode FROM Contacts) FROM Account ' + 'Where BillingCountry = \'USA\'');}global void execute(Database.BatchableContext bc, List<Account> scope){// process each batch of recordsList<Contact> contacts = new List<Contact>();for (Account account : scope) {for (Contact contact : account.contacts) {contact.MailingStreet = account.BillingStreet;contact.MailingCity = account.BillingCity;contact.MailingState = account.BillingState;contact.MailingPostalCode = account.BillingPostalCode;// add contact to list to be updatedcontacts.add(contact);// increment the instance member counterrecordsProcessed = recordsProcessed + 1;}}update contacts;} global void finish(Database.BatchableContext bc){System.debug(recordsProcessed + ' records processed. Shazam!');AsyncApexJob job = [SELECT Id, Status, NumberOfErrors, JobItemsProcessed,TotalJobItems, CreatedBy.EmailFROM AsyncApexJobWHERE Id = :bc.getJobId()];// call some utility to send emailEmailUtils.sendMessage(job, recordsProcessed);} }

測試批處理Apex

由于Apex開發和測試是并行進行的

@isTest private class UpdateContactAddressesTest {@testSetup static void setup() {List<Account> accounts = new List<Account>();List<Contact> contacts = new List<Contact>();// insert 10 accountsfor (Integer i=0;i<10;i++) {accounts.add(new Account(name='Account '+i, billingcity='New York', billingcountry='USA'));}insert accounts;// find the account just inserted. add contact for eachfor (Account account : [select id from account]) {contacts.add(new Contact(firstname='first', lastname='last', accountId=account.id));}insert contacts;}static testmethod void test() { Test.startTest();UpdateContactAddresses uca = new UpdateContactAddresses();Id batchId = Database.executeBatch(uca);Test.stopTest();// after the testing stops, assert records were updated properlySystem.assertEquals(10, [select count() from contact where MailingCity = 'New York']);}}



Create an Apex class that uses Batch Apex to update Lead records

LeadProcessor.apxc

global class LeadProcessor implements Database.Batchable<Sobject> {global Database.QueryLocator start(Database.BatchableContext bc) {return Database.getQueryLocator([Select LeadSource From Lead ]);}global void execute(Database.BatchableContext bc, List<Lead> scope){for (Lead Leads : scope) {Leads.LeadSource = 'Dreamforce';}update scope;} global void finish(Database.BatchableContext bc){ } }

LeadProcessorTest.apxc

@isTest public class LeadProcessorTest {static testMethod void testMethod1(){List<Lead> lstLead = new List<Lead>();for(Integer i=0 ;i <200;i++){Lead led = new Lead();led.FirstName = 'FirstName';led.LastName = 'LastName' +i;led.Company = 'demo' +i;lstLead.add(led);}insert lstLead;Test.startTest();LeadProcessor obj = new LeadProcessor();Database.executeBatch(obj);Test.stopTest();} }

?

總結

以上是生活随笔為你收集整理的Use Batch Apex的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 污视频网站免费在线观看 | 久久艹av | 亚洲欧洲精品一区二区 | 97麻豆视频 | 一本一道久久 | 肉丝美脚视频一区二区 | 日韩一级色 | 致命魔术电影高清在线观看 | 日本黄区免费视频观看 | 久久亚洲精品石原莉奈 | 男女插插网站 | 黄页网站免费在线观看 | 久久超级碰碰 | 免费看av的网址 | 国产天堂网 | 精品一区二区三区四区视频 | 婷婷国产| 亚洲综合在线成人 | 久久久久久久久蜜桃 | 99在线视频免费观看 | 日本视频在线免费观看 | 欧美大片在线看免费观看 | 精东av在线 | 一区免费视频 | www.jizzjizz| 国产精品久久999 | 日韩和一区二区 | 影音先锋久久久久av综合网成人 | 国产成年人视频网站 | 亚洲av无码国产综合专区 | 自拍偷拍激情视频 | 黄色国产在线 | 五月婷婷婷婷 | 国内少妇精品 | 欧美系列一区二区 | 国产在线精品一区 | 欧美色精品在线 | 国产美女无遮挡免费 | 免费视频色 | 不卡视频免费在线观看 | 美女喷液视频 | www.好了av.com| 人人妻人人澡人人爽人人精品 | 久久精品片 | 色欲狠狠躁天天躁无码中文字幕 | 久久97精品久久久久久久不卡 | 18黄暴禁片在线观看 | 欧美日韩观看 | 91免费国产在线观看 | 超碰97在线免费 | 在线观看一二区 | 免费观看在线播放 | 国产无遮挡18禁无码网站不卡 | 亚洲黄业 | 黄色九九 | 亚洲最大网站 | 992tv人人草| 国产原创视频在线观看 | 亚洲专区在线 | 制服丝袜第二页 | 亚洲精品第二页 | 无码久久精品国产亚洲av影片 | 香蕉视频一区 | 亚洲免费不卡视频 | 久久77| 伊人小视频 | 亚洲av无码精品色午夜果冻不卡 | 女同一区 | 99re99| 男人的天堂黄色 | 午夜精品久久久久久久99热浪潮 | 一级作爱视频 | 日本毛片在线观看 | 日韩字幕在线 | 天天综合日日夜夜 | 一区二区视屏 | 情侣黄网站免费看 | 激情天堂网 | 熟女国产精品一区二区三 | 99av国产精品欲麻豆 | 欧美成人aaaaⅴ片在线看 | 女同性恋毛片 | 国语对白91 | 亚洲在线免费观看视频 | 成人3d动漫一区二区三区 | av电影一区二区三区 | 一级作爱视频 | 少妇丰满尤物大尺度写真 | 九九精品在线观看 | 日韩综合第一页 | 欧美亚洲日本国产 | 精品一区二区三区av | 亚洲色图p | 香蕉精品视频在线观看 | 干干日日 | 免费观看一级视频 | 国产91视频在线观看 | 亚洲乱码日产精品bd在线观看 | 在线高清av |