TCP/IP統合:2つの異なるポートからデータをスキャンし、データを比較して条件付きで印刷する
質問
統合処理において、2つの異なるソースからデータを読み取り、そのデータを比較し、比較結果に応じて条件付きでドキュメントを印刷することはできますか?
回答
はい、これは可能です。以下に例(TCP/IPソケットを使用)を示します。
1.-
次の統合ファイルは、最初のデータセットをスキャンするためにTCP/IPまたはシリアルポート統合を作成し(このデータは%EventData%に保持されます)、さらに追加のアクションを作成して2つ目のデータセットをスキャンします(こちらは%SecondScan%という変数に保存しています)。
両方のデータセットが揃ったら、PowerShellスクリプトで比較できます:
$First = "%EventData%"
$Second = "%SecondScan%"
$Result = $First.equals($Second)
$Result
比較結果は、3つ目の統合変数%Result%に書き込まれます。
最後に、%Result%の値に基づいて条件付きで「ドキュメント印刷」アクションを実行できます。Trueの場合はドキュメントが印刷されます(この例では「Equals」Trueの比較がうまく動作しなかったため、「Begins with」Tを使用しています)。
2.-
スクリーンショット例:
最初のTCP/IP検出は、5文字読み取った時点で停止するように設定されています:
2回目のネットワークソケットからの読み取り(今回はアクションとして)は、同じ方法で動作しますが、新しい接続を開きます:
比較を行うPowerShellコマンド:
条件付きドキュメント印刷アクション:
詳細情報(内部用)
統合ファイルとHydrashokファイル(シリアルまたはTCP/IPポート経由でデータを送信するためのSeagullツール)は、こちらからダウンロードできます:
https://seagull/confluence/pages/viewpage.action?pageId=36799556
Hydrashokの設定については、2つのトリガーを作成しています。1つは5秒後に発火し、TCP/IP統合用のデータを提供します。もう1つは15秒後に発火し、「ネットワークソケットからの読み取り」アクション用のデータを提供します。