全局函数在预览中有效,但在代码为 运行 时失败

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>