Ibm mq 在ESQL中为DFDL解析器赋值时获取序列化错误

Ibm mq 在ESQL中为DFDL解析器赋值时获取序列化错误,ibm-mq,messagebroker,dfdl,Ibm Mq,Messagebroker,Dfdl,获取序列化错误 iib9和webspheremq 我有一个示例消息流。使用MQInput节点、Compute节点、Mqoutput节点和DFDL 我有一个dfdl,其中一个是强制段,另外三个是非强制段 在非强制段中,我有这种类型的树结构 根 第1部分 要素1 元素2 元素3 元素4 元素5 第2部分 要素1 元素2 元素3 元素4 第2部分 要素1 元素2 元素3 元素4 考虑第二个SEGMENT2>>元素2未填充。如果我想使用ESQL在ESQL中添加ELEMENT2,我会遇到序列化错误 案例

获取序列化错误

iib9和webspheremq

我有一个示例消息流。使用MQInput节点、Compute节点、Mqoutput节点和DFDL

我有一个dfdl,其中一个是强制段,另外三个是非强制段

在非强制段中,我有这种类型的树结构

根 第1部分 要素1 元素2 元素3 元素4 元素5 第2部分 要素1 元素2 元素3 元素4 第2部分 要素1 元素2 元素3 元素4

考虑第二个SEGMENT2>>元素2未填充。如果我想使用ESQL在ESQL中添加ELEMENT2,我会遇到序列化错误


案例:我可以通过创建字段作为ELEMENT1的Nexibling来为ELEMENT2赋值

创建REF_段类型名称命名空间NS Name“字段名称”的下一个sibling; 在这里,我创建了ELEMENT1的下一个兄弟,这样我就可以创建ELEMENT2,这样我就可以为ELEMENT2赋值。但当元素1和元素3为空时,我面临的问题是

我无法将ELEMENT2创建为NEXTSIBLING或PREVIOUSSIBLING

我们有createfield函数,但它在逻辑树结构的末尾添加元素。因此,尝试也失败了

创建字段OutputRoot.XMLNS.TestCase.description类型NameValue值“这是我的测试用例”


注意:没有更改DFDL的选项。我们对其他接口使用相同的DFDL。唯一的方法是ESQL。

我假设ELEMENT1和ELEMENT2是两个不同的字段,具有这些名称。 在这种情况下,即使没有首先创建ELEMENT1,您也应该能够执行以下任一操作来创建ELEMENT2:

  • 设置OutputRoot.DFDL.ROOT.SEGMENT2[2]。ELEMENT2='test'
  • 创建OutputRoot.DFDL.ROOT.SEGMENT2[2]名称'ELEMENT2'值'test'的最后一个子项
但是,必须先创建段1和第一个段2(OutputRoot.DFDL.ROOT.SEGMENT2[1])