cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1846
Views
0
Helpful
19
Replies

Issue with Finesse Populating Data In Http Request

loprestid
Level 1
Level 1

Hello,

The main objective here is to pass Data along in the Body of an HTTP request to a SOAP service to communicate with Mainframe for a Screen Emulator Pop.

DL_Screen_Capture 2017-05-02 at 4.37.03 PM.png

If I use a tag like this within the snippet of code outlined below   <q0:agent_id>${callVariable2}</q0:agent_id> I get an API error

However if I put  <foo>${callVariable2}</foo>  *like in the dev guide* The call goes through However nothing displays in the variable info even when I see in the logs that Variable data is passing...

See Log:

1. Workflow -->

<Param><name>body</name><value><soapenv:Envelope xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header></soapenv:Header><soapenv:Body><q0:GCS0012CDATA><q0:input_fields><q0:agent_id><foo>\${callVariable2}</foo></q0:agent_id><test>\${callVariable2}</test><q0:call_num>12345</q0:call_num></q0:input_fields></q0:GCS0012CDATA></soapenv:Body></soapenv:Envelope></value></Param></params><actionVariables/></WorkflowAction></workflowActions></Workflow>

*Blue notates the hard coded data that does pass through

2. Same Call but further down Shows Variable data actually populating. -->

<name>callVariable2</name><value>123456789</value>

***Actual Body ***

<soapenv:Envelope xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header></soapenv:Header><soapenv:Body><q0:GCS0012CDATA><q0:input_fields><q0:agent_id><foo>${callVariable2}</foo></q0:agent_id><test>${callVariable2}</test><q0:call_num>12345</q0:call_num></q0:input_fields></q0:GCS0012CDATA></soapenv:Body></soapenv:Envelope>

What am I doing wrong here???  I need some assistance.



1 Accepted Solution

Accepted Solutions

Interesting. Are you using the Administrator console to add the workflow? If so, are you using the call variables tags?

tags.png

I tried this on my environment by using the same http request body that you have and can see in the logs that the ${callVariable2} is being replaced with the value. The HTTP request has a different URI and obviously won't go through successfully, but I was trying to see if the values got replaced.

Let me try to see what happens if I add the body without the tags and also via REST API.

Thanx,
Denise

View solution in original post

19 Replies 19

dekwan
Cisco Employee
Cisco Employee

Hi,

Sorry, I read your post a few times and I don't quite understand exactly where you need help on. Is it the fact that you can't use <q0:agent_id>${callVariable2}</q0:agent_id>? Or is it that nothing displays in the variable info?

I know you started the post with stating that the objective is trying to pass data through, but you also mention that the Same Call but further down Shows Variable data actually populating. Is the HTTP request setting the call variable?


Sorry for all the questions, but I would like to understand the true issue first.


Thanx,

Denise

Hey Denise,

Sorry for the confusion. The variable is not being seen on the far end... However it appears to be sent based on what I see in the logs. 

However I had noticed that if I use a format that the Mainframe team is requesting using the tags above I can't even get the call to show up on their end at all using the format provided. And I get an API error...

but if i use any other tag it appears to work fine as far as Finesse is concerned. Just not displaying the variable data on the far end.

And not as familiar with these logs as you may be so hoping you can bring some clarity.

Hi,

When you say far end, you mean the Mainframe application you are sending the data to correct?

What is the API error you get when using the format the Mainframe team is asking for?

I would recommend you reproduce the issue, and take a look at both the client and webservices logs. If it isn't too big, I can take a glance at it if you attach it here.

Thanx,

Denise

loprestid
Level 1
Level 1

Hey Denise, thanks again for your willingness to help me...

So yes "far end" = Mainframe.... In fact I was able to get the team to capture what they were receiving from Finesse.~ See below. 

POST /cics/services/GCS0011P HTTP/1.1□□Content-Type: text/xml□□X-Forwarded-For: 172.31.0.27□□X-shindig-dos: on□□Content-Length: 493□□Host: sysc.ameritas.com:8083□□Connection: Keep-Alive□□User-Agent: Apache Shindig□□Accept-Encoding: gzip, deflate□□□□<soapenv:Envelope xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header></soapenv:Header><soapenv:Body><q0:GCS0012CDATA><q0:input_fields><q0:agent_id>${callVariable2}</q0:agent_id><test>${callVariable2}</test><q0:call_num>12345</q0:call_num></q0:input_fields></q0:GCS0012CDATA></soapenv:Body></soapenv:Envelope>


So as you see it isn't populating the actual Variable Data for some reason.



And here is what I'm sending in the Body...


<soapenv:Envelope xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header></soapenv:Header><soapenv:Body><q0:GCS0012CDATA><q0:input_fields><q0:agent_id>${callVariable2}</q0:agent_id><test>${callVariable2}</test><q0:call_num>12345</q0:call_num></q0:input_fields></q0:GCS0012CDATA></soapenv:Body></soapenv:Envelope>

Here is the Log

Dropbox - Log for Cisco.txt

I didn't capture the Web Services Logs as you requested yet. I will Add a reply with those as well shortly...

Hi,

I looked at the logs you provided and it looks like the Mainframe API is returning a HTTP status of 500 (internal server error).

2017-05-03T15:34:23.581 -04:00: 057895: nelilfinesse1p.corporate.unificompanies.com: May 03 2017 14:34:23.650 -0500: Header : Executing HTTP Request Action PoP_3_Test

2017-05-03T15:34:23.582 -04:00: 057895: nelilfinesse1p.corporate.unificompanies.com: May 03 2017 14:34:23.651 -0500: Header : ------ Event queue is empty. ------

2017-05-03T15:34:23.746 -04:00: 057895: nelilfinesse1p.corporate.unificompanies.com: May 03 2017 14:34:23.815 -0500: Header : Received return code of 500 from http://sysc.ameritas.com:8083/cics/services/GCS0012P  for WorkflowAction PoP_3_Test

Response text: <SOAP-ENV:Envelope xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault xmlns=""><faultcode>SOAP-ENV:Client</faultcode><faultstring>IRZ9999S Failed to retrieve the text of a Language Environment runtime message. Verify that the Language Environment runtime message module for facility IRZ is installed in DFHRPL or STEPLIB.</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

So it looks like Finesse is trying to make the HTTP request but it is getting HTTP status of 500.

Thanx,

Denise

loprestid
Level 1
Level 1

You're awesome!!! Not sure how I missed that... Been looking at this stuff way too long lol... I will keep you posted and thanks again.

Sometimes you just need another set of eyes. I hope that thats the source of your problem!

Denise, quick question ;-) In the initial string that we see being sent to the "mainframe" all we see in the xml tags is ${callVariable2} for instance. And in the snippet of what the "mainframe" received which I provided in a previous message we see the same in the xml tags.

I'm obviously don't look at these logs enough to know if that is normal or not. but can you explain why nothing populated in the initial string? Just trying to learn how this works.

Darren

Hi Darren,

Just to make sure I understood correctly, you are asking why it is sending the string ${callVariable2} instead of the value of the callVariable2.

I looked at the client logs you attached and saw that the PoP_3_Test workflow's body is:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.GCS0012CI.com/schemas/GCS0012CIInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

                     <soapenv:Header />

                     <soapenv:Body>

                        <q0:GCS0012CDATA>

                           <q0:input_fields>

                              <q0:agent_id>\${callVariable2}</q0:agent_id>

                              <test>\${callVariable2}</test>

                              <q0:call_num>12345</q0:call_num>

                           </q0:input_fields>

                        </q0:GCS0012CDATA>

                     </soapenv:Body>

                  </soapenv:Envelope>

You had also pasted this in a previous post, but I suspect that the \ before ${callVariable2} is making it into a literal string. Can you give it a shot of removing the \?

Thanx,

Denise

That is somehow being added automatically. The \ doesn't exist in the original string.

Darren R LoPresti | Ameritas® | Sr. Voice Network Engineer

1876 Waycross Road, Cincinnati, OH 45240 | p: 513-595-2146 | darren.lopresti@ameritas.com

Interesting. Are you using the Administrator console to add the workflow? If so, are you using the call variables tags?

tags.png

I tried this on my environment by using the same http request body that you have and can see in the logs that the ${callVariable2} is being replaced with the value. The HTTP request has a different URI and obviously won't go through successfully, but I was trying to see if the values got replaced.

Let me try to see what happens if I add the body without the tags and also via REST API.

Thanx,
Denise

So I tried it originally using the method you outlined in your screenshot. And I was getting a different Error I'll test and send you those logs. I believe that was when I was getting the API Error.

So I resorted to Manually putting in the ${callVariable} in between the tags.

Ah ha! Looks like when you manually put ${callVariableX} between the tags, it makes it a literal string.

This is my workflow configuration where agent_id is manually and the test is a tag:

difftag.png

The logs show that the post body is:

<soapenv:Envelope xmlns:q0=\"http://www.GCS0012CI.com/schemas/GCS0012CIInterface\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Header></soapenv:Header><soapenv:Body><q0:GCS0012CDATA><q0:input_fields><q0:agent_id>${callVariable3}</q0:agent_id><test>alphanumeric12345</test><q0:call_num>12345</q0:call_num></q0:input_fields></q0:GCS0012CDATA></soapenv:Body></soapenv:Envelope>

where alphanumeric12345 is the value of callVariable3.

So let me know what API error you are getting when you use the tags rather than manually typing it in and we can go from there.

Thanx,

Denise

Ok so I set up another workflow so I didn't confuse the two. Doing exactly what you had suggested. Attached is the screenshot and the logs.

Alternative Test 2.png

New Logs

Dropbox - Cisco_Log_5_4_17.txt

From the logs it appears to not have the \  but I still don't see the data populate it's just the code... Is this the way it's supposed to look like?

I'm getting back a 504 error this time.