問題タブ [biztalk-mapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
thread-safety - BizTalk マッパーと [ThreadStatic] 属性
最近、BizTalk マッパーのマルチスレッドの性質と、外部アセンブリの処理方法に関する問題に遭遇しました。
MSDN からのこの引用が示すように:
スクリプトFunctoid で使用するために外部アセンブリで記述されたコードは、スレッド セーフである必要があります。これが必要なのは、マップの複数のインスタンスがストレス条件下で実行時にこれらの .NET インスタンスを使用できるためです。
Mapper は、外部アセンブリのインスタンスを再利用します。
私のチームが使用していたユーティリティ アセンブリには、次のコードがありました。
これにより、あるファイルのストア参照が別のファイルにマップされていました。
プライベートフィールドを装飾することでこれを修正したようです[ThreadStatic]
私の質問は、BizTalk マッパーでこれに関する問題を知っている人はいますか? [ThreadStatic]
スレッドが再利用されているため、Asp.Net での使用に問題があることは認識していますが、BizTalk マッパーがスレッドを処理する方法に関するドキュメントは見つかりません。
xml - BizTalk マップが入力 XML を正しく解析しない
BizTalk マップが入力 XML からデータを正しく抽出していない状況があります。
入力スキーマは次のようになります。
順序
XSD 上のこれら 3 つのノードはすべて、最小 0、最大無制限です。
サンプルの入力ファイルのフラグメントは次のとおりです。
これで、マップはこのデータを取得し、ストアド プロシージャを呼び出してデータをテーブルに挿入します。A of 1 と A of 2 の両方のフィールド B で「こんにちは」を取得しています。これは正しくありません。
問題を地図にたどりました。生成された XSLT は A に対して foreach を実行し、次に値 B を取得しますが、常に最初の B を取得します。
入力スキーマまたはマップを変更してこれを正しく機能させるためのヒントはありますか?
biztalk - マッピング中にMaxLengthに自動的に切り捨てられます
さまざまなサイズのすべての要素にmaxlengthプロパティが設定されているスキーマがあります。私はそれにマッピングしていて、最大長をかなり頻繁に超えることを期待しています。
BizTalkに、各要素のFunctoidを手動で構成することなく、自動的に切り捨てるように指示する方法はありますか?
検証以外の最大長プロパティの目的はありますか?
xml - Biztalkマップ:さまざまなノードをリストにグループ化する
BTマッパーで次の変換を実現する方法はありますか?そうでない場合、賢いアイデアはありますか?
に:
ノードのリストにいくつかの要素を集約する必要があります。
前もって感謝します。
biztalk - Biztalkマッパー:xmlに含まれていないノードを検出する方法
オリジンにノードが存在しないことを検出する方法を知りたいのですが。私は論理ファンクトイドを使って何百ものことを試しましたが、成功しませんでした。
このページの3番目のケースは、私が探しているものです:http: //danshultz.blogspot.com/2007/08/logical-existence-isnil-empty-string.html
前もって感謝します。
biztalk - mid 関数を使用した BizTalk スクリプト Functoid
私は BizTalk を初めて使用し、スクリプト Functoid で vb.net mid 関数を使用する方法の例を探しています。
biztalk - フラットファイル形式への BizTalk xml ファイル
BizTalk は比較的新しいものです。ベテランの助けを借りることができました。
ソース XML ドキュメントをフラット ファイルのタブ区切りの宛先にマップする必要に迫られています。ソース ドキュメントには、ネストされたノードがいくつかあります。これらのノードを繰り返し処理し、それぞれをフラット ファイル ドキュメントの行として変換する必要があります。従来の販売注文ヘッダー/詳細関係。結果では、子ノード内のネストされた要素ごとにヘッダー情報を繰り返す必要があります。
ループ Functoid を使用して解決策を試しましたが、宛先リストを正しく表現する方法がわかりません。明らかなことを見逃していますか?「ループ」出力パラメーターをリンクする宛先行要素はどれですか?
デモンストレーションのために、私が使用しているスキーマの例を次に示します。
SOURCE SCHEMA (ソース構造を変更する可能性はありません)
- スキーマ\
- 販売注文\
- 販売注文\注文\
- 注文\soid
- 注文\顧客名
- 注文\住所
- 注文\詳細\
- 注文\詳細\msrp
- 注文\詳細\モデル番号
- 注文\詳細\SKU
宛先スキーマ
- スキーマ\
- \根\
- 固体
- 顧客名
- 住所
- 等...
フラットファイル出力 (詳細項目ごとに 1 行)
- soid custname アドレス msrp modelno sku
- soid custname アドレス msrp modelno sku
誰かが私を正しい方向に向けることができますか?
biztalk - BizTalk マッピング
以下に示すように、入力 XML を出力に変換する必要があります。
入力
これを行う最善の方法は何ですか?
biztalk - マップを置き換えずにマップ内のマルチパート メッセージ スキーマを置き換える方法
2 つのソース メッセージを 1 つの宛先メッセージにマップするオーケストレーション マップがあります。ソース メッセージの 1 つのスキーマが変更された場合、入力メッセージ部分をクリックして [スキーマの置換] を選択し、影響を受けるメッセージ部分だけのスキーマを更新できるようにしたいと考えていました。代わりに、マルチパート メッセージ スキーマ全体を単一メッセージ パート スキーマに置き換えることしかできません。
私の唯一の他のオプションは、オーケストレーション トランスフォーム シェイプから新しいマップを生成することのようですが、これは、マップ内のすべてのリンクを再作成する必要があることを意味します...
このタイプのスキーマを更新するより効率的な方法を知っている人はいますか?
biztalk - ノードの順序を変更する Biztalk マッパー
ドキュメント X をドキュメント Y にマッピングする必要がありますが、どちらも非常に似ています。X には、次の [フラグメント] XSD があります。
Y には同じ要素 (A、B、C) がありますが、それらはシーケンス内にありません。
次の入力でマップをテストすると、問題が発生します。
私はこのようなものを得る:
各要素を他のスキーマの対応するペアにマップするだけなので、なぜこれが起こっているのかわかりません。
編集: PreserveSequenceOrderプロパティを「はい」に設定しようとしましたが、うまくいきませんでした