現在、BizTalkServer2010にEDIソリューションを実装しています。これはシナリオです。
BizTalkは、X.400メールボックスと顧客のERPソフトウェア間の正しいメッセージルーティングを担当します。また、SharePoint Webサービスを使用して、交換されたメッセージに関する情報をSharePointサイトに配置するためにも使用されます。
ロールリンクとBizTalkパーティ管理を使用して、正しい設定(送信ポート、UNB6セグメントのパスワードなど)を適用しています。
ここで、次の質問があります。
顧客のERPシステムから発信INVOICメッセージをフェッチし、オーケストレーションで関連情報を抽出してSharePointサイトに書き込もうとすると、EDI受信パイプラインを使用する受信ポートが次のように中断されます。エラーメッセージ:
An output message of the component "EDI disassembler" in receive pipeline
"**********.Pipelines.FileNamePromotionEDIReceivePipeline, **********.Pipelines,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=****************" is suspended
due to the following error:
Error: 1 (Miscellaneous error)
33: Invalid occurence outside message, package or group.
The sequence number of the suspended message is 1.
これは、メッセージが各セグメント区切り文字の後にサフィックスとしてCRとLFを使用するために発生します。これで、CRとLFのASCII 16進コードをパイプラインの「EfactDelimiters」設定に追加できましたが、問題は、CRとLFのない他のメッセージがあり、同じパイプラインを使用して受信できなかったことです。ちなみに、 CRとLFを区切り文字として設定せずに、パイプラインを使用してCRとLFなしでこれらのメッセージのいずれかをフェッチすると、受信ポートも一時停止されます。今回は、コンマの代わりにドットを使用した結果としてエラーメッセージが表示されます。小数点記号(パイプラインで「UseDotAsDecimalSeparator」オプションを有効にしましたが)。繰り返しますが、EfactDelimitersを変更するだけで役立ちます。
パーティー契約の「文字セットと区切り文字」ページは、まさにそれを可能にするはずだと思いました。ビジネスパーティーごとに個別に区切り文字を設定することです。しかし、これらの設定で行った変更は、まったく効果がないようです。「UNA6サフィックス」を「CRLF」に設定し、「Decimal Notation(UNA3)」を「。(Decimal)」に設定して、ホストインスタンスを再起動します...同じ問題。
誰か助けてもらえますか?