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
SFDC16SFDC16 

How to assign user id while inserting record

Hello,

Requirement:

Assign user id while inserting a new record.

I am getting the username from the response and  comparing username with salesforce user if is  it exists then assign while inserting a new record in a custom object in custom object userid is a lookup of the user object

XML file response example:
<userinfo>
<userid>1233</userid>
<name> ram patil</name>
<Domain>xyz</Domain>
<userInfo>


Below is my code :




global class BmcrfgettassetDetails implements Database.Batchable < sObject >,Database.AllowsCallouts {

    global Database.QueryLocator start(Database.BatchableContext BC)
     {

        String query = 'Select id ,name from BMCServiceDesk__BMC_BaseElement__c';
        System.debug('Inside start methode');
        return Database.getQueryLocator(query);
        
     }

global void execute(Database.BatchableContext BC, List< BMCServiceDesk__BMC_BaseElement__c> accList) 
{
    if(accList.size()>0)
    {
            System.debug('accListaccList--->'+accList);
            String Username = 'xyz';
            String Password = 'xyz';
            HttpRequest req = new HttpRequest();
            req.setMethod('GET');
            req.setHeader('content-type','text/xml');
            req.setHeader('SOAPAction','xyz');
            req.setEndpoint('xyz');
            String body = 'xyz';
        req.setBody(body);
            Http http = new Http();   
            HTTPResponse res = new HTTPResponse();
            res = http.send(req);   
            String responseBody=res.getBody();
            System.debug('Response='+responseBody);  
            if(res.getStatusCode()==200)
            {   
                list<user> usernames=[Select id,username from user];
                list<BMCServiceDesk__CMDB_Class__c> listclass=[SELECT Id, Name,BMCServiceDesk__ClassName__c FROM BMCServiceDesk__CMDB_Class__c];
                List<BMCServiceDesk__BMC_BaseElement__c> newaccount=new List<BMCServiceDesk__BMC_BaseElement__c>();
                System.debug('Inside If Condition');
                Dom.Document docx = new Dom.Document();
                docx.load(responseBody);
                Dom.XmlNode root = docx.getRootElement();
                Dom.XmlNode[] childElements = root.getChildElements();
                for(Dom.XmlNode child : childElements)
                {   
                   
                    if(child.getName()=='body')
                    {
                      
                       Dom.XmlNode GetAssetDetailsResponse = child.getChildElement('GetAssetDetailsResponse','http://tempuri.org/');
                       Dom.XmlNode GetAssetDetailsResult = GetAssetDetailsResponse.getChildElement('GetAssetDetailsResult','http://tempuri.org/');
                       Dom.XmlNode Customers = GetAssetDetailsResult.getChildElement('Root',''); 
                       system.debug('Customers------>'+Customers);
                       Dom.XmlNode[] Customer=Customers.getChildElements(); 
                       system.debug('Customer------->'+Customer);         
                       Integer count=0;
                       for(Dom.XmlNode cust : Customer)
                       {
                           
                           
                           if(cust.getName()=='UserInfo') 
                           {
                                System.debug('Userinfo------'); 
                                if(count>0)
                                {
                                    Dom.XmlNode[] custasset=cust.getChildElements();
                                    for(Dom.XmlNode c:custasset)
                                    {
                                         String assetId;
                                         String resourcename;
                                         String userinfo;
                                         String classtype;
                                         String referenceID;
                                         String userid;
                                         String classid;
                                        
                                        if(C.getName()=='NAME') 
                                        {
                                            userinfo=c.getText();
                                            System.debug('userinfo---->'+userinfo);
                                        }
                                        if(c.getName()=='ResourceInfo')
                                        {
                                           Dom.XmlNode[] resourceInfochild=c.getChildElements();
                                            for(Dom.XmlNode d:resourceInfochild)
                                            {
                                                System.debug('D------>'+d);
                                                
                                                if(d.getName()=='RESOURCENAME')
                                                {
                                                    resourcename=d.getText();
                                                    System.debug('resourcename---->'+resourcename);
                                                }
                                                if(d.getName()=='TYPENAME')
                                                {
                                                    classtype=d.getText();
                                                    System.debug('classtype----->'+classtype);
                                                    
                                                }
                                                if(d.getName()=='RESOURCEID')
                                                {
                                                    referenceID=d.getName();
                                                    System.debug('referenceID------>'+referenceID);
                                                }
                                                
                                            }
                                            
                                        }
                                       
                                        for(User  usID : usernames)
                                        {
                                          System.debug('usID----->'+usID);    
                                          if(usID.username==userinfo)
                                          userid=usId.id;
                                        }
                                        
                                        /*for(BMCServiceDesk__CMDB_Class__c cmdbclass : listclass)
                                        {
                                             if(cmdbclass.BMCServiceDesk__ClassName__c==RESOURCENAME)
                                              classid=cmdbclass.id;
                                        }*/
                                        
                                        System.debug('userid---->'+userid);
                                        if(resourcename!=null)
                                        {     
                                            BMCServiceDesk__BMC_BaseElement__c c1=new BMCServiceDesk__BMC_BaseElement__c();
                                            c1.BMCServiceDesk__Name__c=resourcename;
                                            c1.BMCServiceDesk__PrimaryClient__c=userId;     // Assign user
                                            c1.BMCServiceDesk__CMDB_Class__c='a2Z1X000000Qt1uUAC';
                                            newaccount.add(c1);                               
                                            System.debug('listassets---->'+newaccount);
                                            System.debug('listassets size()---->'+newaccount.size());
                                       } 
                                  }
                                    System.debug('custasset---->'+custasset);
                                }
                              
                               count++;
                               
                           }
                      }    
                    }           
                }   
                
                if(newaccount.size()>0)
                {
                 
                  Database.upsert(newaccount);
                    
                }
              } 
       }                 
    }
    
         global void finish(Database.BatchableContext BC)
         {
           System.debug('xyz');
         }
}


Regards,
SFDC16