我正在研究一个中等复杂的平面文件模式,我遇到了一个曲线球。这是输入的样子:
BCT121,C,7.35,6.5,0.39,7216,"SMITH, TRACEY",13456321,CLASS DRESSMAKING SHOPPE,CLASS DRESSMAKING SHOPPE,VAN,BC,20090109,20090112,20090127,V,0.46, BCT121,C,14.7,13.01, 0.78,7216,"SMITH, TRACEY",13456321,CLASS DRESSMAKING SHOPPE,CLASS DRESSMAKING SHOPPE,VAN,BC,20090110,20090112,20090127,V,0.91,BCT121,C,60.27,53.34,3.2,5812,"SMITH, TRACEY ",13456321,ME-N-ED'S PIZZA PARLORS,ME-N-ED'S PIZZA PARLORS,VAN,BC,20090110,20090112,20090127,V,3.73, BCT121,C,201.56,179.96,0,5200,”SMITH, TRACEY ",13456321,家得宝#7145,家得宝#7145,VAN,BC,20090110,20090112,20090127,V,21.6,REF.#^1^
好的,所以客户端想要的输出如下:
每个人/卡号有 1 个名为 PRQT 的标题行,上面的每个交易都有一个行。所以对于 Tracy,我们将有 1 个 PRQT 行和 4 个 PRLN 行,它们是交易详细信息。所以它看起来像一些东西像:
PRQT、SMIT6321、13456321、详情、详情等
PRLN、SMIT6321、7.35、6.5等
PRLN、SMIT6321、14.7、13.01等
PRLN 等
PRLN 等
好的,所以我的主要问题是如何只为标题插入一个 prqt 记录?我正在查看逻辑 functoids 以查看是否有一个可以查找以查看是否已为输出模式创建了现有值。我的主键是 SMIT6321(姓氏 + 卡号的最后四位数字)。因此,基本上,如果我在 C# 中对此进行编码,我将创建一个先前插入的 PRQT 键的数组,并且在我的循环期间,当我遇到时我会对此进行查找以查看我是否已经创建了一条记录。如果我已经创建了,我会跳过,所以我没有创建重复的 PRQT 记录。请注意,记录是在源文档中按时间顺序创建的,因此上述记录可能会混乱,而不像上面的示例那样按顺序排列。
谁能指出我正确的方向?我应该使用什么仿函数?Biztalk Mapper 可以处理这种事情吗?我确定它可以...我只需要弄清楚。
谢谢,
埃里克