ik wil een accountrecord maken met batch class

heb je hulp nodig om een accountrecord te maken met batch class ,,

global class batchClass implements Database.batchable<sObject>{ public String query; global Database.QueryLocator start(Database.BatchableContext BC){ return Database.getQueryLocator(Query); } global void execute(Database.BatchableContext info, List<Account> scope){ Account accsToUpdate=new Account(Name="ssa"); insert accsToUpdate; } global void finish(Database.BatchableContext info){ } } 

ik begon zo, ik weet dat het verkeerd is, vertel me alsjeblieft wat ik moet doen,

Reacties

  • jij wil een account aanmaken met batch class. dus wat is de zoekopdracht?
  • ik ben moe van de bovenstaande code ,,, record niet gemaakt ,, ik wil weten wat daar het probleem is
  • Hoe voer je deze batchklasse uit? ?
  • van ontwikkelaarsconsole
  • batchClass bulkupdate = new batchClass (); database.executeBatch (bulkupdate);

Answer

Als je geen records hebt om te gebruiken, kan in plaats daarvan een iterabele gebruiken. Hier is een itereerbaar voorbeeld:

public class CreateAccounts implements Database.Batchable<String> { public String[] start(Database.BatchableContext context) { return new String[] { "ssa" }; } public void execute(Database.BatchableContext context, String[] scope) { Account[] records = new Account[0]; for(String accountName: scope) { records.add(new Account(Name=accountName)); } insert records; } public void finish(Database.BatchableContext context) { } } 

Het is aan jou om te bepalen hoe de juiste gegevensstructuur eruit zou zien . Het belangrijkste punt is dat een query niet de enige manier is om een batchproces op gang te brengen.

Antwoord

Controleer de Salesforce Document voor uitvoering van batchklasse Batch Apex

global class CreateAccountRecordsBatch implements Database.Batchable<sObject>{ global final String Query; global CreateAccountRecordsBatch(String q){ Query=q; } global Database.QueryLocator start(Database.BatchableContext BC){ return Database.getQueryLocator(query); } global void execute(Database.BatchableContext BC, List<Account> scope){ List<Account> accountList = new List<Account>(); for(Account acc : scope){ Account objA = new Account(Name = acc.Name); accountList.add(objA); } insert accountList; } global void finish(Database.BatchableContext BC){ } } //Execute Batch class from developer console // Query for 10 accounts String q = "SELECT Id, Name, Industry FROM Account LIMIT 10"; Id batchInstanceId = Database.executeBatch(new CreateAccountRecordsBatch(q), 5); 

Antwoord

Hieronder staat de voorbeeldcode waarmee u records per batchklasse kunt maken.

 global class InsertAccountContact implements Database.Batchable<sObject>{ global InsertAccountContact(){ // Batch Constructor } // Start Method global Database.QueryLocator start(Database.BatchableContext BC){ // Generate your string query on any object here with limit 10000 String Query = "select id,name from account limit 2"; //Query is Required on object which you want to run Batch return Database.getQueryLocator(Query); } // Execute Logic global void execute(Database.BatchableContext BC, List<sObject>objlist){ system.debug(">>>>>>execute>>>>>"+objlist); List<Account> acclist = new List<Account>(); list<Contact> conlist = new list<contact>(); for(Sobject obj: objlist){ Account acc = new account(); acc.name = "Account_CreatedByBatchClass"; acclist.add(acc); } insert acclist; for(Account acc : Acclist){ Contact con = new Contact(); con.lastname = "Contact_CreatedByBatchClass"; con.accountid = acc.id; conlist.add(con); } Insert conlist; } global void finish(Database.BatchableContext BC){ // Logic to be Executed at finish } } 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *