Bulk State Design օրինաչափությունը ընդհանուր օրինաչափություն է, որն իրականացնում է Apex-ի գործողությունների մեծ մասը՝ հիմնվելով մեկ կամ մի քանի գրառումների վիճակի փոփոխության վրա: Զանգվածային անցումները մեծացնում են կոդի կրկնակի օգտագործման հնարավորությունը՝ թույլ տալով մշակել միայն այն գրառումները, որոնք բավարարում են պահանջները:

Դիզայնի նախշեր զանգվածային ձգանների համար.

Apex գործարկիչները օպտիմիզացված են մեծաքանակ աշխատելու համար: Օգտագործելով զանգվածային դիզայնի ձգան, դուք ունեք բազմաթիվ տարբերակներ:

  • Ավելի լավ կատարում
  • Օգտագործեք ավելի քիչ սերվերի ռեսուրսներ:
  • Նահանգապետի սահմանները

Ձեր կոդը մեծացնելու առավելություններն այն են, որ դուք կարող եք արդյունավետորեն մուտք գործել մեծ թվով գրառումներ և գործարկել կայծակնային հարթակի կառավարիչի սահմաններում: Նահանգապետի սահմանաչափը երաշխավորում է, որ թռիչքուղու կոդը չի ազդի բազմաբնակարան վարձակալների հարթակի վրա:

  • Գործարկիչը փնտրում է գրառումներ, որոնք փոխել են վիճակը և կարող են գործարկվել:
  • Այն փոխանցում է համապատասխան գրառումները միայն այն ժամանակ, երբ զանգ է կատարվում կոմունալ ծառայությունների դասին՝ աշխատանքը կատարելու համար:
  • Կոմունալ դասի մեթոդը կատարում է գործողությունը զանգվածաբար:

Կատարում է զանգվածային ձգան.

Այս օրինակում օգտակար դասը ստանում է չափանիշին համապատասխանող գրառումները ձգանից: Գործարկիչի իրադարձությունները և նաև DML տեսակը օգտագործվում են ձգան շրջանակելու համար: Կոմունալ դասը կարող է կրկին օգտագործվել ապագայում: Հետագա օրինակը ցույց է տալիս զանգվածային վիճակի անցման մեծ մասը:

Apex Trigger
trigger PolicyAccountTrigger on Policy__c (after insert, after update) {
List<Account> acctUpdate = new List<Account>();
for (Policy__c pol : Trigger.New) {
if (Trigger.isInsert && pol.status__c == 'Renew') {
Account acctData = [select Id, Name, No_of_Renew_Policies__c from Account where Id=:pol.Account_ID__c ];
acctUpdate.add(acctData);
} else if (Trigger.isUpdate && pol.status__c == 'Renew') {
Account acctData = [select Id, Name, No_of_Renew_Policies__c from Account where Id=:pol.Account_ID__c ];
acctUpdate.add(acctData);
}
}
if (!acctUpdate.isEmpty()) {
updatePolicyAccount policy = new updatePolicyAccount();
policy.policyStatusAccChange(acctUpdate);
}
}

Apex Class

public class updatePolicyAccount {
public void policyStatusAccChange(List<Account> acctUpdate) {
for (Account acct : acctUpdate) {
Decimal PolicyNo = acct.No_of_Renew_Policies__c + 1;
acct.No_of_Renew_Policies__c = PolicyNo;
}
Update acctUpdate;
}
}

Զանգվածային վիճակի անցումը պահանջում է գործարկիչի օգտագործում, որը թույլ է տալիս ազդել միայն այն գրառումների վրա, որոնք փոխել են վիճակը, ինչպես նաև օգտակար դասին, իրականացնել տրամաբանությունը: Երբ օգտագործվում է զանգվածային գործարքների համար, կոդը չի գերազանցում DML կառավարչի սահմանաչափը մեկ գործարքի համար: Գործարկիչում օգտագործվում է օգտակար դասը, որը թույլ է տալիս վերօգտագործել կոդը:

Webner Solutions-ը ծրագրային ապահովման մշակող ընկերություն է, որը կենտրոնացած է Ապահովագրական գործակալությունների կառավարման համակարգերի, ուսուցման կառավարման համակարգերի և Salesforce հավելվածների մշակման վրա: Կապվեք մեզ հետ [email protected] հասցեով՝ ձեր Ապահովագրության, էլեկտրոնային ուսուցման և Salesforce հավելվածների համար:

Սկզբնապես հրապարակվել է https://blog.webnersolutions.com-ում 2021 թվականի դեկտեմբերի 21-ին: