問題タブ [biztalk]
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 - XML ドキュメント内のノード
着信 xml ドキュメントを解析するための xml スキーマを設計しました。受信場所は 2 つのフィードから xml ドキュメントを取得します。そのうちの 1 つがドキュメント内のノードのスペルを間違えています。「Rookie」ではなく「Roookie」です。既存の xsd でこのドキュメントを解析する方法はありますか?
c# - スレッドセーフな使用のために静的クラスのスコープを制限するために AppDomain を使用する方法は?
私は、設計が不十分なソリューションに悩まされてきました。スレッドセーフではありません!
ソリューションにはいくつかの共有クラスとメンバーがあり、開発中はすべてクールでした...
BizTalk は私の戦艦を沈めました。
カスタム BizTalk アダプターを使用してアセンブリを呼び出しています。アダプターは私のコードを呼び出して並行して実行しているため、同じ AppDomain の下ですべて複数のスレッドを使用していると思います。
私がやりたいことは、自分のコードを独自の AppDomain の下で実行することです。これにより、私が抱えている共有の問題が互いに干渉することはありません。
BizTalk アダプターがインスタンス化してから Process() メソッドを実行する非常に単純なクラスがあります。
Process() メソッド内に新しい AppDomain を作成したいので、BizTalk が別のスレッドをスピンするたびに、独自のバージョンの静的クラスとメソッドが作成されます。
BizTalkAdapter コード:
これはクラス BizTalk コールです。
参考までに: Loader クラスは、dataFile クラスとは別の DLL にあります。
どんな助けでも大歓迎です。コードをスレッドセーフにする作業を続けますが、これが「単純な」答えになると思います。
他に思い当たる人がいたら、どうぞ。
ありがとう、
キース
完全を期すためだけに。
「Transport Advanced Options」ダイアログで送信アダプタを「Ordered Delivery」としてマークすると、発生していたマルチスレッドの問題を回避できることがわかりました。
これは私の問題に対する別の可能な答えだと思いますが、必ずしも質問に対するものではありません。
c# - Biztalk オーケストレーション内で新しいメッセージを作成する最良の方法は何ですか?
Biztalk オーケストレーション内で使用される定義済みの XSD スキーマに基づいて新しいメッセージ インスタンスを作成するための最適なソリューションを探しています。
追加の投票は、明確で効率的な例を含む回答、または質の高い参照リンクを含む回答に行われます。
biztalk - Biztalk 2004 を Biztalk 2006 R2 にアップグレードする
私は Biztalk 2004 (私が書いた) で実行されている 1/2 ダースほどのオーケストレーションを実行しているクライアントを持っており、彼らはサプライヤと cXML ドキュメントを交換する (ほとんどの場合は注文を送信する) ために使用します。ASP.NET 1.1 フロント エンドがあります。SQL アダプタを使用して、解析された cXML を格納します。HTTPS 経由でドキュメントを取得して送信します。
私の質問: Biztalk 2006 R2 へのアップグレードは、MS が言うように簡単ですか? アドバイスや気をつけるべきことはありますか?
biztalk - BizTalk 同時受信中に予期しないデータが見つかりましたエラー
同じネットワーク共有をポーリングする 2 つの FILE 受信場所を持つ受信ポートがあります。受信場所の唯一の違いは、異なるファイル マスクを使用することです。どちらも、単一のフラット ファイル逆アセンブラー コンポーネントを含むカスタム パイプラインを使用します。受信ポートをサブスクライブする送信ポートがあります。(これは、問題を再現できる最小限のセットアップです)。
ファイルのグループ (サイズが 1 MB まで) を処理するときに、パイプラインがエラーをスローすることがあります。これは、一度に複数のファイルが受信場所のファイル共有にコピーされた場合にのみ発生し、不規則に発生します。エラーは通常次のように表示されます。
着信ドキュメントの解析中にエラーが発生しました:「検索中に予期しないデータが見つかりました: '\r\n' 解析中の現在の定義は GIRMFile です。エラーが発生したストリーム オフセットは 491540 です。エラーが発生した行番号は 2446 です。エラーが発生した列は 199 です。
示された行番号で中断されたメッセージを調べると、一貫して 512 バイトのデータが着信メッセージと異なっています。この 512 バイトのデータは、同時に消費される他の入力ファイルの 1 つからのデータと常に一致します。または、まれに、誤った 512 バイトのデータが、パイプラインによって処理された後に同時に消費されたファイルからのデータである場合があります (つまり、中断されたフラット ファイルには 512 バイトの xml チャンクがあります!)。中断されたメッセージ内で、512 バイトが一貫した場所にあることはありません。
BizTalk データベースが何らかの形で破損していると考えて、それらを削除して再構成しました。数百のファイルが正常に処理された後、問題が再発しました。
これはテスト ボックス (VMWare vm) でのみ発生するため、マシンに何らかの問題があると思われます。しかし、マシンが他のプロセスで他のエラーを報告していないのは奇妙に思えます。
biztalk - BizTalk ループ Functoid
構造化された XML ファイル形式を、よりフラットな XML 形式にマップする必要があります。通常、このためにカスタム XSLT ファイルを作成し、BizTalk マップでそれを使用します。ただし、可能であればグラフィカル マップを使用するというアイデアは気に入っています。XSLT に直接飛び込むのは簡単すぎますが、あなたをフォローしている人にとっては、マップが何をしているのかをすぐに理解するのは簡単ではありません。
テーブル ループ機能とテーブル エクストラクタ Functoid を使用してマッピングを達成できるのではないかと思いますが、数時間試してみましたが失敗しました :(
注: ソース XSD を制御することはできません。これはサードパーティからのものです。ここにあります:
...そして、ここにターゲットの XSD があります:
要約すると、Trips を調べて、VehicleId をキーとして Vehicle から VehicleRegistration を取得し、データをターゲット スキーマにコピーする必要があります。
Functoid (またはおそらくスクリプト Functoid の小さなスクリプト) のみを使用してこれを達成できるかどうか、またはどのように達成できるかを知っている人はいますか?
どうもありがとう、ロブ。
windows - Windowsコマンドライン:環境変数の非評価
環境変数を評価するのではなく、環境変数を参照する生のテキストをコマンドに提供したいと思います。
コマンドラインからBizTalkを構成するには、これが必要です。次に例を示します。
BTSTask.exe AddResource -ApplicationName:App1 -Type:System.BizTalk:BizTalkAssembly -Overwrite -Source:.. \ Schemas \ bin \ development \ App1.Schemas.dll -Destination:%BTAD_InstallDir%\ App1.Schemas.dll
このコマンドは、BizTalkアプリケーションにリソースを追加します。宛先を%BTAD_InstallDir%\ App1.Schemas.dllにしますが、現在、環境変数を(何もなしに)評価し、\App1.Schemas.dllを使用しています。
このコマンドの解析/実行中に、この環境変数の評価をエスケープまたは無効にすることは可能ですか?
最初と両方のパーセンテージ文字をニンジン(^)でエスケープしようとしましたが、これでも評価は停止しませんでした。
[編集]コマンドプロンプトでこれを実行すると、環境変数は置き換えられませんが、スクリプトとして実行すると、これが異なる理由について何か考えがありますか?
biztalk - バインド ファイル内の BizTalk SOAP ポート パスワード
複数の SOAP ポートを使用してサード パーティの Web サービスからデータを要求する BizTalk 2006 アプリケーションを継承しました。Web サービスは、「基本」認証 (ユーザー名/パスワード) によって保護されています。アプリケーションにいくつかの拡張を行った後、サード パーティの Web サービスにアクセスできる統合テスト サーバーにデプロイしました。BizTalk アプリはデータを取得できませんでした。すぐに、SOAP 送信ポートにユーザー名とパスワードを設定するのを忘れていたことに気付きました。BizTalk アプリがライブ サーバーに展開されるときに、私がその場にいない可能性があるため、BizTalk アプリの展開をできるだけ自動化する必要がありました。バインディング ファイルを開き、問題のある SOAP 送信ポートの 1 番目を見つけて、* これは BizTalk がパスワードを置き換えるために使用しますが、そうではありません! SOAP ポートのパスワードが * ではなく NULL に設定されているようです。詳細については、こちらを参照してください: http://msdn.microsoft.com/en-us/library/aa547319.aspx
バインディングの更新に進みましたが、修正したバインディング ファイルをインポートしてテストを行ったところ、以前と同じ問題があることがわかりました。再確認したところ、バインド ファイルに正しいパスワードが存在することを確認できましたが、インポート中に BizTalk からエラーが発生することはありませんが、アプリを実行すると、次の例外が発生します。
詳細:"ArgumentNullException: 文字列参照が文字列のインスタンスに設定されていません。パラメータ名: s ".
その後、BizTalk 管理コンソールから手動でパスワードを修正すると、すべて正常に動作します。
SOAPポートのバインディングで同様の問題を抱えている人はいますか?解決策はありますか?
database - 外部プログラムから biztalk へ、およびその逆のメッセージの追跡
データベースから xml ドキュメントを生成して BizTalk に渡す外部プログラムがあります。BizTalk でメッセージを追跡し、指定されたトランザクション ID を持つデータベースへの BizTalk カスタム パイプラインに情報を保存できるように、トランザクション ID または何か (DB 内のメッセージの ID) を作成することは可能ですか?
失敗したかどうかを保存したいのですが、この情報をキャッチして保存するカスタムパイプラインがあります。エラー処理を HAT に依存したくありません。
BizTalk 処理に関する情報を保存する必要がある外部プログラムから送信されたメッセージを BizTalk で追跡する最良の方法は何ですか? リンク/本のヒントも役に立ちます。ありがとう!
architecture - BizTalk/ESB を導入する必要がありますか?
私の会社は、SOA (Service Oriented Ambiguity を引用しないでください) 環境の Enterprise Service Bus (ESB) として BizTalk (私たちは Microsoft ショップです) を提案した新しいアーキテクチャを実装しようとしています。
私たちのビジネスは、顧客データベース、製品カタログ、注文システム、およびそれぞれが WCF サービスとして公開されるその他の補助システムに接続する必要がある新しい注文キャプチャ GUI を介して注文を受け取ることです。注文は注文管理などに渡されます。フルフィルメントのための下流システム、そして最終的に請求のための請求システムへ。現在、各システムには独自の GUI があり、それらを接続するために ESB を導入するという自然な考えを自動化および統合するために手動プロセスを使用してそれらの間で情報を渡しています。
私の ESB の理論的根拠の一部は、バスがシステムの接続方法 (各システムは不可知論的であり、他のシステムについては何も知らない) と、情報のフォーマット/変換方法を心配することです。将来、既存のシステムの一部が新しいシステムまたは当社のファミリー企業内のシステムに交換される可能性が非常に高くなります。
これは私には理にかなっているように思えますが、ポイント ツー ポイント ソリューションで十分な場合になぜそれを導入するのかについて、いくつかの抵抗に直面しています。
残念ながら、会社の歴史 (私が任命される前) では、BizTalk を導入する最初の試みは失敗しましたが、BizTalk には場所があり、提供できると確信しています。
私の質問はおそらく BizTalk に関するものではありませんが、説明したシナリオで ESB が良いアイデアであるかどうか、いつ ESB を導入するのが理にかなっていますか?