全局函数在预览中有效,但在代码为 运行 时失败
Global function works in preview but fails when code is run
我有一个名为 'finalPrice' 的全局函数,它在我的 configuration.xml 文件中定义。
该函数接受一个值 - 对其进行处理 - returns 最终值。我从 DataWeave 中引用该函数。当我单击 'preview' 时,我可以在预览 window 中看到正确的输出。但是,当我 运行 它时,我收到错误消息:
消息:执行时出现异常:
没有名为 'finalPrice' 的变量。
我在本地计算机和 CloudHub 中有 运行 代码,我得到了相同的结果
XML代码:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
<!-- This function is called by the 'Validate and Transform' dataweave component in the 'main' flow-->
def finalPrice(incoming_value)
{
import java.lang.String;
import java.math.RoundingMode;
// Do Stuff
return strFinalNumber;
}
</global-functions>
</expression-language>
</configuration>
DataWeave 代码:
//Refer to "finalPrice" Global Function in the main.xml configuration file
DB_FINL_PRCE: "field_missing" when payload01.DB_FINL_PRCE == "" otherwise finalPrice(payload01.DB_FINL_PRCE)
感谢任何帮助
全局函数中的注释有问题。所以删除或修改行:
<!-- This function is called by the 'Validate and Transform' dataweave component in the 'main' flow-->
并且只有:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def finalPrice(incoming_value)
{
import java.lang.String;
import java.math.RoundingMode;
// Do Stuff
return strFinalNumber;
}
</global-functions>
</expression-language>
</configuration>
或将您的评论修改为//
<configuration doc:name="Configuration">
<expression-language autoResolveVariables="true">
<global-functions>
//This function is called by the 'Validate and Transform' dataweave component in the 'main' flow
def finalPrice(incoming_value)
{
// Do Stuff
return "somethingelse";
}
</global-functions>
</expression-language>
</configuration>
我有一个名为 'finalPrice' 的全局函数,它在我的 configuration.xml 文件中定义。 该函数接受一个值 - 对其进行处理 - returns 最终值。我从 DataWeave 中引用该函数。当我单击 'preview' 时,我可以在预览 window 中看到正确的输出。但是,当我 运行 它时,我收到错误消息:
消息:执行时出现异常:
没有名为 'finalPrice' 的变量。
我在本地计算机和 CloudHub 中有 运行 代码,我得到了相同的结果
XML代码:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
<!-- This function is called by the 'Validate and Transform' dataweave component in the 'main' flow-->
def finalPrice(incoming_value)
{
import java.lang.String;
import java.math.RoundingMode;
// Do Stuff
return strFinalNumber;
}
</global-functions>
</expression-language>
</configuration>
DataWeave 代码:
//Refer to "finalPrice" Global Function in the main.xml configuration file
DB_FINL_PRCE: "field_missing" when payload01.DB_FINL_PRCE == "" otherwise finalPrice(payload01.DB_FINL_PRCE)
感谢任何帮助
全局函数中的注释有问题。所以删除或修改行:
<!-- This function is called by the 'Validate and Transform' dataweave component in the 'main' flow-->
并且只有:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def finalPrice(incoming_value)
{
import java.lang.String;
import java.math.RoundingMode;
// Do Stuff
return strFinalNumber;
}
</global-functions>
</expression-language>
</configuration>
或将您的评论修改为//
<configuration doc:name="Configuration">
<expression-language autoResolveVariables="true">
<global-functions>
//This function is called by the 'Validate and Transform' dataweave component in the 'main' flow
def finalPrice(incoming_value)
{
// Do Stuff
return "somethingelse";
}
</global-functions>
</expression-language>
</configuration>