BizTalk-将具有父子关系的源映射到平面目标

BizTalk-将具有父子关系的源映射到平面目标,biztalk,biztalk-2009,biztalk-mapper,Biztalk,Biztalk 2009,Biztalk Mapper,我见过关于亲子关系的问题,但它并不完全相同,因为我没有什么可标记的 我有一个类似这样的源平面文件 Location Route Prod Company Date Amount XXX RT00008 UT COMPANY1 20110926 3 XXX RT00008 UT COMPANY1 20110927 1 XXX RT00008 UT COMPA

我见过关于亲子关系的问题,但它并不完全相同,因为我没有什么可标记的

我有一个类似这样的源平面文件

Location Route Prod Company Date Amount XXX RT00008 UT COMPANY1 20110926 3 XXX RT00008 UT COMPANY1 20110927 1 XXX RT00008 UT COMPANY1 20110928 1 XXX RT00008 UT COMPANY1 20110929 1 XXX RT00008 UT COMPANY1 20110930 1 XXX RT00171 SPW COMPANY2 20110928 1 XXX RT00171 UT COMPANY2 20110926 1 XXX RT00171 UT COMPANY2 20110927 1 XXX RT00171 UT COMPANY2 20110928 1 地点路线产品公司日期金额 XXX RT00008 UT公司1 20110926 3 XXX RT00008 UT公司1 20110927 1 XXX RT00008 UT公司1 20110928 1 XXX RT00008 UT公司1 20110929 1 XXX RT00008 UT公司1 20110930 1 XXX RT00171 SPW公司2 20110928 1 XXX RT00171 UT公司2 20110926 1 XXX RT00171 UT公司2 20110927 1 XXX RT00171 UT公司2 20110928 1 这是杀手,对于路线、产品和公司的每一个独特组合,我需要一个记录,并填写一周中的天数。例如,前面的示例应该映射到输出中的3个单独的行中

Loc, Route, Pr, Company, Sun, Mon, Tues, Wed, Thur, Fri, Sat XXX, RT00008, UT, COMPANY1, 0, 3, 1, 1, 1, 1, 1 XXX, RT00171, SPW, COMPANY2, 0, 0, 0, 1, 0, 0, 0 XXX, RT00171, UT, COMPANY2, 0, 1, 1, 1, 0, 0, 0 Loc、路线、Pr、公司、太阳、星期一、星期二、星期三、星期四、星期五、星期六 三十、 RT00008,UT,公司1,0,3,1,1,1,1,1,1 三十、 RT00171,SPW,公司2,0,0,0,1,0,0,0,0 三十、 RT00171,UT,公司2,0,1,1,1,0,0,0 现在我的问题是,有没有一种方法可以在没有XSLT的情况下做到这一点?可以在一个或多个系列的贴图中使用functoid来完成吗?似乎“表循环”functoid是针对这种情况定制的,是否可以反向执行?如果只能使用XSLT来完成,那么我还不知道该如何做呢


谢谢你的帮助

我为平面文件创建了两种模式表示(不是平面文件模式,但它们足以用于演示)

我从一个biztalk映射开始,该映射将在第一天为给定的公司、路线和产品组合填充适当的值。我转到xsl,允许它在已标识组合的集合中循环,以填充已标识组合的所有日期

最好加载随模式和xsl一起提供的.btm,看看我做了什么。我可以解释任何不清楚的事情

也许值得注意的是,你可以整理解决方案,但我希望它能给你一个指针

需要注意两点:“day”节点仅在该天存在值时创建。您可以在xsl中对此进行更改。 而且,我使用了一个有效的日期时间来测试(例如26-09-2011),所以在确定日期是星期几时,您必须解析日期

第一个模式:


第二种模式:


BizTalk映射:


密钥列表=
新建System.Collections.Generic.List();
public void init(){}
]]>