is it possible to have a custom field inside the WSDL like:

<xsd:element name="CustomField_1__c" minOccurs="0" type="xsd:string" nillable="true"/>

but do not have the field on the object itself? What I want is to just send some data to this "virtual" field and than process this sended data. So my question is: is it required that this field really exist on the object? If I try this now I get the error ' INVALID_FIELD: No such column xxx'. Is there some way to define it in a different way in the WSDL? From my point of view the WSDL just define an protocol what data will be send and not what I do with this data at the end.



No. The WSDL (meaning Web Service Definition Language) is the definition of the metadata the web service handles. If you change this file, but not the service itself (in this case, Salesforce), then you have invalidated the definition of the web service. This is true for every service that implements WSDL. You must consider the WSDL to be read-only.


My tuppence on this is that Salesforce SOAP API maps between the WSDL payload XML and SObjects (standard or custom), so the SObjects need to contain fields for the elements passed in via the web service call.

That said, you can write your own Apex Web Services that are not based on SObject data. Take a look at the Apex Developer Guide for more detail.

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.