为 IDoc 解析器构建消息模型

要使用 WebSphere Message Broker 的功能来转换 SAP IDoc 数据,必须对 WebSphere Message Broker 中 IDoc 的分段数据进行建模。

发送到 SAP 应用程序的消息和从 SAP 应用程序接收的消息由 IDoc 解析器处理,该解析器需要消息模型才能正确解释数据。本主题说明如何构建消息模型。在 SupportPac IA0F 中提供预构建版本消息模型的示例。

获取 IDoc

使用以下过程创建 Message Brokers Toolkit 需要使用的 IDoc 数据的导入文件:
  1. 登录 SAP 系统
  2. 运行提供的事务 we60,它将 IDoc 数据抽取为 C 头文件:
    1. ObjectName 选择有关的 IDoc 类型,例如 MATMAS02
    2. 选择版本的记录类型。IDoc V4 为类型 3
    3. 从“文档”菜单选择 C-header
    4. 在提示时,为事务的输出输入文件名。 IDoc 的 C 表示将保存到此文件。
  3. 使用 Perl 脚本 hdrfiddle.pl(在 SupportPac IA0F 中提供)确保您创建的输出文件格式是可用于导入到 Message Brokers Toolkit 中的正确格式。

对 IDoc 进行建模

使用以下过程可以创建消息模型:

  1. 使用新建消息集项目向导为 IDoc(例如 matmas02)创建消息集,并创建定制有线格式(CWF)物理格式。
  2. 使用消息集编辑器将消息集运行时解析器属性更改为 IDOC
  3. 使用新建消息定义文件向导或 mqsicreatemsgdefs 命令将 IDoc 的 C 表示导入到新消息集中。 使用该向导或命令时,请指定以下设置:
    • 为在 IDoc 中显示的分段创建消息。
    • 使用字符串编码选项将字符型数组作为固定长度字符串导入。
    • 使用字符串的填充字符选项将空格(“ ”)作为填充字符使用。
    从 C 导入包含有关使用新建消息定义文件向导的信息。
  4. 将每条消息的名称重命名为它所表示分段的名称(大写)。 例如,对于名为 E2MARAMM 的分段,必须将消息命名为 E2MARAMM

必须将消息集添加到代理归档文件并部署到代理执行组,这是因为 IDoc 解析器使用 MRM 解析器解析您已定义的 IDoc 分段。

创建消息流来处理 IDoc 时,将使用“运行时解析器”属性、消息集名称和“定制有线格式”名称。它们分别显示为 MQinput 节点的消息域消息集消息格式属性的值。不要在 MQinput 节点上提供消息类型属性,因为 IDoc 解析器使用 SAP 定义的 IDoc DD 字段 segnam 的内容提供消息的名称。

使用 ESQL 访问 IDoc 字段

使用 ESQL 编辑器“内容辅助”来填充 IDoc 的 SAP 定义字段。从“编辑”菜单或在某些系统上通过按 Ctrl+Space 键(如果它没有被分配给另一个功能)来调用“内容辅助”。

当到达 ESQL 语句中的 sdatatag 标记时,下一个标记是 MRM(必须手动输入),然后是要对其进行处理的字段名。请在此处指定消息分段内字段的名称,而不是消息分段的名称。

例如,以下代码设置 IDoc 的分段名称:

SET OutputRoot.IDOC.DD[I].segnam  = 'E2MAKTM001';
以下示例设置 E2MAKTM001 分段中的 msgfn 字段:
SET OutputRoot.IDOC.DD[I].sdatatag.MRM.msgfn = '006';
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac20030_