Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

X12 インターチェンジの処理

X12 ドキュメントがインターチェンジ内で送信される際は、Ensemble によって受信ドキュメントが処理される方法を選択する必要があります。特に、グループ・レベルまたはトランザクション・セット・レベルでドキュメントにアクセスする必要がある場合は、このことが当てはまります。この章では、X12 インターチェンジの処理に関するさまざまなシナリオを説明します。

X12 バッチ・ハンドリング

[バッチハンドリング] 設定では、Ensemble によるドキュメントの送受信方法を指定します。ここで選択した内容は、必要とされるビジネス・プロセス構成内容に影響を与えます。

バッチ・ドキュメントの受信

X12 ビジネス・サービスの [バッチハンドリング] 構成設定では、受信バッチ・ドキュメントを処理する方法を指定できます。選択項目は、以下のとおりです。

  • [バッチ全体] — 子ドキュメントを個別に処理しません。累積してバッチ全体を 1 つの複合ドキュメントとして送信します。

  • [1 つのセッションのバッチ] — インターチェンジ内のすべてのドキュメントを単一セッションの一部として転送します。この転送内容には、バッチとグループのヘッダ・セグメントとトレーラ・セグメントが含まれた最終親ドキュメント・オブジェクトも含まれます。

  • [複数のセッションのバッチ] — インターチェンジ内の各ドキュメントをそれぞれに固有のセッションで転送した後、バッチとグループのヘッダ・セグメントとトレーラ・セグメントが含まれた最終親ドキュメント・オブジェクトを転送します。

  • [個別] — バッチの各子ドキュメントを専用のセッションで転送します。親バッチ・ドキュメント・オブジェクトは転送しません。

Note:

[バッチ全体] を選択した場合は、個別のトランザクション・セットのすべての変換ではインターチェンジ・レベルとグループ・レベルが考慮される必要があります。後出の "バッチ全体向けのビジネス・プロセスの構成" を参照してください。

バッチ・ドキュメントの送信

送信側では、X12 ファイルおよび FTP ビジネス・オペレーションには [親セグメント自動バッチ] 構成設定があります。[親セグメント自動バッチ] が偽 (デフォルト) の場合、ビジネス・オペレーションは子ドキュメントを出力しますが、バッチ・ヘッダおよびトレーラは出力しません。[親セグメント自動バッチ] が真の場合、バッチの親を持つメッセージを出力する際、ビジネス・オペレーションはバッチ・ヘッダ、子ドキュメントの順に出力し、最後のバッチ・ヘッダ・メッセージまたはファイル名の変更によりトリガされると、バッチ・トレーラを出力します。

バッチ・モード

[バッチハンドリング][親セグメント自動バッチ] の組み合わせにより、X12 バッチ・ドキュメント向けのオペレーションの以下のモードが有効になります。

[バッチハンドリング] [親セグメント自動バッチ] 結果
[バッチ全体] (いずれか) ビジネス・サービスは親ドキュメントのみを送信します。子ドキュメントはすべて参照されますが、個々に送信されることはありません。オペレーションでは、親ドキュメントを受信すると、一度にバッチ全体を出力します。

[1 つのセッション]

または

[複数のセッション]

サービスでは、各子ドキュメントを受信および解析すると、これを送信します。すべての子ドキュメントが送信されると親ドキュメントを送信します。ビジネス・オペレーションは、最初に子ドキュメントを受信すると親ヘッダを出力し、親ドキュメント・オブジェクトを受信すると、トレーラで終了します。トレーラ・セグメントには自動的に現在の子カウント値が含まれます。

[1 つのセッション]

または

[複数のセッション]

これにより重複した出力が得られます。ビジネス・オペレーションは、各子ドキュメントを個々に送信した後、同じ子ドキュメントを含む親ドキュメントを送信するので、子ドキュメントが 2 回送信されます。
[個別] ビジネス・サービスでは、バッチ内の各子ドキュメントを個別のセッションで転送します。バッチ・ヘッダおよびトレーラを表すオブジェクトは転送されません。出力側のビジネス・オペレーションは同じです。

バッチ全体向けのビジネス・プロセスの構成

ビジネス・サービスが [バッチ全体] モードで受信 X12 ドキュメントを処理するように設定した場合は、それに応じて適切にビジネス・プロセスを構成する必要があります。

[バッチ全体] 設定を使用する X12 プロダクションの例については、Demo.X12.SorterDTL.ByGroup.Production および Demo.X12SorterDTL.ByInterchange.Production というデモ・プロダクションを参照してください。これらを表示するには、ENSDEMO ネームスペース内にいることを確認してから、[プロダクション・リスト] ページに移動します。表示するプロダクションを選択して、[開く] をクリックします。これらのデモには、以下の構成設定がすべて含まれています。

バッチ全体用のルーティング・ルール

[バッチ全体] モードでドキュメントを適切にルーティングするには、ルーティング・ルールがインターチェンジを受け付けるように設定します。必要に応じて、関連するデータ変換に送信します。

新しいルーティング・ルールの作成

  1. 適切なネームスペース内にいることを確認してから、[Ensemble ルール・エディタ] ページに移動します。

  2. [新規作成] をクリックします。

  3. "X12 ルーティング・ルールの追加" の手順に従います。

制約の編集

  1. [制約] ルール項目をダブルクリックします。

  2. [ソース] で、お使いのビジネス・サービスを指定します。

  3. [メッセージ・クラス]EnsLib.EDI.X12.Document に設定します。

  4. [スキーマ・カテゴリ] をお使いのプロダクションに適したものに設定します。

  5. [ドキュメント名] オプションから [インターチェンジ] を選択します。

詳細は、"ルール制約エディタの使用" を参照してください。

条件の定義

お使いのプロダクションに適した任意の条件文を選択します。当該アクションが常に適用されるようにするには、[条件] ルール項目を選択して “1” と入力します。

Send アクションの追加

  1. [タイミング] ルール項目をクリックします。

  2. [送信] をクリックして send アクションを追加します。

  3. [変換] ルール項目をダブルクリックして、適切なデータ変換を選択します。

  4. [ターゲット] ルール項目をダブルクリックして、プロダクションから適切なビジネス・オペレーションを選択します。

詳細は、"send アクションの変換とターゲットの選択" を参照してください。

バッチ全体用のデータ変換

バッチ全体ドキュメントをグループ・レベルまたはトランザクション・セット・レベルで変換するには、各グループを反復処理すると共に、各グループ内の各トランザクション・セットを反復処理する必要があります。このためには、以下の手順を実行します。

新しいデータ変換の作成

  1. [アクション追加] をクリックして [set] を選択して、新しい set アクションを作成します。

  2. [プロパティ] フィールドに変数名を入力します (例 : ArrayOfGroups)。

  3. [値] フィールドに [##class(%Library.VariableName).%New()] と入力します。VariableName[プロパティ] フィールドに入力した値に置き換えます。

  4. [キー] フィールドに [""] と入力します。

グループの配列の作成

  1. [アクション追加] をクリックして [set] を選択して、新しい set アクションを作成します。

  2. [プロパティ] フィールドに変数名を入力します (例 : ArrayOfGroups)。

  3. [値] フィールドに [##class(%Library.VariableName).%New()] と入力します。VariableName[プロパティ] フィールドに入力した値に置き換えます。

  4. [キー] フィールドに [""] と入力します。

各インターチェンジ内のグループのループ処理

  1. [アクション追加] をクリックして [for each] を選択して、新しい for each アクションを作成します。

  2. [プロパティ] フィールドに [source.{GroupDocsRef}] と入力します。

  3. [キー] フィールドに [Group] と入力します。

各グループ内のトランザクション・セットのループ処理

  1. [アクション追加] をクリックして [for each] を選択して、新しい for each アクションを作成します。

  2. この for each は、前のアクションの for each ブロックと endeach ブロックの間に配置される必要があります。

  3. [プロパティ] フィールドに [Group.{TransactionSetDocsRef}] と入力します。

  4. [キー] フィールドに [TSIn] と入力します。

必要に応じてさらにアクションを追加します。詳細は、"DTL 変換の開発" を参照してください。

他のバッチ設定向けのビジネス・プロセスの構成

ビジネス・サービスが [バッチ全体] モードで受信 X12 ドキュメントを処理するように設定した場合は、それに応じて適切にビジネス・プロセスを構成する必要があります。

[単一バッチ] 設定を使用する X12 プロダクションの例については、Demo.X12.SorterProcess デモ・プロダクションを参照してください。これを表示するには、ENSDEMO ネームスペース内にいることを確認してから、[プロダクション・リスト] ページに移動します。表示するプロダクションを選択して、[開く] をクリックします。このデモには、以下の構成設定がすべて含まれています。

他のバッチ設定用のルーティング・ルール

単一セッション・モード、複数セッション・モード、または個別モードでドキュメントを適切にルーティングするには、プロダクションで検出される X12 ドキュメントのタイプごとに一意のルーティング・ルールが含まれたルーティング・ルール・セットを作成します。

ルール・セット内に新しいルールを作成するには、以下の手順を実行します。

  1. [ruleSet] をクリックします。

  2. [ルール] をクリックしてルールを追加します。

  3. "バッチ全体用のルーティング・ルール" の手順に従います。

  4. 制約を編集する際は、必ず [ドキュメント名] を適切な X12 ドキュメント・タイプに設定してください。

  5. データ変換を追加する際は、必ず適切な X12 ドキュメント・タイプ向けに記述された変換を使用してください。

他のバッチ設定用のデータ変換

単一セッション・モード、複数セッション・モード、または個別モードで、プロダクション内の X12 ドキュメントを変換するには、プロダクションで検出される X12 ドキュメントのタイプごとに別個のデータ変換を作成する必要があります。詳細は、"DTL 変換の開発" を参照してください。

FeedbackOpens in a new tab