当前位置: 首页 > 知识库问答 >
问题:

mule中的dataweave 1.0到2.0迁移

乌灿
2023-03-14

尝试将下面的dataweave从1.0转换为2.0,但我尝试的所有内容都会出现以下错误,例如

SkipNullon显示错误

不接受使用命名空间,

@PostalCode[0..4]无效,并且

无法使用insuredPrimaryAddr访问insuredInfo中的值。

数据编织1.0:

%dw 1.0
%output application/xml skipNullOn="everywhere"
%var insuredInfo = payload.DTOApplication.DTOInsured
%var insuredPrimaryAddr = insuredInfo.*PartyInfo[?($.@PartyTypeCd == "InsuredParty")].*Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0]
%namespace ns0 http://decisionresearch.com/RateMaker
---
ns0#rate:{
    ns0#code:insuredPrimaryAddr,
    ns0#ZipCode: payload..Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0].@PostalCode[0..4] default ""
}

我尝试了Dataweave 2.0:

%dw 2.0
output application/xml skipNullOn="everywhere"
var insuredInfo = payload.DTOApplication.DTOInsured
var insuredPrimaryAddr = insuredInfo.*PartyInfo[?($.@PartyTypeCd == "InsuredParty")].*Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0]
namespace ns0 http://decisionresearch.com/RateMaker
---
ns0#rate:{
    ns0#code:insuredPrimaryAddr,
    ns0#ZipCode: payload..Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0].@PostalCode[0..4] default ""
}

有效载荷:https://github.com/Manikandan99/rate-dtostep/blob/master/response.xml

关于如何在dataweave 2.0中编写相同的内容,请提供任何想法?

共有1个答案

端木震博
2023-03-14

在dataweave 2.0中,我们使用运算符进行数组索引。

%dw 2.0
output application/xml skipNullOn="everywhere"
var insuredInfo = payload.DTOApplication.DTOInsured
var insuredPrimaryAddr = insuredInfo.*PartyInfo[?($.@PartyTypeCd == "InsuredParty")].*Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0]
ns ns0 http://decisionresearch.com/RateMaker
---
ns0#rate:{
    ns0#code:insuredPrimaryAddr,
    ns0#ZipCode: payload..Addr[?($.@AddrTypeCd == "InsuredPrimaryBusAddr")][0].@PostalCode[0 to 4] default ""
}

输出

<?xml version='1.0' encoding='windows-1252'?>
<ns0:rate xmlns:ns0="http://decisionresearch.com/RateMaker">
  <ns0:ZipCode>80003</ns0:ZipCode>
</ns0:rate>
 类似资料:
  • 我已经开始与演员一起工作,并遵循入门指南中提到的一个简单的例子。 名称:=“Pracakka” scalaVersion:=“2.9.2” 解析器+=“TypeSafe Repository”(位于“http://repo.typesafe.com/typesafe/releases/”)

  • 问题内容: 我正在使用JSF 1.2编写的大型应用程序。JSF 1.2大约已有6年历史了。我需要升级到JSF 2.0。这将有多痛苦?我注意到自定义标签中的某些属性已更改等。 问题答案: Painfulness 将JSF 1.2升级到2.0的痛苦程度取决于你当前正在使用以及要使用的视图技术。 从JSP 2.x到JSP 2.x =几乎无需付出任何努力。 从Facelets 1.x到Facelets 2

  • 在我的例子中,我正在从Mule 3迁移到Mule 4。 在Mule 4中,xml转换不支持xpr文件。 所以我把xpr文件转换成了dataweave 2.0。 大多数逻辑都已解决,但我不知道如何更新DTOSteps值和DTOCoverage.@FullTermAmt=完整TermAmts。 骡子 3 经验值: https://github.com/Manikandan99/XPR_conversi

  • 迁移包括以下部分: MIP 核心库迁移 将站点引用的 mip.js 和 mip.css 版本由 1.0 修改为 2.0。MIP 核心库 2.0 版本完全兼容 1.0 版本,开发者可放心升级。具体做法如下: mip.js 文件迁移 将站点中的所有如下引用: <script src="https://c.mipcdn.com/static/v1/mip.js"></script> 改为: <scrip

  • 嗨,我正在尝试升级到wagtail 2.0。我已经处理了一系列错误,但我无法克服迁移时出现的错误: 非常感谢任何帮助 谢谢 提姆 完全控制台错误: (wagtail-isa) MacBook-Air:wagtailcmsdemo tim$ ./manage.py makemigrations Traceback(最近一次调用最后一次):文件“./manage.py”,第 10 行,在 execut

  • 你能帮助我们哪里错了或者需要做什么吗… 提前感谢…