集成 MDM Server 与企业信息系统(使用 SAP 作为示例),第 1 部分: 向 SAP 提供客户记录

本教程展示了如何将 IBM® InfoSphere® Master Data Management Server 管理的客户数据传播到 SAP® 等企业信息系统。在所演示的场景中,客户是使用 MDM Server Data Stewardship Console 创建和更新的。MDM 服务器中的客户记录更新将发送至企业服务总线 (ESB),然后 ESB 执行必要的转码和映射步骤。最后使用 WebSphere® Adapter for SAP Applications 将包含更新后的客户信息的 SAP Intermediate Document (IDoc) 发送至 SAP 系统。第 2 部分将演示如何将 SAP 管理的其他客户信息(例如客户的纳税 ID)传播回 MDM Server 管理的客户记录。

Hans Schoen, 软件工程师,信息平台与解决方案开发, IBM China

Hans Schoen 的照片Hans Schoen 是一名软件工程师,就职于德国布林根 IBM 开发实验室的信息平台与解决方案团队。他于 2000 年 10 月加盟 IBM。最初他是 IBM Document Composing 应用程序的一名开发人员。2004 年,他转到 WebSphere Process Server 开发团队(人员任务)。自 2007 年以来,他一直从事信息平台与解决方案开发方面的工作。目前正在为将 SAP 集成到 IBM Information Server 产品中开发应用程序和工具。



Sebastian Nelke, 软件工程师,信息平台与解决方案开发, IBM

Sebastian Nelke 的照片Sebastian Nelke 是一名软件工程师,就职于德国布林根 IBM 开发实验室的信息平台与解决方案团队。在 2004 年夏季,他参与了 IBM 的 “Extreme Blue” 计划,此后于 2005 年 3 月加入 IBM。他最初从事的是企业搜索与文本分析领域的工作,三年后转到信息平台与解决方案开发。他目前关注的领域是将 Information Server 产品组合与 SAP 软件相整合。



Mike Grasselt, 软件工程师,信息平台与解决方案开发, IBM China

Mike Grasselt 的照片Mike Grasselt 是一名高级软件工程师,自 1997 年起开始为 IBM 工作。目前,他领导着信息平台与解决方案开发团队,主要关注集成主数据管理与 SAP 的解决方案。在过去的职位中,他集成过文本分析技术与内容管理,还曾经是 IBM Redbooks 的作者,出版了 "eClient 101 Customization and Integration"。他在大学举办过关于 IBM 大型机服务器软件开发的演讲。他开发了业务流程执行语言 (BPEL) 的一个 SQL 扩展,发表了多篇关于数据感知业务流程和 Web 服务的文章。他负责 InfoSphere Information Server 的面向服务架构 (SOA) 协调工作,以便集成 WebSphere Portal、WebSphere Process Server 和 InfoSphere Master Data Management Server。除了技术职责之外,他还是 IBM 技术社区中的一名导师。



2011 年 11 月 07 日

开始之前

免费下载:IBM® DB2® Express-C 10.5 免费版 或者 DB2® 10.5 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

您将学到的知识

IBM InfoSphere Master Data Management Server 是一种存储库,它能集中和管理一个组织中至关重要的主数据实体,例如客户、产品、供应商等。这些实体的集中能打造单一的客户和产品视图,从而改善服务、提高客户满意度,加强与合作伙伴和供应商的关系。组织的许多(甚至是全部)应用程序(例如 SAP 应用程序)和业务流程均对这些实体进行操作,因此,以可靠而又灵活的方式交付主数据是解决方案架构的一个关键特征。本教程提供了这方面的完整说明,以帮助您理解 IBM InfoSphere Master Data Management Server 如何能够与 SAP 协力工作,以及如何管理客户数据。本教程演示的集成方法同时适用于 MDM Server 管理的其他业务对象(产品、供应商等)。

如图 1 所示,本教材中介绍的场景同时包括两个方向。在 MDM Server 中托管的客户数据以及发送给 SAP 的客户数据。我们使用了一个 SAP 事务为客户记录添加纳税 ID。这些附加信息需要发送到 MDM Server,以便更新中央客户实体。

为了使教程更清晰明了,我们将教程划分为两部分。第 1 部分介绍创建一个解决方案所需的步骤,该解决方案会通知 SAP 位于 MSM Server 中的客户数据已发生更改。第 2 部分增加了使用 SAP 中添加的纳税 ID 来更新 MDM Server 管理的客户实体的步骤。

图 1. 解决方案概述
展示从 MDM Server 通过 ESB 传递到 SAP 再反向传递的数据流的示意图

客户数据是使用 IBM Master Data Management Data Stewardship Console 进行创建或更新的,保存在 MDM 系统中。MDM Server 行为扩展为新纪录创建了一个 SAP 客户 ID(即 SAP KUNNR),并将客户数据发送到某个 JMS 主题。企业服务总线 (ESB) 中介流可以读取 JMS 主题中的客户数据,执行国家和省份编码的转码,随后调用 WebSphere adapter for SAP,它会将一个 DEBMAS IDoc 发送给 SAP 系统。

扩展 MDM Server” 一节将介绍如何在 MDM Server 数据库中启用通知。用来提供客户数据的 JMS 主题已在 MDM Server 中定义。但要在 ESB 中接收此数据,Process Server 中必须包含相应的主题。这一节将介绍如何在 Process Server 中创建此主题,以及如何将其连接到 MDM Server 中定义的 JMS 主题。利用连接的主题,发送到 MDM Server 主题的消息即可使用 Process Server 主题进行接收。最后,这一节还将介绍如何使用 MDM Workbench 利用行为扩展来扩展 MDM Server 模型。利用行为扩展,即可在 MDM Server 事务之前或之后执行业务逻辑。这一节将展示如何创建一个在 MDM Server addParty 事务之前运行的扩展。此扩展将使用数据库表创建 SAP 客户编号。此外,这一节还定义了其他扩展,可在执行用户姓名和地址的添加和更新事务之后运行它们。这些扩展共享相同的实现,此实现将 MDM Server 客户业务对象的一个 XML 表示发送给 MDM Server JMS 主题。下载 部分的 ZIP 文件提供了行为扩展的源代码。该文件还包括创建客户编号的数据库表的数据库脚本。

配置 SAP 系统” 一节介绍了配置 SAP 系统的步骤。SAP 系统将接收采用 SAP Intermediate Document (IDoc) 结构的客户数据。这一节使用的是预先定义的 Debmas IDoc。本节还介绍了如何创建必要的 SAP Remote Function Call (RFC) 连接、端口、逻辑系统、合作伙伴配置文件和 IDoc 分发模型。

创建 ESB 中介流” 一节将介绍如何实现 MDM Server 发送的消息与要发送至 SAP 系统的 IDoc 之间的中介。中介流是使用 WebSphere Integration Developer 实现的。由于 MDM Server 消息需要采用 XML 数据类型以便于读取消息,因此这一节首先将介绍如何将 MDM Server XML Schema 导入中介流项目。随后给出了创建监听传入消息的 JMS 组件的步骤和 SAP 适配器组件的配置。最后,这一节介绍了如何实现 XSLT 转换,以便将 MDM 消息映射到 SAP IDoc 结构。由于 MDM Server 和 SAP 使用不同的代码来指定国家或省份,因此需要对转换进行翻译。在本教程中,我们使用了一个简单的转码表。不过,也可以采用不同的实现方法,例如,调用转码 web 服务。下载 部分的 ZIP 文件提供了创建转码表的数据库脚本。

运行场景” 一节将介绍如何使用 MDM Data Stewardship Console 新建和更新现有 MDM 客户记录,以及如何使用 SAP UI 检查 SAP 系统中的客户对象。

系统要求

本教程是使用下列产品版本和补丁开发的。您需要安装以下软件:

  1. IBM Master Data Management Workbench V9.0.1。按照 Workbench 用户指南 (MDMWorkbenchUserGuide.pdf) 中的说明安装 Rational® Software Architect 中的 Workbench 与开发和测试环境。
    • 使用 IBM Rational Software Architect for WebSphere Software V7.5.5.4,包括 IBM WebSphere Application Server V7 Test Environment 7.0.0.13 Update 1。
    • 转到您的 WebSphere Application Server 管理控制台,卸载 MDM Enterprise Application。这是必不可少的步骤,因为我们要在 MDM workbench 中根据本教程的示例场景修改 MDM,并重新部署它。
  2. WebSphere Application Server 上的 IBM Master Data Management Data Stewardship Console
    • MDM Server 示例包中提供了 Data Stewardship Console 源代码 (MDMDataStewardship_src.zip)。将项目导入 RSA 工作区。
    • 在 CustomerDataStewardship 项目中,打开 propertiesUI.jar 文件,编辑 mdmUIConfiguration.properties 文件。您需要指定 java.naming.provider.url 和 UserGroupImpl 属性(请参见属性文件内提供的示例)。
    • 在 MDM Server 应用服务器上安装 CustomerDataStewardship 应用程序。
  3. IBM WebSphere Integration Developer V7.0.0.201
    • IBM WebSphere Process Server V7.0.0.2(作为 WebSphere Integration Developer 的集成化测试环境)。确保安装了以下 Process Server 补丁:
      • JR36507 7.0.0.2
      • JR36532 7.0.0.2
  4. IBM DB2® V9.7
  5. 一个能够发送和接收类型为 debmas06 的 SAP IDoc 的 SAP 系统。我们使用的是 SAP ECC V6.0 IDES 系统。
    注意:本教程中执行的步骤将修改您的 SAP 系统中存储的主数据。请勿使用生产系统。

本教程介绍了如何使用 MDM Server 开发和测试环境实现示例场景。教程中并未描述如何使用独立 MDM Server 运行示例场景。


扩展 MDM Server

启用 MDM Server 通知

要使用 MDM Server 通知,必须按照如下说明启用 MDM 通知机制:

  1. 打开 DB2 命令窗口,连接到您的 MDM 数据库:
    db2 connect to mdm
  2. 在应用程序级别上启用通知:
    db2 update configelement set value='true', last_update_dt=current timestamp where name='/IBM/DWLCommonServices/Notifications/enabled'
  3. 与 MDM 数据库断开连接:
    db2 disconnect mdm

创建并连接主题

在您的 ESB 上设置 JMS:

  1. 打开 Process Server 的管理控制台,展开 Resources 分支和 JMS 分支。
  2. 单击 Topics
  3. 选择范围 Node=yournode,Server=server1(其中 yournode 是您的 WebSphere Application Server 节点的名称)。
  4. 单击 New 按钮添加新主题。
  5. 确保选中 Default messaging provider,单击 OK
    图 2. 默认消息提供程序
    展示选中了 Default messaging provider 按钮的图片
  6. 此时将显示主题配置面板:
    图 3. 主题配置面板
    展示创建 JMS 主题的图片
    输入 MDMTopic 作为 name,输入 com/dwl/base/notification/MDMTopic 作为主题的 JNDI 名称。
  7. Topic name 设置为主题名称 notification/ElementChange,与 MDM Server 的定义一致。
  8. Bus name 设置为 other, please specify,并输入 MDM.SIB.server1 作为 Bus name,与 MDM Server 的定义一致。
  9. Topic space 设置为 other, please specify,并输入 notification.ElementChange 作为 origin Topic Bus destination 的名称。
  10. 单击 OK 确认更改。
  11. 保存配置。

创建并连接激活规范

在这一节中,您将配置 JMS 的激活规范:

  1. 单击 Activation specifications
  2. 选择范围 Node=yournode,Server=server1(其中 yournode 是您的 WebSphere Application Server 节点的名称)。
  3. 单击 New 新增一个 Activation Spec
  4. 确保选中 Default messaging provider,并单击 OK
    图 4. 默认消息提供程序
    展示选中了 default messaging provider 按钮的图片
  5. 此时将显示激活规范配置窗格: 输入 MDMTopicAS 作为 Name,输入 jms/MDMTopicAS 作为激活规范的 JNDI 名称
  6. 为 Destination 类型选择 Topic
  7. 将 Destination JNDI 名称设置为恰当的 MDM 主题的 JNDI 名称 (com/dwl/base/notification/ElementChange)。
  8. 将 Bus 名称设置为 other, please specify,输入 MDM.SIB.server1 作为原始 MDM bus name 的名称。
  9. 在 Multi-entry Provider endpoints 字段中,按以下格式输入 MDM 服务器目标:
    host:port:chainname(port 是您的 MDM Server 的 SIB_ENDPOINT_ADDRESS 端口)
    (例如:mdmhost:7277:BootstrapBasicMessaging
    ,对于安全主机来说则是
    mdmhost:7287:BootstrapSecureMessaging
    图 5. 创建 JMS 激活规范
    显示具有输入字段的 Activation Spec 窗格的图片
  10. 单击 OK 确认更改。
  11. 保存配置。

创建 MDM 行为扩展

要获得数据更新通知,我们需要在 MDM Server 中创建一个行为扩展:

  1. 在 MDM Workbench 中,创建一个 Hub Module 选项,方法是选择 File > New > other,并向下滚动到 InfoSphere Master Information Hub 文件夹。现在选择 Hub Module project,并单击 Next
    图 6. 创建一个 Hub Module 项目
    展示从资源浏览器视图中选择向导的屏幕快照
  2. 填写向导页面的字段:
    • 项目名称:PartyExtensions
    • 基本 Java 包名称: com.example.mdmsap
    • 服务名称空间 URI: http://example.com/mdmsap
    • EAR 项目名称:MDM
    • Hub 基本名称:MDM
    • 数据库模式名称:db2admin
    注意:模式名称必须与您在 DEST 安装过程中输入的 DB 用户名的模式相同。
    图 7. 指定 hub module 项目的设置
    展示 Hub Module 项目定义的屏幕快照
    单击 Finish 创建项目。
  3. 添加所需的行为扩展:
    1. 选择 Model 选项卡切换到 Hub Module 模型。
    2. 单击 PartyExtensions 文件夹,随后选择 New,并单击 Behavior Extension
      图 8. 添加行为扩展
      显示选择行为扩展的屏幕快照
    3. 在 Name 字段中输入 PartyBehaviorExtensions,确保在 Implementation 字段中选中 Java
    4. 右键单击 PartyBehaviorExtensions 扩展,选择 New > Action Event
      图 9. 添加一个活动事件
      展示添加一个活动事件的屏幕快照
    5. 在 Name 字段中输入 AddPartyEvent,单击该事务的 Edit
    6. 展开 Party model,再展开 CoreParty 模型。选择 addParty 事件并单击 OK
      图 10. Add party
      显示在资源管理器视图中选择 addParty 的屏幕快照
    7. 重复 d 至 f 步骤,添加以下活动事件。
      名称事件
      UpdatePartyEventupdateParty
      AddPartyAddressEventaddPartyAddress
      UpdatePartyAddressEventupdatePartyAddress
      AddPersonNameEventaddPersonName
      UpdatePersonNameEventupdatePersonName
    8. 再一次重复 d 至 f 步骤,添加 AddPartyPreEvent 活动事件。但这一次选中 Pre 复选框。此扩展将在事务之前调用,将用于创建 SAP 客户编号。
      图 11. Add party 扩展
      展示选择 AddPartyPreEvent 的屏幕快照
  4. 单击底部的 Validate model。此时将显示一个消息框,其中的消息是 “Model validation complete: no problems found”。若非如此,请纠正错误。
  5. 纠正了所有问题之后,单击 Generate Implementation。此时将显示一个消息框,显示文本 “Generating Code ...”,扩展代码生成将启动。
  6. 代码生成结束后,打开 PartyExtensions 项目,切换到 ejbModule > com.example.mdmsap.behaviour
    图 12. EJB 行为扩展
    展示从资源管理器视图中选择 com.example.mdmsap.behavior 的图片
    将下载包中的 PartyBehaviorExtensions.java 和 PartyNotification.java 这两个文件复制到此包中(替换之前的步骤中已生成的 PartyBehaviorExtensions.java 文件)。
  7. 确保已启用 Project > Build automatically 选项。刷新项目。此时将出现一些 Java 编译错误,稍后我们会纠正这些错误。
  8. 右键单击项目 PartyExtensions 并选择 Properties,以便更新类路径。现在,切换到 Java EE Module Dependencies,查看列表中的 Party.jar 项。选中 Party.jar 旁边的复选框。
    图 13. Java EE 模块依赖项
    展示为 Party.jar 添加类路径依赖项的屏幕快照
    单击 OK。此时会出现 Java 错误。
  9. 使用所生成的行为扩展更新数据库。
    图 14. 运行 SQL 脚本来更新行为扩展
    展示 PartyExtensions 的资源管理器视图的图片
    打开一个 DB2 命令窗口,切换到您的 RSA 工作区内的 PartyExtensions\resources\sql\db2 目录。现在运行 PartyExtensions_MetaData_DB2.sql SQL 脚本:
    db2 connect to mdm

    db2 -tvf PartyExtensions_MetaData_DB2.sql

    db2 disconnect mdm
  10. 在本例中,扩展代码将使用一个 DB2 数据库表生成 SAP 客户编号。可使用 sapkey.sql SQL 脚本来创建这个表。打开一个 DB2 命令窗口,切换到包含已经解压缩的教程文件的目录,并运行以下 db2 命令:
    db2 connect to mdm

    db2 -tvf sapkey.sql

    db2 disconnect mdm

配置 SAP 系统

要使您的 SAP 系统能够接收 WebSphere Adapter for SAP Software 发送的 IDoc,则必须配置 SAP 系统的一些设置。本教程仅介绍出站场景(MDM 数据的更改将传播到 ESB,ESB 利用 WebSphere Adapter for SAP Software 将 IDoc 发送到您的 SAP 系统)。然而,以下配置步骤也会为入站场景设置 SAP 系统(SAP 端的数据更改将触发 IDoc 发送至 ESB,随后 ESB 会将更改后的数据传播至 MDM 系统)。入站场景将在本系列的第 2 部分中介绍。请在您的 SAP 系统上执行以下配置步骤:

  1. 必须在您的 SAP 系统上配置 RFC 连接,以便接收 WebSphere Adapter For SAP 发送的数据。
  2. 必须定义一个新的 RFC 端口,以便以事务的方式接收数据。
  3. 必须定义一个逻辑系统。
  4. 必须设置一个合作伙伴配置文件,定义 SAP 系统与外部系统(ESB)之间的通信。
  5. SAP IDoc 分发模型将调整为在 SAP 主数据发生更改时将 IDoc 发送至 ESB。

设置 RFC 连接

  1. 登录您的 SAP 系统,调用 SM59
  2. 单击 New 新建一个连接:
    图 15. 新建连接
    展示 RFC 连接配置的屏幕快照
  3. 现在输入以下值:
    1. Field RFC Destination: MDM_SAP_TUTORIAL_DESTINATION
    2. Connection Type:T
  4. 切换到 Technical Settings 选项卡:
    1. 选择 Registered Server Program 作为激活类型。
    2. 输入 MDM_SAP_TUTORIAL_PROGRAM_ID 作为已注册服务器程序的程序 ID。
    图 16. 新建连接
    展示新建连接的屏幕快照
  5. 单击磁盘图标保存设置。

创建 tRFC 端口

  1. 输入 SAP 事务代码 WE21
  2. 打开 Ports 部分,选择其中的 Transactional RFC 子部分。
  3. 单击 Create 图标创建一个新的 tRFC 端口。
  4. 选择选项 own port name,输入 MDM_PORT 作为端口名称。单击绿色对号保存设置
    图 17. 新建 tRFC 端口
    展示 IDoc 处理中的端口的屏幕快照
  5. 输入 MDM_SAP_TUTORIAL_DESTINATION 作为之前的步骤中创建的 RFC 目标的名称,也可从列表中选择名称。单击磁盘图标保存设置。
    图 18. 新建 tRFC 端口
    展示创建 tRFC 端口的屏幕快照

创建一个新的逻辑系统

  1. 导航到 SAP 事务 BD54。
  2. 从阅读模式切换到编辑模式,在表中添加以下条目:
    • Log. System: MDMSAP
    • Name: MDM_SAP_LOGICAL_SYSTEM
  3. 单击磁盘图标保存设置。
    图 19. 新建 tRFC 端口
    展示已添加条目概览的屏幕快照

创建合作伙伴配置文件

  1. 打开事务 WE20,单击 Create 按钮。
  2. 输入之前的步骤中创建的逻辑系统的名称(MDMSAP)。
  3. 将 Partner Type 设置为 LS(表示逻辑系统)。
  4. 切换到 Post processing: permitted agent 选项卡。
  5. 输入以下值:
    • Type:US(表示用户)
    • Agent:<your username>
    • language:EN
  6. 在继续后面的操作之前,请单击磁盘图标保存更改。
    图 20. 创建合作伙伴配置文件
    展示合作伙伴配置文件的屏幕快照
  7. 单击 Outbound 参数表下方的 Create outbound parameter 图标
    1. 在打开的弹出对话框中,输入以下内容:
      • Message Type:DEBMAS
      • Receiver Port:MDM_PORT
      • Basic Type:DEBMAS06
    2. 确保设置了 Transfer IDoc Immed. 选项。
    3. 单击磁盘图标保存您的更改。
    4. 单击绿色的返回图标返回上一个屏幕。
      图 21. 配置出站参数
      展示合作伙伴配置文件的屏幕快照,其中显示了 SAP 用户名的位置
  8. 单击 Create inbound parameter 图标,此图标位于 Inbound parameters 表下方
    1. 在打开的弹出对话框中,输入以下内容:
      • Partner No.:MDMSAP
      • Partn. Type:LS
      • Message type:DEBMAS
      • Process code:DEBM
    2. 单击磁盘图标保存您的更改。
    3. 单击绿色的返回图标返回上一个屏幕。
      图 22. 配置入站参数
      展示合作伙伴配置文件入站参数的屏幕快照
  9. 此时,您的合作伙伴配置文件配置应与第 6 步所示的屏幕快照相似。

修改 IDoc 分发模型

  1. 调用 SAP 事务 BD64。
  2. 切换到编辑模式。
  3. 打开 Model views > Subsystems > itself system。(如果存在多个系统,请选择客户端 ID 属于您的系统的系统。对于 IDES 系统,客户端 ID 通常是 800。)
  4. 现在,单击 Add message type 按钮。
  5. 在打开的弹出对话框中,输入以下值:
    • Receiver:MDMSAP
    • Message Type:DEBMAS
    单击绿色对号关闭对话框。
  6. 在弹出对话框关闭后,单击磁盘图标保存您对于 IDoc 分发模型的修改。
    图 23. 修改 IDoc 分发模型
    展示更改分发模型的屏幕快照

创建 ESB 中介流

将 MDM Server 类型导入 WebSphere Integration Developer

为了在 ESB 中处理 MDM Server 消息,MDM Server 数据类型需要导入 ESB 模块:

  1. 打开 MDM Workbench,选择 File > Export...
  2. 在 Export 窗口中,展开 General 文件夹,选择 File System
  3. 展开 CustomerResources 文件夹,选择 xsd(不要选中复选框)。
  4. 在右侧的文件列表中,选择以下文件:
    • DWLCommonRequest.xsd
    • DWLCommonRequest_extension.xsd
    • myTCRM.xsd
    • tcrmRequest_extension.xsd
  5. 指定要将文件导出到哪个目录,单击 Finish
    图 24. 导出 XSD
    展示将资源导出到本地文件系统的屏幕快照
  6. 打开 WebSphere Integration Developer,确保使用了 Business Integration 透视图。
  7. 选择 File > New > Other...
  8. 展开 Business Integration 文件夹,选择 Library
  9. 指定库名称 MDMDataTypes,随后单击 Finish
  10. 选择 File > Import...
  11. Import 窗口中,展开 Business Integration 文件夹,选择 WSDL and XSD,随后单击 Next
  12. 选择 Local WSDL or XSD file,单击 Next
  13. 使用 browse 按钮,导航到包含 XSD 文件的目录(您在第 5 步中指定的目录)。
  14. 在右侧的文件列表中,单击 myTCRM.xsd 旁边的复选框。
  15. 在 Target 模块或库字段列表中,选中您在第 9 步中创建的库(例如 MDMDataTypes)。
  16. 确保选中了 Import dependent resources 选项,确保依赖项树显示了 4 个 XSD 文件。
    图 25. 导入 XSD
    展示导入本地 WSDL 和/或 XSD 的屏幕快照
  17. 单击 Finish
  18. 选择 Window > Show View > Other...
  19. 展开 Business Integration 文件夹并选择 Physical Resources
  20. 在 Physical Resources 视图中,展开 MDMDataTypes 文件夹。您将看到已导入 XSD 文件的列表。在接下来的步骤中,您将为这些文件添加名称空间定义。
    注意:请使用下面指定的名称空间;否则将无法正确接收 MDM Server 行为扩展生成的消息。
  21. 右键单击 DWLCommonRequest_extension.xsd,选择 Open With > Text Editor
    将 schema 元素从:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    更改为:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/mdmsap" targetNamespace="http://example.com/mdmsap" elementFormDefault="qualified">
    使用 Ctrl+S 保存更改。
  22. 右键单击 DWLCommonRequest.xsd,选择 Open With > Text Editor
    将 schema 元素从:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    更改为:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/mdmsap" targetNamespace="http://example.com/mdmsap" elementFormDefault="qualified">
    使用 Ctrl+S 保存更改。
  23. 右键单击 myTCRM.xsd,选择 Open With > Text Editor
    将 schema 从:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:include schemaLocation="DWLCommonRequest.xsd"/>
    <xsd:include schemaLocation="tcrmRequest_extension.xsd"/>

    更改为:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/mdmsap" targetNamespace="http://example.com/mdmsap" elementFormDefault="qualified">
    <xsd:include schemaLocation="DWLCommonRequest.xsd"/>
    <!-- <xsd:include schemaLocation="tcrmRequest_extension.xsd"/> -->

    使用 Ctrl+S 保存更改。
  24. 右键单击 tcrmRequest_extension.xsd,选择 Open With > Text Editor
    将 schema 从:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    更改为:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/mdmsap" targetNamespace="http://example.com/mdmsap" elementFormDefault="qualified">
    <xsd:include schemaLocation="myTCRM.xsd"/>

    使用 Ctrl+S 保存更改。
  25. 确认 Physical Resources 视图未显示任何错误。

创建侦听传入的 MDM Server 消息的 JMS Export 组件

MDM Server 数据类型在 WebSphere Integration Developer 中可用之后,即可创建能够接收 MDM Server 消息的 JMS 组件:

  1. 打开 WebSphere Integration Developer。
  2. 右键单击您在前面的步骤中创建的 MDMDataTypes 库模块,选择 New >Interface
  3. 在 New Interface 窗口中,确保选中了 MDMDataTypes 库,并指定一个名称(例如,MDMInput),随后单击 Finish
  4. 在接口编辑器中,单击 Add One Way Operation 图标。
    图 26. 接口编辑器
    展示定义 MDMInput 的接口编辑器的屏幕快照
  5. 最初,新操作有一个名为 input1、类型为字符串的输入。单击 string to,并在选择窗口中选择 Browse...
  6. 在 Data Type Selection 窗口的 filter 字段内键入 TCRMService,在结果列表中选择 TCRMService 数据类型。单击 OK。验证操作 input 的名称和类型已经更改为 TCRMService。
    图 27. 定义操作
    展示 MDMInput 定义操作的屏幕快照
  7. 使用 Ctrl+S 保存更改。
  8. 选择 File > New > Other...,展开 Business Integration 文件夹,选择 Module,随后单击 Next
  9. 指定一个模块名称(例如 MDM2SAP),然后单击 Next
  10. 选中 MDMDataTypes 库旁边的复选框,单击 Finish
  11. 在 Business Integration 视图中,双击 Assembly Diagram
  12. 在 Assembly Diagram 编辑中,展开 Components 部分,将一个 Export 拖动到工作区中。
    图 28. 新建一个 export 组件
    展示 MDM2SAP assembly diagram 的屏幕快照
  13. 右键单击新建的 Export1 组件,选择 Rename,指定一个名称(例如,MDMRequest)。
  14. 右键单击新建的 MDMRequest 组件,选择 Add Interface。选择 MDMInput 接口并单击 OK
  15. 右键单击 MDMRequest 组件,选择 Generate Binding... > Message Binding > JMS Binding
  16. 在 Configure JMS Export Service 窗口中,选择 Publish-Subscribe 作为 JMS messaging domain
  17. 选择 Use pre-configured messaging provider resources
  18. 单击 activation specification 字段旁的 Select... 按钮,选择您的目标服务器,单击 Next,从列表中选择 jms/MDMTopicAS,随后单击 Finish
  19. 按下 receive destination 字段旁的 Select... 按钮,选择您的目标服务器,展开 Topics 文件夹,选择 com/dwl/base/notification/MDMTopic,单击 Finish
    图 29. 指定 JMS 配置设置
    展示配置 JMS Export Service 的屏幕快照
  20. 单击 OK
  21. Ctrl+S 保存 Assembly Diagram。
    图 30. Assembly diagram 与 JMS export
    展示 MDM2SAP assembly 的屏幕快照

设置 SAP 适配器

为了能够向 SAP 系统发送消息,必须配置 WebSphere Adapter for SAP Software:

  1. 由于适配器使用了 SAP Java Connector (JCo),因此需要将 sapjco3.dll 和 sapjco3.jar 文件复制到运行 ESB 的系统。两个文件均可从 SAP 市场的下载部分 获得。将两个文件复制到 WebSphere Process Server 的 lib 目录(例如 C:\Program Files\IBM\WID7_WTE\runtimes\bi_v7\lib)。
  2. MDM2SAP Assembly Diagram 编辑器中,展开 Outbound Adapters 部分,将一个 SAP 组件拖动到工作区中。
  3. New External Service 窗口中,选择 IBM WebSphere Adapter for SAP Software with transaction support
    图 31. 新建 IBM WebSphere Adapter for SAP Software
    展示新建外部服务的屏幕快照
  4. 单击 Next
  5. 在下一页中,保留默认设置即可,单击 Next
  6. 在下一页中指定 SAP JCo 文件的位置
    图 32. 指定 JCO 连接器文件的位置
    展示为新的外部服务定位文件的屏幕快照
  7. 单击 Next
  8. 在下一页中,指定 SAP 系统连接信息。要使用的 SAP 接口名称是 ALE
    图 33. 指定发现属性
    展示指定发现属性的屏幕快照
  9. 单击 Next
  10. 展开 ALE 节点,选择 Discover IDoc From System
  11. 单击 filter 按钮,在 pattern 字段中键入 *debmas*。务必包含通配符(*)。
    图 34. 在企业系统中查找对象
    展示在企业系统中查找对象的屏幕快照
  12. 单击 OK
  13. 展开 Discover IDoc from System (filtered) 节点。
  14. 在已发现对象的列表中,选择 DEBMAS06,将其添加到右侧的选中对象列表中。此时将出现一个配置对话框。
  15. 在 DEBMAS06 的配置属性中,选中前四个复选框,指定 IDoc release version 700
    图 35. IDoc DEBMAS06 的配置属性
    展示指定 'DEBMAS06 的配置属性的屏幕快照
  16. 单击 OK,再单击 Next
  17. 为所生成的业务对象指定一个文件夹。在 Folder 字段中输入 debmas,单击 Next
  18. 在 Deployment Properties 中,选择 Using security properties from the managed connection factory,随后单击 Next
  19. 单击 Finish
  20. Ctrl+S 保存 MDM2SAP Assembly Diagram。
    图 36. Assembly diagram
    展示 MDM2SAP assembly diagram 的屏幕快照

创建中介模块

现在,您必须创建传入的 MDM 消息与 SAP 消息之间的中介。由于 MDM Server 和 SAP 为国家或省份使用不同的代码,因此中介必须对恰当的值进行转码。

创建 MDMSAP 转码数据库

  1. 打开一个 DB2 命令窗口,切换到包含已经解压缩的教程示例文件的目录。
  2. 创建转码数据库:
    db2 create database MDMSAP
  3. 连接数据库:
    db2 connect to MDMSAP
  4. 输入此命令创建国家代码表:
    db2 -tvf countryCodes.sql
  5. 输入此命令创建省份代码表:
    db2 -tvf provinceCodes.sql
  6. 断开数据库连接:
    db2 disconnect MDMSAP

创建 MDMSAP 数据源

  1. 在 WebSphere Integration Developer 中,打开 Servers 视图,右键单击 WebSphere Process Server v7.0,选择 Start。等待状态将更改为 Started
  2. 右键单击 WebSphere Process Server v7.0,选择 Administration > Run administrative console
  3. 在左侧的 Admin Console 中,展开 Security 并单击 Global security
  4. 在右侧的 Authentication 部分中,展开 Java Authentication and Authorization Service 并单击 J2C authentication data
  5. 单击 New 按钮。
  6. 指定一个别名(例如,MDMSAP_DB_Auth_Alias)和用户用于连接到 MDMSAP 数据库的用户 ID 和密码。单击 OK。在页面顶端的消息中,单击 Save 保存您的更改。
    图 37. J2C 身份验证数据
    展示全局安全性屏幕的屏幕快照
  7. 在左侧的 Admin Console 中,展开 Resources > JDBC
  8. 单击 Data sources
  9. 在 Data sources 页面中,选择 server1 范围并单击 New
  10. Basic data source information 页面中,输入数据源名称(MDMSAP)和 JNDI 名称(jdbc/MDMSAP),随后单击 Next
  11. 在 JDBC provider 页面中,选择 Create new JDBC provider,随后单击 Next
  12. 在 new JDBC provider 页面中,选择 Database type: DB2Provider type: DB2 Universal JDBC Driver ProviderImplementation type: XA data source
    图 38. 新建 JDBC 提供程序
    展示新建 JDBC 提供程序的图片
  13. 单击 Next
  14. 在数据库类路径信息窗口中,指定您的包含 db2jcc.jar 文件的 DB2 安装目录。将 Native library path 字段留空,然后单击 Next
  15. 在 database-specific properties 页面中,选择 Driver type: 4Database name: MDMSAP(DB2) Server 名称。单击 Next
  16. 在 Component-managed authentication alias 下拉列表中,选择 MDMSAP_DB_Auth_Alias,然后单击 Next
  17. 单击 Finish。在页面顶端的消息中单击 Save
    图 39. MDMSAP 数据源
    展示数据源的屏幕快照
  18. 选中 MDMSAP 旁的复选框,单击 Test connection 按钮。在页面顶端的消息中,确认 MDMSAP 的连接测试是否已经成功。
  19. 重新启动应用服务器。

创建中介流组件

  1. 在 MDM2SAP Assembly Diagram 编辑器中,展开 Components 部分,将一个 Mediation Flow 组件拖动到工作区。
  2. 右键单击新的 Mediation Flow 组件,选择 Rename,并指定一个名称(例如, MDM2SAPMediation)。
  3. 在选项板中,单击 Wire 图标
    图 40. 新的中介工作流
    展示 MDM2SAP 中介图的屏幕快照
  4. 单击 MDMRequest 组件和 MDM2SAPMediation 组件。
  5. 在 Add Wire 对话框中,单击 OK
  6. 单击 MDM2SAPMediation 组件和 SAPImport 组件。
  7. 在 Add Wire 对话框中,单击 OK
  8. 右键单击工作区,选择 Automatic Layout
  9. 在选项板中,单击 Selection Tool
    图 41. 连接组件
    展示 MDM2SAP assembly diagram 的屏幕快照
  10. Ctrl+S 保存更改。

实现中介组件

  1. 在 WebSphere Integration Developer 中,右键单击 MDMDataTypes 库项目,选择 New > Business Object
  2. 指定名称(例如,TranscodingBO)。单击 Finish
  3. 在 TranscodingBO 编辑器中,使用 Add a Field to a business object 图标创建字符串类型的四个字段:
    • MDMCountryCode
    • MDMProvinceCode
    • SAPCountryCode
    • SAPProvinceCode
  4. 添加一个类型为 TCRMPersonBObjType 的 TCRMPersonBObj 字段(要指定类型,请单击字符串,选择 Browse...,输入 TCRMPerson,并从 Matching data types 列表中选择 TCRMPersonBObjType
    图 42. 添加字段
    展示业务对象的屏幕快照
  5. Ctrl+S 保存更改。
  6. 在 MDM2SAP Assembly Diagram 中,双击 MDM2SAPMediation 组件并在打开的对话框中选择 Yes
  7. 在 Generate Implementation 窗口中,单击 OK
  8. 在 MDM2SAPMediation 编辑器窗口中,选择 MDMInput 接口的 operation1
  9. 选择 Blank Mediation Flow。
    图 43. Blank Mediation Flow
    展示 MDM2SAPMediation 的屏幕快照
  10. 在右侧的 MDMSAPMediation 编辑器中,单击 Transient Context 旁的加号(+)。
  11. 在 Filter 字段中,输入 TranscodingBO,从 Matching data types 列表中选择 TranscodingBO,并单击 OK
    图 44. Transient Context
    展示添加 Transient Context 的屏幕快照
  12. 在左侧的 MDMSAPMediation 编辑器中,展开 Service Invocation 部分,将一个 Callout 拖动到工作区。
  13. 选择 SAPImportPartner 引用,随后单击 OK
  14. 在 Routing 部分中,将一个 Message Filter 拖动到工作区。右键单击 Message Filter,选择 Rename,并指定名称 validate message
  15. 在 Transformation 部分中,将以下内容拖动到工作区:
    • XSLT Transformation(名称:prepare context
    • Database Lookup(名称:transcode province codes
    • Database Lookup(名称:transcode country codes
    • XSLT Transformation(名称:create SAP message
  16. 按照如下方法连接已创建的工件:
    • Inputvalidate message 连接
    • 将验证消息的 match1 输出与 prepare context 连接
    • 将准备消息的 out 输出与 transcode province codes 连接
    • 将转码省份编码的 out 输出与 transcode country codes 连接
    • 将转码国家编码的 out 输出与 create SAP message 连接
    • create SAP messageCallout 连接
  17. 右键单击工作区,选择 Automatic Layout。
    图 45. Automatic Layout
    展示带有已连接基元的流的屏幕快照
  18. 单击 validate message
  19. Properties 视图中,选择 Details 选项卡,随后单击右侧的 Add... 按钮。
  20. 在 Add/Edit 窗口中,输入以下模式。在本例中,我们仅确认已经设置了 City 元素。

    boolean(/body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/TCRMPartyAddressBObj/TCRMAddressBObj/City)
  21. 选择 match1 作为终端名称。
    图 46. Add/Edit 属性
    展示 Add/Edit 属性的屏幕快照
  22. 单击 Finish
  23. 双击 prepare context
  24. 在 New XML Map 窗口中,单击 Next
  25. 在 Message Root 下拉框中,选择 '/'
  26. 确认 Input Message Body 已设置为 operation1RequestMsg
  27. 要指定 Output Message Body,请单击字段旁的 Browse 按钮,先选择 Specific message type,再选择 MDMInput/operation1/operation1RequestMsg,然后单击 OK
    图 47. 新建 XML 映射
    展示新建 XML 映射的屏幕快照
  28. 单击 Finish,映射编辑器将打开。
  29. 在映射编辑器中,创建左侧结构元素与右侧结构元素之间的以下连接:
    左侧元素右侧元素转换函数
    bodybodyMove
    body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/context/transient/TCRMPersonBObjMove
    body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyAddressBObj/TCRMAddressBObj/CountryTypecontext/transient/MDMCountryCodeMove
    body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyAddressBObj/TCRMAddressBObj/ProvinceStateTypecontext/transient/MDMProvinceCodeMove
    图 48. 上下文映射
    展示上下文映射的图示
  30. Ctrl+S 保存更改。
  31. 在 MDMSAPMediation 编辑器中,单击 transcode province codes
  32. 单击 Terminal 选项卡。
  33. 展开 Input terminal,单击 in。然后单击 Message type 字段旁的 Change 按钮,选择 MDMInput/operation1/operation1RequestMsg
  34. Details 选项卡内单击。
  35. 输入以下值:
    • 在 Data source 字段中输入 jdbc/MDMSAP
    • 在 Table 字段中输入 MDMSAP.PROVINCE_CODES
    • 在 Search column 字段中输入 MDM_PROVINCE
    • 在 Search location 字段中输入 /context/transient/MDMProvinceCode
    • 在目标位置表中,输入 SAP_PROVINCE 作为 Column,在 Type 字段中输入 string,并在 Target location 中输入 /context/transient/SAPProvinceCode
    图 49. 在数据库中查找省份编码
    显示 database lookup: transcode province codes 的屏幕快照
  36. Ctrl+S 保存您的更改。
  37. 在 MDMSAPMediation 编辑器中,单击 transcode country codes
  38. 输入以下值:
    • 在 Data source 字段中输入 jdbc/MDMSAP
    • 在 Table 字段中输入 MDMSAP.COUNTRY_CODES
    • 在 Search column 字段中输入 MDM_COUNTRY.
    • 在 Search location 字段中输入 /context/transient/MDMCountryCode
    • 在目标位置表中输入 SAP_COUNTRY 作为 Column,在 Type 字段中输入 string,并在 Target location 中输入 /context/transient/SAPCountryCode
    图 50. 在数据库中查找国家编码
    显示数据库查找转码国家编码细节的屏幕快照
  39. Ctrl+S 保存您的更改。
  40. 在 MDMSAPMediation 编辑器中,双击 create SAP message
  41. 在 New XML Map 窗口中,按 Next
  42. 在 Message Root 下拉框中,选择 '/'
  43. 要指定 Input Message Body,单击字段旁的 Browse 按钮,选择 Specific message type,选择 MDMInput/operation1/operation1RequestMsg,再单击 OK
  44. 验证 Output Message Body 已设置为 executeSapDebmas06RequestMsg
    图 51. 指定消息类型
    展示输入新 XML 映射的屏幕快照
  45. 单击 Finish,此时将打开映射编辑器。
  46. 在映射编辑器中,在左侧结构的字段与右侧结构的字段之间建立以下连接:
    #左侧字段右侧字段转换函数
    以下的所有字段均与
    body/executeSapDebmas06/executeSapDebmas06Input/SapDebmas06IDocBO/ SapDebmas06DataRecord/SapDebmas06E2kna1m005 相关
    1context/transient/SAPProvinceCodeREGIOMove
    2context/transient/SAPCountryCodeLAND1Move
    3body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyAddressBObj/TCRMAddressBObj/AddressLineOneSTRASMove
    4body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyAddressBObj/TCRMAddressBObj/CityORT01Move
    5body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyAddressBObj/TCRMAddressBObj/ZipPostalCodePSTLZMove
    6body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPartyIdentificationBObj/IdentificationNumberSTCD1Move
    7两项输入:
    body/operation1/TCRMService/ TCRMTx/TCRMObject/TCRMPersonBObj/TCRMAdminContEquivBObj/
    AdminPartyId
    body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMAdminContEquivBObj/AdminSystemType
    KUNNRIf (下文提供了有关这种 If 转换的配置说明)
    8两项输入:
    body/operation1/TCRMService/TCRMTx/ TCRMObject/TCRMPersonBObj/TCRMPersonNameBObj/GivenNameOne

    body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPersonNameBObj/LastName
    NAME1Concat (下文中提供了有关这种 Concat 转换的配置说明)
    9body/operation1/TCRMService/TCRMTx/TCRMObject/TCRMPersonBObj/ TCRMPersonNameBObj/LastNameSORTLMove
    • 上表第 7 行 If 转换的配置说明:
      利用表示转换函数的框,将 AdminPartyIdKUNNRAdminSystemType 连接。随后将转换的类型切换为 If。单击 If 转换,指定条件: $AdminSystemType = '1'。 最后,双击 If 转换,并将 AdminPartyIdKUNNR 连接。现在,仅在系统类型的值为 “1” 时才能将 party ID 赋予客户编号。其他系统将被忽略。
    • 上表第 8 行 Concat 转换的配置说明:
      利用表示转换函数的框,将 GivenNameOneNAME1LastName 连接。此时即创建了一个 Concat 转换。单击 Concat 转换。在 General 选项卡中选择 Space character 作为默认分隔符。确认 Example 字符串如下所示:<GivenNameOne> <LastName>(包括空格字符)。
  47. SAP 消息的某些字段需要设置默认值。可以使用 Assign 函数赋予默认值。要创建 Assign,请右键单击恰当的字段并选择 Create Assign。在 AssignProperties 中,可在 General 选项卡中指定该值。创建下表中列出的赋值。
    #字段赋值将赋予的值SAP 转换
    下面的所有字段均与
    body/executeSapDebmas06/executeSapDebmas06Input/ SapDebmas06IDocBO/SapIDocControlRecord/ 相关
    1RCVPORMDM_PORTwe21
    2SNDPRTLS
    3IDOCTYPDEBMAS06
    4SNDPRNMDMSAPwe20
    5TABNAMEDI_DC
    6MANDT800
    7MESTYPDEBMAS
    8RCVPRNT90CLNT090bd64,检查定义 MDMSAP 逻辑系统的子系统
    9SNDPORTRFC
    10RCVPRTLS
    #字段赋值将赋予的字段
    下面的所有字段均与
    body/executeSapDebmas06/executeSapDebmas06Input/SapDebmas06IDocBO/ SapDebmas06DataRecord/SapDebmas06E2kna1m005/ 相关
    1MSGFN005
    2KTOKD0001
    3SPRASE
    4LZONE0000000003
  48. Ctrl+S 保存您的更改。
  49. 在 MDMSAPMediation 编辑器中,某些组件仍存在尚未连接的终端。在选项板的 Error Handling 部分中将各 fail 终端连接到一个 Fail 组件。在选项板的 Error Handling 部分中将其余所有未使用的终端连接到一个 Stop 组件。
  50. 右键单击工作区,选择 Automatic Layout(为了适应屏幕,下图所示布局经过修改)。
    图 52. 最终的请求流
    展示最终请求流的图片
  51. 在 MDMSAPMediation 编辑器中,单击 Response 选项卡。
  52. 在选项板的 Tracing 部分中,将 Callout Response 组件的 out 终端连接到一个 Trace 组件。
  53. 在选项板的 Error Handling 部分中,将这个 Trace 组件的 out 终端连接到一个 Stop 组件。
  54. 在选项板的 Error Handling 部分中将其余所有未使用的终端连接到一个 Fail 组件。
  55. 右键单击工作区,选择 Automatic Layout。
    图 53. 最终的响应流
    展示响应流的图片
  56. Ctrl+S 保存您的更改。
  57. 切换到 MDM2SAP Assembly Diagram,按 Ctrl+S 保存您的更改。

将应用程序部署到服务器

  1. Servers 视图中,右键单击 WebSphere Process Server v7.0 at localhost,选择 Add and Remove projects....
  2. Available Projects 中选择 MDM2SAPApp,单击 Add
    图 54. 将应用程序添加到服务器
    屏幕快照:add and remove projects
  3. 单击 Finish
  4. 等待 Status 更改为 Synchronized

运行场景

为了测试本教程中介绍的场景,您将使用 MDM Data Stewardship Console 新建一个 MDM person 实体。所创建的实体随后将由 ESB 处理。同时完成国家和省份的转码,最好会将一条 IDoc 消息发送到 SAP 系统

利用 MDM Data Stewardship Console 新建一个 MDM Person 实体

  1. 使用浏览器导航到 MDM Data Stewardship Console(通常是 http://myMDMHost:9080/CustomerDataStewardshipWeb/,其中 myMDMHost 是您的 MDM 系统的名称;您的系统上的端口可能有所不同)。
  2. 在左侧导航菜单中,打开 Party Maintenance 部分,选择 Add Person 菜单项。
  3. 输入数据,以下字段为必填字段:
    • Name Usage Type:Legal
    • Given Name:John
    • Family Name:Doe
  4. 单击 Submit
    图 55. 添加人员数据管理
    展示 MDM Server 中显示添加人员功能的数据管理屏幕的屏幕快照
  5. 在弹出的对话框中,单击 OK 保存更改。
  6. 现在,单击 Addresses 选项卡,为新建的人员添加一个地址。
  7. 单击地址列表底部绿色的 Add 按钮。
  8. 至少指定以下值:
    • Address Type:Business
    • Address Line:Evergreen Terrace
    • City:Los Angeles
    • Province/State:CA
    • ZIP Code:54321
    • Country:United States of America
  9. 单击 Submit 按钮保存更改,随后单击弹出的对话框中的 OK
    图 56. 客户一般数据
    展示添加地址信息的屏幕快照
  10. MDM Person 实体创建完成,并有一个 IDoc 发送给了 SAP 系统。单击 Customer Key 选项卡查找为在 SAP 系统中使用而生成的该记录的 ID。请注意将密钥记下或复制到剪贴板中,在下一个步骤中,我们将用它来查找 SAP 系统中的记录。
    图 57. 查看客户密钥
    展示查看客户密钥的屏幕快照

在 SAP 系统中查看记录

  1. 登录 SAP 系统,调用事务 XD03。
  2. 在 Customer 字段中键入或粘贴上一步得到的 SAP 客户编号,单击绿色对号。
    图 58. 事务 XD03
    展示 Customer Display: Initial Screen 的屏幕快照
  3. 现在,您应该看到在 SAP 系统上创建的一条 Customer 记录,其中包含 MDM Data Stewardship Console 中输入的所有相关地址和个人信息。
    图 59. 事务 XD03
    展示 display customer: general data 的屏幕快照
  4. 注意:万一客户记录未传输到 SAP 系统,WebSphere Adapter for SAP software 就可能会出现问题。此时请查看流程服务器日志文件,检查是否发生了以下异常:
    java.lang.NoClassDefFoundError: com.ibm.j2ca.sap.ext.JCo3DestinationDataProvider
    请参阅 参考资料 部分中提供的文档链接 “SAP JCo 环境设置错误”,修复此问题。

更新 MDM Person 实体

  1. 关闭 SAP 事务 XD03,使得 SAP 系统不再锁定客户记录,从而可以可以立即应用 ESB 发送的更改。
  2. 转到 MDM Data Stewardship Console。如果您在上一步中创建的 MDM 人员记录尚未打开,请使用 Party Maintenance > Search Party 菜单项来进行搜索,举例来说,指定姓氏 Doe,随后单击 Submit 按钮。
    图 60. Search Party
    展示按姓氏搜索的屏幕快照
  3. 现在,修改记录的名称或地址,保存您的更改。MDM 端的更改将传播到 SAP 系统,当您再次调用事务 XD03 时即可看到更改。

结束语

结束语

本教程到这里就结束了,在学习本教程之后,您应该已很好地认识了如何集成 MDM Server 与企业信息系统。教程中重点讨论了与 SAP 的集成示例,但在集成其他系统时,所用的步骤将与您所学到的步骤大体相似,甚至可能完全相同。

我们集成的第一步就是创建 MDM 行为扩展,允许我们响应 MDM 管理的主数据的更改。在本例中,我们重点关注 “客户” 业务对象,并在 MDM 系统中创建或更新客户记录时将数据发送给一个 JMS 主题。拼图的下一块是 ESB 中介流,它将从 JMS 主题中获取数据。ESB 中介流是一种极为出色的工具,它允许您灵活处理数据。

您已经学习了如何轻松地在中介流中执行类型代码的转码,只要源系统和目标系统对属性使用不同的代码,这个步骤就始终必不可少。在中介流中,我们还将 MDM 消息转换为 SAP IDoc 结构。最后,我们使用 WebSphere Adapter for SAP applications 将 IDoc 发送至一个 SAP 系统。

后续内容展望

本系列教程的第 2 部分将展示独立属性(例如,SAP 系统管理的 “tax ID” 属性)的数据如何传播回 MDM 系统。


下载

描述名字大小
示例代码和 SQL 脚本download.zip11KB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, WebSphere
ArticleID=772666
ArticleTitle=集成 MDM Server 与企业信息系统(使用 SAP 作为示例),第 1 部分: 向 SAP 提供客户记录
publish-date=11072011