2

I have shared enterprise wsdl with the 3rd party team. This is being used to create record in CRM. I am able to create a record with all the fields using SOAP UI and the credentials being shared with 3rd Party. But when the team tried to create a records, a record is created in CRM but all the date/number/boolean are null.

I have checked FLS and also tested the same using SOAP UI. SOAP UI does not ignore date/number/boolean. System is based in sharepoint.

Any idea guys?

1

One possibility is that they aren't setting the "Specified" properties that go with each field in the Enterprise API when it is proxied into a .NET project.

If you look at the complex type for Account in the Enterprise WSDL it will have:

<element name="AnnualRevenue" nillable="true" minOccurs="0" type="xsd:double"/>

Note how it is both nillable (could be set to null) and has a minOccurs or zero (could be completely omitted).

In the proxy object for Account you get a corresponding property:

public System.Nullable<double> AnnualRevenue { get; set; }

So you might assume you could set that field value with something like:

EnterpriseApi.Account acc = new EnterpriseApi.Account();
acc.AnnualRevenue = 100.0; 
//... send the Account to Salesforce

But, as you've found, that isn't sufficient to actually set/change the AnnualRevenue field.

The problem is that when dealing with a field that can be null or completely ommited .NET didn't know if you wanted to clear that field out or actually set it to null.

So to compensate for that an additional "Specified" property is generated:

 public bool AnnualRevenueSpecified { get; set; }

You need to set the field to true. Both if you want to send through an actual value or null. E.g.

EnterpriseApi.Account acc = new EnterpriseApi.Account();
acc.AnnualRevenue = 100.0; 
acc.AnnualRevenueSpecified = true;
//... send the Account to Salesforce

See also:

  • I just figured out this out and then came the answer. Boom !!. Thanks a lot :) – Samir Jul 2 '19 at 7:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.