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 

DUPLICATE_VALUE, duplicate value found while inserting record in web service

Hello developer.

I am getting an error while inserting record after parsing XML file in web services 

Error:

System.DmlException: Upsert failed. First exception on row 1491; first error: DUPLICATE_VALUE, duplicate value found: BMCServiceDesk__Name__c duplicates value on record with id: a0K2v00000ovAav: []

Note: There is a no duplicate value found  in the XML response file


Below is my code 

String Username = 'demo';
String Password = 'demo';
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('content-type','text/xml');
req.setHeader('');
req.setEndpoint('');
String body = '';
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
<BMCServiceDesk__CMDB_Class__c> cmdbclass=[SELECT Id, Name, BMCServiceDesk__ClassID__c, BMCServiceDesk__ClassName__c, BMCServiceDesk__Class__c FROM BMCServiceDesk__CMDB_Class__c ];
    List
    <User> us=[Select id,name from user];  
    List
        <BMCServiceDesk__BMC_BaseElement__c> listassets=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;
                            
                            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);
                                    }
                                    
                                }
                                
                            }
                            
                            if(resourcename!=null)
                            {    
                                    BMCServiceDesk__BMC_BaseElement__c base1=new BMCServiceDesk__BMC_BaseElement__c();
                                       base1.BMCServiceDesk__Name__c=resourcename;
                                    base1.BMCServiceDesk__PrimaryClient__c='0052v00000WzxmKAAR';
                                    base1.BMCServiceDesk__CMDB_Class__c='a1y2v00000BikscAAB';
                                       listassets.add(base1);
                                    System.debug('listassets---->'+listassets);
                            } 
                     }
                            
                            
                        }
                    }
                  
                   count++;
                   
               }
          }    
        }   
        
        if(listassets.size()>0)
        {
            System.debug('listassets---->'+listassets);
            upsert listassets;
            
        }
 }



 
SHIVAJEET BANARJISHIVAJEET BANARJI

Hi SFDC16,

Please Check Duplicate Rule and Trigger's Because I think something is working in backend.

if this solution is helpfull for you then mark it Best Answer

SFDC16SFDC16
But, I have created fresh new sandbox.