在ESQL中为DFDL PARSER分配值时发生串行错误

时间:2015-06-11 13:55:36

标签: ibm-mq messagebroker dfdl

获取序列化错误

IIB 9和Websphere MQ

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

我有一个带有一个强制段的dfdl,另外三个是非强制段。

在非强制性细分中,我有这种类型的树结构。

ROOT     SEGMENT 1         部件1         元素2         元素3         元素4         元素5     SEGMENT 2         部件1         元素2         元素3         元素4     SEGMENT 2         部件1         元素2         元素3         元素4

考虑第二个SEGMENT2>> ELEMENT2没有填充。如果我想使用ESQL在ESQL中添加ELEMENT2,我将收到序列化错误。

CASE:我可以通过为ELEMENT1创建NEXSIBLING字段来为ELEMENT2分配值。

创建REF_SEGMENT类型的新线名称NAMESPACE NS NAME' FIELD的名称&#39 ;;

这里我正在创建ELEMENT1的下一个兄弟,所以我可以创建ELEMENT2,以便我可以为ELEMENT 2分配值。但是当ELEMENT 1和ELEMENT 3为空时我面临的问题

我无法将ELEMENT2创建为NEXTSIBLING或PREVIOUSSLING。

我们有CREATE FIELD函数,但它在逻辑树结构的END处添加元素。所以尝试也失败了。

CREATE FIELD OutputRoot.XMLNS.TestCase.description TYPE NameValue VALUE'这是我的TestCase';

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

1 个答案:

答案 0 :(得分:0)

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

  • SET OutputRoot.DFDL.ROOT.SEGMENT2 [2] .ELEMENT2 =' test';
  • 创建OutputRoot.DFDL.ROOT.SEGMENT2 [2] NAME' ELEMENT2' VALUE' test';
但是,必须先创建SEGMENT1和第一个SEGMENT2(OutputRoot.DFDL.ROOT.SEGMENT2 [1])。