cancel
Showing results for 
Search instead for 
Did you mean: 

Salesforce.com SOAP ERROR to PI 7.0: Missing entity type information

anupam_ghosh2
Active Contributor
0 Kudos

Hi Experts,

the SFDC server connected to PI 7.0 is giving the following error


                <?xml version="1.0" encoding="UTF-8" ?> 
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
- <soapenv:Body>
- <soapenv:Fault>
  <faultcode>soapenv:Client</faultcode> 
  <faultstring>Missing entity type information. sObject requires a separate 'type' field be sent.</faultstring> 
  </soapenv:Fault>
  </soapenv:Body>
  </soapenv:Envelope>

PI is getting this error when its trying to update/upsert the account information in SFDC.

The SFDC server has undergone refresh recently and the URL to the server has also changed. I changed the URL in SOAP ADAPTER to SFDC. Thus PI is able to login but cannot update user account information. I tried to perform same operation from SOAP UI but getting same fault.

Have you faced such errors in past? Could you please kindly share the solution if any to resolve such error.

The input SOAP message to SFDC is as shown below


<?xml version="1.0" encoding="utf-8" ?> 
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Header>
- <SessionHeader xmlns:ns1="urn:horizon:sessionmgmt" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0">
  <ns1:sessionId>00DW0000000CxdG!AQUAQGzweOCXpyMwAxIpSJvmmUwJ04vs9lluw9xOALp_cvUDmEhSRjDuKuMSWYXVaGSIbqp1UpptnKp7F2KkT3nZj6b_Yt1Q</ns1:sessionId> 
  </SessionHeader>
  </soapenv:Header>
- <<soapenv:Body>
- <upsert xmlns="urn:enterprise.soap.sforce.com">
  <externalIDFieldName>SAP_Customer__c</externalIDFieldName> 
- <sObjects xsi:type="ns1:Account" xmlns:ns1="urn:sobject.enterprise.soap.sforce.com">
  <ns1:fieldsToNull>Phone</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Fax</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Company_Email__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>NACE_Broad__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Sales_Tax__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>ShippingCity</ns1:fieldsToNull> 
  <ns1:fieldsToNull>ShippingPostalCode</ns1:fieldsToNull> 
  <ns1:fieldsToNull>ShippingStreet</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Shipping_Region__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>ShippingCountry</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Registered_City__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Registered_Zip_Postal_Code__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Registered_Street__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Registered_State_Province__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Registered_Country__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>NACE_Full__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Legal_Building_1__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Legal_Building_2__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Legal_Address_2__c</ns1:fieldsToNull> 
  <ns1:fieldsToNull>Legal_Address_3__c</ns1:fieldsToNull> 
  <ns1:Also_Known_As__c>TEST</ns1:Also_Known_As__c> 
  <ns1:CreditControllerID__c>ITBMO0</ns1:CreditControllerID__c> 
  <ns1:CurrencyIsoCode>EUR</ns1:CurrencyIsoCode> 
  <ns1:Customer_Category__c>I&C</ns1:Customer_Category__c> 
  <ns1:Hierarchy_Type__c>Account</ns1:Hierarchy_Type__c> 
  <ns1:Horizon_Segment__c>jhgjhgjg</ns1:Horizon_Segment__c> 
  <ns1:Horizon_Status__c>Registered in XYZ</ns1:Horizon_Status__c> 
  <ns1:Legal_Address_1__c>blank</ns1:Legal_Address_1__c> 
  <ns1:Legal_City__c>VBB</ns1:Legal_City__c> 
  <ns1:Legal_Country__c>Ijkkjhjk</ns1:Legal_Country__c> 
  <ns1:Legal_House__c>111</ns1:Legal_House__c> 
  <ns1:Legal_State_Province__c>wow</ns1:Legal_State_Province__c> 
  <ns1:Legal_Zip_Postal_Code__c>14800</ns1:Legal_Zip_Postal_Code__c> 
  <ns1:Name>test blank</ns1:Name> 
- <ns1:Owner>
  <ns1:User_ID__c>ITFCE0</ns1:User_ID__c> 
  </ns1:Owner>
  <ns1:RecordTypeId>01220000000DlR6AAK</ns1:RecordTypeId> 
  <ns1:SAP_Customer__c>10167091537</ns1:SAP_Customer__c> 
  <ns1:SalesSupportID__c>Mkjhkljh</ns1:SalesSupportID__c> 
  <ns1:Operating_Entity__c>TISE</ns1:Operating_Entity__c> 
  <ns1:Sub_Operating_Entity__c /> 
  </sObjects>
  </upsert>
  </soapenv:Body>
  </soapenv:Envelope>

This issue is in devlopment enviornment where as production is running as usual without any problems. Production PI server did not undergo any refresh. These interfaces has been functioning smoothly for last 5 -6 years, suddenly started giving errors after refresh.

Regards

Anupam

Accepted Solutions (0)

Answers (2)

Answers (2)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

This problem seems at the target end. There are some new changes in fields level in xml schema and that causing the issue. Import the latest WSDL and test it. You might want to do this.. export the current wsdl what do you have in PI to XMLSPY and test the response. If you see the same behaviour then the problem is at the target system and not at PI level.

prateek
Active Contributor
0 Kudos

I don't think this has anything to do with the PI server. The refresh you mentioned was in Salesforce system. Therefore it is most likely that there is some problem at SFDC.

However, there is a possibility about support of xsi:type in XSD. Can you try to run the same thing with XMLSpy/Altova? I am not sure if SoapUI support it or not.

Regards,

Prateek Raj Srivastava

anupam_ghosh2
Active Contributor
0 Kudos

Hi Prateek,

I have checked with salesforce.com. The WSDL is same in DEV and production env.

But When I try to import it into develpment some fields are missing and mappings are failing , so I reverted back the changes in DEV to what it was originally. Since WSDL file contents are same in production and development and we have not done any changes in DEV , I cannot figure out the reason of such SOAP error in PI. I imported the enterprise WSDL from SFDC. I am also unable to explain why after importing the current WSDL into my mapping certain fields go missing? As far as my knowledge goes for salesforce.com we need to import enterprise WSDL only. These few threads I got from Salesforce Forum on the same error

http://boards.developerforce.com/t5/Perl-PHP-Python-Ruby-Development/Missing-entity-type-information...

http://boards.developerforce.com/t5/Perl-PHP-Python-Ruby-Development/Perl-WWW-Salesforce-Missing-Ent...

http://boards.developerforce.com/t5/General-Development/sObject-requires-a-separate-type-field-be-se...

Regards

Anupam

santhosh_kumarv
Active Contributor
0 Kudos

The SFDC WSDL functions like insert, update will by default refer sObject type for records element. You should get this modified to Account sobject type first.

Refer this guide Page-4 & 5 in particular. Hope that should solve this issue.

http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/802f8d03-9282-2d10-52b4-f9446e077099

~SanV...

anupam_ghosh2
Active Contributor
0 Kudos

Hi Santhosh,

Thank you so much for your kind response. I found minor changes in imported WSDL after doing changes as suggested by you. But again PI server is getting the same SOAP fault. Please let me know if you have any more suggestions.

Regards

Anupam