Mule ESB DataMapper:替换输入'&'用'/'并将其分配给输出

时间:2015-07-22 05:45:33

标签: mule mule-studio

我有一个Mule ESB项目,我以JSON格式获取数据并将其转换为CSV。在转换过程中,我想要替换'&'在其中一个属性中为'/'。我尝试了以下方法:

output.Department = input.department.replace('&', '/');

但是mule会抛出以下错误:

output.Department = input.department.replace('&', '/');" failed. (org.mule.api.expression.ExpressionRuntimeException)
org.mule.el.mvel.DataMapperExpressionLanguage:71 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/expression/ExpressionRuntimeException.html)
4. Message: Transform failed! (org.jetel.exception.TransformException)
org.jetel.component.DataRecordTransform:132 (null)

我也尝试了以下变体,但所有这些变体都失败并显示相同的错误消息:

output.Department = input.department.replace("&", "/");

编辑:输入字段“部门”的值将如下所示:'应用程序&开发团队'。目标系统不接受'&'并且'为什么我们需要将其更改为'/',以便输出值看起来像'应用程序/开发团队'。

我的环境是Windows 7,带有Mule ESB EE 3.6.2运行时的Anypoint Studio 5.1.2,我在Studio中运行它。有关如何用斜线('/')替换&符号的想法吗?

1 个答案:

答案 0 :(得分:1)

这个表达对我有用。失败的唯一原因是department为空。添加空检查:

output.Department = isnull(input.department) ? input.department : input.department.replace('&', '/');