MySQL return string

Hi all - a very good morning, another day and another issue. I want to return a SQL statement result return string to a soap server.

But no success till so far. I can receive a message from SQL in my debug node, that's it. I already checked the info status but nope. I know that the result is stored in msg. payload. I take care of it but the soapserver out gives me:

19 Feb 11:47:37 - [warn] [soapserverResponse:UIT] No previous soap server found for a soap server response.

What do you think that error means?

thats clear but i connect with soapui as test. so there is a soapserver

where? when? how? in the same flow? with what settings? what node are you using? what version of NR and node.js?

You really haven provided much information for someone to help you.

sorry, it is in the same flow (see picture)

node -v gives v13.8.0

(If you want help, it is a good idea to answer ALL the questions someone asks so as to not waste their time having to ask the same question again.)

  1. your node.js version is bleeding edge, and may cause nodes not to work or work with unexpected results. You should revert to version 12.x
  2. 'it is in the same flow' doesn't tell me anything since you don't refer to a previous flow.
  3. a picture of a flow doesn't tell me what node you are using for the soap interaction
  4. a picture of a flow doesn't show what settings you are using.
  5. once again, what version of NR are you running?
2 Likes

Hi, back again.

I am using NR version 13.8.0. The flow does the following:

soapserver waits for a question from a communication server
does something with the msg and sends the result to a mysql db
a statement is formed, depending on the received msg, and the sql statement is executed
the result from the execution is send to a debug and soapserver (receiving part) node.

The debug node shows me the original message (payload and topic (result) I reformat the topic into json and send it to the soapserver (receiving part) show it can send the result to the communication server. The the error occurs:

No previous soap server found for a soap server response.

You said the NR version is of the bleeding edge kind. Are you sure that that is a reason for the error?

Regards

I have never used soapserver but I imagine the error means that the message you send as the response should include some information that you received with the original request, and that this information has got lost along the way somewhere. Send the message you get from from the server to a debug node configured to show Complete Message to see what it contains. Probably one of the nodes along the way has removed it from the message.

No you are not. It is currently at 1.0.3.
Possibly you mean that is the version of nodejs. As @zenofmud said nodejs 13.x is not recommended, you would be better to revert to version 12.x though this may not be the cause of the problem. Please try and answer all the points raised by @zenofmud, if you don't understand what is meant then ask.

Hi, downgraded to 12.6 and did a reinstall of all the needed and necessary packages but still no reaction. A 1:1 connection (node soapserver request to soapserver response works, but as soon as I install extra nodes between them it s...cks. Somebody the golden egg tip?

There is probably some property on the incoming msg that needs to be preserved to send back, that is getting dropped or stripped on the way through... Add a debug set to show complete message at start - and then likewise trace through till you find something missing.

I don't think so. I copied the end msg to a debug node and the result is just what I expected. When I use the response soapserver instead of the debug node I got the mentioned error. Or...... is there meta info I missed (stored in the received msg but not used in the response msg. Is that a possibility?)

I recommend you create the msg.object you need to send to your SOAP API, and then inject that object into your SOAP node and get that working "Hello Soap API World" style, decoupled from the rest of the flow.

When you have "Hello Soap API World" working, then match the msg.object out of your earlier flow to the working "Hello Soap API World" object, and you should be good to go, as they say.

1 Like

good idea, I try it and let you know

helas, it doesn't work. What I want to do is the following:

a remote commserver sends me a soap request for a patient inquiry
therefore I created a soapserver node, some other nodes for the inquiry job and a soap node for the result
the result must be send back to the commserver.

As soon as a add one single node between soap in and soap out I got the error message :slight_smile:
"No previous soap server found for a soap server response."

What am I not doing as it should be?

What type of node are you adding?

[Edit] Use debug nodes set to Show Complete Message to see what the difference between the messages before and after that node are.

Hi, these nodes are between both soap nodes:


and I used, on several places a debug node with the following test results:

4-3-2020 13:41:15node: DEBUG Imsg.payload : array[2]
[ "SingleInsert", "insert into fhir2020.pinoss ( …" ]
4-3-2020 13:41:15node: DEBUG IImsg.payload : string[12]
"SingleInsert"
4-3-2020 13:41:15node: DEBUG IImsg.payload : string[56]
"insert into fhir2020.pinoss ( _digid) values (37787878);"
4-3-2020 13:41:15node: DEBUG IIImsg.payload : string[12]
"SINGLEINSERT"
4-3-2020 13:41:15node: DEBUG IIImsg.payload : string[56]
"INSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878);"
4-3-2020 13:41:15node: DEBUG IVmsg.payload : array[2]
[ "SINGLEINSERT", "INSERT INTO FHIR2020.PINOSS ( …" ]
4-3-2020 13:41:15node: DEBUG Vmsg.payload : array[2]
[ "SINGLEINSERT", "INSERT INTO FHIR2020.PINOSS ( …" ]
4-3-2020 13:41:15node: DEBUG VIINSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878); : msg.payload : array[2]
[ "SINGLEINSERT", "INSERT INTO FHIR2020.PINOSS ( …" ]
4-3-2020 13:41:15node: DEBUG VIIINSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878); : msg.payload : Object
{ fieldCount: 0, affectedRows: 1, insertId: 25, serverStatus: 2, warningCount: 0 … }
4-3-2020 13:41:15node: DEBUG VIIIINSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878); : msg.payload : Object
{ fieldCount: 0, affectedRows: 1, insertId: 25, serverStatus: 2, warningCount: 0 … }
4-3-2020 13:41:15node: 1e344b3a.cb81a5msg : string[57]
"No previous soap server found for a soap server response."
4-3-2020 13:41:15node: DEBUG IXINSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878); : msg.payload : string[73]
"INSERT INTO FHIR2020.PINOSS ( _DIGID) VALUES (37787878); --> Statement ok"

Regrds

You said you only needed one node to do it. Concentrate on that case initially till you understand what the problem is.

What type of node it that ? If it's a function node - what does it do ?

Also note that I said to set the debug node to Show Complete Message. Inspect the message direct from from soap input node and see what properties it has. You are probably losing one or more of those on the way through and that is why the soap output doesn't know what to do with it.