問題タブ [custom-pipeline-component]
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 アーカイブ パイプライン コンポーネントの考慮事項
私のシナリオでは、受信ポートでフラット ファイルを (1) 復号化してから (2) 逆アセンブルするパイプラインがあります。
私の要件は、ファイルをキャプチャし、(1) と (2) の間のローカル ファイル共有に配置することです。
私の最初のアプローチは、これらの間に Archive コンポーネントを導入することでしたが、これで問題が発生しました。アーカイブ コンポーネントは、ストレージへの直接アクセスを使用してファイルをダンプします。BizTalk の原則によると、これは送信ポート/送信アダプターの機能であるため、本質的に貧弱な方法論です。したがって、たとえばアーカイブ先が FTP ホストの場合、アーカイブ コンポーネントは役に立ちません。
したがって、次の 2 つのアイデアが思い浮かびます。
A) 何らかの方法で、送信ポートを使用するようにアーカイブ コンポーネントを構成します (可能な場合)。
B) アーカイブ コンポーネントのアイデアを放棄し、次のように BizTalk のネイティブ機能のみを使用します。
-復号化のみのパイプラインを使用してファイルを受信する
-送信ポートを使用してファイルを一時的なローカル ストレージに送信する
-受信ポートにサブスクライブして、ファイルをアーカイブに送信します
-逆アセンブル パイプラインを使用してローカル ストレージからファイルを取得します (2 番目の受信ポート)。
-オーケストレーションを使用して、2 番目の受信ポートからファイルを処理します。
オプション B) に問題はありますか?
そうでない場合、アーカイブ コンポーネントを使用する意味はありますか?
biztalk - BizTalk 展開 - バインド ファイルがカスタム パイプライン コンポーネントに適切にインポートされない
アプリケーションをデプロイすると、非常に奇妙な動作に気付きます。すべてのバインディング ファイルがインポートされているのに、他のファイルがインポートされているわけではありません。
一連のプロパティをコンテキストにプロモートするカスタム パイプライン コンポーネントを使用しています。パイプライン自体で定義されているものもあれば、BTS 管理コンソールで定義されているものもあるため、バインディング ファイルで定義できます。
これは、一部のアプリケーションでは正常に機能します。それらは適切にデプロイされており、バインディング ファイルで構成されている値は管理ポータルに表示されますが、他のアプリケーションでは同じ情報が表示されず、奇妙な部分は、失敗したアプリケーションのバインディング ファイル。値はバインディング ファイルにありますが、BTS では表示も使用もされません。
私は別のマシンでこの動作をしていますが、何が起こっているのか誰にもわかりませんか?
biztalk - カスタム パイプライン コンポーネントのエラー
以下のような形式の .txt ファイル
1115151651515950000055 00012913702613000000000003000 139C0000007000000 1215151651121510000054 00022913803603000000000009000 000279A0000009000 1315115950000065516515 00032813104643000000000007000 000399B0000003000 121515160003290003290000010000000003000
最初の 3 行は body 要素ですが、body 部分の行数は不明です (1 から無制限まで発生する可能性があります)。ボディ部分にタグ識別子はありません。ファイルの最後の行は常にトレーラーです。ファイルのトレーラーは、解析する前に削除して、レコードのみを解析する必要があります。ボディ部分にタグを追加するカスタム パイプライン コンポーネントを作成しました。しかし、ツール ボックスから受信 Piepline にコンポーネントを追加すると、「IPersistPropertyBag 実装でパイプライン コンポーネント Load() が失敗しました」というエラーが表示されます
パイプライン コンポーネントのコードは、
}
warnings - パイプラインで警告を無視する可能性はありますか?
このプロジェクトでは、警告をエラーとして扱うようにプロジェクトを設定しましたが、BizTalk プロジェクトでそのオプションを設定すると、次の警告が表示されることに気付きました。
ステージ「検証」には複数の「X」コンポーネントがあります。
設計上、2 つの同じコンポーネントを同じパイプラインに配置します。これらの警告を c# で無効にできるかどうか疑問に思っていましたが、コードでこのようなことを行うことができます#pragma warning disable 0649
パイプラインでこれらの警告を無視する可能性はありますか?
xml - 複数の逆アセンブル ステージを備えた Biztalk カスタム パイプライン
現在、次の方法で動作する既存のソリューションをアップグレードしています。
- フラット ファイル逆アセンブル ステージはフラットを受け取り、XML に逆アセンブルします
- 検証ステージの汎用カスタム パイプライン コンポーネントは、逆アセンブルされたフラット ファイルを受け取り、解析/グループ化/インライン変換を行ってから、複数のファイルをディスクに書き込みます。
- 別の受信場所がこれらのファイルを取得し、それに応じて処理します。
このプロジェクトに触れなければならないので、理想的には、このカスタム パイプライン コンポーネントを逆アセンブル PC にし、GetNext メソッドを使用して、ディスクに書き込むことなく、現在デバッチされたメッセージを返したいと考えています。ただし、逆アセンブル ステージが完了するまで、フラット ファイル ディスセンブラーから逆アセンブルされた xml にアクセスすることはできませんが、パイプラインの検証部分にカスタム逆アセンブル ステージを配置することはできません。
ここで何か誤解していますか?このプロセスを根本的に変更したくない場合、ファイルをディスクに書き戻すことに行き詰っていますか?
biztalk - GAC の BizTalk カスタム パイプライン コンポーネントが更新されない
私は最近、パイプライン コンポーネント開発でこの方法を使い始めましたが、開発の部分でうまく機能しています。コンポーネント/パイプラインの最初のデプロイでもうまく機能しました。
ただし、問題は、パイプライン コンポーネント DLL に変更をデプロイするときに、それらを更新できないことです。
アセンブリをGACに追加する限り、投稿に従います。次に、アセンブリを含む MSI を BizTalk からエクスポートし、「上書き」オプションを使用してインポートします。ホスト インスタンスを再起動し、IIS を再起動します (分離されたホストがコンポーネントを使用しているため) が、dll に加えた変更が (この場合) ステージング サーバーで行われません。
MSIL フォルダーを確認しましたが、フォルダーと dll は実際に日付が変更されて更新されていますが、メッセージを送信しても変更は行われません。
欠けているステップはありますか?コンポーネント自体のバージョン番号を増やす必要はありますか? バージョンを増やし、コンポーネントを参照するパイプラインを再デプロイしましたが、それでも変更は開始されません。
c# - カスタム パイプラインを使用してフラット ファイルを (行数で) 小さなファイルに分割する
着信フラット ファイルを複数の小さなファイルに分割する BizTalk 2010 用のカスタム パイプライン コンポーネントを作成しようとしています。ファイル(〜30 000行としましょう)をそれぞれ約5000行または少し少ないファイル(ファイルに33 000行が含まれている場合)に分割したいと思います。
私は、 Selvan のカスタム逆アセンブリ パイプラインの素晴らしい例を使用してみましたが、役に立ちませんでした。
パイプライン コンポーネント ウィザードを使用してパイプライン スケルトンを生成しましたが、逆アセンブル ステージのコーディングと大きなファイルの分割の進め方に関するヒントや指針があれば、たいへん嬉しく思います。私はこのタイプのコーディングの初心者です。
何か助けはありますか?
c# - %SourceFileName% マクロは、http://schemas.microsoft.com/BizTalk/2006/sftp-properties 名前空間でのみ使用できます
概要
送信パイプラインにマップされているファイルのファイル名を特定のファイル マスク形式に置き換えるカスタム送信ポート パイプライン コンポーネントがあります。パイプライン コードは、ReceivedFileName プロパティを受け取り、それに変換を適用します。このプロセスは 1 年以上機能していますが、新しいスキーマとマップ リソースをデプロイした後、パイプラインは機能しなくなりました。以下の警告とエラーのため、ファイルが作成されません。誰かが同様の経験をして、この問題についての洞察を与えてくれることを願っています.
注: パイプラインを使用しない場合、マップとスキーマは機能します (新旧)。マップとスキーマ アーティファクトの唯一の変更点は、2 つの TypedPolling スキーマ、2 つの FlatFile スキーマ、および 2 つのマップの追加です。
これは、SFTP アダプターを使用して得た警告とエラーです。
警告
アダプターは、URL「SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%」の送信ポート「SEND_FileFormat_BSFTP」へのメッセージの送信に失敗しました。この送信ポートに指定された再試行間隔の後に再送信されます。詳細:「メッセージの処理中に予期しないエラーが発生しました。例外に関連付けられたテキストは「[SftpTransmitterEndpoint] ファイルを送信できません。内部例外:
%SourceFileName% マクロは、 http://schemas.microsoft.com/BizTalk/2006/sftp-properties名前空間でのみ使用できます。. 送信ポート トランスポートのプロパティを変更すると、接続プールにまだ接続が残っている可能性があるため、ホストの再起動が必要になる場合があります".".
エラー
URI "SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%" の送信ポート "SEND_FileFormat_BSFTP" でアダプター "SFTP" に送信されたメッセージは中断されています。エラーの詳細: System.ArgumentException: ' http://schemas.microsoft.com/BizTalk/2003/file-properties#ReceivedFileName ' という名前のプロパティが存在しません。
サーバー スタック トレース: System.ServiceModel.Channels.MessageProperties.get_Item(文字列名)
で Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.BuildFileName(メッセージ メッセージ) で Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.Send(メッセージ メッセージ、 TimeSpan timeOut) System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink)返信シンク)[0] で例外が再スローされました: System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 結果)
で System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 結果) で System.ServiceModel.Channels.ServiceChannel.EndCall(String)アクション、オブジェクト [] 出力、IAsyncResult 結果) System.ServiceModel.Channels.ServiceChannel.EndSend (IAsyncResult 結果) で[1] で例外が再スローされました。 Channels.IOutputChannel.EndSend(IAsyncResult 結果) Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendCallback(IAsyncResult 結果) MessageId: {055A8864-AB06-4849-ADC3-A5CB93016106} インスタンス ID: {FF1E3802-89CD-466C -B68E-2CF4EC662DF4}
これは、Blogical SFTP アダプターを使用して得たエラーです。
メソッド: Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessage エラー: [SftpTransmitterEndpoint] ファイルを送信できません。内部例外: %SourceFileName% マクロは、 http://schemas.microsoft.com/BizTalk/2006/sftp-properties名前空間でのみ使用できます。. 送信ポート トランスポートのプロパティを変更すると、接続プールにまだ接続がある可能性があるため、ホストの再起動が必要になる場合があります。
------------------------------ 情報: タイプ: Blogical.Shared.Adapters.Sftp.SftpException ターゲット: Microsoft.BizTalk.Message .Interop.IBaseMessage ProcessMessageInternal(Microsoft.BizTalk.Message.Interop.IBaseMessage, Blogical.Shared.Adapters.Sftp.ISftp) メッセージ: [SftpTransmitterEndpoint] ファイルを送信できません。内部例外: %SourceFileName% マクロは、 http ://schemas.microsoft.com/BizTalk/2006/sftp-properties でのみ使用できます。名前空間。. Send Port Transport のプロパティを変更すると、接続プールにまだ接続が存在する可能性があるため、ホストの再起動が必要になる場合があります。 Sftp.SftpTransmitterEndpoint.ProcessMessage(IBaseMessage メッセージ)
------------------------------ タイプ: System.Exception ターゲット: System.String ReplaceMacros(Microsoft.BizTalk.Message.Interop. IBaseMessage, System.String) メッセージ: %SourceFileName% マクロは、http ://schemas.microsoft.com/BizTalk/2006/sftp-properties 名前空間でのみ使用できます。スタックトレース: Blogical.Shared.Adapters.Sftp.SftpTransmitProperties.ReplaceMacros(IBaseMessage メッセージ、文字列 uri) で Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal(IBaseMessage メッセージ、ISftp sftp)
私が試してみました:
- パイプライン、スキーマ、およびマップ アーティファクトの更新
- %MessageId%、%SourceFileName%、および *.dat を SFTP ファイル名の値として使用する
- 送信ポートの停止、ホスト インスタンスの再起動
- アプリ内のすべてを停止し、すべてのホスト インスタンスを再起動する
- アーティファクトの再ガッキング
- SFTP の代わりにファイル アダプターを使用する
biztalk - ツールボックスに表示されない 64 ビット カスタム パイプライン
BizTalk で Excel から XML へのデコード用の x64 カスタム パイプラインを作成しました。BizTalk 2013 のパイプライン コンポーネント フォルダーに dll を追加しました。しかし、これをツールボックスに追加しようとすると、表示されません。私のOLEDBアダプターは64ビットであるため、dllを64ビットにする必要があり、32ビットを使用すると、プロバイダーがローカルマシンに登録されていないと表示されます。これに対する回避策はありますか?
biztalk - Excel デコーダー パイプライン
Excel ファイルを XML ファイルにデコードするカスタム パイプラインを作成しました。これらのExcelファイルには膨大な記録があります。Excel ファイルにもヘッダーがあります。ExcelファイルをXMLファイルに処理するためにOpenXMLを使用しました。
メモリ消費を最適化する必要があります。