私は中程度の複雑なフラットファイルスキーマで作業しています。私はカーボールを私に投げかけました。Biztalkマッピングの問題、アイデアをお願いします
BCT121、C、7.35,6.5,0.39,7216、 "SMITH、TRACEY"、13456321、クラス洋裁専門店、クラス洋裁専門店、VAN、BC、20090109,20090112,20090127、V:ここで入力は次のようになります。 、0.46、 BCT121、C、14.7,13.01,0.78,7216、 "スミス、トレーシー"、13456321、クラスドレスシューティングシューズ、クラスドレスシューズシューズ、バン、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、HOME DEPOT#7145、HOME DEPOT#7145、VAN、BC、20090110,20090112,20090127、V、21.6、REF。#^ 1^
これで、クライアントが望む出力が得られます。
上記のトランザクションごとに1人の人物/カード番号と行ごとに1行のPRQTと呼ばれるヘッダー行があります。したがって、Tracyの場合、トランザクションの詳細であるPRQT行とPRLN行が1つあります。 。それはのようなもののようになります。
PRQT、SMIT6321、13456321、詳細、詳細、など
PRLN、SMIT6321,7.35、6.5、などなど
PRLN、SMIT6321、14.7 、13.01など
PRLNなど
PRLN、などなど
オクラホマので、私の主な問題は、ヘッダーのために一つだけprqtレコードを挿入する方法ですか?出力スキーマに既存の値が作成されているかどうかを調べることができるかどうかを調べるために、論理的なFunctoidを調べています。私の主なキーはSMIT6321(姓+カード番号の最後の4桁)です。つまり、基本的にC#でコーディングしていた場合、以前に挿入されたPRQTキーの配列を作成してループ中に、レコードを作成したかどうかを調べるときにこれを調べます。私がすでに作成していれば、私はスキップして、重複したPRQTレコードを作成しませんでした。レコードはソース文書内に時系列的に作成されるので、上記のレコードは混乱し、上のサンプルのように連続していない可能性が高いことに注意してください。
誰でも正しい方向に向けることができますか?私はどんなFunctoidsを使うべきですか? Biztalk Mapperはこのようなことを処理できますか?私はそれができると確信しています...私はそれを把握する必要があります。
おかげで、
エリック
応答のためにありがとう。私はカスタムXSLTを使用して終了しましたが、当初はわかりにくいものでしたが、かなりストレートでした。私はフィルタを使用して終了し、上記の目的の出力を得るためにすべてのレコードをループします(for-each)。再度、感謝します。 –