在业务对象设计器中使用 SAPODA

本节描述如何在业务对象设计器中使用 SAPODA 来生成业务对象定义。有关启动业务对象设计器的信息,请参阅 IBM WebSphere InterChange Server Business Object Development Guide

在启动 ODA 之后,您必须启动业务对象设计器来配置和运行它。为了使用 ODA 来生成业务对象定义,在业务对象设计器中提供了 6 个步骤。业务对象设计器提供了一个向导来指导完成其中每个步骤。

在启动 ODA 之后,执行以下操作以启动该向导:

  1. 打开业务对象设计器。
  2. 从“文件”菜单选择“使用 ODA 新建...”子菜单。

    业务对象设计器显示向导中的第一个窗口,它被命名为“选择代理程序”。图 5 举例说明了此窗口。

要选择、配置和运行 ODA,遵循以下步骤:

  1. "选择 ODA".
  2. "配置初始化属性".
  3. "展开节点和选择对象".
  4. 确认对象选择.
  5. 生成定义和(可选)提供其它信息
  6. 保存定义.

选择 ODA

图 5 举例说明了业务对象设计器的 6 步骤向导中的第一个对话框。从此窗口选择要运行的 ODA。

图 5. 选择 ODA


要选择 ODA:

  1. 单击“查找代理程序”按钮以在“找到的代理程序”字段中显示所有注册的或当前正在运行的 ODA。
    注:
    如果业务对象设计器未找到您期望的 ODA,则将主机和端口输入其各自的字段。
  2. 从显示的列表中选择期望的 ODA。

配置初始化属性

业务对象设计器第一次与 SAPODA 通信时,它提示您输入一组初始化属性。您可以将这些属性保存在命名的概要文件中,以便您不必在每次使用 SAPODA 时都要重新输入它们。有关指定 ODA 概要文件的信息,请参阅 IBM WebSphere Business Object Development Guide。

图 6. 配置代理程序属性


配置表 6 中描述的 SAPODA 属性。

表 6. SAPODA 属性
属性名 属性类型 描述
UserName 字符串

SAP 登录用户名(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)


Password 字符串

SAP 登录密码(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)


Client 字符串

SAP 登录客户机号(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)


Language 字符串

SAP 登录语言(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)。缺省值为 E,表示英语。


SystemNumber 字符串

SAP 系统号(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)


ASHostName 字符串

SAP 应用程序服务器的主机名(仅当从解压缩的 IDoc 定义文件生成定义时才不需要)


RFCTrace True/False 布尔值

SAP 系统的 RFC 跟踪


DefaultBOPrefix 字符串 附加到业务对象的名称之前以使该名称唯一的文本。

如果需要,您以后可以在业务对象设计器提示您输入特定于业务对象的属性时更改此属性。

MaximumHits 字符串 节点搜索期间返回的最大对象数。有关更多信息,请参阅展开节点和选择对象

缺省值为:100

TraceFileName 字符串 跟踪文件的名称。如果该文件不存在,则 SAPODA 在 \ODA\SAP 目录中创建它。如果该文件已存在,则 SAPODA 追加至它。

SAPODA 根据命名约定命名该文件。例如,如果代理程序命名为 SAPODA,则它生成名为 SAPODAtrace.txt 的跟踪文件。

使用此属性来为此文件指定一个不同的名称。

注意:如果您使用存在于 ODA 根目录中的部署描述符 odk_dd.xml 文件,则“配置代理程序”屏幕不会显示此属性。

TraceLevel 整数 为 SAPODA 启用的跟踪级别。

关于跟踪的更多信息,请参阅使用错误消息文件和跟踪消息文件

注意:如果您使用存在于 ODA 根目录中的部署描述符 odk_dd.xml 文件, 则“配置代理程序”屏幕不会显示此属性。

MessageFile 字符串 错误和消息文件的名称。

SAPODA 根据命名约定命名该文件。例如,如果代理程序命名为 SAPODA,则它将消息文件命名为 SAPODAAgent.txt。有关更多信息,请参阅使用错误消息文件和跟踪消息文件

重要提示:错误和消息文件必须位于 \ODA\messages 目录中。

使用此属性来验证或指定现有文件。

注意:如果您使用存在于 ODA 根目录中的部署描述符 odk_dd.xml 文件,则“配置代理程序”屏幕不会显示此属性。

ResultSet True/False 布尔值 当设置为 True 时,SAPODA 将为 Information Integrator 支持生成包装程序业务对象。

如果您不想生成 ResultSet 对象,则设置为 False

File destination 目录 用来存储 ODA 生成的文件(业务对象和类文件)的目录。注意,在生成了业务对象并将它放置在此目录中之后,可以显式地将它们保存到另一个目录中。

缺省值是 Windows 系统上的缺省目录。建议您将缺省设置更改为 \connectors\SAP\utilities\generatedfiles 目录。

注意:如果您正在业务对象设计器所在机器上运行 SAPODA,则不要使用 ODA\SAP 目录作为 File destination。业务对象设计器将此目录用作远程 ODA 的临时位置。

重要提示:
如果业务对象设计器中显示的缺省值表示一个不存在的文件,则改正消息文件的名称。如果您从此对话框前进时此名称不正确,则业务对象设计器在启动 ODA 的窗口中显示一条错误消息。此消息不会在业务对象设计器中弹出。未能指定有效的消息文件会导致 ODA 在不带消息的情况下运行。有关更多信息,请参阅使用错误消息文件和跟踪消息文件

展开节点和选择对象

在您配置 SAPODA 的所有属性之后,业务对象设计器显示一个具有以下初始节点的树:

名称前面有加号(+)的节点是可展开的。单击它们以显示更多节点或叶节点。SAPODA 仅从叶节点生成业务对象定义。

图 7 举例说明了此对话框初始显示时的外观并展开了一些节点。

图 7. 具有展开节点的树


当叶节点的名称以粗体显示时,您可以选择该叶节点作为要生成的其业务对象的基础。使用标准 Windows 过程来选择多个叶节点。换句话说,当使用鼠标来选择多个叶节点时按住 CTRL 键。

重要提示:
在 Windows 系统上,如果业务对象设计器在 Path 环境变量中找不到必需的库文件,或这些文件不在系统上,则它显示一个空的“代理程序通知”窗口。有关这些文件的信息,请参阅在运行 SAPODA 之前

SAPODA 使用多态节点类型,该类型允许您使平面文件与节点产生关联。该节点最初显示时没有任何叶节点。您可以浏览文件系统并选择要添加至该节点的文件。该节点之所以称为多态的,是因为当您使它与一个或多个文件产生关联时其性质从叶节点更改为枝节点。

注意,如果展开 RFC 节点,则会出现以下消息,指出对 RFC 节点中的搜索结果进行了高速缓存 。这种高速缓存服务提供了少量叶节点数,从而 SAPODA 能够更高效地生成 ResultSet 和 BAPI 事务业务对象。会对搜索结果进行排序然后再显示出来。每当您启动 SAPODA 时这种高速缓存服务就会在后台运行,而当您结束会话时,就会清除已高速缓存的搜索。可高速缓存的搜索结果数由在“配置代理程序属性”窗口中设置的 MaximumHits 属性值来确定,如图 6 中所示。

图 8. 高速缓存通知


图 9 举例说明了限制业务对象设计器返回的叶节点数的两种方式:

在您为生成对象选择了所有期望的叶节点之后,单击“下一步”按钮。有关如何过滤返回的对象的信息,请参阅 Business Object Development Guide

确认对象选择

在您标识所有要与生成的业务对象定义产生关联的对象之后,业务对象设计器显示该对话框,该对话框仅具有选择的叶节点及其节点路径。图 10 举例说明了此对话框。

图 10. 确认节点和叶节点的选择


此窗口提供以下选项:

生成定义

在您确认选择的对象之后,下一个对话框通知您业务对象设计器正在生成定义。

图 11 举例说明了此对话框。

图 11. 生成定义


提供其它信息

SAPODA 提示输入其它信息。顶级节点的类型(IDoc 类型、BOR、RFC 或动态定义)确定:

IDoc 类型:提供其它信息

SAPODA 显示“BO 属性”窗口,以使您能够基于 IDoc 类型指定业务对象所需要的信息。此窗口中显示的属性会有所不同,取决于 IDoc 的源(一个解压缩的文件或 SAP 系统中的一个定义)以及是否已为 ABAP 扩展模块定义该定义。本节描述了以下主题:

BO 属性窗口 - 公共属性

无论 SAPODA 是根据 IDoc 文件还是根据在 SAP 系统中定义的 IDoc 生成业务对象定义,IDoc 类型的“BO 属性”窗口允许您指定或更改以下内容:

“BO 属性”窗口 - 在 SAP 系统中定义的 IDoc 的属性

除前缀和模块属性之外,表示在 SAP 系统中定义的 IDoc 的“BO 属性”窗口还显示 Release 属性。您可以使用此属性来标识较早版本的 IDoc 类型。

重要提示:
如果较早版本的 IDoc 类型具有的段数比当前版本少,则 SAPODA 可能创建一个缺少段的定义,SAPODA 也可能显示一个错误,指示生成业务对象定义未成功。这种不一致是由于不同的 SAP 版本需要不同的 API 调用造成的。

图 12 举例说明了两个版本的“BO 属性”窗口,一个用于解压缩的“IDoc 类型”定义文件,另一个用于在 SAP 系统中定义的 IDoc。

图 12. 提供 IDoc 类型业务对象的其它信息


业务对象属性窗口 - 为 ABAP 处理程序指定功能模块

如果您选择扩展作为模块类型,则 SAPODA 提示您是否要为任何缺省查询描述输入功能模块名称。

缺省情况下,当生成 ABAP 扩展模块的定义时,SAPODA 指定以下文本表示顶级业务对象在业务对象级别的查询描述特定于应用程序的信息:

:Y_XR_IDOC_HANDLER

如果您已知道要传递至 ABAP 处理程序的功能模块名称,则在此提示处选择 Yes。SAPODA 显示图 13 中举例说明的窗口。

图 13. 为 ABAP 处理程序指定功能模块


图 13 举例说明了一个“BO 属性”窗口,在该窗口中已指定两个功能模块。

注:
如果定义文件中有许多 IDoc 类型,则将为文件中的每种 IDoc 类型都提供“功能模块 BO 属性”窗口。将仅提供“常规 IDoc 类型 BO 属性”窗口一次。

在您保存业务对象定义之后,业务对象设计器中的“常规”选项卡显示顶级业务对象在业务对象级别的特定于应用程序的必需信息。图 14 举例说明了这样一个具有两个指定的功能模块的窗口。

图 14. 在业务对象设计器中指定 ABAP 处理程序


有关 ABAP 处理程序的更多信息,请参阅传递至 ABAP 处理程序的业务对象数据

BOR 或 RFC:提供其它信息

SAPODA 将创建下列类型的对象:

单个 BAPI 业务对象

当“配置代理程序”窗口上的 ResultSet 属性设置为 False 时(如图 6 所示),可以使用 SAPODA 来创建单个 BAPI 事务业务对象或创建包含多个 BAPI 调用的 BAPI 事务业务对象。本节提供了有关单个 BAPI 调用的业务对象的详细信息。

有关为 BAPI 事务创建业务对象的详细信息,请参阅BAPI 事务业务对象。有关为 ResultSet 创建业务对象的详细信息,请参阅ResultSet 业务对象

有两个“BO 属性”窗口用于 BOR 或 RFC 类型的单个 BAPI 对象。第一个窗口中显示的属性允许您指定或更改:

在您单击“确定”以从第一个“BO 属性”窗口向前移动之后,SAPODA 会给您一个机会来减少生成的定义的大小。将提示您是否要从该定义中除去任何表示可选参数的属性。仅当存在要除去的可选参数时才显示此提示。减少定义的大小可以在以后连接器处理业务对象的实例时增强性能。

图 15 举例说明了为 BOR 或 RFC 类型对象显示的属性以及在您单击“确定”之后显示的提示。注意,对于您选择要创建单个 BAPI 调用对象的各个 BAPI 调用都会出现此提示。

图 15. 提供 BOR 或 RFC 业务对象的其它信息


如果在以上举例说明的提示处单击,则会显示第二个“BO 属性”窗口。可以通过将 BAPI/RFC 接口的每个可选参数的值从 Yes(在生成的定义中包括相应的属性)更改为 No(不包括属性),来指定除去每个可选参数。

如果在以上举例说明的提示处单击,则会显示最终的向导。有关更多信息,请参阅保存定义

图 16 举例说明了第二个“BO 属性”窗口。

图 16. 指定要从定义中除去的属性


重要提示:
以“Bapi”开头的 RFC 支持功能的业务对象定义必须具有一个属性来表示对应于返回结构或表的业务对象。如果定义缺少这样的属性,则当编译其相应的生成代码时会出错。如果发生此编译错误,则检查 BAPI 以确定 SAP 是否在使用不同的返回结构。在这种情况下,更改生成的 Java 代码以指向正确的参数。

除了您在 SAPODA 中提供的说明以外,当为 RFC 服务器模块创建定义时,您可能还要在保存业务对象定义之后修改特定于应用程序的信息。有关更多信息,请参阅为 RFC 服务器模块开发业务对象

BAPI 事务业务对象

当“配置代理程序”窗口上的 ResultSet 属性设置为 False 时(如图 6 所示),可以使用 SAPODA 来创建 BAPI 事务业务对象。BAPI 事务业务对象包含多个 BAPI 业务对象。

当“配置代理程序”窗口上的 ResultSet 属性设置为 False 时,单击下一步以进入“高速缓存通知”窗口(图 17),然后单击确定

图 17. 高速缓存通知


图 18 举例说明了出现的下一个窗口,该窗口允许您指定 SAPODA 将用来搜索和显示 BAPI 调用的条件。在本节使用的示例中,条件是以文本“BAPI_SALESORDER”开头的所有 BAPI 调用。

图 18. 输入搜索模式


在“输入搜索模式”窗口上指定搜索条件之后,单击确定以设置条件。图 19 举例说明了已展开 RFC 节点的搜索结果树。在此窗口上,选择 SAPODA 将用来创建 BAPI 事务业务对象的属性的 BAPI 调用。在此示例中,选择的 BAPI 调用是 BAPI_SALESORDER_CHANGEBAPI_SALESORDER_CONFIRMDELVRY

图 19. 为 RFC 节点展开的搜索结果树


单击下一步以进入确认窗口,如图 20 中所示。它列示了在图 19 中选择的两个 BAPI 调用。

图 20. 确认事务中的 BAPI 调用的源节点


单击此屏幕上的下一步。出现一个消息窗口,通知您已经选择了多个 BAPI 调用。单击以指示您的目的是从选择的多个 BAPI 调用创建 BAPI 事务业务对象。

图 21. 多个 BAPI 调用选择消息


下一个屏幕允许您为 BAPI 事务对象提供前缀和名称。在此示例中,输入的前缀为 sap_,事务对象的名称为 salesorder_txnUseFieldName 属性确定将使用 SAP 中的字段名还是使用字段描述来生成属性名。

图 22. 为事务指定前缀和业务对象名


接下来,指示在处理事务对象时应采用何种顺序来执行所选择的 BAPI 调用。在此示例中,将首先执行 BAPI_SALESORDER_CHANGE 调用,接着执行 BAPI_SALESORDER_CONFIRMDELVRY 调用。在执行了事务中您想提交的任何 BAPI 之后,就可以应用 COMMIT 了。SAPODA 假定 COMMIT 是该事务的最终步骤。

图 23. 指定 BAPI 事务对象中的 BAPI 调用顺序


对于具有可选参数的序列中的每个 BAPI 调用都会出现以下消息。图 24 举例说明了序列(BAPI_SALESORDER_CHANGE)中的第一个 BAPI 调用的此消息。

图 24. 可选的 BAPI 调用参数消息


单击以选择您想添加哪些可选参数来作为将包含在 BAPI 事务对象中的个体 BAPI 业务对象的属性。如果单击,则会将所有可选参数作为 BAPI 事务对象中的个体 BAPI 对象的属性来应用。

为 BAPI 事务对象中的每个 BAPI 调用创建 BAPI 对象属性之后,“业务对象”向导将显示 BAPI 事务对象树。图 25 举例说明了在此示例中创建的 sap_salesorder_txn 业务对象的属性选项卡。

图 25. sap_salesorder_txn 业务对象的“属性”选项卡


注意下面这两个 BAPI 调用属性:sap_salesorder_change_txnsap_salesorder_confirmdelvry_txn。每个属性都包含 BAPI 事务对象包装程序中的单个 BAPI 调用对象。sap_salesorder_change_txn 属性包含与 BAPI_SALESORDER_CHANGE 调用(在事务流中将首先执行该调用,如图 23 中指定的那样)相对应的业务对象。sap_salesorder_confirmdelvry_txn 属性包含与 BAPI_SALESORDER_CONFIRMDELVRY BAPI 调用相对应的业务对象。注意,这些属性都具有由 SAPODA 添加的后缀 _txn。此后缀确保在先前版本的连接器中创建的业务对象不会被可能同名的新业务对象所覆盖。

ResultSet 业务对象

当“配置代理程序”窗口上的 ResultSet 属性设置为 True 时(如图 26 中所示),SAPODA 将创建顶级 ResultSet 业务对象。ResultSet 业务对象启用对 DB2 的 Information Integrator 支持。

图 26. 将 ResultSet 属性设置为 True 的“配置代理程序”窗口


单击“配置代理程序”窗口上的下一步,然后单击“高速缓存通知”窗口(图 27)上的确定

图 27. 高速缓存通知


该向导中的下一个窗口允许您指定 SAPODA 将用来搜索和显示 BAPI 调用的条件。在此示例中,星号(它是一个通配符)指示条件是以文本“BAPI_CUSTOMER_GET”开头的所有 BAPI 调用。

图 28. ResultSet 的搜索条件


单击确定以设置条件。图 29 举例说明了已展开 RFC 节点的搜索结果树。在此窗口上,选择 SAPODA 将用来创建 ResultSet 业务对象的属性的 BAPI 调用。

图 29. 为 RFC 节点展开的搜索结果树


ResultSet 对象具有两种属性:Query(用于类型查询对象)和 Result(用于类型结果对象)。Query 属性通常是从 GETLIST BAPI 调用生成的,而 Result 属性是从 GETDETAIL BAPI 调用生成的。

因此,如图 29 中所示,从展开的 RFC 节点中选择相应的 BAPI 调用,在此例中为 BAPI_CUSTOMER_GETDETAILBAPI_CUSTOMER_GETLIST。由于“配置代理程序”窗口上的 ResultSet 属性设置为 True(如图 26 所示),因此只允许您选择两个 BAPI 调用。

单击下一步以进入确认窗口(如图 30 中所示),该窗口允许您确认业务对象的属性的源 BAPI 调用。

图 30. 确认属性的源节点


图 31 所示,“业务对象”向导要求您指定 SAPODA 将为业务对象提供的业务对象名前缀(在此示例中为 sap_)和 BAPI ResultSet 对象的名称(在此示例中为 customer_rs)。UseFieldName 属性确定将使用 SAP 中的字段名还是使用字段描述来生成属性名。

图 31. 提供业务对象名信息


“业务对象”向导还要求您指示应该将您在图 29 中选择的哪个 BAPI 调用用于 Query 属性。从下拉列表中选择 GETLIST BAPI 调用,如图 32 中所示。SAPODA 自动将所选择的其它调用视为 ResultSet 对象的 Result 属性。

图 32. 指定业务对象的 Query 属性


单击确定以进入下一个窗口,在该窗口中指定您在图 32 中选择的 Query BAPI 的 Query 参数(主键)。在此示例中,BAPI 调用是 GETLIST

图 33. 选择主键


如果您在前一窗口中选择了一个是表/结构(由 T|S 标识)的值,则出现的下一个窗口允许您选择表/结构中的特定字段作为主键。在此示例中,选择的字段是 CUSTOMER

图 34. 选择表/结构上的字段


出现一个消息窗口,指示 Query 参数的完整路径,如图 35 中所示。该路径包括在前两个窗口中选择的 BAPI 调用参数,在此示例中为 BAPICUSTOMER_ADDRESSDATACUSTOMER

图 35. Query 属性名的通知


还必须指定 ResultSet 对象的外键,如图 36 所示。外键建立 ResultSet 对象的 Query 属性与 Result 属性之间的关系。

图 36. 选择外键


“业务对象”向导提供了一条消息,用来确认外键的完整路径。在此例中为 BAPI_CUSTOMER_GETDETAIL.CUSTOMERNO,如图 37 中所示。

图 37. 外键路径确认


以下窗口指示 GETLIST BAPI 具有可选的参数,并且您可以选择这些可选参数来创建业务对象的相应属性。如果选择(就像本示例中一样),则意味着向导将为所有参数生成业务对象属性。

图 38. GETLIST BAPI 的可选参数通知


下一个屏幕(如图 39 中所示)允许您为 ResultSet 对象设置属性值。

图 39. 为 ResultSet 对象设置属性值


以下窗口指示 GETDETAIL BAPI 具有可选的参数,并且您可以选择这些可选参数来创建业务对象的相应属性。如果选择(就像本示例中一样),则意味着向导将为所有参数生成业务对象属性。

图 40. GETDETAIL BAPI 的可选参数通知


图 41 举例说明了业务对象设计器中的属性选项卡,该选项卡列示了 ResultSet 业务对象的两个属性:BAPI_QueryBAPI_Result。可以展开业务对象树以显示每个属性的层次结构。注意,这些属性都具有由 SAPODA 添加的后缀 _rs。此后缀确保在先前版本的连接器中创建的业务对象不会被可能同名的新业务对象所覆盖。

图 41. ResultSet 对象的“属性”选项卡


HDR:提供其它信息

有两个“BO 属性”窗口用于基于 HDR 表的对象。第一个窗口中显示的属性允许您指定或更改业务对象的前缀。如果您对在“配置代理程序”窗口中为 DefaultBOPrefix 属性输入的值满意,则您不必在此处更改该值。

图 42 举例说明了此窗口。

图 42. 提供 HDR 业务对象的其它信息


另外,只能返回表中 512 个字节的信息。当表返回 512 个以上的字节时,则将对您显示图 43 中的对话框。回答“否”将从表的开头返回属性(列描述),直到达到最大值 512 个字节。

图 43. 512 个字节警告

回答“是”将显示在图 44 中说明的第二个“BO 属性”窗口。将在窗口描述中提供每个属性的长度(以字节计)。您可以通过在“是”和“否”之间切换属性的值来指定包括或排除业务对象的属性。

图 44. HDR 业务对象的 BO 属性的大小和类型


保存定义

当在“BO 属性”对话框中提供所有必需的信息并单击“确定”之后,业务对象设计器显示向导中的最后一个对话框。在该对话框中,您可以将定义保存至服务器或保存至文件,您也可以在业务对象设计器中打开该定义进行编辑。有关更多信息,以及为了作出进一步的修改,请参阅 Business Object Development Guide

图 45 举例说明了此对话框。

图 45. 保存业务对象定义


Copyright IBM Corp. 1997, 2004