• Irish@acc.com
  • NEWBIE
  • 0 Points
  • Member since 2013

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 3
    Replies

Can somebody help me with the code m constanly getting this error

 


global class CreateQoDelivery implements Database.Batchable<sObject>,
Schedulable {

public String Query;
global CreateQoDelivery(){

String ProjectQuery = 'Select Id,Name,Dev_Lead_User__c,Project_Start_Date_original_baseline__c,Project_End_Date_original_baseline__c,Project_Start_Date_current_baseline__c,Project_End_Date_current_baseline__c,Project_Start_Date_actual__c,Project_End_Date_actual__c,Project_TQL_Phase__c,Project_State__c from Project__c where Overall_Project_Status__c NOT IN (\'Not Started\',\'On hold\') AND Project_TQL_Phase__c !=\'1. Kick-off\' AND Project_State__c IN(\'Active\')';

        
        
        this.Query=ProjectQuery;         
    }
    
    global Database.QueryLocator start(Database.BatchableContext BC){
        return Database.getQueryLocator(Query);
    }
    
    global void execute(Database.BatchableContext BC, List<SObject> scope){
        List<Project__c> ProjectList =(Project__c[]) scope; 
                           
                        
                        
          List< Quality_of_Delivery__c> detailList = new List< Quality_of_Delivery__c>(); // to insert the record
          List< Quality_of_Delivery__c> detailListUpdate = new List< Quality_of_Delivery__c>(); // to upsert the record
      

        for(Project__c prj : ProjectList){
                      Quality_of_Delivery__c qodDel = new Quality_of_Delivery__c ();
           List< Quality_of_Delivery__c> LstRecord = new List< Quality_of_Delivery__c>();// new line
           lstRecord=[Select CDN__c,Working_Days_to_get_ROM__c,Slow_score__c,PageSpeed_score__c,Number_of_Change_Requests__c,Planned_Cost_current_baseline__c,Planned_Cost_original_baseline__c,Actual_Cost__c,Planned_Scope_originale_baseline__c,Planned_Scope_current_baseline__c,Actual_Scope__c,SIT_defects__c,Minor_UAT_Defects_TA__c,Minor_UAT_Defects_All__c,Major_UAT_Defects_TA__c,Major_UAT_Defects_All__c,Hypercare_Defects_All__c,Hypercare_Defects_TA__c,P_S_Compliance_after_Hypercare__c,P_S_Compliance_as_Launch__c from Quality_of_Delivery__C where Project__c=:Prj.id order by createdDate desc limit 1]; // checking the record in project…
               
                if (lstrecord!=null){             // if there a record in the list then copy the field values and creates a new record
                    for(Quality_of_Delivery__c q:lstRecord){
                                                 
                         qodDel.Project__c=prj.Id;
                         date currentDate = Date.today();
                         
                         Integer CurrentMonth = currentDate.month(); 
                         Integer  Currentyear=currentDate.year();
                         qodDel.Date__c = System.Today()-1;
                         qodDel.CDN__c = q.CDN__c;     //copying values for all the below fields from the latest created Record..
                         qodDel.Working_Days_to_get_ROM__c = q.Working_Days_to_get_ROM__c;                        
                         qodDel.Slow_score__c = q.Slow_score__c;
                         qodDel.PageSpeed_score__c = q.PageSpeed_score__c;
                         qodDel.Number_of_Change_Requests__c = q.Number_of_Change_Requests__c;
                         qodDel.Planned_Cost_current_baseline__c = q.Planned_Cost_current_baseline__c;
                         qodDel.Planned_Cost_original_baseline__c = q.Planned_Cost_original_baseline__c;
                         qodDel.Actual_Cost__c = q.Actual_Cost__c;
                         qodDel.Planned_Scope_originale_baseline__c = q.Planned_Scope_originale_baseline__c;
                         qodDel.Planned_Scope_current_baseline__c = q.Planned_Scope_current_baseline__c;
                         qodDel.Actual_Scope__c = q.Actual_Scope__c;
                         qodDel.SIT_defects__c = q.SIT_defects__c;
                         qodDel.Minor_UAT_Defects_TA__c = q.Minor_UAT_Defects_TA__c;
                         qodDel.Minor_UAT_Defects_All__c = q.Minor_UAT_Defects_All__c;
                         qodDel.Major_UAT_Defects_TA__c = q.Major_UAT_Defects_TA__c;
                         qodDel.Major_UAT_Defects_All__c = q.Major_UAT_Defects_All__c;
                         qodDel.Hypercare_Defects_All__c = q.Hypercare_Defects_All__c;
                         qodDel.Hypercare_Defects_TA__c = q.Hypercare_Defects_TA__c;
                         qodDel.P_S_Compliance_after_Hypercare__c = q.P_S_Compliance_after_Hypercare__c;
                         qodDel.P_S_Compliance_as_Launch__c = q.P_S_Compliance_as_Launch__c;
                         
                         qodDel.Apex_Context__c=true; // used to bypass validation rule on the record
                         
                        if(CurrentMonth==1){ // used for naming the record
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear-1)+'-'+String.valueof(CurrentMonth+11);
                        }
                        
                        else if(CurrentMonth==11 || CurrentMonth==12) {                        
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+String.valueof(CurrentMonth-1);
                        }
                        
                        else{
                         qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+'0'+String.valueof(CurrentMonth-1);
                         
                        }                        
                         qodDel.Dev_Lead__c=prj.Dev_Lead_User__c;  // lookup to user
                              
                            qodDel.Approved_Status__c ='Pending input from Dev Specialist';
                         
                         if(prj.Project_Start_Date_original_baseline__c!=null && prj.Project_End_Date_original_baseline__c!=null)
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c= prj.Project_Start_Date_original_baseline__c.daysBetween(prj.Project_End_Date_original_baseline__c);
                         }
                         else
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c=0;
                         }
                         if(prj.Project_Start_Date_current_baseline__c!=null && prj.Project_End_Date_current_baseline__c!=null)
                         {
                            qodDel.Planned_Working_Days_current_baseline__c=prj.Project_Start_Date_current_baseline__c.daysBetween(prj.Project_End_Date_current_baseline__c); 
                         }  
                        else
                        {
                            qodDel.Planned_Working_Days_current_baseline__c=0;
                        }
                        if(prj.Project_Start_Date_actual__c!=null && prj.Project_End_Date_actual__c !=null)
                        {
                        qodDel.Actual_Working_Days__c = prj.Project_Start_Date_actual__c.daysBetween(prj.Project_End_Date_actual__c);
                        }
                        else
                        {
                       qodDel.Actual_Working_Days__c=0;
                        }
    
                         
                    detailListUpdate.add(qodDel);
                    insert detailListUpdate;     
                   
           
                    }
                    }
               

                else   // if there is no record in the list of Qod then creates a new record in Project
                      {                                   
                         date currentDate = Date.today();
                         Integer CurrentMonth = currentDate.month(); 
                         Integer  Currentyear=currentDate.year();
                         qodDel.Date__c = System.Today()-1;   
                         
                         qodDel.Project__c=prj.Id;               // Id of the parent Record
                         
                        if(CurrentMonth==1){
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear-1)+'-'+String.valueof(CurrentMonth+11);
                        }
                        
                        else if(CurrentMonth==11 || CurrentMonth==12) {                        
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+String.valueof(CurrentMonth-1);
                        }
                        
                        else{
                         qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+'0'+String.valueof(CurrentMonth-1);
                         
                        }                        
                         qodDel.Dev_Lead__c=prj.Dev_Lead_User__c;
                              
                         qodDel.Number_of_Change_Requests__c =0;
                         qodDel.Approved_Status__c ='Pending input from Dev Specialist';
                         
                         if(prj.Project_Start_Date_original_baseline__c!=null && prj.Project_End_Date_original_baseline__c!=null)
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c= prj.Project_Start_Date_original_baseline__c.daysBetween(prj.Project_End_Date_original_baseline__c);
                         }
                         else
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c=0;
                         }
                         if(prj.Project_Start_Date_current_baseline__c!=null && prj.Project_End_Date_current_baseline__c!=null)
                         {
                            qodDel.Planned_Working_Days_current_baseline__c=prj.Project_Start_Date_current_baseline__c.daysBetween(prj.Project_End_Date_current_baseline__c); 
                         }  
                        else
                        {
                            qodDel.Planned_Working_Days_current_baseline__c=0;
                        }
                        if(prj.Project_Start_Date_actual__c!=null && prj.Project_End_Date_actual__c !=null)
                        {
                        qodDel.Actual_Working_Days__c = prj.Project_Start_Date_actual__c.daysBetween(prj.Project_End_Date_actual__c);
                        }
                        else
                        {
                       qodDel.Actual_Working_Days__c=0;
                        }
                         detailList.add(qodDel); 
                         insert detailList;
                        }                                                        
                                        
                     
        
    
    
}
}
global void finish(Database.BatchableContext BC){
}
  

                //Execute batch class with default constructor from schedular
    global void execute(SchedulableContext sc) {
        
        
       try {
    
         database.executeBatch(new CreateQoDelivery());

        }
        catch (Exception e) {
            System.debug('There are no jobs currently scheduled. ' + e.getMessage()); 
        } 
   }   
    
}

 thanks in advance

In a recruiting application, Salary is a child object to parent Position object via master-detail relationship.  The min pay and max pay fields of salary object cannot be modified when Position status on the parent is “Approved”.

 

This can be work through Validation rule but how can we lock 

Can somebody help me with the code m constanly getting this error

 


global class CreateQoDelivery implements Database.Batchable<sObject>,
Schedulable {

public String Query;
global CreateQoDelivery(){

String ProjectQuery = 'Select Id,Name,Dev_Lead_User__c,Project_Start_Date_original_baseline__c,Project_End_Date_original_baseline__c,Project_Start_Date_current_baseline__c,Project_End_Date_current_baseline__c,Project_Start_Date_actual__c,Project_End_Date_actual__c,Project_TQL_Phase__c,Project_State__c from Project__c where Overall_Project_Status__c NOT IN (\'Not Started\',\'On hold\') AND Project_TQL_Phase__c !=\'1. Kick-off\' AND Project_State__c IN(\'Active\')';

        
        
        this.Query=ProjectQuery;         
    }
    
    global Database.QueryLocator start(Database.BatchableContext BC){
        return Database.getQueryLocator(Query);
    }
    
    global void execute(Database.BatchableContext BC, List<SObject> scope){
        List<Project__c> ProjectList =(Project__c[]) scope; 
                           
                        
                        
          List< Quality_of_Delivery__c> detailList = new List< Quality_of_Delivery__c>(); // to insert the record
          List< Quality_of_Delivery__c> detailListUpdate = new List< Quality_of_Delivery__c>(); // to upsert the record
      

        for(Project__c prj : ProjectList){
                      Quality_of_Delivery__c qodDel = new Quality_of_Delivery__c ();
           List< Quality_of_Delivery__c> LstRecord = new List< Quality_of_Delivery__c>();// new line
           lstRecord=[Select CDN__c,Working_Days_to_get_ROM__c,Slow_score__c,PageSpeed_score__c,Number_of_Change_Requests__c,Planned_Cost_current_baseline__c,Planned_Cost_original_baseline__c,Actual_Cost__c,Planned_Scope_originale_baseline__c,Planned_Scope_current_baseline__c,Actual_Scope__c,SIT_defects__c,Minor_UAT_Defects_TA__c,Minor_UAT_Defects_All__c,Major_UAT_Defects_TA__c,Major_UAT_Defects_All__c,Hypercare_Defects_All__c,Hypercare_Defects_TA__c,P_S_Compliance_after_Hypercare__c,P_S_Compliance_as_Launch__c from Quality_of_Delivery__C where Project__c=:Prj.id order by createdDate desc limit 1]; // checking the record in project…
               
                if (lstrecord!=null){             // if there a record in the list then copy the field values and creates a new record
                    for(Quality_of_Delivery__c q:lstRecord){
                                                 
                         qodDel.Project__c=prj.Id;
                         date currentDate = Date.today();
                         
                         Integer CurrentMonth = currentDate.month(); 
                         Integer  Currentyear=currentDate.year();
                         qodDel.Date__c = System.Today()-1;
                         qodDel.CDN__c = q.CDN__c;     //copying values for all the below fields from the latest created Record..
                         qodDel.Working_Days_to_get_ROM__c = q.Working_Days_to_get_ROM__c;                        
                         qodDel.Slow_score__c = q.Slow_score__c;
                         qodDel.PageSpeed_score__c = q.PageSpeed_score__c;
                         qodDel.Number_of_Change_Requests__c = q.Number_of_Change_Requests__c;
                         qodDel.Planned_Cost_current_baseline__c = q.Planned_Cost_current_baseline__c;
                         qodDel.Planned_Cost_original_baseline__c = q.Planned_Cost_original_baseline__c;
                         qodDel.Actual_Cost__c = q.Actual_Cost__c;
                         qodDel.Planned_Scope_originale_baseline__c = q.Planned_Scope_originale_baseline__c;
                         qodDel.Planned_Scope_current_baseline__c = q.Planned_Scope_current_baseline__c;
                         qodDel.Actual_Scope__c = q.Actual_Scope__c;
                         qodDel.SIT_defects__c = q.SIT_defects__c;
                         qodDel.Minor_UAT_Defects_TA__c = q.Minor_UAT_Defects_TA__c;
                         qodDel.Minor_UAT_Defects_All__c = q.Minor_UAT_Defects_All__c;
                         qodDel.Major_UAT_Defects_TA__c = q.Major_UAT_Defects_TA__c;
                         qodDel.Major_UAT_Defects_All__c = q.Major_UAT_Defects_All__c;
                         qodDel.Hypercare_Defects_All__c = q.Hypercare_Defects_All__c;
                         qodDel.Hypercare_Defects_TA__c = q.Hypercare_Defects_TA__c;
                         qodDel.P_S_Compliance_after_Hypercare__c = q.P_S_Compliance_after_Hypercare__c;
                         qodDel.P_S_Compliance_as_Launch__c = q.P_S_Compliance_as_Launch__c;
                         
                         qodDel.Apex_Context__c=true; // used to bypass validation rule on the record
                         
                        if(CurrentMonth==1){ // used for naming the record
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear-1)+'-'+String.valueof(CurrentMonth+11);
                        }
                        
                        else if(CurrentMonth==11 || CurrentMonth==12) {                        
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+String.valueof(CurrentMonth-1);
                        }
                        
                        else{
                         qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+'0'+String.valueof(CurrentMonth-1);
                         
                        }                        
                         qodDel.Dev_Lead__c=prj.Dev_Lead_User__c;  // lookup to user
                              
                            qodDel.Approved_Status__c ='Pending input from Dev Specialist';
                         
                         if(prj.Project_Start_Date_original_baseline__c!=null && prj.Project_End_Date_original_baseline__c!=null)
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c= prj.Project_Start_Date_original_baseline__c.daysBetween(prj.Project_End_Date_original_baseline__c);
                         }
                         else
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c=0;
                         }
                         if(prj.Project_Start_Date_current_baseline__c!=null && prj.Project_End_Date_current_baseline__c!=null)
                         {
                            qodDel.Planned_Working_Days_current_baseline__c=prj.Project_Start_Date_current_baseline__c.daysBetween(prj.Project_End_Date_current_baseline__c); 
                         }  
                        else
                        {
                            qodDel.Planned_Working_Days_current_baseline__c=0;
                        }
                        if(prj.Project_Start_Date_actual__c!=null && prj.Project_End_Date_actual__c !=null)
                        {
                        qodDel.Actual_Working_Days__c = prj.Project_Start_Date_actual__c.daysBetween(prj.Project_End_Date_actual__c);
                        }
                        else
                        {
                       qodDel.Actual_Working_Days__c=0;
                        }
    
                         
                    detailListUpdate.add(qodDel);
                    insert detailListUpdate;     
                   
           
                    }
                    }
               

                else   // if there is no record in the list of Qod then creates a new record in Project
                      {                                   
                         date currentDate = Date.today();
                         Integer CurrentMonth = currentDate.month(); 
                         Integer  Currentyear=currentDate.year();
                         qodDel.Date__c = System.Today()-1;   
                         
                         qodDel.Project__c=prj.Id;               // Id of the parent Record
                         
                        if(CurrentMonth==1){
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear-1)+'-'+String.valueof(CurrentMonth+11);
                        }
                        
                        else if(CurrentMonth==11 || CurrentMonth==12) {                        
                        qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+String.valueof(CurrentMonth-1);
                        }
                        
                        else{
                         qodDel.Name=prj.Name+' - '+String.valueof(Currentyear)+'-'+'0'+String.valueof(CurrentMonth-1);
                         
                        }                        
                         qodDel.Dev_Lead__c=prj.Dev_Lead_User__c;
                              
                         qodDel.Number_of_Change_Requests__c =0;
                         qodDel.Approved_Status__c ='Pending input from Dev Specialist';
                         
                         if(prj.Project_Start_Date_original_baseline__c!=null && prj.Project_End_Date_original_baseline__c!=null)
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c= prj.Project_Start_Date_original_baseline__c.daysBetween(prj.Project_End_Date_original_baseline__c);
                         }
                         else
                         {
                         qodDel.Planned_Working_Days_Original_baseline__c=0;
                         }
                         if(prj.Project_Start_Date_current_baseline__c!=null && prj.Project_End_Date_current_baseline__c!=null)
                         {
                            qodDel.Planned_Working_Days_current_baseline__c=prj.Project_Start_Date_current_baseline__c.daysBetween(prj.Project_End_Date_current_baseline__c); 
                         }  
                        else
                        {
                            qodDel.Planned_Working_Days_current_baseline__c=0;
                        }
                        if(prj.Project_Start_Date_actual__c!=null && prj.Project_End_Date_actual__c !=null)
                        {
                        qodDel.Actual_Working_Days__c = prj.Project_Start_Date_actual__c.daysBetween(prj.Project_End_Date_actual__c);
                        }
                        else
                        {
                       qodDel.Actual_Working_Days__c=0;
                        }
                         detailList.add(qodDel); 
                         insert detailList;
                        }                                                        
                                        
                     
        
    
    
}
}
global void finish(Database.BatchableContext BC){
}
  

                //Execute batch class with default constructor from schedular
    global void execute(SchedulableContext sc) {
        
        
       try {
    
         database.executeBatch(new CreateQoDelivery());

        }
        catch (Exception e) {
            System.debug('There are no jobs currently scheduled. ' + e.getMessage()); 
        } 
   }   
    
}

 thanks in advance