SAP IDoc ファイルの概要 |
SAP IDoc (Intermediate Document) ファイルは、複数のセグメントにグループ化されたデータのフィールドで構成されています。セグメントは相互に関係のある階層構造になっています。
SAP は、SAP Aktiengesellschaft (SAP AG) の商標です。
医師が入院患者に出す処方箋を院内の薬局に転送する場合を考えてみます。この転送は、病床プログラムから薬局のプログラムに送信される IDoc を使用して行うことができます。
IDoc に次のような 4 レベルのセグメントの階層構造があると想定します。
患者名:Johnson
診断:クループ
診断: 脛骨の骨折
診察タイプ: 入院
医薬品: コデイン
医薬品: アドミール
診察タイプ: 再診
医薬品: ナプロシン
レベル 1:患者の名前や住所など、長年にわたり変更されないデータが含まれます。
レベル 2:特定の疾病期間中は変らないものの、病気に応じて変化するデータ (主治医や診断など) が含まれます。患者には複数のレベル 2 セグメントを設定できます。
レベル 3:特定の外来診察の間のみ変化せず、診察ごとに異なるデータ (入院や再診などの診察タイプ、担当医など) が含まれます。患者は疾病期間中、複数の診察を受ける場合もあります。
レベル 4:各処方箋に応じて変化するデータ (処方箋を出している医師、医薬品、服用量) が含まれています。患者は 1 回の診察で複数の医薬品を受け取ることがあります。
SAP (Systems, Applications and Products in Data Processing) は、サードパーティ製アプリケーションおよび互換性のないデータベースが情報を交換し、大企業の注文処理、納品、顧客サービス、サプライチェーン管理、在庫管理システム自動化するためにデザインされたワークフローアプリケーションです。
SAP の Auto-ID Infrastructure (AII) を使用して XML スクリプトを作成する
IDoc ファイルを作成する
IDoc は、相互に階層関係を持つセグメントにデータのフィールドをグループ化する方法です。SAP では、ファイル種類のライブラリが維持されますが、必要に応じてカスタム IDoc ファイル種類を作成できます。
IDoc はメッセージなので、送信側プログラムと受信側プログラムの両方で IDoc 内での各データの配置に関する共通の規則に準拠する必要があります。したがって、SAP AG は数百種の IDoc と多数のセグメント種類を定義しています。
送信側プログラムは、これらの定義に従って、特定の種類の IDoc を構築する必要があります。受信側プログラムは、IDoc を解析する際に、これらの定義に準拠する必要があります。
IDoc 種類には、6 つの文字と 2 つの数字で構成された名前が付いています。たとえば、SHPMNT01 は、出荷 (Shipment) に関するメッセージを含む IDoc です。IDoc の定義は SAP によって改訂されることがあります。名前の最後に付けられた 2 つの数字が改訂を示します。
セグメント名は、3 桁のバージョン番号で終了することがあります。たとえば、E2KNA1M001 は DEBMAS02 (カスタマーマスター) IDoc 種類のセグメントです。
SAP オーナーは、独自のカスタム IDoc タイプとセグメント タイプを作成で��ます。
SAP AG によって定義されるセグメントの名前は常に "E" で始まり、カスタムデザインされたセグメントの名前は常に "Z" で始まります。
パーサファイルを特定の IDoc 種類に関連付けるには、Administration Console の [データベース接続] セクションの [SAP IDoc 定義] ページを使用します。
子セグメントのデータは常に親セグメントのデータに関連付けられているため、最上部のノードから最下部のノードにいたるまで IDoc のツリーを通る非分枝パスは、テーブル形式のデータソースのレコードと同じようなレコードとみなされます。
各セグメントに 1 つのフィールドが含まれている次のデータ階層を考えてみます。
患者名:Johnson
診断:クループ
診断: 脛骨の骨折
診察タイプ: 入院
医薬品: コデイン
医薬品: アドミール
診察タイプ: 再診
医薬品: ナプロシン
Johnson という名前の患者は、喉頭炎や脛骨の骨折で何度か治療を受けています(最初の病気の詳細は記載されていません)。骨折の初診で、医師はコデインとアミドールを処方しました。再診の際には、ナプロシンが処方されました。
脛骨の骨折からナプロシンの処方までのパスは、次のようなフラットレコードに圧縮できます。
患者名 |
診断 |
診察 |
医薬品 |
Johnson |
脛骨の骨折 |
再診 |
ナプロシン |
他の 2 つの完全なパスも次のフラットレコードのように圧縮できます。
患者名 |
診断 |
診察 |
医薬品 |
Johnson |
脛骨の骨折 |
入院 |
コデイン |
Johnson |
脛骨の骨折 |
入院 |
アドミール |
IDoc のデータ階層から生成できる各レコードの項目を印刷する必要がない場合があります。
「マスターセグメント」は、デザインのニーズに関連のあるデータのみに絞り込まれたセグメントです。
最初の例で使用したデータツリーを考えてみます。処方されたすべての医薬品のラベルが必要な場合、レベル 4 でマスターセグメントを設定します。
患者名 |
診断 |
診察 |
医薬品 |
---|---|---|---|
Johnson |
脛骨の骨折 |
入院 |
コデイン |
Johnson |
脛骨の骨折 |
入院 |
アドミール |
Johnson |
脛骨の骨折 |
再診 |
ナプロシン |
病院では診察 1 回ごとに別個のファイルを維持しており、ファイルフォルダ用のラベルを作成するとします。診察 1 回につき 1 枚のラベルが必要です。
患者名 |
診断 |
診察 |
医薬品 |
---|---|---|---|
Johnson |
脛骨の骨折 |
入院 |
コデインアミドール |
Johnson |
脛骨の骨折 |
再診 |
ナプロシン |
この IDoc から構築された項目の標準的な実行では、個々の_____________に 1 つの項目を印刷します。
この例では、「診察」がステートメントの空欄に入る場合、マスターセグメントレベルではレベル 3 が最適な選択と思われます。空欄に「処方薬」が入る場合、レベル 4 が最適な選択となります。
IDoc 種類を追加、変更、または削除する度に、SAP IDoc 定義ファイルは修正されます。Administration Console の [データベース接続] セクションの [SAP IDoc 定義] ページでカスタム IDoc 定義ファイルを作成できます。