关于 SAP IDoc 文件

SAP 中间文档 (IDoc) 文件由分组成几段的数据字段组成。各段之间彼此具有层次关系。

SAP 是 SAP Aktiengesellschaft (SAP AG) 的商标。

关闭层次结构示例

医生为医院患者所开的药方必须交到医院的药房处。这一传递过程可以通过从床边程序发送到药房中的程序的 IDoc 来实现。

假定 IDoc 具有由四个级别的段构成的层次结构,如下所示。

患者姓名:约翰逊

诊断结果:哮吼

诊断结果:胫骨骨折

就诊类型:住院

药名:可待因

药方:阿米酚

就诊类型:随诊

药方:萘普生

第 1 级:包含保存一次后将保持若干年不变的数据,如患者姓名和住址。

第 2 级:包含在特定疾病过程中保持不变、但因疾病而异的数据,如主治医师和诊断结果。一位患者可以具有多个处于第二级的段。

第 3 级:包含特定就诊过程中保持不变、但因每次就诊而异的数据;如就诊类型(入院或复查)和主治医师。患者可能在一次疾病过程中多次就诊。

第 4 级:包含因药方而异的数据,如开药方的医师、用药和剂量。一位患者某次特定就诊的药方中可能包含多种药物。

关闭与 SAP 集成

数据处理中的系统、应用程序和产品 (SAP) 是一个工作流应用程序,允许第三方应用程序和不兼容的数据库交换信息,并自动执行大型公司订单处理、实现、客户服务、供应链管理和库存管理系统。BarTender 使用 IDoc 将 SAP 数据库中的数据移动到您打印的项目。

使用 SAP 的设计师可以选择通过 BarTender 或 SAP 进行打印。使用 BarTender 打印项目时,会将信息从 SAP 发送到 BarTender。SAP 可以通过以下方法发送数据:

使用 SAP 系统打印项目时,BarTender 会向 SAP 发送一组名为打印机代码模板的格式命令。该模板连同数据一起会被发送到打印机。

关闭使用 IDoc 文件

IDoc 是指将数据的字段分组成彼此具有层次关系的段的方法。SAP 会维护文件类型库,但是您可以创建自定义 IDoc 文件类型以满足自己的需要。IDoc 文件是包含从 SAP 连接的程序发送到 BarTender 的数据的消息。您可以使用“数据库设置向导”将 IDoc 文件添加到 BarTender 文档,并使用“数据库设置”对话框管理连接。也可以在 Administration Console 的“数据库”部分的“SAP IDoc 定义”页面创建自定义 IDoc 定义。

关闭IDoc 类型和段定义

由于 IDoc 是一种消息,因此发送和接收程序都必须符合关于在给定的 IDoc 中从哪些位置可以找到各部分数据的通用惯例。因此,SAP AG 已定义了数百种 IDoc 类型以及大量的段类型。

发送程序必须根据这些定义构造给定类型的 IDoc,而接收程序在对 IDoc 进行分析时必须符合这些定义。这意味着在设置 BarTender 来使用 IDoc 中的数据过程中,需要识别解析器文件。

IDoc 类型的名称由六个字母和两个数字组成。例如,SHPMNT01 是包含有关装运的消息的 IDoc。SAP 时常修改 IDoc 的定义,名称末尾的两个数字标识了修订的版本号。

段名称可能以三个数字的版本号结尾。例如,E2KNA1M001 是 DEBMAS02(客户主数据)IDoc 类型的一个分段。

SAP 所有者可以创建自己的自定义 IDoc 类型和段类型。

由 SAP AG 定义的段名称始终以“E”开头,而自定义设计的段名称始终以“Z”开头。

关闭分析器文件

IDoc 类型的分析器文件包含 BarTender 分析 IDoc 所需要的信息;例如,其中将出现哪些段、哪些段是可重复的、哪些数据字段将出现在每一段中、字段的顺序,以及每个字段的长度。

要将分析器文件与特定的 IDoc 类型相关联,请使用 Administration Console 的“数据库”部分的“SAP IDoc 定义”页面。

关闭将 IDoc 层次数据转换成平构记录

由于子段中的数据总是与其父段中的数据相关联,因此对于 IDoc 中某树的任何非分支路径,从顶部节点到底部节点这一段都可以被视为一个像面向表的数据库中的记录一样的记录。

关闭示例

以下列数据层次结构为例,其中每一段都只包含一个字段:

患者姓名:约翰逊

诊断结果:哮吼

诊断结果:胫骨骨折

就诊类型:住院

药名:可待因

药方:阿米酚

就诊类型:随诊

药方:萘普生

患者张曾在不同时期接受过针对喉炎和胫骨骨折的治疗。(第一种疾病没有详细的记录。)第一次因骨折去医院就诊时,医生开了可待因和阿米酚两种药品。而第二次就诊时,医生开了甲氧基甲基萘乙酸。

胫骨骨折和甲氧基甲基萘乙酸药方的路径可以折叠为平构记录,如下所示。

患者姓名

诊断结果

就诊

药方

约翰逊

胫骨骨折

随诊

萘普生

其他两个完整路径则可以折叠为以下平构记录。

患者姓名

诊断结果

就诊

药方

约翰逊

胫骨骨折

住院

可待因

约翰逊

胫骨骨折

住院

阿米酚

BarTender 在读取 IDoc 时,会将数据树折叠成为平构记录。您可以从这些记录中选择模板中对象所需的字段。

关闭主段

对于可能从 IDoc 数据层次结构中生成的每一条记录来说,并非都需要一个要打印的项目。您可以配置 BarTender,使其在打印时只选择某些记录,而对于一些从 IDoc 提取数据的文档,即使在典型情况下也不要求得到所有可能生成的记录。BarTender 使用“主段”这个概念来帮助您仅生成您需要从 IDoc 生成的记录。

主段的定义如下:就设计需要而言,主段中的数据是我们最看重的数据。BarTender 将为 IDoc 中您指定为主段的每一个段各生成一条记录。

关闭示例

介绍示例中显示的数据树为例。如果医院需要为所开的每一种药物都生成一个标签,则它可以将主段设置为第四级。于是,BarTender 就将生成三条记录,如下所示。

患者姓名

诊断结果

就诊

药方

约翰逊

胫骨骨折

住院

可待因

约翰逊

胫骨骨折

住院

阿米酚

约翰逊

胫骨骨折

随诊

萘普生

假设医院想要分开保存每次患者就诊的文件,并且想要为文件的文件夹生成相应的标签。每次就诊仅需要一个标签。这种情况下,可以将主段设置为第三级,而 BarTender 将生成两条记录,如下所示。

患者姓名

诊断结果

就诊

药方

约翰逊

胫骨骨折

住院

可待因、阿米酚

约翰逊

胫骨骨折

随诊

萘普生

在第一条记录中,BarTender 包括了主段之下的级别中的“药名”字段,并将该较低级别的段中的所有数据都连结在一起。

由于 BarTender 将为主段的每一个实例生成一条记录,所以完成以下语句有助于确定将什么用作主段。

通常在运行从此 IDoc 生成的项目时,我希望为每一个(次)_____________生成一个要打印的项目

在此示例中,如果使用“就诊”完成语句,则第三级可能是主段级别的最佳选择。如果使用“开的药”完成语句,则第四级可能是最佳选择。

关闭SAP IDoc 定义文件

SAP IDoc 定义文件是一个列表,其中包含当前可用于 BarTender 的 IDoc 类型,以及当前与各个类型关联的默认 IDoc 文件、别名和分析器文件。

无论何时添加、修改或删除 IDoc 类型,SAP IDoc 定义文件都会被修改。您可以在 Administration Console 的“数据库”部分的“SAP IDoc 定义”页面中创建自定义 IDoc 定义文件。

在安装 BarTender 后,它会将该定义文件设置为 <安装目录>\SAP\default.itd。您可以从 Administration Console 的“文件位置”页面切换到不同的 IDoc 定义文件。

如果将 BarTender 安装到另一台计算机上,并且希望它使用与运行 BarTender 的其他计算机相同的 SAP IDoc 定义文件,则应更改 SAP IDoc 定义文件。