Biztalk映射問題,請想法 (Biztalk Mapping Problem, Ideas please)


問題描述

Biztalk映射問題,請想法 (Biztalk Mapping Problem, Ideas please)

I'm working on a moderately complex flat file schema and I've had a curve ball thrown at me. Here's what the input looks like:

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,THE HOME DEPOT #7145,THE HOME DEPOT #7145,VAN,BC,20090110,20090112,20090127,V,21.6,REF.#^1^

Ok, so the output that the client wants is the following:

1 header line called PRQT for each person/card number and a line for each of the transactions above.. so for Tracy, we would have 1 PRQT line and 4 PRLN lines, which are the transaction details.. so it would look like something like:

PRQT, SMIT6321, 13456321, details, details, etc.

PRLN, SMIT6321,7.35, 6.5, etc. etc.

PRLN, SMIT6321, 14.7, 13.01, etc, etc.

PRLN, etc. etc.

PRLN, etc. etc.

ok, so my main problem is how to insert only one prqt record for the header? I'm looking at logical functoids to see if there is one that can look up to see if an existing value has been created for the output schema. My primary key is the SMIT6321 (last name + last four digits of the card number). So basically if I was coding this in C# I would create an array of previously inserted PRQT keys and during my loop, I would perform a look up on this when I came across to see if I've already created a record. If I had already created, I would skip so I didn't create a duplicate PRQT record. Note that records are created chronologically in the source document, so the above records will likely be jumbled up and not sequential like the sample above.

Can anyone point me in the right direction? What functoids should I use? Can Biztalk Mapper handle this sort of thing? I'm sure it can... I just need to figure it out.

thanks,

Eric


參考解法

方法 1:

Eric,

I would look at doing the map in custom XSLT.  The mapper (while powerful in its own right) is not going to give you 100% of what you want without going through hoops.  By using custom XSLT you'll be able to perform full sorts on fields and properly navigate the document to get the desired output.  For dealing with problems like this in the future there's a new book called BizTalk 2009 Pro Mapping by APress that goes into problems like yours.

-Bryan

(by ekinskoferBryan Corazza)

參考文件

  1. Biztalk Mapping Problem, Ideas please (CC BY-SA 3.0/4.0)

#mapping #schema #biztalk






相關問題

Hibernate 單向父/子關係 - delete() 對子表執行更新而不是刪除 (Hibernate Unidirectional Parent/Child relationship - delete() performs update on child table instead of delete)

TIGER shapefile - 使用和解釋 (TIGER shapefiles - using and interpreting)

查找位置的城市和郵政編碼 (Finding City and Zip Code for a Location)

如何使 Vim 插件 NERDTree 的 <CR> 表現得更像 `go`? (How to make Vim plugin NERDTree's <CR> behave more like `go`?)

在 NHibernate 上的多對多關係上添加自定義列 (Add custom columns on many to many relationship on NHibernate)

在大型 .NET 項目中管理 DTO 和映射 (Managing DTOs and mapping in large .NET project)

使用 Fluent NHibernate 進行繼承映射 (Inheritance Mapping with Fluent NHibernate)

Biztalk映射問題,請想法 (Biztalk Mapping Problem, Ideas please)

BizTalk 數據庫查找 functoid 固定條件 (BizTalk Database Lookup functoid fixed condition)

EntityFramework FluentAPI 映射問題 (EntityFramework FluentAPI mapping issue)

將外鍵添加到現有數據庫 (Adding foreign keys to an already existing database)

如何重命名對像數組中對象的所有鍵? (How does one rename all of an object's keys within an array of objects?)







留言討論