この章では、Oracle B2Bインタフェースを使用して、アウトバウンドのEDI X12およびEDI EDIFACTメッセージをアウトバウンド・メッセージ用にバッチ処理、スケジュールおよび送信する方法について説明します(Oracle B2Bへのインバウンド・メッセージは自動的にバッチ処理解除されます。)
この章では、次の項目について説明します。
EDIの詳細は、次を参照してください。
通常、バッチ処理はメッセージをドキュメント・タイプ別にグループ化するために使用します。たとえば、発注書のバッチや請求書のバッチを、1つ以上の取引パートナに送信できます。また、複数のドキュメント・タイプをバッチ処理して、1つ以上の取引パートナに送信することもできます。
1000を超えるドキュメントをバッチ処理するときに、ペイロード・サイズが30KBを超える場合は、特別な設定が必要です。Oracle Fusion Middlewareパフォーマンス・ガイドの多数のドキュメントのバッチ処理に関する設定を参照してください。
図11-1に、EDIメッセージのバッチ送信を設定する画面を示します。
バッチを設定するには、次を行います:
「管理」リンクをクリックします。
「バッチ」タブで、「バッチのスケジュール」タブをクリックします。
表11-1で説明する検索パラメータを使用して、バッチ処理するアグリーメントを特定します。
ドキュメント検索パラメータは次のように使用します。最初に、ドキュメント・プロトコル名を選択してドキュメント・プロトコル・バージョンのリストを移入します。次に、ドキュメント・プロトコル・バージョンを選択してドキュメント・タイプのリストを移入します。その後、ドキュメント・タイプを選択してドキュメント定義のリストを移入します。
表11-1 バッチ作成用の検索パラメータ
パラメータ | 説明 |
---|---|
一致(「すべて」または「任意」) |
「すべて」を選択すると、値を設定したフィールドがand条件を使用して照合されます。「任意」を選択すると、値を設定したフィールドがor条件を使用して照合されます。 |
応答パートナ |
「次で始まる」、「次を含む」、「次と等しい」または「次で終わる」を選択し、応答取引パートナの名前の該当する部分を入力します。 |
アグリーメント |
「次で始まる」、「次を含む」、「次と等しい」または「次で終わる」を選択し、アグリーメントの名前の該当する部分を入力します。 |
ドキュメント・プロトコル名 |
「EDI_EDIFACT」または「EDI_X12」を選択します。 |
ドキュメント・プロトコル・バージョン |
以前に作成したドキュメント・プロトコル・バージョンを選択します。 |
ドキュメント・タイプ |
以前に作成したドキュメント・タイプを選択します。 |
ドキュメント定義 |
以前に作成したドキュメント定義を選択します。 |
「検索」をクリックします。
検索基準と一致したデプロイ済のアクティブなアグリーメント(アウトバウンド)が表示されます。
タスク2、「バッチの作成」に進みます。
バッチの一意の名前を入力します。
バッチ処理するアグリーメントを選択します。
「バッチの作成」をクリックします。
タスク3、「バッチのスケジュール」に進みます。
「スケジューラの起動」をクリックします。
「非繰返しイベント」タブまたは「繰返しイベント」タブを選択します。
非繰返しイベントの場合は、次のいずれかを実行します。
「スケジューラ」ダイアログに示された書式で日付を入力し、「OK」をクリックします。
または、「カレンダ」ボタンをクリックし、日付と時刻を指定して「OK」をクリックします。
繰返しイベント(図11-2を参照)の場合は、分、時間、月、年および日付の詳細を指定して、イベントをトリガーする間隔に関する詳細を入力します。次に、「OK」をクリックします。
作成したバッチは、「バッチの管理」タブに表示できます。
注意: バッチ内のいずれかのドキュメントの検証フラグがオンに設定されている場合、バッチ全体が検証済になります。 |
この機能を使用して、バッチ処理メッセージの許容トランザクション数(「最大数」)またはバッチ処理メッセージの許容サイズ(「最大サイズ」)に基づいて、アウトバウンドEDIメッセージをバッチ処理できます。
「最大数」または「最大サイズ」に基づいてメッセージをバッチ処理するには、次の手順を実行します。
「バッチの設定」のタスク1「バッチ処理するアグリーメントの検索」を参照してください。
バッチを作成します。
「バッチ名」フィールドにバッチの一意の名前を入力します。
「バッチ処理するアグリーメントの検索」に従って、バッチ処理するアグリーメントを検索します。
トランザクション数または最大サイズに基づいてバッチを作成する場合、「スケジュール範囲」はオプションです。ただし、「スケジューラの起動」をクリックして、タスク3「バッチのスケジュール」の指定に従ってイベント(非繰返しまたは繰返し)をスケジュールすることはできます。
アウトバウンドEDIメッセージのサイズに基づいてバッチ処理を行う場合は、「最大サイズ(KB)」フィールドにアウトバウンド・ペイロードのサイズの値をKB単位で入力します。
アウトバウンドEDIメッセージのトランザクション数に基づいてバッチ処理を行う場合は、「最大数」フィールドに値を入力します。
「バッチの作成」をクリックします。
次に、様々なバッチ設定に基づくバッチ処理を示します。
ケース1: バッチ作成時に「最大数」のみが指定されている場合: 指定されたトランザクション数に基づいてバッチ処理が実行されます。
たとえば、「最大数」として4
が指定されている場合、アウトバウンドEDIメッセージをエンキューすると、4つのトランザクションを含むバッチ処理メッセージが1つ作成されます。エンキューされたメッセージの数が4つに満たない場合、それらのメッセージはバッチ処理されません。
ケース2: バッチ作成時に「最大サイズ」(KB単位)のみが指定されている場合: バッチ処理するメッセージのサイズ(最後のメッセージのサイズを含む)に基づいてバッチ処理が実行されます。
たとえば、「最大サイズ」として4KBが指定されている場合、1KBのアウトバウンドEDIメッセージを4つエンキューすると、サイズ4KBのバッチ処理メッセージが1つ作成されます。エンキューされたメッセージがサイズの条件を満たさない場合、これらのメッセージはバッチ処理されません。
ケース3: バッチ作成時に「最大数」と「最大サイズ」の両方が指定されている場合: 最初に満たされた条件に基づいてバッチ処理が実行されます。
ケース4: バッチ作成時に「最大数」と「最大サイズ」が指定され、さらに(「スケジューラの起動」を使用して)バッチのイベントがスケジュールされている場合: ケース1、ケース2およびケース3の順番にメッセージのバッチ処理が実行されます。ただし、タイマー・イベントが発生すると、その時点でバッチ処理可能なすべてのメッセージがバッチ処理されます(「最大数」と「最大サイズ」に指定されている値は無視されます。)
注意: 「最大数」および「最大サイズ」に基づくメッセージのバッチ処理は、次の前提に従って動作します。
|
図11-3に、以前に作成したバッチの検索、バッチの詳細の表示、バッチの無効化、更新または削除を実行できる画面を示します。
「更新」バッチ・アクションの場合、更新できるのは選択したドキュメント定義のみです。新規ドキュメントのみでなく、バッチに属しているすべてのドキュメントを必ず再選択してください。
B2Bでは、バッチ処理スケジュールの更新時に、バッチ処理したメッセージが選択されない場合があります。バッチされたメッセージが取得されない場合、バッチを削除し、以前のバッチと同じ名前で新規バッチ・スケジュールを作成します。同じ名前を使用する必要があるのは、B2BによってWAIT_BATCH
ステータスの以前のメッセージが選択されるようにするためです。
Oracle B2Bは、インバウンド・バッチ処理メッセージに対するサポートを提供します。
Oracle B2Bは、バッチ処理メッセージを受信すると、次の処理を実行します。
Oracle B2Bは、順序付けマネージャの表にエントリを1つのみ作成し、メッセージの状態をPROCESSING
に設定します。
バッチ処理解除によって、メッセージがビジネス・メッセージの表およびB2B_PENDING_MESSAGE
表に挿入され、B2B_PENDING_MESSAGE
表の属性列(Attribute4
)にメッセージのシーケンス番号が格納されます。
Oracle B2Bは、バッチの最後のメッセージを処理した後、順序メッセージの状態をPROCESSED
に変更し、messageIDにBATCH_MESSAGE
とマークすることによって、そのメッセージがバッチ処理メッセージであることを示します。
Oracle B2Bは、バッチからメッセージをディスパッチした後、ビジネス・メッセージの状態をMSG_COMPLETE
に変更し、B2B_PENDING_MESSAGE
表の対応するエントリを削除します。Oracle B2Bがバッチ処理の途中で停止した場合、リカバリ時にOracle B2Bが送信するのは、B2B_PENDING_MESSAGE
表に存在するメッセージのみです。
注意: この方法には、バッチ全体がOracle B2Bにより処理されるまでバッチ配信は再開されないという制限があります。 |
注意: 順序付きバッチ処理は、インバウンド側でのみサポートされます。 |