SAP B1IF来自previos SQL Call的变量始终为空,尽管它具有值

时间:2017-01-13 05:53:23

标签: integration sap sapb1

我对B1IF很新,我有这个奇怪的问题,我相信你们可以帮助我:

我正在开发一个Scenario步骤,我需要执行SQL调用,然后将该结果放入一个变量中,以便在另一个SQL调用中使用它。当我进行XSL转换时,这是正常工作并打印正确的值:

<vDocFROMSAPCardCode>
<xsl:value-of select="/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom9']/jdbc:ResultSet/jdbc:Row/jdbc:CardCode"></xsl:value-of>
</vDocFROMSAPCardCode2>

这将打印该值,但是如果我尝试将其分配给名为vFROMSAPCardCode的本地变量:

/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom20']/vDocFROMSAPCardCode2

永远是空的。我需要在另一个查询中使用该查询的结果,但总是空白,尽管逻辑接缝没问题。

SELECT T0."DocNum", T0."DocEntry", T0."CardCode", T0."NumAtCard"  FROM ORDR T0 WHERE T0."CardCode" =  '$vFROMSAPCardCode' 

有谁知道我在这里失踪了什么?或者如何将先前查询的结果用于另一个查询?

顺便说一句。

atom9原始查询是否正常

atom20是执行查询后的XSL转换。

1 个答案:

答案 0 :(得分:1)

您可以在 xslt 中为变量赋值,声明变量并在 'select' 属性中赋值:

<xsl:variable name="vFROMSAPCardCode" select="/vpf:Msg/vpf:Body/vpf:Payload[./@id=&apos;atom9&apos;]/jdbc:ResultSet/jdbc:Row/jdbc:CardCode"></xsl:variable>

您也可以直接使用另一个 qry 中的值,方法是放置 'xsl:value-of' 而不是变量(它可以在 xslt atom 中完成,然后您可以将 xPath 放入 sql 调用中,如 {{3 }}回答)

SELECT T0."DocNum", T0."DocEntry", T0."CardCode", T0."NumAtCard"  FROM ORDR T0 WHERE T0."CardCode" =
<xsl:value-of select="/vpf:Msg/vpf:Body/vpf:Payload[./@id=&apos;atom9&apos;]/jdbc:ResultSet/jdbc:Row/jdbc:CardCode"></xsl:value-of>

(如果您需要将值转换为字符串,请使用 &apos; 而不是 ' )