cancel
Showing results for 
Search instead for 
Did you mean: 

B1iF synchronous call step does not return result/payload

paolo_bolliger2
Explorer
0 Kudos

Hi all,

My intension is to use the "call step" atom like a function.

Referencing help: Call another step synchronously, processing only the processing phase of the step and returning the result to the call atom.

I expect to get back a result/payload, but there is nothing.

Any ideas?

kind regards

Paolo

PierreBrothier
Contributor
0 Kudos

Hi Paolo,

Have you tried the "test" function in the main scenario ? Just to see if there's no error and have details about incoming payload.

paolo_bolliger2
Explorer
0 Kudos

Hi Pierre,

Yes. I did. Everything runs smootly so far. The called step processes the message as expected. The payload of its atom0 looks like this: <LogEntry>19</LogEntry> ,but is not returned to the main scenario for later use.

The first question is: is there a return possible at all? If yes, then how to do it?

Thanks

Paolo

radekkowal
Explorer
0 Kudos

Hi Paolo,

Maybe try to wrap the result into the XML node:

   <xsl:template name="transform">
        <xsl:attribute name="pltype">xml</xsl:attribute>
        <singleOperationResult>
           <LogEntry>19</LogEntry>
        </singleOperationResult>
    </xsl:template>

Later, i.e. in the step which calls inner step synchronously, you can refer to the result like:

    <xsl:template name="transform">
        <xsl:copy-of select="//singleOperationResult"></xsl:copy-of>
    </xsl:template>

At least the above works for me.

Also make sure that your inner step is activated in the setup. Inbound type of my inner step is Internal Queue and outbound is Void.

Hope it helps.

BR,

Radek

Accepted Solutions (0)

Answers (1)

Answers (1)

PierreBrothier
Contributor
0 Kudos

Hi,

so yes it's possible. I've made a try and it works.

So basically,

One main step, in the first transforming atom, i define a single node

 <xsl:template name="transform">
        <noeud>10</noeud>
    </xsl:template>

Passing the the atom to the sub step

the substep contains only a simple transformation

<xsl:template name="transform">
        <xsl:attribute name="pltype">xml</xsl:attribute>
        <outputNode>
            <inputNode>
                <xsl:copy-of select="/vpf:Msg/vpf:Body/vpf:Payload/noeud"></xsl:copy-of>
            </inputNode>
            <isDone>Ok</isDone>
        </outputNode>
    </xsl:template>

Don't forget to define inbound and outbound for the substep, to validate the step.

When i ran the test, the output is ok

paolo_bolliger2
Explorer

Hi Pierre, Hi Radek

Thank you for your help. Your solutions are working. Basically I did the same, but for an unknown reason my substep didnt return any payload. I redesigned the step, and now it working too.

kind regards

Paolo