#anypoint-studio #dataweave #cloudhub #mulesoft
#anypoint-studio #dataweave #cloudhub #mulesoft
Вопрос:
У меня есть глобальная функция с именем ‘finalPrice’, которая определена в моем configuration.xml досье. Функция принимает значение — выполняет с ним какие-то действия — и возвращает конечное значение. Я ссылаюсь на функцию из DataWeave. Когда я нажимаю «предварительный просмотр», я вижу правильный вывод в окне предварительного просмотра. Однако, когда я запускаю его, я получаю сообщение об ошибке:
Сообщение: исключение при выполнении:
Нет переменной с именем ‘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>
Код сохранения данных:
//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)
Любая помощь приветствуется
Ответ №1:
Это проблема с комментариями в глобальных функциях. Поэтому удалите или измените строку:
<!-- 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>
Комментарии:
1. Большое вам спасибо