問題タブ [biztalk-2010]
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.
xsd - Biztalk 2010: 同じ名前の要素が多数ある xsd のマッピング
Bitzalk 2010 では、次の構造を持つ入力から XML にマップする必要があります。
生成された XSD は次のようになります。
生成された構造は単に「一般的」であり、テーブル ループ Functoid を使用して Biztalk にマップする必要がありました。私はこのソリューションから情報を得ました: http://hestia.typepad.com/flatlander/2007/01/mapping_fixed_e.html しかし、これは私にとって非常に面倒に思えます (いくつかの定数値を持つ 40 のフィールドがあります)。
もう 1 つの可能性は、XSLT を使用することです。しかし、私はそれについての経験がなく、Biztalk で (XSLT なしで) 直接マップすることを好みます。
XSD スキームを作成する可能性があるので、マップ エディターにすべてのフィールドを配置し、そこにマッピングを作成します (テーブル ループ Functoid を使用しません)。
アイデアやコメントをいただければ幸いです (答えが「XSLT を使用する」であっても)。
biztalk - BizTalk 2010: 依存関係を使用して GAC から dll を呼び出す
BizTalk オーケストレーションのカスタム dll から関数を呼び出す必要があります (このソリューションCall a custom .NET component from BizTalk 2006に似ています)。dll は、サード パーティの dll の関数を呼び出します。サード パーティの dll は、他のサード パーティの dll を使用します (レガシー システムとの通信に使用しています)。
Global Assembly Cache Tool (Gacutil.exe)の記事では、参照されている dll を GAC に入れている dll に「含める」のが最善の策であると書かれていますが、Visual Studio (2010) からこれを行う方法がわかりません。 .
この作業を行うためのアイデアはありますか?
biztalk - Biztalkクライアント定義のサブスクリプションアイテム
私は、クライアントアプリケーションが、ユーザーのアクセス許可に応じてイベントメッセージの特定のサブセットのみをサブスクライブして受信することを要求するBiztalkソリューションを設計しています。サブスクリプションは、トピックまたはコンテンツベースのルーティングを通じて行われます。クライアントは一度サブスクライブし、サブスクライブ解除を選択するまで多くのメッセージを受信します。
クライアントアプリケーションの数は数百に上り、サブスクライブされたトピックは定期的に変更される可能性があるため、受信者ごとにBiztalkから個別の送信ポートを定義することは実行可能なソリューションではありません。
個々のクライアントサブスクリプションを保持し、biztalkポートから送信されたメッセージを配信する追加のメッセージブローカーサービスを構築できると思いました。
また、受信者リストのパターンはオーケストレーションを使用して作成できることもわかりました。これは私にはまだ要求/応答パターンに従っているように見えますが、私は一方向のサブスクライブメッセージの後に多くの返されたイベントメッセージを受け取ります。
私のメッセージブローカーソリューションは、Biztalkの得意分野を倍増させているように思われるので、どこかで重要な機能が不足していると思います。誰かが以前にそのようなアプリケーションを試したことがあり、いくつかのポインタを与えることができますか?ソリューションとしてESBツールキットに投資する必要がありますか?私はネットを調べましたが、このタイプのトピックサブスクリプションモデルについては何もはっきりしていません。
ありがとう、フィル
biztalk - ルール/ポリシーの条件でカスタム クラスを使用できますか?
Biztalk 2010 を初めて使用しています。
この記事 ( http://www.codeproject.com/KB/biztalk/BRE.aspx ) を参照して、条件に対して実行するカスタム アクションを作成しましたが、条件ではなくアクションでプロパティが使用されているようです。非プリミティブ型をパラメーターとして受け入れる .NET メソッド (カスタム クラスなど) をアクションで参照できますか?
biztalk - BizTalk-テーブル変数引数を使用してOracleストアドプロシージャからスキーマを生成する
SQL Serverデータベースのテーブルに加えられた変更を取得し、Oracleデータベースのそのテーブルのコピーを更新する簡単なサンプルプロジェクトをBizTalkでセットアップしようとしています。
SQL Server側では、可変数のレコードを返すGetItemChanges()という名前のストアドプロシージャがあります。
Oracle側では、GetItemChanges()から返されたすべてのレコードを1回の呼び出しで処理できるように、レコードのテーブルをパラメーターとして受け取るように設計されたUpdate_Item_Region_Table()という名前のストアドプロシージャがあります。これは次のように定義されます。
私のBizTalkプロジェクトでは、両方のストアドプロシージャのスキーマとバインディング情報を生成します。Oracleプロシージャでは、GeneratedUserTypesAssemblyFilePathパラメータのパスを指定して、データ型の定義を含むDLLを生成しました。サーバーの送信ポートで、そのタイプDLLへのパスをUserAssembliesLoadPathパラメーターに配置します。
GetItemChanges()スキーマをUpdate_Item_Region_Table()スキーマに変換するためのマップを作成しました。
これを実行すると、データが抽出されて正常に変換されますが、データをOracleプロシージャに渡そうとすると例外が発生します。
*アダプタは、URL「oracledb://dvotst/」のポート「WcfSendPort_OracleDBBinding_HOST_DATA_Procedure_Custom」に送信するメッセージを送信できませんでした。この送信ポートに指定された再試行間隔の後に再送信されます。詳細: "System.InvalidOperationException:'HOST_DATA.TBL_OF_REC'のカスタムタイプマッピングが指定されていないか、無効です。*
したがって、カスタムデータ型TBL_OF_RECに関する情報をTypesDLLに取得していないようです。
これを機能させるためのヒントはありますか?
mapping - BizTalk 2010: マップ内のアクセス コンテキスト
これは非常に基本的な質問かもしれませんが、誰かが答えてくれることを願っています。
カスタム受信パイプラインを使用してメッセージ (HL7) を受信しています。カスタム パイプライン内で、プロパティをコンテキストに昇格させています。これらのプロパティにアクセスする必要があるマップをセットアップしました。ただし、送信側でこれらのプロパティにアクセスしたいと思います。送信側にある必要がある理由は、マップを送信ポートに添付しているためです。そのため、メッセージは既に MessageBox にヒットし、送信側でマップされると想定しています。うまくいけば、それは理にかなっています...
使用できるサードパーティ ツールがいくつかあることは知っていますが、単純な Functoid、またはコンテキストにアクセスするスクリプト Functoid に入力できるコードがあることを望んでいました。
誰かがこれで私を正しい方向に向けることができますか?
biztalk - BizTalk 2010 の最高の本は何ですか?
BizTalk 2010 の最新情報を取得しようとしています。私は .NET Web 開発者として 10 年近く働いています。私は SQL Server Integration Services の経験がありますが、BizTalk は別世界です。
お知らせ下さい。
biztalk - Biztalk 2010X12EDIパーティ
一部のBizTalk2006R2ヘルパーコードをBizTalk2010に変換しようとしていますが、特有の問題が発生しています。2006 R2-> 2010からAPIが大幅に変更されたメソッドを単体テストしようとしていますが、パーティのバッチにアクセスしようとすると、次の例外が発生し続けます。
コード:
このテストケースでは、Party1とParty2を設定し、それらの間でバッチを開始しました。
biztalk - 受信パイプラインの失敗
サブミット ダイレクト アダプターを使用して、biztalk にメッセージを直接送信するカスタム アプリケーションを開発しています。パススルー パイプラインを使用していますが、メッセージが中断され、次のエラーが表示されます。
受信パイプラインの実行中にエラーが発生しました:
"Microsoft.BizTalk.DefaultPipelines.PassThruReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ソース: "不明" 受信ポート: "RP_DCMS_REQ" URI : "CH222001-1200" 理由: 型 System.Runtime.Remoting.ObjRef およびそれから派生した型 (System.Runtime.Remoting.ObjRef など) は、このセキュリティ レベルで逆シリアル化することを許可されていません。
構成ファイルで既に TypeFilterAttribute=full を設定しています。何が問題ですか?
exception-handling - BizTalk2010ソリューションでのすべての例外と失敗したメッセージの処理
データベーステーブルをポーリングし、未処理のレコードを取得し、マップを使用して変換を実行し、サードパーティのサービスを呼び出すBizTalk2010ソリューションがあります。幸せな道が機能しています。
ワークフローは次のとおりです。
- GetUnprocessedCustomersストアドプロシージャから場所/ポートを受信する:未処理の顧客を返すストアドプロシージャを呼び出して、WCF-SQLアダプターを使用してSQL Server 2008をポーリングします(WHERE IsProcessed = 0)
- SendPortからサードパーティのWebサービス:ReceivePortName ==にフィルター処理され、アウトバウンドマップを使用して、上記のストアドプロシージャから返されたメッセージをサービススキーマに変換します
- SendPort to UpdateIsProcessedストアドプロシージャ:MessageType ==にフィルタリングされ、アウトバウンドマップを使用して、サービス応答をIsProcessed=1を更新するストアドプロシージャ呼び出しに変換します。
次の可能性のある例外をキャッチし、例外情報を含むメッセージを作成して、内部例外処理サービスを呼び出したいと思います。
- データベースまたはストアドプロシージャにアクセスできません。
- サードパーティのサービスにはアクセスできません。
失敗したメッセージのルーティングを有効にすることで、上記の2番目を処理できました。Greg.Forsytheに感謝します。
私の質問は、すべての例外をキャプチャし、例外情報(例外日時、メッセージ、スタックトレースなど)を内部サービスに送信する汎用ソリューションを作成するにはどうすればよいですか?