je veux créer un enregistrement de compte en utilisant la classe de lots

besoin de votre aide pour créer un enregistrement de compte en utilisant la classe de lots ,,

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){ } } 

Jai commencé comme ça, je sais que cest faux, dites-moi quoi faire,

Commentaires

  • vous souhaitez créer un compte en utilisant la classe de lots. alors quelle est la requête?
  • je suis fatigué avec le code ci-dessus ,,, enregistrement non créé ,, je veux savoir quel est le problème là-bas
  • Comment exécutez-vous cette classe batch ?
  • depuis la console développeur
  • batchClass bulkupdate = new batchClass (); database.executeBatch (bulkupdate);

Réponse

Si vous navez pas denregistrements à utiliser, vous peut utiliser un itérable à la place. Voici un exemple basé sur des itérations:

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) { } } 

Cest à vous de déterminer à quoi ressemblerait la structure de données appropriée . Lessentiel est quune requête nest pas le seul moyen de lancer un processus par lots.

Réponse

Vérifiez Salesforce Doc pour lexécution de la classe batch 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); 

Réponse

Voici lexemple de code, par lequel vous pouvez créer des enregistrements par classe de lots.

 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 } } 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *