問題タブ [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.
biztalk - Biztalkループファンクトイドの動作
おはようございます、
私はBizTalkを学ぼうとしていますが、理解できないことをしています。
従業員のアドレスのXMLを出力しています。ループするファンクトイドは、2つの「通信」要素を作成します。「CountrySubDivisionCode」を両方の子要素として表示することを期待していましたが、表示されるのは1回だけです。
入力はフラットスキーマです。
電話番号を使用したCommunication要素のループ機能が1つあります。その出力は、出力スキーマのCommunication要素です。
州と郡の入力を持つ別のループ関数があります。その出力は、出力スキーマのCountrySubDivisionCode要素です。
マッピングは、何が出力され、何が出力されないかをどのように決定しますか?2番目のセットは重複しているので出力しませんか?私が見つけたすべてのチュートリアルは、同じソース資料のコピーアンドペーストバージョンのようで、かなり軽いです。
ありがとう
biztalk - BizTalk マッピングでノードを抑制できません
午後になっても、私は BizTalk を学んでいて、この問題に行き詰まっています。
電話番号または住所の選択グループがあります。電話を出力するときに、住所フィールドの一部を非表示にすることができます。簡単にするために、「CityName」フィールドについて説明します。
私は次のことを試しました:
入力ファイルの "City" (テキスト) ノードを出力の "CityName" にマップしました。Exists論理 Functoid を入力ノードの "Address1" ノードと出力の "CityName" ノードに接続しました。私はいつもテキストが記入された都市名を取得します。
入力ファイルの "City" ノードとExists論理 Functoid をValue Mapper Functoid にマップしました。値マッパーFunctoid を出力の CityName に接続しました。address ノードで都市名を取得し (正しい)、telephone ノードで空のノードを取得します (正しくない)。
入力ファイルの "City" ノードと Exists 論理 Functoid を値マッパー (フラット化) Functoid にマップしました。値マッパー (フラット化) Functoid を出力の CityName に接続しました。address ノードで都市名を取得し (正しい)、telephone ノードで空のノードを取得します (正しくない)。
最後の2つのうちの1つが機能するはずだと思いましたが、どちらも抑制されたノードではなく空のノードを提供します。空のノードには属性がありません。
CityName ノードは、次のスキーマ タイプによって記述されます。
空のノードの作成を強制するタイプ定義に何かありますか?
ありがとう
編集: 以下は間違った出力です。2 番目と 3 番目の Communication ノードには Address Child ノードがありますが、これはすべきではありません。
電話番号とフラットな入力スキーマの最初の住所行にループ Functoid があります。これにより、3 つの通信ノードが生成されます。アドレス行でLogical Existance Functoidを使用して、最初のノードの電話情報を抑制しています。出力スキーマの Address ノードに直接結び付けられている出力に Logical Not Functoid があります。アドレスノード全体をオフにする必要があると思いましたが、そうではありません。
論理的存在 Functoid に接続された値マッピングFunctoid を City Name および Postal code 要素に追加しようとしましたが、それらは空になりましたが、消えません。ARG!
私がチェックしたところ、フィールドはすべて MinOccurs がゼロに設定されており、デフォルト値が割り当てられているとは思えません。
biztalk - 区切られたファイル内の Biztalk スキーマ変数の列数は許可されていますか?
ハイヤス。フラットファイルで注文を送信する顧客がいます。ファイルに複雑さはありませんが、ファイルごとに矛盾がいくつかあります。
ファイルの形式は次のようになります。
1,2,3[CRLF]
1,2,3[CRLF]
その構造の周りにスキーマを作成するのに問題はありませんが、時々新しい列が追加されます。
1、2、3、4 [CRLF]
1、2、3、4 [ CRLF ]
残念ながら、変更が逆方向にカスケードされないため、3 列と 4 列の両方の形式をサポートする予定です。両方の形式が同じパイプラインを通過する可能性があるため、個別のスキーマ/パイプラインを作成するオプションは実際にはありません。新しいフィールドは常に行の最後に追加されるため、少なくとも一貫性が保たれます。
私が考えられる唯一のことは、精巧な「どのスキーマが適用されるかを把握し、それに応じてパイプラインコンポーネントをルーティングする」ことです。単一のフラット ファイル スキーマを使用します (オプションの列の minOccurs プロパティを 0 に設定しようとしましたが、うまくいきませんでした)。
アドバイスをよろしくお願いします。
biztalk - BizTalk 2010 マップ (btm) を BizTalk 2006 R2 サーバーに展開しますか?
誰かが 2010 年のマップを 2006 年のサーバーに展開するのは通常のやり方ではないことはわかっていますが、私には選択の余地がありません。「2010 マップを 2006 R2 サーバーに展開できますか」という質問がありますか? どちらも btm ファイルであるため、2010 年と 2006 年のマッパーの唯一の違いは、生成されたマップではなく、UI にあるように思えました。しかし、それが本当かどうかはわかりません。これを本番サーバーにデプロイする前に、確認する必要があります。
biztalk - BizTalk マッピング - スクリプト Functoid オブジェクトのライフ サイクル、いつ初期化されて破棄されるか
BizTalk マップでスクリプト関数を呼び出す場合、オブジェクト (呼び出しているクラス) は最初の呼び出し時に初期化され、変換が行われている間ずっとメモリに保持されますか? または、新しい行が実行されるたびに、またはスクリプトが呼び出されるたびに、破棄されて初期化されますか?
私が尋ねる理由は、スクリプト関数を介して小さなルックアップ テーブルをメモリにキャッシュすることのメリットについて議論したからです。最初のレコードを初めて検索するときに辞書をキャッシュし、その後の検索ではデータベースにアクセスせずに同じ辞書を使用したいと考えています。
これは素朴なアプローチですか?オブジェクトが再初期化されるためにディクショナリは失われますか?それとも、変換が終了するまでメモリに保持されますか? マイクロソフトはこれに関するガイダンスを持っていますか (私は見つけることができませんでした)?
xslt - ソース ドキュメントに対応するデータがなく、ターゲット ドキュメントに可変数のノードを作成する
BizTalk マッパーを使用して 2 つのドキュメントをマップしようとしていますが、ターゲット ドキュメントは次のようになります。
作成するノードの数<filler>
は可変 (0 から 9) です。これは基本的に計算の結果です (ソース ドキュメントで提供されたデータに基づく)。
<filler>
Functoid を組み合わせてこれらのノードを作成する方法はありますか?
テーブル ループ Functoid を使用しようとしました (1 つの列のみ、パディング char '9' を持つテーブルを作成) を使用しようとしましたが<filler>
、テーブルで定義されている行と同じ数のノードを作成するため、実際には機能しません。行数は可変でなければならないためです(これも計算に基づいています)。私が現在行っていることは、メッセージ (XmlDocument) を C# メソッドに渡し、プログラムで<filler>
ノードを追加することです。Mapper でこれを行うための、より "BizTalk-y" な方法があることを願っています。
biztalk - BizTalk - 親子関係を持つソースをフラットな宛先にマッピングする
親子関係に関するこの質問を見たことがありますが、タグ付けするものが何もないため、まったく同じではありません。
次のようなソース フラット ファイルがあります。
Route、Prod、および Company の一意の組み合わせごとに、曜日が入力された 1 つのレコードが必要です。たとえば、前の例は、出力で 3 つの個別の行にマップする必要があります。
私の質問は、XSLTなしでこれを行う方法はありますか? 1 つ以上の一連のマップで Functoid を使用して実行できますか? テーブル ループ Functoid は、この状況とは逆のカスタム ビルドのようですが、逆に実行できますか? XSLT を使用してのみ実行できる場合、私はまだそれを行う方法について頭を悩ませていますか?
助けてくれてありがとう!
c# - BizTalkエンジンの代わりにWF4内でBizTalkマッパーアクティビティを使用するのはいつですか。
BizTalk 2010がワークフローファンデーションの新しいマッパーアクティビティをサポートしていることを確認しました(ここから:AppFabricアプリケーション用のWFデザイナーでマッパーとLOBアダプターを簡単に使用できます)。依存関係はAppFabricに関連付けられているようです(したがって、IIS?)。問題は、どのような状況でBizTalkエンジンの外部のマッパーアクティビティを使用するかということです。WF Runtime / AppFabric内でマッパーをホストすることで、BizTalkエンジン内でホストすることにはない利点は何ですか?BizTalkオーケストレーションWebサービスに直接電話してみませんか?
xslt - カスタム名前空間を指定するBiztalkのXSLTを使用してXMLから特定のノード(子を含む)をコピーするにはどうすればよいですか?
XSLTを使用して、サブノードをXMLからBiztalkマップの新しいXMLの特定のノードにコピーする必要があります。
次の入力XMLについて考えてみます。
必要なのは「usefulDataList」というノードを抽出することなので、次のような新しいXMLにコピーする必要があります。
ソースとターゲットの名前空間が異なるため、これはBiztalkFunctoid内で実行する必要があります。
私はXSLTの完全な初心者であり、いくつかのテストを行ってきましたが、XSLT式に問題があります。
XSLTまたはBiztalkマッパーを使用したヒントをいただければ幸いです。XSLT式で解決できれば、大量のフィールドを1つずつリンクするのは好きではありません。
ご挨拶。
biztalk - BizTalk マップ値マッピング ループ Functoid
住所を複数の「AddressLine」要素または複数の「Street」要素、またはその組み合わせとして指定できるソース スキーマがあります。私の宛先スキーマには、単に複数の「Street」要素があります。Functoid でこれをマッピングするのに問題があります (カスタム XSLT では問題ありませんが、このマップにはグラフィカルな方法を使用したいと思います)。両方のソース要素をループ Functoid にマッピングしてから、そこから宛先要素にマッピングしようとしましたが、ソースの「AddressLine」要素と「Street」要素をループする XSLT が生成されますが、宛先には何も書き込まれません!
ソース スキーマと宛先スキーマの関連セクションを以下に貼り付けました。
ソース
行き先