• sfdc demo 1
  • NEWBIE
  • 0 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 1
    Replies
Here is the code:

global with sharing class ImportBatch implements Database.Batchable<string>, Database.Stateful{
    
    global final blob dataDocuments;
    
    global ImportBatch (blob data){
        this.dataDocuments=data;
    }
    
    
    global Iterable<string>  start(Database.BatchableContext BC){
        string nameFile=this.dataDocuments.toString();        
        return new CSVIterator(this.dataDocuments.toString(), '\n');
    }
    
    global void execute(Database.BatchableContext BC,List<String> scope){
        
        List<Custom_Object__c> CustomObjectList = new list<Custom_Object__c>();
        for(String row : scope){
            
            List<String> fields = row .split(',');
            
            //Edit from here------------------------------
            Custom_Object__c li=new Custom_Object__c();
            
            li.name =fields[0];                
            li.Field_1__c=fields[1];        
            li.Field_2__c=fields[2];
            //To here-------------------------------------

            CustomObjectList.add(li);
        }
        
        //Insert
        if(CustomObjectList.getSObjectType().getDescribe().isCreateable()){       
            insert CustomObjectList;  
        }
        
    }
    
    global void finish(Database.BatchableContext BC){
        
        // Send an email to the Apex job's submitter notifying of job completion.  
        AsyncApexJob a = [Select Id, Status, NumberOfErrors, JobItemsProcessed,
                          TotalJobItems, CreatedBy.Email
                          from AsyncApexJob where Id =:BC.getJobId()];
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        String[] toAddresses = new String[] {a.CreatedBy.Email};
            mail.setToAddresses(toAddresses);
        mail.setSubject('Import' + a.Status);
        mail.setHTMLBody('Dear User,  <br/> <br/> Your import has finished. During the porcess there were ' + 
                         + a.NumberOfErrors + ' errors.');
        
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
        
        
    }        
    
}

Thanks in advance
Here is my apex code: 
global class InvoiceBatchClass implements Database.Batchable<string>, Database.Stateful{
                
            global final blob dataDocuments;
            global boolean entry1;
            global boolean entry;
            global boolean b;
           
    global InvoiceBatchClass (Blob data )
     {
                this.dataDocuments=data;
     }
          
        global Iterable<string>  start(Database.BatchableContext BC){
        string nameFile=this.dataDocuments.toString();        
        return new CSVIterator(this.dataDocuments.toString(), '\n');
    }
    
     global void execute(Database.BatchableContext BC, List<String> scope)
     { 
        entry1=false;
         entry=false;
        
        list<Integer> rdlist=new list<Integer>();
           for(String row : scope){
             if(entry){
             List<String> fields = row.split(',');
             
             rdlist.add(Integer.valueof(fields[3]));//--Order Product
             
             }
             else{
                 entry=true;
             }
         }
   List<Order> Checkrdlist=[SELECT ID,name,Order_No_From__c  from Order WHERE Order_No_From__c IN:rdlist];
       list<Invoice__c> InvoiceList=new list<Invoice__c>();
          
       for(String row : scope){
    if(entry1){

        b=false;
       system.debug('abc'+row);
       
         List<String> fields = row.split(',');
              
             Invoice__c Invoices=new Invoice__c();
             
              
               String mDate=String.valueof(fields[0]);
               String[] stro = mDate.split(' ');
               String[] dtso = stro[0].split('/');
               Date myDate1 = date.newinstance(Integer.valueOf('20'+dtso[2]), Integer.valueOf(dtso[1]), Integer.valueOf(dtso[0])); 
             
              String invoiceDateFrom=String.valueof(fields[1]);
               String[] str1 = invoiceDateFrom.split(' ');
               String[] dts1 = str1[0].split('/');
               Date myDate2 = date.newinstance(Integer.valueOf('20'+dts1[2]), Integer.valueOf(dts1[1]), Integer.valueOf(dts1[0])); 
            
            
            String invoiceDateTo=String.valueof(fields[2]);
               String[] str2 = invoiceDateTo.split(' ');
               String[] dts2 = str2[0].split('/');
               Date myDate3 = date.newinstance(Integer.valueOf('20'+dts2[2]), Integer.valueOf(dts2[1]), Integer.valueOf(dts2[0])); 
             
             Integer ORD=Integer.valueof(fields[3]);  
//Assign Order Object Fields....
            for(Order a:Checkrdlist){
                System.debug('aaa-hhhhh-'+a.Order_No_From__c+ORD);
               
                if(a.Order_No_From__c==ORD){
                b=true;
                Invoices.Order__c=a.id;
                Break;
                }
                
                
            }
              system.debug('firstdate'+myDate1);
               system.debug('seconddate'+myDate2);
              

                 Invoices.Invoice_Date__c=myDate1;   
                 Invoices.Invoice_Date_From__c=myDate2;   
                 Invoices.Invoice_Date_To__c=myDate3;    
                 //Invoices.Order__c='801610000009DH8';
                 Invoices.OrderNumberFrom_Ex__c=Integer.Valueof(ORD);
                 if(b==true){
                 InvoiceList.add(Invoices);
                     }
                   else{
                   // No Record found
                   }                          
                 system.debug('abc'+InvoiceList);
                   }
             
             else{
                 entry1=true;
             }
       
       }
        upsert InvoiceList OrderNumberFrom_Ex__c;
  }
    

     global void finish(Database.BatchableContext BC)
     {
     
         // Send an email to the Apex job's submitter notifying of job completion.  
       
     }   
     
}


Tried so many test code but fail to do it, Please can any one help me for this code. Need test class for this apex class

Thank you in advance
Here is my apex code: 
global class InvoiceBatchClass implements Database.Batchable<string>, Database.Stateful{
                
            global final blob dataDocuments;
            global boolean entry1;
            global boolean entry;
            global boolean b;
           
    global InvoiceBatchClass (Blob data )
     {
                this.dataDocuments=data;
     }
          
        global Iterable<string>  start(Database.BatchableContext BC){
        string nameFile=this.dataDocuments.toString();        
        return new CSVIterator(this.dataDocuments.toString(), '\n');
    }
    
     global void execute(Database.BatchableContext BC, List<String> scope)
     { 
        entry1=false;
         entry=false;
        
        list<Integer> rdlist=new list<Integer>();
           for(String row : scope){
             if(entry){
             List<String> fields = row.split(',');
             
             rdlist.add(Integer.valueof(fields[3]));//--Order Product
             
             }
             else{
                 entry=true;
             }
         }
   List<Order> Checkrdlist=[SELECT ID,name,Order_No_From__c  from Order WHERE Order_No_From__c IN:rdlist];
       list<Invoice__c> InvoiceList=new list<Invoice__c>();
          
       for(String row : scope){
    if(entry1){

        b=false;
       system.debug('abc'+row);
       
         List<String> fields = row.split(',');
              
             Invoice__c Invoices=new Invoice__c();
             
              
               String mDate=String.valueof(fields[0]);
               String[] stro = mDate.split(' ');
               String[] dtso = stro[0].split('/');
               Date myDate1 = date.newinstance(Integer.valueOf('20'+dtso[2]), Integer.valueOf(dtso[1]), Integer.valueOf(dtso[0])); 
             
              String invoiceDateFrom=String.valueof(fields[1]);
               String[] str1 = invoiceDateFrom.split(' ');
               String[] dts1 = str1[0].split('/');
               Date myDate2 = date.newinstance(Integer.valueOf('20'+dts1[2]), Integer.valueOf(dts1[1]), Integer.valueOf(dts1[0])); 
            
            
            String invoiceDateTo=String.valueof(fields[2]);
               String[] str2 = invoiceDateTo.split(' ');
               String[] dts2 = str2[0].split('/');
               Date myDate3 = date.newinstance(Integer.valueOf('20'+dts2[2]), Integer.valueOf(dts2[1]), Integer.valueOf(dts2[0])); 
             
             Integer ORD=Integer.valueof(fields[3]);  
//Assign Order Object Fields....
            for(Order a:Checkrdlist){
                System.debug('aaa-hhhhh-'+a.Order_No_From__c+ORD);
               
                if(a.Order_No_From__c==ORD){
                b=true;
                Invoices.Order__c=a.id;
                Break;
                }
                
                
            }
              system.debug('firstdate'+myDate1);
               system.debug('seconddate'+myDate2);
              

                 Invoices.Invoice_Date__c=myDate1;   
                 Invoices.Invoice_Date_From__c=myDate2;   
                 Invoices.Invoice_Date_To__c=myDate3;    
                 //Invoices.Order__c='801610000009DH8';
                 Invoices.OrderNumberFrom_Ex__c=Integer.Valueof(ORD);
                 if(b==true){
                 InvoiceList.add(Invoices);
                     }
                   else{
                   // No Record found
                   }                          
                 system.debug('abc'+InvoiceList);
                   }
             
             else{
                 entry1=true;
             }
       
       }
        upsert InvoiceList OrderNumberFrom_Ex__c;
  }
    

     global void finish(Database.BatchableContext BC)
     {
     
         // Send an email to the Apex job's submitter notifying of job completion.  
       
     }   
     
}


Tried so many test code but fail to do it, Please can any one help me for this code. Need test class for this apex class

Thank you in advance