on 09-27-2016 7:11 AM
Hello Experts,
we are using SOAP receiver adapter in SOAP Look Up to fetch values from Workday Application.
While giving a SOAP call from Message Mapping to workday system, getting an below error.
"Error while calling the SystemAccessorHMI's process Exception during processing the payload. Error when calling an adapter by using the communication channel CC_SOAP_Test (Party: , Service: TESTReceiver, Object ID: 253bfe41be373b1286895c50c36a5998) XI AF API call failed. Module exception: 'SOAP adapter processing error'. Cause Exception: 'SOAP: Response message contains an errorXIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: invalid username or password'.
com.sap.aii.mapping.lookup.LookupException: Error when calling an adapter by using the communication channel CC_SOAP_Test (Party: , Service: TESTReceiver, Object ID: 253bfe41be373b1286895c50c36a5998) XI AF API call failed. Module exception: 'SOAP adapter processing error'. Cause Exception: 'SOAP: Response message contains an errorXIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: invalid username or password'."
This is working fine while I tested in SOAP UI if we we supply the parameter WSS-Password Type = PasswordText then it works fine and gives us the SOAP response.
Now In PI during end to end test we are getting above error.
Already checked this link : Receiver SOAP Adapter Issue | SCN - as shown in the link do I need redevelop all my code ?
Now the query is how can I supply the above parameter WSS-Password Type = PasswordText in SOAP url or any other way to supply this parameter.
Thanks in advance.
Kumar
Hi Kummar,
The WSS-Password tag should to be in the SOAP header, have you tried to pass it in the SOAP header?.
Regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
yes I have passed, even then same error.
I have one doubt in WSDL. The WSDL provided by workday team seems REST ful service.
Please check the urls. I have took one sample url from PI. ports are different. have a look and let me know.
sample PI WSDL port :
<wsdl:service name="SI_EmployeeRAAS_Req_OutService">
<wsdl:port name="HTTP_Port" binding="p1:SI_EmployeeRAAS_Req_OutBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://glosxd1cid01v.hgrs.holcim.net:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=T..."/>
</wsdl:port>
<wsdl:port name="HTTPS_Port" binding="p1:SI_EmployeeRAAS_Req_OutBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="https://glosxd1cid01v.hgrs.holcim.net:50001/XISOAPAdapter/MessageServlet?senderParty=&senderService=...
Workday WSDL port & binding
<wsdl:output name="Execute_ReportOutput" message="wd:ResponseMsg"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:output name="Execute_ReportOutput" message="wd:Report_DataOutputMsg"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:input>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:input>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:port>
</wsdl:port>
My doubt is they exposed as us REST service and asking to consume Webservice is a problem
kindly check and throw some inputs.
Regards,
Kumar
Hello Inaki,
I have passed as you said, in Header.
I had constructed whole SOAP envelope as one string and passing this string to UDF, I am succeed to pass the values, but output is empty and at channel level checked "Do not use envelope" Option.
I have observed one more issue, PI is hosted in VPN and workday system(calling as webservice) is not in VPN.
Will this be an issue..?
Please give your inputs.
Thanks,
Kumar
Hello Inaki,
Thanks for your help.
Issue got solved. Problem lies after parsing input, I am not able to traverse through nodes because of this line in code : org.w3c.dom.Node nodeCust= list.item(i);
Now I had replaced this with normal node traversing Node nNode = nList.item(temp);
Finally issue got solved. Thanks for all your valuable inputs.
Regards,
Kumar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Praveen - Thanks for your reply.
I have one doubt in WSDL. The WSDL provided by workday team seems REST ful service.
Please check the urls. I have took one sample url from PI. ports are different. have a look and let me know.
sample PI WSDL port :
<wsdl:service name="SI_EmployeeRAAS_Req_OutService">
<wsdl:port name="HTTP_Port" binding="p1:SI_EmployeeRAAS_Req_OutBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://glosxd1cid01v.hgrs.holcim.net:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=T..."/>
</wsdl:port>
<wsdl:port name="HTTPS_Port" binding="p1:SI_EmployeeRAAS_Req_OutBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="https://glosxd1cid01v.hgrs.holcim.net:50001/XISOAPAdapter/MessageServlet?senderParty=&senderService=...
Workday WSDL port & binding
<wsdl:output name="Execute_ReportOutput" message="wd:ResponseMsg"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:output name="Execute_ReportOutput" message="wd:Report_DataOutputMsg"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:input>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:input>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:port>
</wsdl:port>
My doubt is they exposed as us REST service and asking to consume Webservice is a problem
kindly check and throw some inputs.
Regards,
Kumar
Hello Kumar,
Are you using SOAP UDF?
In the code/parameters ensure ur username/password is correct.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Raghu,
I am passing Login Credentails from SOAP channel not in mapping as parameters.
Code :
public String RAASCALL(String PayGroupID, String CompletedDate, String v3, Container container) throws StreamTransformationException{
AbstractTrace trace = container.getTrace();
//String v1=null;
//String v2=null;
// String v3=null;
StringBuffer sbf=null;
try {
/*Pass the Business System and Communication Channel as input to the getChannel().
BS_SOAPLOOKUP – Business System*CC_Webservice_SOAP_CURRENCY_CONVERTOR – Receiver SOAP Adapter */
Channel channel = LookupService.getChannel("TESTReceiver","CC_SOAP_Test");
SystemAccessor accessor = LookupService.getSystemAccessor(channel);
/* Construct the SOAP Request Message using the InputParameters
FromCurrency , ToCurrency are the Input Parameters.*/
String SOAPxml=
//"<?xml version=\"1.0\" encoding=\"UTF-8\"\"?>"
"<Execute_Report><Report_Parameters>"+
"<Pay_Group Descriptor=\"\">"+
"<ID type=\"WID\">"+PayGroupID+"</ID>"+
"</Pay_Group><Completed_Date_On_or_After>"+CompletedDate+"</Completed_Date_On_or_After>"+
"<Completed_Date_On_or_Before>"+v3+"</Completed_Date_On_or_Before>"+
" </Report_Parameters></Execute_Report>";
InputStream inputStream =new ByteArrayInputStream(SOAPxml.getBytes());
XmlPayload payload = LookupService.getXmlPayload(inputStream);
Payload SOAPOutPayload = null;
//The response will be a Payload. Parse this to get the response field out.
SOAPOutPayload = accessor.call(payload);
sbf=new StringBuffer();
/* Parse the SOAPPayload to get the SOAP Response back.
*/
InputStream inp = SOAPOutPayload.getContent();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
/* Create DOM structure from input XML */
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inp);
/*Node Traverse*/
NodeList list = document.getElementsByTagName("Report_Data");
for (int i =0;i<list.getLength();i++) //getting all my report entries
{
org.w3c.dom.Node nodeCust= list.item(i);
if(nodeCust.getLocalName().equalsIgnoreCase("Report_Entry"))
{
NodeList itr11 = nodeCust.getChildNodes();
for (int j = 0; j < itr11.getLength(); j ++)
{
Element c = (Element)itr11.item(j);
if(c.getLocalName().equalsIgnoreCase("Action_Event"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("Overal_Business_Process"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("Transaction_Effective_Moment"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("Transaction_Entry_Moment"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("Business_process_Reason"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("Business_Process_Type"))
{
sbf.append(c.getTextContent()+",");
}
if(c.getLocalName().equalsIgnoreCase("About_Worker"))
{
sbf.append(c.getTextContent());
}
}
sbf.append("#");
}
}
}catch (Exception e){
trace.addWarning("Error" + e);
}
return sbf.toString();
}
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.