You need to sign in to do that
Don't have an account?

Code read
Hi All,
I am trying to get the functionalty(What is the functionality for this batch class).Please someone help me understandig the below code
global class BatchCreateScheduleLineBySOItem implements Database.batchable<sObject>{
global Database.QueryLocator start(Database.BatchableContext BC){
List<User> users = [Select u.Id From User u where name=:ScheduleLineHelper.userIntegrationIservice];
//return all SO Item that not yet have schedule line for all user execept user Integration i:service
if(users.size()>0){
String id=users.get(0).Id;
return Database.getQueryLocator('select Id, Name, CurrencyIsoCode, Item_Qty__c, SalesOrderId__c, Confirmed_Delivery_Date__c,'+
'RequestedDeliveryDate__c from SalesOrderItem__c where Id not in (select SalesItem__c from SalesItemDistribution__c) and CreatedById<>:id');
}
//return all SO Item that not yet have schedule line for all user
return Database.getQueryLocator('select Id, Name, CurrencyIsoCode, Item_Qty__c, SalesOrderId__c, Confirmed_Delivery_Date__c,'+
'RequestedDeliveryDate__c from SalesOrderItem__c where Id not in (select SalesItem__c from SalesItemDistribution__c)');
}
global void execute(Database.BatchableContext BC, List<sObject> scope){
//create Schedule Line by all SO Item that not yet have Schedule Line
List<SalesItemDistribution__c> lstScl=new List<SalesItemDistribution__c>();
for(Sobject so:scope){
SalesOrderItem__c soitem=(SalesOrderItem__c)so;
SalesItemDistribution__c sc=new SalesItemDistribution__c(Name=soitem.Name, CurrencyIsoCode=soitem.CurrencyIsoCode,
QuantityConfirmed__c=soitem.Item_Qty__c, SalesDoc__c=soitem.SalesOrderId__c, SalesItem__c=soitem.Id);
sc.DateConfirmed__c=(soitem.Confirmed_Delivery_Date__c==null)?
soitem.RequestedDeliveryDate__c:soitem.Confirmed_Delivery_Date__c;
lstScl.add(sc);
}
insert lstScl;
}
global void finish(Database.BatchableContext BC){
}
}
Thanks in Advance
I am trying to get the functionalty(What is the functionality for this batch class).Please someone help me understandig the below code
global class BatchCreateScheduleLineBySOItem implements Database.batchable<sObject>{
global Database.QueryLocator start(Database.BatchableContext BC){
List<User> users = [Select u.Id From User u where name=:ScheduleLineHelper.userIntegrationIservice];
//return all SO Item that not yet have schedule line for all user execept user Integration i:service
if(users.size()>0){
String id=users.get(0).Id;
return Database.getQueryLocator('select Id, Name, CurrencyIsoCode, Item_Qty__c, SalesOrderId__c, Confirmed_Delivery_Date__c,'+
'RequestedDeliveryDate__c from SalesOrderItem__c where Id not in (select SalesItem__c from SalesItemDistribution__c) and CreatedById<>:id');
}
//return all SO Item that not yet have schedule line for all user
return Database.getQueryLocator('select Id, Name, CurrencyIsoCode, Item_Qty__c, SalesOrderId__c, Confirmed_Delivery_Date__c,'+
'RequestedDeliveryDate__c from SalesOrderItem__c where Id not in (select SalesItem__c from SalesItemDistribution__c)');
}
global void execute(Database.BatchableContext BC, List<sObject> scope){
//create Schedule Line by all SO Item that not yet have Schedule Line
List<SalesItemDistribution__c> lstScl=new List<SalesItemDistribution__c>();
for(Sobject so:scope){
SalesOrderItem__c soitem=(SalesOrderItem__c)so;
SalesItemDistribution__c sc=new SalesItemDistribution__c(Name=soitem.Name, CurrencyIsoCode=soitem.CurrencyIsoCode,
QuantityConfirmed__c=soitem.Item_Qty__c, SalesDoc__c=soitem.SalesOrderId__c, SalesItem__c=soitem.Id);
sc.DateConfirmed__c=(soitem.Confirmed_Delivery_Date__c==null)?
soitem.RequestedDeliveryDate__c:soitem.Confirmed_Delivery_Date__c;
lstScl.add(sc);
}
insert lstScl;
}
global void finish(Database.BatchableContext BC){
}
}
Thanks in Advance
It would appear that it's looking for all sales order items that do not have a related sales item distribution record (except for those sales items created by the integration user). For each of those, it's creating, and eventually inserting in bulk, a related sales item distribution record whose date confirmed is either the confirmed or requested delivery date shown on the sales order item.