You need to sign in to do that
Don't have an account?
Arcos
ServerURL returned by the login WSDL is wrong
Hi,
I am trying to implement the integration of an external system with Salesforce and have exposed a WS using an apex class for this purpose. In order to access the WS Salesforce documentation (https://help.salesforce.com/apex/HTViewSolution?urlname=Updating-Hard-Coded-References-FAQ&language=en_US) states I should first consume a login WS (enterprise or partner). The response should contain a ServerURL and a Session ID. That ServerURL should be set as the target endpoint for a subsequent call to my WS.
The issue is when I set the targent endpoint as the URL for my WS call in SOAP UI I am getting the following response:
No operation available for request {http://soap.sforce.com/schemas/class/ICL_GatewaySAP}QueryRequest
The login WSDL URL:
https://test.salesforce.com/services/Soap/c/36.0/0DF8E00000000De
The ServerURL returned by the login method:
https://icl--Staging.cs87.my.salesforce.com/services/Soap/c/36.0/00D8E0000008itT/0DF8E00000000De
What I am doing wrong?
I am trying to implement the integration of an external system with Salesforce and have exposed a WS using an apex class for this purpose. In order to access the WS Salesforce documentation (https://help.salesforce.com/apex/HTViewSolution?urlname=Updating-Hard-Coded-References-FAQ&language=en_US) states I should first consume a login WS (enterprise or partner). The response should contain a ServerURL and a Session ID. That ServerURL should be set as the target endpoint for a subsequent call to my WS.
The issue is when I set the targent endpoint as the URL for my WS call in SOAP UI I am getting the following response:
No operation available for request {http://soap.sforce.com/schemas/class/ICL_GatewaySAP}QueryRequest
The login WSDL URL:
https://test.salesforce.com/services/Soap/c/36.0/0DF8E00000000De
The ServerURL returned by the login method:
https://icl--Staging.cs87.my.salesforce.com/services/Soap/c/36.0/00D8E0000008itT/0DF8E00000000De
What I am doing wrong?
E.g.
Note that my address in the WSDL here also has my /DFB/ namespace in the URL.
So you will most likely want something like:
See also: Exposing class as webservice (http://salesforce.stackexchange.com/q/70057/102)
All Answers
E.g.
Note that my address in the WSDL here also has my /DFB/ namespace in the URL.
So you will most likely want something like:
See also: Exposing class as webservice (http://salesforce.stackexchange.com/q/70057/102)
The instructions in Updating Hard-Coded References FAQ (https://help.salesforce.com/apex/HTViewSolution?urlname=Updating-Hard-Coded-References-FAQ&language=en_US) on how to update hard-coded references in integrations is correct if you are dealing is a single service. E.g. If you were only dealing with the Partner API, then it would be fine to use the returned serverUrl in to update the endpoint.
However, since you are taking the serverUrl from the Partner API and then using it with your custom Apex web service you will need to make some modifications. You could try a support case or sending feedback on the help article in question. I suspect you will get a similar answer.
You could try raising an idea to provide the web service urls in the Partner API LoginResult (https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_login_loginresult.htm). Note how the metadataServerUrl is already there. Of course, there could be a range of apex web services exposed in an org, so you would need to find them by a key of some sorts.