SOAP API
SERVICE SIDE
1.
Write the webService class
global
class myServiceAccInsert{
webservice static void
AccInsert(Account objA){
insert objA;
}
}
2.
Generate Partner WSDL and webService class WSDL
to pass to CLIENT
CLIENT SIDE
1.
Generate Classes from both WSDLs received from the
Service Side.
a)
sobjectPartnerSoapSforceCom - urn:sobject.partner.soap.sforce.com (WSDL
Namespace)
b)
faultPartnerSoapSforceCom - urn:fault.partner.soap.sforce.com (WSDL
Namespace)
c)
partnerSoapSforceCom - urn:partner.soap.sforce.com (WSDL Namespace)
d)
soapClassWithWebservice - http://soap.sforce.com/schemas/class/classWithWebService
(Namespace)
2.
Reduce code if the classes generated are two long - remove all unwanted
Complextypes.
IMPORTANT: Maximum number of characters in a class are 1Million
If there is 'AnyType' Error in WSDL replace
'Any Type' with 'String'.
2.
Write the following Page and Page Controller and
configure login uesrname, password.
Page:
<apex:page controller="testSOAPController">
<apex:form >
<apex:pageblock >
<apex:pageblocksection
>
<apex:inputfield
value="{!objA.Name}"/>
</apex:pageblocksection>
<apex:commandButton
value="Save" action="{!doSave}"
style="margin-left:20%;"/>
</apex:pageblock>
</apex:form>
</apex:page>
Page Controller:
public with sharing class testSOAPController {
public PageReference doSave()
{
partnerSoapSforceCom.Soap
myPartnerSoap = new partnerSoapSforceCom.Soap();
partnerSoapSforceCom.LoginResult partnerLoginResult =
myPartnerSoap.login('sfdc.gsk@gmail.com',
'********');
soaptosfdcgsk.SessionHeader_element
webserviceSessionHeader = new soaptosfdcgsk.SessionHeader_element();
webserviceSessionHeader.sessionId = partnerLoginResult.sessionId;
soaptosfdcgsk.myServiceAccInsert
myWebservice = new soaptosfdcgsk.myServiceAccInsert();
myWebservice.SessionHeader
= webserviceSessionHeader;
soaptosfdcgsk.Account sA =
new soaptosfdcgsk.Account();
sA.Name = objA.Name;
myWebservice.AccInsert(sA);
insert objA;
return (new pagereference('/apex/testSOAP').setredirect(true));
}
public Account objA{get;set;}
public testSOAPController (){
objA = new Account();
}
}
Flow
Web service à WSDL file (define the Web Service) à API (Platform use WSDL to generate API)
WSDL file is required
to access Force.com Web Service. It defines the web service that is available.
For
downloading WSDL Ã login as administrator or as a user who
has the “Modify all Data” permission.
From Setup, click Develop | API to display the WSDL download page
The WSDL file is dynamically
generated based on which type of WSDL file (enterprise or partner) you
download.
·
Force.com Enterprise WSDL—This API is for most enterprise users who are developing
client applications for
their organization. The enterprise WSDL file is a strongly typed representation of your
organization’s data. It provides information about your schema, data
types, and fields to your development environment, allowing for a tighter
integration between it and the Force.com Web
service. This WSDL changes if custom fields or custom objects are added to,
renamed, or removed from, your organization’s Salesforce configuration. If you are downloading an enterprise WSDL and you
have managed packages installed in your organization, you need to take an extra
step to select the version of each installed package to include in the
generated WSDL.
Note the
following when generating the enterprise WSDL:
o If new
custom fields or objects are added to, renamed, or removed from your
organization’s information, you need to regenerate the WSDL file in order to
access them.
o The
generated WSDL contains the objects and fields in your organization, including
those available in the selected versions of each installed package. If a field
or object is added in a later package version, you must generate the enterprise
WSDL with that package version to work with the object or field in your API integration.
·
Force.com Partner WSDL—This API is for salesforce.com partners
who are developing client applications
for multiple organizations. As a loosely-typed representation of the Salesforce object model, the
partner WSDL can be used to access data within any organization.
Enterprise WSDL
|
Partner WSDL
|
Strongly typed, the object and its
attributes are fixed.
|
Is loosely typed, the object and its
attributes can be variable.
|
Contains the metadata about all
standard and custom fields and objects.
|
Does not contain metadata about
objects and fields. Takes an array of key-value pairs.
|
Can only be used against your
Salesforce instance.
|
Can be used against many
Salesforce.com organizations.
|
Simple Object Access Protocol (SOAP)
Web Service Description Language (WSDL)
Comments
Post a Comment