3rd VSI Selector Sending Meta Response

Document ID : KB000123498
Last Modified Date : 21/12/2018
Show Technical Document Details
Issue:
We split large VSI's and I added a 3rd response selector to my vsm. I am able to get correct responses ffrom the first 2 response selectors but the 3rd sends meta responses (which I shouldn't be receiving). 
Resolution:
The response we are getting for the transaction POST /api/search/ is from the D44_4_2.vsi instead of D44_4_3.vsi. 

The reason for getting the response from D44_4_2.vsi is "Ensure Result contains string" assertion is failing. 

As you know the lisa.vse.response is in Transient form and when there are more than one lisa.vse.response (in your VS, you have responses from D44_4_2.vsi and D44_4_3.vsi also) is there the Transient response becomes a list and responses shows as below: 

<list> 
<TransientResponse xmlns="http://www.ca.com/com/itko/lisa/vse/stateful/model/v1.0"> 
<id>0</id> 
<binary>false</binary> 
<charset>UTF-8</charset> 
<metaData> 
<p key="HTTP-Version">HTTP/1.1</p> 
<p key="HTTP-Response-Code">200</p> 
<p key="HTTP-Response-Code-Text">OK</p> 
<p key="Content-Type">application/json; charset=utf-8</p> 
<p key="Content-Length">536</p> 
<p key="Connection">keep-alive</p> 
<p key="X-Powered-By">Express</p> 
<p key="Access-Control-Allow-Origin">*</p> 
<p key="ETag">W/&quot;218-hWS0/MhWZjquIodc3HC5FwmX7j0&quot;</p> 
<p key="Vary">Accept-Encoding</p> 
<p key="Date">{{=httpNow()}}</p> 
<p key="NoMatch">True</p> 
</metaData> 
<body> 
<bodyAsString>[{&quot;id&quot;:&quot;e29b0d57-09c3-4548-86b5-d755d5d91fc2&quot;,&quot;confCode&quot;:&quot;e29b0d57&quot;,&quot;applicationType&quot;:&quot;ID&quot;,&quot;name_first&quot;:&quot;social&quot;,&quot;name_middle&quot;:&quot;fifth&quot;,&quot;name_last&quot;:&quot;required&quot;,&quot;name_suffix&quot;:&quot;&quot;,&quot;idNumber&quot;:&quot;{{=request_idNumber;/*I9600970*/}}&quot;,&quot;dateOfBirth&quot;:&quot;{{=doDateDeltaFromCurrent(&amp;quot;yyyy-MM-dd&amp;quot;,&amp;quot;-17729D&amp;quot;);/*1970-02-15*/}}&quot;,&quot;addresses_currentResidence_city&quot;:&quot;sacramento&quot;}]</bodyAsString> 
</body> 
<unknown>false</unknown> 
<thinkTimeSpec>375</thinkTimeSpec> 
</TransientResponse> 
</list> 


From the above, meta data shows <p key="NoMatch">True</p> instead of "NoMatch=True" in the response and assertion is failing which causes the response sent from D44_4_2.vsi. 

We changed the "Ensure Result contains string" assertion to look for "NoMatch" then the assertion returned true and transaction match happened in D44_4_3.vsi. 

We sent a request from SoapUI and was able to get this to work.

In the saved the ITR so you can see what we are seeing as well as captured the SOAPUI call. 

Transient response is what we call responses from the VSE, they are in a certain format. 

When we ran through the IT, we could see the response from the D44_4_2 step coming back in a slightly different format. 

It you look in the ITR, the response from that step was showing, <p key="NoMatch">True</p>, instead of "NoMatch=True" in the response, so the assertion is failing. 

Iif you needed an additional VSI, you would have to change the assertion on D44_4_3 to just look for NoMatch.