ECC Queue for Inbound and Outbound Soap Messages?

DINESH CHINNAD1
Giga Expert

Hi Team,

In ServiceNow we have created a web service and also shared that to our client as well. Our clients using Remedy Integration.

Now they raising a incident from remedy to servicenow. The incident is created successfully. But soap message is not inserted into the ECC Queue table. I don't know why?

Actually it should log the soap message into ECC Queue before creating the incident right?

I don't know how to deal this. Anyone faced the same issue please share your thoughts.

4 REPLIES 4

tony_barratt
ServiceNow Employee
ServiceNow Employee

Hi Dinesh,



There is wiki article here which describes outbound, from ServiceNow, SOAP messages which use the ECC queue


Outbound SOAP Web Service - ServiceNow Wiki


..


2.7 Sending a SOAP Message Through a MID Server

When creating SOAP message functions, you can configure the function to be sent through a MID Server selected in the Use MID Server field. There must be a running MID Server associated with your ServiceNow instance to use this functionality. All SOAP messages sent through a MID Server are performed asynchronously.


..



If an incident is created in ServiceNow, created by inbound SOAP, for example, the target would start with https://<instancename>.service-now.com/incident.do, and the action would take place across the Internet using SSL - no ecc_queue involvement required or expected.



Best Regards



Tony


Hi Dinesh,




There is an active thread here which refers to a question which is similar to yours.



Sending data through ECC Queue



Best Regards



Tony


Hi Tony Barratt



Thanks for your response.



I am not using Mid Server, still i want to send or receive soap message through ECC Queue. Any other suggestions?


gmetass
Kilo Contributor

Inbound SOAP messages do not go through the ECC Queue, only outbound messages, if specified when you call the "post" method on SOAPMessage:



var soapMessage = new SOAPMessage('soap message name', 'soap message function');


//fill up the soap message with data


var response = soapMessage.post(true); // the "true" parameter says "use the ECC Queue".



The outbound SOAP message doesn't need to use the ECC Queue, you can send directly to the endpoint and wait for the response. The ECC Queue just allows it to be processed asynchronously as the system as resources.



Inbound SOAP messages use ServiceNow's Direct Web Services to process directly based on the content of the SOAP message. There are 2 ways to account for this message in the system:


1. You can set a property called glide.processor.debug.SOAPProcessor to true and this will dump the entire SOAP XML into the system logs. This is typically used for troubleshooting and not recommended on Production systems.


SOAP Web Service - ServiceNow Wiki


2. You can and should use Web Service Import Sets for staging the SOAP data into an import set table. Basically once you create the Web Service Import Set, the external system can post directly to the endpoint provided as a field on the Web Service Import Set. Behind the scenes, the system will parse out the SOAP XML and create a record in the import set table and map the XML element data to the matching fields in the import set. Then you can use standard import set transforms to create and update anything you want in the system. (There's a ton of other things available with this functionality but this is the basics.)


Web Service Import Sets - ServiceNow Wiki



Using these two system functions for inbound SOAP allows to you view the raw SOAP XML for schema troubleshooting, and allows you to see the raw data in an import set for data troubleshooting.



P.S. The MID Server really plays no part in the scenario you have described. The only case where you'd want to use it is if the other system lies within your internal network behind a firewall. The MID would poll the ECC Queue for work to be done (including SOAP requests) and work as a middleman for posting SOAP requests and responses to the two systems to integrate. But this is a different discussion for another day.



Hope this helps.