BizTalk Mapping:仅当存在有效子记录时显示父记录的实现
BizTalk Mapping 正确配置方案
针对仅在存在有效子记录时生成父记录ns0:POAllowAndCharges的需求,可通过以下步骤配置映射:
步骤1:筛选有效子记录
- 依据业务规则(比如字段非空、符合数值范围等),用
Logical Functoid(如Is Not Empty、Greater Than)或Scripting Functoid编写脚本,判断源子记录是否有效。 - 将判断结果连接到目标子记录的「Target Node Existence」属性,确保只有符合条件的子记录被映射到输出。
步骤2:控制父记录的生成
- 拖拽
Exists Functoid到映射画布,把筛选后的有效子记录节点连接到该Functoid的输入端口。 - 选中目标父记录ns0:POAllowAndCharges,在属性窗口找到「Target Node Existence」,将
Exists Functoid的输出连接到这个属性。- 此配置的作用是:仅当存在至少一条有效子记录时才生成父记录;无有效子记录时,父记录不会出现在输出中。
步骤3:关联父与子记录
- 将筛选后的源有效子记录直接映射到父记录ns0:POAllowAndCharges下的对应子节点,确保父记录不直接关联源子记录的循环节点,避免父记录随子记录重复生成。
关键注意事项
- 禁止直接将源父/子记录映射到目标父记录,必须通过
Exists Functoid控制父记录的存在性。 - 子记录的有效性判断要精准,确保只有符合业务要求的记录才会被
Exists Functoid计数。
内容的提问来源于stack exchange,提问作者armysgt97
相关产品推荐
相关产品推荐

