Monday, 2 March 2015

SALESFORCE INTEGRATION WITH .NET USING SOAP API
SALESFORCE INTEGRATION WITH .NET USING SOAP API  PART - 1
Required :
1. .Net end point (or) WSDL wile
NOTE : If client provides WSDL file no need to follow STEP 1
STEP 1 :
Copy the .Net Endpoint given by the client (https://xxxxxxxxxxxx/gw/xxxx/nextgencrm/ldap.getpicture.dev)
Go to the web browser open new tap paste it and add (?wsdl)
EX: https://xxxxxxxxxxxx/gw/xxxx/nextgencrm/ldap.getpicture.dev?wsdl
Copy the XML data and paste in notepad or notepad++
Remove one binding and related port in that XML because sales force support only one binding
EX:
Remove second binding and related port
Binding:
-------
<wsdl:binding name="LdapSoap12" type="tns:LdapSoap">
.
.
.</wsdl:binding>
Port:
-----
<wsdl:port2 name="LdapSoap" binding="tns:LdapSoap">
<soap:address location="xxxxxxxxxxxx" />
</wsdl:port2>
Save the file as MyService.wsdl on your desktop
STEP 2:
Login in to your sales force account
Go to setup > Build > Develop > Apex
Click on Generated Apex
Browser and select MyService.wsdl file and Parse it
If successfully parse Change the name of class as MyDotnetService and save it
STEP 3 :
Open the class MyDotnetService it look like below example
EX:
public class MyDotnetService {
public class HelloWorld_element {
private String[] apex_schema_type_info = new String[]{'http://tempuri.org/','true','false'};
private String[] field_order_type_info = new String[]{};
}
public class HelloWorldResponse_element {
public String HelloWorldResult;
private String[] HelloWorldResult_type_info = new String[]{'HelloWorldResult','http://tempuri.org/',null,'0','1','false'};
private String[] apex_schema_type_info = new String[]{'http://tempuri.org/','true','false'};
private String[] field_order_type_info = new String[]{'HelloWorldResult'};
}
public class LdapSoap {
public String endpoint_x = 'https://xxxxxxxxxxxxxxxxxxxxxx/gw/xxxxxxxxxx/nextgencrm/ldap.getpicture.dev';
public Map<String,String> inputHttpHeaders_x;
public Map<String,String> outputHttpHeaders_x;
public String clientCertName_x;
public String clientCert_x;
public String clientCertPasswd_x;
public Integer timeout_x;
private String[] ns_map_type_info = new String[]{'http://tempuri.org/', 'MyDotnetService'};
public String HelloWorld() {
MyDotnetService.HelloWorld_element request_x = new MyDotnetService.HelloWorld_element();
MyDotnetService.HelloWorldResponse_element response_x;
Map<String, MyDotnetService.HelloWorldResponse_element> response_map_x = new Map<String, MyDotnetService.HelloWorldResponse_element>();
response_map_x.put('response_x', response_x);
WebServiceCallout.invoke(
this,
request_x,
response_map_x,
new String[]{endpoint_x,
'http://tempuri.org/HelloWorld',
'http://tempuri.org/',
'HelloWorld',
'http://tempuri.org/',
'HelloWorldResponse',
'MyDotnetService.HelloWorldResponse_element'}
);
response_x = response_map_x.get('response_x');
return response_x.HelloWorldResult;
}
}
}
STEP 4 :
Go > setup > Administer > Security Controls > Remote Site Settings > New Remote Site
Add Endpoint URL given by client
If client given WSDL file , Go to generated class ( MyDotnetService )
MyDotnetService > LdapSoap > endpoint_x
copy the end point and paste in remote site settings
STEP 5 :
Open the workbench or developer console
Copy class Name , sub class name , and method name like below example
EX:
MyDotnetService.LdapSoap ldap = new MyDotnetService.LdapSoap();
String response = ldap.HelloWorld();
System.debug('response--------'+response);
NOTE :
If time out error came, Add below code
ldap.TimeOut_x = 60000;
Now you successfully integrated sales force with .Net using SOAP API
NOTE : This process is works only when client end point has no Authorization
Post a Comment