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 ビジネス・オペレーションの設定に関する参照情報を提供します。

概要

X12 ビジネス・オペレーションには次のような設定があります。

グループ 設定 参照先
基本設定 [ファイル名] このトピックの節
追加設定 [テーブルクラス検索][デフォルト文字エンコーディング] "Ensemble 仮想ドキュメント" の “ビジネス・オペレーションに関する設定
[親セグメント自動バッチ][切断中は失敗としない][セパレータ][検証][リプライコードアクション][再試行タイムアウト] このトピックの節

残りの設定は、すべてのビジネス・オペレーションに共通のものであるか、アダプタのタイプによって異なるものであるかのどちらかです。詳細は、以下を参照してください。

  • "Ensemble プロダクションの構成" の “すべてのビジネス・オペレーションに含まれる設定

  • "Ensemble でのファイル・アダプタの使用法" の “ファイル送信アダプタに関する設定

  • "Ensemble での FTP アダプタの使用法" の “FTP 送信アダプタに関する設定

  • "Ensemble での TCP アダプタの使用法" の “TCP 送信アダプタに関する設定

    EnsLib.X12.Adapter.TCPOutboundAdapter には、X12 用に適切に構成されている以下の設定が含まれています。

    • [接続タイムアウト] の通常のデフォルト値は 5 秒ですが、最大値は 30,000 秒となります。

    • [準備完了] は偽に設定されています。これは、ソケットから返される応答メッセージを読み取るまで待機してから返すことを意味します。

    • [応答タイムアウト] のデフォルト値は、通常の 15 秒ではなく 30 秒で、最大値は 30,000 秒となります。

親セグメント自動バッチ

([File] および [FTP] のみ) 真の場合は、バッチの親ドキュメントを含むドキュメントを書き込む際に、バッチ・ヘッダ・セグメント、子ドキュメントの順に出力します。さらに、最後のバッチ・ヘッダ・ドキュメント・オブジェクトやファイル名の変更によってトリガされた場合は、バッチ・トレーラ・セグメントを出力します。偽の場合、ヘッダおよびトレーラは省略され、子ドキュメントのみが出力されます。X12 のデフォルトは真です。

デフォルト文字エンコーディング

出力データに適した文字セットを指定します。Ensemble は、自動的に、文字をこの文字エンコーディングに変換します。X12 出力の場合は、デフォルトが Latin1 です。“X12 ビジネス・サービスの設定” の “デフォルト文字エンコーディング” を参照してください。

再試行タイムアウト

再試行を実行できる秒数。この時間を経過すると、ビジネス・オペレーションは再試行を中断して、エラー・コードを返します。X12 ビジネス・オペレーションは、タイムアウトが発生しないようにこの値を自動的に「–1」に設定し、すべての X12 ドキュメントがスキップされないようにします。

ファイル名

([File] および [FTP] のみ) ファイル名を出力します。この設定には、Ensemble タイム・スタンプ指定子を含めることができます。[ファイル名] を空白にした場合のデフォルト値は %f_%Q で、この指定子の意味は次のとおりです。

  • %f は、データ・ソースの名前 (この場合は入力ファイル名) を表します。

  • _ は、リテラルのアンダースコア文字で、出力ファイル名に表示されます。

  • %Q は、ODBC 形式の日付と時刻を表します。

書式コード %f に具体的な値を使用すると、その値に使用している |、?、\、/、:、[、]、<、>、&、,、;、NUL、BEL、TAB、CR、LF の各文字はすべて削除され、空白は下線 (_)、スラッシュ (/) はハイフン (-)、コロン (:) はドット (.) にそれぞれ置き換えられます。

デフォルトの %f_%Q の代わりに使用できる各種のコードを含む、タイム・スタンプの規則の詳細は、"Ensemble プロダクションの構成" の “ファイル名に関するタイム・スタンプ指定” を参照してください。

切断中は失敗としない

[TCP] のみ) 真の場合、TCP サーバから切断されている間、[再試行タイムアウト] までの秒数のカウントを中断します。[再試行タイムアウト] が -1 または [接続を維持] が 0 の場合は、この設定は適用されません。

リプライコードアクション

([TCP] のみ) アダプタ設定の [準備完了] が真 (True) の場合に、この設定を使用して、各種確認応答ドキュメントを受信した際にビジネス・オペレーションが実行するアクションを指定する、コードとアクションのペアのカンマ区切りリストを指定できます。リストの形式は以下のとおりです。

code=action,code=action, ... code=action

ここで、code は、確認応答ドキュメント TA1:4、AK5:1、または AK9:1 の各フィールドに表示されるリテラル値を表しています。予測される code の値を以下に示します。

コード 意味
A 受け入れられました。
E 受け入れられましたが、エラーが記載されました。
R 拒否されました。
M 拒否されました。Message Authentication Code (MAC) が失敗しました。
W 拒否されました。検証テストに失敗しました。
X 拒否されました。コンテンツの複合化に失敗しました。
~ チルダ文字は、TA1、AK5、または AK9 セグメントを含まない応答に相当します。
_ 下線文字は、フィールドの値が空の応答に相当します。空または空白コードの値は _ と同じです。
* アスタリスク文字は、他の文字に相当しない任意の値に相当します (デフォルト = S)。
I? 応答 ControlId が元のドキュメントの ControlId に一致しない場合に相当します。

action に対して以下の値が単独または組み合わせて使用され、文字列を形成します。他に指定されていない場合は、S がデフォルトのアクションです。ただし、A は除きます。A のデフォルトのアクションは C です。

アクション 意味
C ドキュメントを正常に完了したとして処理します。 コード A のデフォルトのアクションは C です。
W 警告をログに記録しますが、ドキュメントを正常に完了したとして処理します。
R 構成済みの [RetryInterval および FailureTimeout] の設定に従ってドキュメントを再試行します。別のアクションが指定されていない場合は、最終的には失敗します。
S ドキュメントを中断し、エラーをログに記録し、次のドキュメントに進みます。S は、コード A 以外のすべてのコードのデフォルトのアクションです。コード A のデフォルトのアクションは C です。
D ビジネス・オペレーションを無効にし、エラーをログに記録し、送信ドキュメントをビジネス・オペレーションのキューの前にリストアします。
F エラーにより失敗し、次のドキュメントに進みます。

この設定の文字列のデフォルト値は、以下のとおりです。

A=C,*=S,~=S,I?=W

これは、以下のような意味になります。

  • A=C — アクションが受け入れられると、ドキュメントを正常に完了したとして処理します。

  • I?=W — 応答 ControlId が元のドキュメントの ControlId と一致しない場合は、警告をログに記録しますが、ドキュメントは正常に完了したとして処理します。

  • *=S,~=S — TA1、AK5、または AK9 セグメントを含まない応答によってドキュメントが中断された場合など、その他すべての場合には、エラーをログに記録し、次のドキュメントに進みます。

セパレータ

後述のように、X12 区切り文字に左から右の順に割り当てられる区切り文字の列。

[セパレータ] の文字列が空白の場合、デフォルトで、X12 用の現在のデフォルトの区切り文字とセグメント終端文字、および復帰改行 (ASCII 13) と改行 (ASCII 10) が使用されます。

*:\a~\r\n

X12 ドキュメントでは、未加工のコンテンツを編成するために特殊文字を使用します。これらの文字は、医療アプリケーションによって異なる場合があります。[セパレータ] の値が空白ではない場合は、位置 1 ~ 3 (左から順に) は以下のとおりに解釈されます。

  1. データ要素区切り文字 (ES)

  2. コンポーネント区切り文字 (CS)

  3. データ要素の繰り返し区切り文字 (RS)

位置 1 ~ 3 のデフォルト値は以下のとおりです。

  1. * (アスタリスク)

  2. : (コロン)

  3. \a (レコード区切り文字)

[セパレータ] には、Ensemble で X12 区切り文字に左から右へ割り当てる 3 文字 (ES、CS、RS) の文字列を指定する必要があります。これらの文字については、前出のリストで説明しています。

位置 4 ~ 6 の文字は、デフォルトのセグメント終端文字、~ (チルダ) を上書きします。以下のリテラルを使用して、位置 4 ~ 6 には 0 ~ 3 文字を指定できます。

  • \r :復帰改行 (ASCII 13)

  • \n :改行 (ASCII 10)

  • \a :配列のレコード区切り文字 (ASCII 30)

位置 4 以降にセグメント終端文字を指定する必要があるものの、出力ドキュメントで使用する区切り文字を 2 個以下にする場合は、位置 1 ~ 3 に \x を使用できます。位置 1 ~ 3 に \x で指定されている区切り文字は、使用されません。\x の目的は、単に区切り文字の列挙の長さを延長し、位置 4 が最初のセグメント終端文字として正しく解釈されるようにすることです。

検証

空白以外の文字列により、送信ドキュメントの基本的な検証がトリガされます。[検証] フィールドが空白のままの場合は、送信ドキュメントの検証は実行されません。

FeedbackOpens in a new tab