function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Jayesh Deo 2Jayesh Deo 2 

insert Hiring Manager record and 5 related position records and 2 related candidates for each position record.

From the below code I can insert hiring manager record and positions records seperately but cannot able to insert related section hiring manager records and related section candidate records. I am learning Apex. Please Help!

public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='rajees shubhamq';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    id hrID=hrmo.id;
    
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hrID;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.name='rahul2 pawarq';
        
     }
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}
 
Best Answer chosen by Jayesh Deo 2
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Jayesh,

Can you try as below.
 
public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='rajees shubhamq';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hmro.id;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    For(position__c ps: pos)
{
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.name='rahul2 pawarq';
cc.position__c=ps.id
        
     }
}
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}
Thanks,

 

All Answers

Sai PraveenSai Praveen (Salesforce Developers) 
Hi,

The main issue in you code is you are assigning the id before the Hiring manager record is created.Can you try the below code.
 
public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='rajees shubhamq';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hmro.id;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.name='rahul2 pawarq';
        
     }
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}

Let me know if you face any issues.

If this solution helps, Please mark it as best answer.

Thanks,
Jayesh Deo 2Jayesh Deo 2
Hi Thanks for the perfect solution. How can I add 2 related candidates for each position record? Where to access/insert  position ID into related candidates? Please let me know
 
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Jayesh,

Can you try as below.
 
public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='rajees shubhamq';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hmro.id;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    For(position__c ps: pos)
{
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.name='rahul2 pawarq';
cc.position__c=ps.id
        
     }
}
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}
Thanks,

 
This was selected as the best answer
Jayesh Deo 2Jayesh Deo 2
Thanks for the reply! Still cannot able to insert related candidate record with suggested code.
 
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Jayesh,

A small issue in the code. Can you try below.
 
public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='rajees shubhamq';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hmro.id;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    For(position__c ps: pos)
{
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.name='rahul2 pawarq';
cc.position__c=ps.id
       can.add(cc); 
     }
}
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}

Thanks,
 
Jayesh Deo 2Jayesh Deo 2
Hi Sai Praveen,

Finally, Suggested code worked. I made small changes. Please check.

Thanks to You for new learnings today!

public static void HiringManagerInsertrec()
{
 Hiring_Manager__c hrmo=new Hiring_Manager__c();
    hrmo.Name='Rahul Dravid Homework exercise ';
    hrmo.Email__c='ja@tzoq.com';
    hrmo.location__c='Mumbai'; 
    insert hrmo;
    
    list<position__c> pos=new list <position__c>();
  
    for (integer counter=1; counter<10; counter++)
    {
          position__c posObj=new position__c();
        posObj.Name='HR subedar1';
        posObj.Hiring_Manager__c=hrmo.id;
        pos.Add(posobj);
        
    }  

    if(!pos.Isempty())
    {
      insert pos;  
    }
    
    list <Candidate__c> can=new list <Candidate__c>();
    For(position__c ps: pos)
{
     for (integer counter=1; counter<=2; counter++)
     {
       Candidate__c cc=new Candidate__c();
         cc.Candidate_Name__c ='rahul2 pawarq';
cc.position__c=ps.id;
       can.add(cc); 
     }
}
    IF(!CAN.IsEmpty())
    {
        insert can;
    }
    
    
    system.debug('number of DML used:'+limits.getDmlStatements());
    system.debug('Number of record processed:'+limits.getDmlRows());
    system.debug('number of max limigt dml statements:'+limits.getLimitDmlStatements());
   
   
}
}