记录计数 functoid 返回非平展目标消息的聚合计数
我尝试使用 Record Count functoid 将本身出现 0 的记录的子记录数映射到无界消息,其中每个记录都包含一个保存子记录数的字段:
root+ +root
| |
+foo+ +foo+
| |
+bar+ -RecordCount- barcount
|
+xyz
但是我当前的地图聚合了所有 bar
记录的计数,并在每个 foo\barcount
中返回它。
示例源消息
<root>
<foo>
<Id>1</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
<foo>
<Id>2</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
</root>
...结果是
<root>
<foo>
<Id>1</Id>
<barcount>4</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>4</barcount>
</foo>
</root>
...而我预期
<root>
<foo>
<Id>1</Id>
<barcount>2</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>2</barcount>
</foo>
</root>
I tried to use the Record Count functoid to map the number of sub-records of an record that itself occurs 0 to unbounded to a message with each record containing a field holding the number of sub-records:
root+ +root
| |
+foo+ +foo+
| |
+bar+ -RecordCount- barcount
|
+xyz
However my current map aggregates the count of all bar
records and returns it in every foo\barcount
.
Sample source message
<root>
<foo>
<Id>1</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
<foo>
<Id>2</Id>
<bar>
<xyz />
</bar>
<bar>
<xyz />
</bar>
</foo>
</root>
... and the result is
<root>
<foo>
<Id>1</Id>
<barcount>4</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>4</barcount>
</foo>
</root>
... whereas I expected
<root>
<foo>
<Id>1</Id>
<barcount>2</barcount>
</foo>
<foo>
<Id>2</Id>
<barcount>2</barcount>
</foo>
</root>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过将记录计数 functoid 替换为调用 XSLT 模板脚本 functoid 解决了这个问题。
XSLT 模板如下所示:
脚本 functoid 的输入是来自
foo
的Id
字段。I solved this issue by replacing the Record Count functoid with a Call XSLT Template Scripting functoid.
The XSLT template looks like this:
and the input to the scripting functoid is the
Id
field fromfoo
.