我对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转换。
答案 0 :(得分:1)
您可以在 xslt 中为变量赋值,声明变量并在 'select' 属性中赋值:
<xsl:variable name="vFROMSAPCardCode" select="/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom9']/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='atom9']/jdbc:ResultSet/jdbc:Row/jdbc:CardCode"></xsl:value-of>
(如果您需要将值转换为字符串,请使用 '
而不是 ' )