X12 ビジネス・サービスの設定
概要
X12 ビジネス・サービスには次のような設定があります。
グループ | 設定 | 参照先 |
---|---|---|
基本設定 | [ターゲット構成名]、[Docスキーマ・カテゴリ]、[バッチハンドリング] | "プロダクション内での仮想ドキュメントの使用法" の "ビジネス・サービスに関する設定" |
応答確認 | [リプライターゲット構成名] (ファイル)、[検証モード]、[検証]、[SNIP レベル]、[バッチエラーアクション]、[バッチリプライタイプ]、[NACK ERR追加]、[リプライモード]、[不正メッセージ・ハンドラ] | このトピック内の節 |
接続設定 | [新規ライン許容] | このトピック内の節 |
追加設定 | [テーブルクラス検索] | "プロダクション内での仮想ドキュメントの使用法" の "ビジネス・サービスに関する設定" |
[リプライターゲット構成名] (FTP) | このトピック内の節 | |
[ローカルアプリケーションID]、[デフォルト文字エンコード] | このトピックの節 |
残りの設定は、すべてのビジネス・サービスに共通のものであるか、アダプタのタイプによって異なるものであるかのどちらかです。詳細は、以下の各ドキュメント内の設定のリファレンスのセクションを参照してください。
-
"プロダクション内でのファイル・アダプタの使用法" の "ファイル受信アダプタに関する設定"
-
"プロダクション内での FTP アダプタの使用法" の "FTP 受信アダプタの設定"
EnsLib.EDI.X12.Adapter.TCPInboundAdapterOpens in a new tab の [接続毎のジョブ] が偽 (False) に設定されます。X12 の場合はこれが一般的です。
-
"プロダクション内での SOAP サービスおよび Web クライアントの追加" の "SOAP 受信アダプタに関する設定"
NACK ERR追加
エラー・ステータス応答メッセージの生成時に、TA1 & 997/999 AKx セグメントに追加エラー・テキスト・フィールドを追加します。追加しない場合、確認応答メッセージに内部のエラー状態情報は組み込まれません。
不正メッセージ・ハンドラ
ドキュメントの検証が失敗すると、この設定で指定されている [不正メッセージ・ハンドラ] にそのドキュメントが送信されます。そのドキュメントがバッチの一部の場合、バッチ・エラー・アクションによって、バッチの処理方法が決められます。この設定は、[検証モード]、[検証]、[SNIP レベル]、および [バッチエラーアクション] の組み合わせで機能します。
"不正メッセージ・ハンドラの定義" を参照してください。
バッチエラーアクション
バッチ Interchange ドキュメントで検証エラーが検出された場合のサービスの対処方法を指定します。このオプションは以下のとおりです。
バッチ内のドキュメントにエラーが検出された場合は、バッチの残りの部分も検証され、バッチ全体が拒否されます。
さらに、[バッチリプライタイプ] で許可されている場合は、応答ドキュメントには、すべてのエラーが列挙され、適宜、各機能グループ応答トレイラー (AK9) セグメントやトランザクション・セット応答トレイラー (AK5) セグメントに A (許可) または R (拒否) のいずれかの確認応答コードが表示されます。
バッチやバッチの一部がターゲットのビジネス・ホストに転送されることはありません。
バッチ内のドキュメントにエラーが検出された場合は、バッチ全体が即座に拒否されます。他にエラーがないか確認されたり、バッチの残りの部分が解析されることはありません。
さらに、[バッチリプライタイプ] で許可されている場合は、応答ドキュメントには、エラーが列挙され、適宜、検証された各機能グループ応答トレイラー (AK9) セグメントやトランザクション・セット応答トレイラー (AK5) セグメントに A (許可) または R (拒否) のいずれかの確認応答コードが表示されます。トランザクション・セット応答ヘッダ (AK2) セグメントが、R が記された AK5 セグメントの後に表示されることはありません。R はエラーが発生したトランザクション・セットに相当します。
バッチやバッチの一部がターゲットのビジネス・ホストに転送されることはありません。
検証に合格したバッチ内のドキュメントが、ターゲットのビジネス・ホストに転送されます。
エラーを含むトランザクション・セットはターゲット・ビジネス・ホストに送信されず、無効なトランザクション・セットは送信対象の機能グループから削除されます。ある機能グループのすべてのトランザクション・セットにエラーが含まれている場合、その機能グループは送信されません。同様に、ある interchange のすべての機能グループのすべてのトランザクション・セットにエラーが含まれている場合、その interchange は送信されません。
さらに、[バッチリプライタイプ] で許可されている場合は、応答ドキュメントには、エラーが列挙され、適宜、各機能グループ応答トレイラー (AK9) セグメントには A (許可)、P (一部許可)、または R (拒否) のいずれかの確認応答コードが、各トランザクション・セット応答トレイラー (AK5) セグメントには A または R のいずれかの確認応答コードが表示されます。
[個別のエラーを拒否] がデフォルト値です。
バッチ内のすべてのドキュメントが転送されます。
さらに、[バッチリプライタイプ] で許可されている場合は、応答ドキュメントには、すべてのエラーが列挙され、適宜、各機能グループ応答トレイラー (AK9) セグメントやトランザクション・セット応答トレイラー (AK5) セグメントに A (許可) または E (受け入れられましたが、エラーが記載されました) のいずれかの確認応答コードが表示されます。
[リプライモード] が Application で、[バッチハンドリング] が Individual でない場合は、InterSystems IRIS® により、エラー検出時にバッチ全体が拒否される前に、バッチ内のドキュメントの一部が転送される可能性があります。
検証エラーのためにドキュメントが転送されない場合、そのドキュメントは削除されます。さらに、[バッチハンドリング] の値が Individual である場合、永続化された親ドキュメントは、対応するどの子ドキュメントも転送されないと削除されます。
バッチハンドリング
X12 トランザクション・セットの ドキュメントは、多くの場合 Interchange というバッチ・ドキュメントにパッケージ化されます。これには、機能グループというネストされたサブバッチが含まれています。[バッチハンドリング] 設定では、受信したドキュメント・バッチの InterSystems IRIS での処理方法について指定します。このオプションは以下のとおりです。
-
[バッチ全体] — 子ドキュメントを個別に処理しません。累積してバッチ全体を 1 つの複合ドキュメントとして送信します。
-
[1 つのセッションのバッチ] — バッチ内のすべてのドキュメントを 1 つのセッションでまとめて転送します。セッションには、親ドキュメントのヘッダ・セグメントとトレーラ・セグメントを表すオブジェクトが含まれています。これがデフォルトです。
-
[複数のセッションのバッチ] — バッチ内の各ドキュメントを個別のセッションで転送します。各セッションには、バッチのヘッダ・セグメントとトレーラ・セグメントを表すオブジェクトが含まれています。
-
[個別] — バッチ内の各子ドキュメントを個別のセッションで転送します。親バッチ・ドキュメントのヘッダ・セグメントとトレーラ・セグメントを表すオブジェクトは転送されません。
バッチリプライタイプ
受信した Interchange バッチに対して作成するバッチ応答のタイプを指定します。以下のテーブルに可能な選択肢を列挙します。
値 | 意味 |
---|---|
[なし] | バッチ応答を生成しません。エラーが発生しても、送信元への即時通知応答を作成しません。 |
[すべて] | Interchange で受信されたトランザクション・セットごとに、応答通知を含む応答 Interchange を生成します。 |
[すべて + TA1] | Interchange 全体の承認またはエラー・ステータスを示す TA1 セグメントおよび Interchange で受信された各トランザクション・セットの応答通知を含む、応答 Interchange を生成します。 |
[すべて + ISA14TA1] | インターチェンジ・コントロール・ヘッダ (ISA) セグメントの確認応答要求 (ISA:14) フィールドに 1 が表示される場合、またはインターチェンジ・エンベロープにエラーが表示される場合にのみ、TA1 セグメントを含む応答 Interchange と各トランザクション・セットの応答を生成します。または、各トランザクション・セットに対する応答を含む実装の確認応答 (999) ドキュメントを生成します。 |
[エラー] |
エラーが検出されたかどうかにかかわらず、応答 Interchange を生成します。エラーが検出されなかった場合は、空の応答 Interchange を生成します。エラーが検出された場合は、エラーが検出されたトランザクション・セットに対してのみ、応答通知を含む Interchange を生成します。 選択項目が指定されていない場合は、これがデフォルトの設定です。 |
[OnlyIfErrors] | エラーが検出された場合は、エラーが検出されたトランザクション・セットに対してのみ、応答通知を含む応答 Interchange を生成します。 |
[成功] | エラーが検出されたかどうかにかかわらず、応答 Interchange を生成します。エラーがすべてのトランザクション・セットで検出された場合は、空の応答 Interchange を生成します。それ以外の場合は、エラーが検出されていない (正常な) トランザクション・セットに対してのみ、応答通知を含む応答 Interchange を生成します。 |
[TA1] | 受信された Interchange 全体の承認またはエラー・ステータスを示す TA1 セグメントのみを含む応答 Interchange を生成します。 |
[OnlyIfErrorTA1] | エラーが検出された場合は、受信された Interchange 全体に対するエラー・ステータスを示す TA1 セグメントのみを含む応答 Interchange を生成します。 |
[ISA14-TA1] | 受信 ISA ヘッダ・セグメントの ISA:14 フィールドが 1 に設定されている場合は、TA1 セグメントのみを含む応答 Interchange を生成します。1 に設定されていない場合は、何も返しません。 |
[ISA14-OnlyIfErrorTA1] | エラーが検出されたうえ、受信 ISA ヘッダ・セグメントの ISA:14 フィールドが 1 に設定されている場合は、エラーの TA1 セグメントのみを含む応答 Interchange を生成します。それ以外の場合は、何も返しません。 |
[バイト] | 1 文字のコードで構成した応答を生成します。Interchange 全体が承認された場合は「A」、1 つまたは複数のエラーにより拒否された場合は「R」です。 |
TA1 セグメントに関連するすべてのオプションは、多くの場合は応答 Interchange の唯一の本文セグメントとして、TA1 セグメントを強制的に生成するのに使用されます。この規則は、受信 Interchange 全体のエラーの有無を表すのに使用されます。 ただし、TA1 セグメントでのみレポート可能なエラーが受信 ISA や IEA で検出されると、構成済みの設定で TA1 を強制的に表示しない場合でも、TA1 が生成されます。
デフォルト文字エンコーディング
入力データの文字セットを指定します。InterSystems IRIS は、自動的に、文字をこの文字エンコーディングから変換します。サポートされる値は UTF-8 または Latinn ファミリのメンバです。値の Native は、InterSystems IRIS サーバのネイティブ・エンコーディングを使用することを意味します。
@ (アット・マーク) 文字をこのフィールドの先頭に配置すると、このフィールドは論理文字エンコードではなく、内部 NLS 変換テーブルを指定します。
デフォルトはアダプタによって異なります。
文字セットおよび変換テーブルの詳細は、"変換テーブル" を参照してください。
デフォルトの区切り文字と終端文字
X12 ドキュメントは通常、1 つ以上の機能グループを含み、そのそれぞれに 1 つ以上のトランザクション・セットが含まれる、インターチェンジで構成されるバッチで提供されます。インターチェンジ・ヘッダ (ISA) セグメントには、ドキュメントの解析に使用する区切り文字に関する情報が含まれます。
X12 インターチェンジの解析時、ヘッダ内で見つかった値に区切り文字が設定され、ドキュメントの残りの部分がそれらの値を使用して解析されます。インターチェンジ・ヘッダがない場合、唯一の明らかな区切り文字は要素区切り文字 (セグメント名の直後の文字) であり、セグメント終端文字が該当する場合もあります ([CRLF] が続く場合)。この場合、システム・デフォルトの区切り文字値が区切り文字として使用され、これらに基づいてドキュメントが解析されます。システム・デフォルトの区切り文字は以下のとおりです。
-
$C(30) — 繰り返し区切り文字
-
: — コンポーネント要素の区切り文字
-
~ — セグメント終端文字
[追加の設定] 領域に表示される以下の設定を使用して、インターチェンジ・ヘッダがない場合にこれらの区切り文字に使用する異なるデフォルト値を渡すことができます。
-
デフォルトの繰り返し区切り文字
-
デフォルトの要素コンポーネント区切り文字
-
デフォルトのセグメント終端文字
EnsLib.EDI.X12.DocumentOpens in a new tab メソッドの ImportFromFile、ImportFromDevice、ImportFromLibraryStream、ImportFromString、および ImportFromIOStream にもこれらの値のパラメータがあります。
ソース・ドキュメントに無効な区切り文字または重複している区切り文字が含まれる場合、[追加の設定] 領域で対応する区切り文字が定義されているか、対応するシステムのデフォルト区切り文字であれば、これが使用されます。
ローカル・アプリケーションID
このビジネス・サービスを通じて X12 ドキュメントを受け取る機能とアプリケーションを表す、コロンで区切られた LocalID:Qualifier コード。これらは、応答ドキュメントのヘッダを作成するために使用されます。@ (アット・マーク) 文字は、受信ドキュメントから対応するフィールドを使用することを表します。ID にリテラルの @ 記号を含める必要がある場合は、\@ のようにバック・スラッシュでエスケープします。
デフォルト値は、以下です。
EnsembleX12Service:03
リプライモード
X12 応答ドキュメント (TA1 や 997 など) の発行方法を指定します。オプションは以下のとおりです。
-
[応答しない] — 応答を送信しません。
-
[即時] — Interchange の受信後直ちに、ビジネス・サービスから応答を送信します。これがデフォルトです。
-
[アプリケーション] — ターゲットの構成項目からの応答を待機します。応答を受信したら、送信元に応答を渡します。検証に失敗したり、その他のエラーが発生した場合は、[BatchReplyType] に選択されているオプションに従って、即座に応答を生成します。
受信 ISA セグメントに、X12 標準に照らして長すぎたり短すぎたりするフィールドが含まれている場合は、応答ドキュメントにコピーされるときに、標準に適合するように、そのフィールドに対して埋め込みまたは切り捨てが行われます。
リプライターゲット構成名
([ファイル] および [FTP] のみ) ビジネス・サービスが実行した検証に基づいて構成した応答をどこに送信するかを指定します。通常、リストには、1 つの項目が含まれますが、それ以上の項目数の場合があります。リストには、ビジネス・プロセスまたはビジネス・オペレーション、あるいはその両方の組み合わせを含めることができます。
[ターゲット構成名] と比較してください。
SNIP レベル
[Validation Mode] が [SNIP] の場合にのみ関係します。
-
SNIP レベル 1 — セグメントが有効であること、セグメント順序が有効であること、要素属性が有効であること、数値データ要素に数値があること、メッセージが X12 ルールに準拠していること。
-
SNIP レベル 2 — HIPAA 要件 (必要な要素が存在すること、使用されていませんとマークされた要素が使用されていないこと、値がコード・テーブルに従っていることなど) を満たしていること
新規ライン許容
真または偽。真 (True) の場合は、読みやすくするために、新しい行がセグメント終端文字の後に (または終端文字の代わりに) ファイルに挿入された場合でも、ビジネス・サービスは受信した X12 ファイルをエラーなしで処理します。偽 (Fals) の場合は、追加されたこれらの新しい行によってファイル解析中にエラーが発生します。デフォルトは真です。
検証モード
以下の 2 種類の X12 検証が利用可能です。
-
SNIP レベル検証 — Workgroup for Electronic Data Exchange (WEDI) の Strategic National Implementation Process (SNIP) で開発された標準に従って X12 メッセージを検証します。
-
フラグ・ベースの検証。
SNIP 検証では、以下を検証できます。
-
SNIP レベル 1 — セグメントが有効であること、セグメント順序が有効であること、要素属性が有効であること、数値データ要素に数値があること、メッセージが X12 ルールに準拠していること。
-
SNIP レベル 2 — HIPAA 要件 (必要な要素が存在すること、使用されていませんとマークされた要素が使用されていないこと、値がコード・テーブルに従っていることなど) を満たしていること
フラグ・ベースの検証では、以下を検証できます。
-
条件付きの必須フィールドなど、必要なフィールドが存在し、すべてのフィールドがスキーマで許可されていること。
-
条件付きで除外されるフィールドが存在しないこと。
-
セグメント内のフィールド数、およびそれらがスキーマで許容されているだけ繰り返されているかどうか。
-
フィールドおよびコンポーネントのデータ型が正しいこと。
-
フィールド値が指定されたコード・テーブルに従っていること。
-
フィールドおよびコンポーネントの値が長さ制限に従っていること。