SAP CR500 Col92

CRM 中间件
中文自学笔记
强晟
2010年7月4日 v1.0
E-mail:qiangsheng@hotmail.com

前言
信息技术的发展促进了软件系统的爆炸式增长,任何一个企业或组织
在发展过程中都不可避免的用到一套又一套软件来完成不同的管理任
务。但是各方面的管理不可能完全孤立,为了减轻工作人员重复录入
相同或相似数据的劳动强度,必然需要一些方式在各套软件系统之间
传递数据。
• 最早的方法是文本文件,它的核心就是以所有系统都可以方便识别的
纯文本(基于 ASCII 码标准)做为交换媒介,在不同系统间传递数
据,后来出现的 XML 也只是在标准化方面做了更多工作,并没有改
变文本交换的实质。文本交换虽然方便,却是一种间接的方式,两个
系统间没有直接联系,效率较低,且对异常情况的处理能力非常弱。
• 然后出现了应用程序编程接口(API)技术,API 是以某一套软件为
服务平台,为其他软件提供标准接口,完成互操作的技术,SAP 中
的 RFC 就是一种 API。API 的好处是实时性提高了,服务提供者可
以对各种异常情况做出合适的处理。但它仍然是一种单方接口,所有
其他系统都要遵循 API 提供方的技术标准。
• 而中间件的出现则通过进一步分层来解决了统一标准的问题。中间件
是独立于各个软件系统之外的系统,以平等的方式为所有软件提供服
务,其他软件只要遵循中间件的标准,就能互相交互。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

2

目录








课程概览
第一单元:解决方案概览
第二单元:与 R/3 后端的数据交换
第三单元:CRM 中间件操作
第四单元:与第三方后端的数据交换
第五单元:BW(BI)适配器概览
第六单元:群件适配器概览
第七单元:SAP CRM 现场销售
附录一:群件准备和同步设置指南

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

3

课程概览
• 本课程包含了 SAP CRM 中间件的操作和配置
• 目标听众
– 负责 CRM 系统场景常规操作的人员
– SAP 顾问、CRM 顾问和合作伙伴

• 课程目标
– 获得关于所有中间件适配器的概览,重点关注 R/3
(ERP/ECC)适配器。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

4

课程概览
• 学习本课程后应该可以
– 描述 CRM 中间件的内部数据处理。
– 设置并监视从 CRM 中间件到被连接的 SAP ECC
(R/3)系统的连接。
– 监视 CRM 中间件内部的数据流。
– 理解移动客户端的数据分布模型的原理。
– 理解 BW 适配器和群件适配器的工作。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

5

com) CR500: CRM Middleware 6 .第一单元 解决方案概览 • 单元概览 – 本单元介绍 SAP CRM 解决方案和架构 • 单元目标 本单元完成后,应该能: – 描述 SAP CRM 的策略 – 列出并描述 SAP CRM 架构的各种组件 – 描述 CRM 中间件的架构 – 描述基于场景的典型中间件 • 本单元的课程为 – 解决方案介绍 – 架构概览 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第一单元 解决方案概览 第一课 解决方案介绍 • SAP CRM 中以客户为中心的电子商务 – 当前,复杂的客户问题需要一个可配置的客户关系管 理(CRM)应用,它可以直面挑战,而无论问题发生 在与组织的客户进行互动、销售还是服务的任何地点 或任何时候。 – SAP CRM 在市场营销、销售和服务的核心区域合并 了广泛的盈利分析能力,它们直接构建在组织与它们 的客户交互时的主要交互渠道中。 – 所有这些功能实现了在 SAP CRM 独特的价值主张之 下的闭环式交互循环。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 7 .

第一单元 解决方案概览 第一课 解决方案介绍 • SAP CRM 中以客户为中心的电子商务(续) – SAP CRM 构建在一个开放、可信赖、安全且可伸缩 的技术平台之上。 – SAP 提供的全面服务可以确保 SAP CRM 的快速实 施,并支持应用 作伙伴 渠道合 现场 心 环境的及时优化。 交互中 |市场营销 分| |销售 析| |服务 电子商 务 客户 闭环的客户交互 连接的、以人为本、协作、特定行业 基础构造和通用服务 SAP 客户服务网络 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 8 .

0 的一部分,包含了一个中心 CRM 服务器,提供各 种渠道对系统进行访问,以及到其他系统的连接。 SAP CRM 支持下列能力: • 交互中心:集成的交互中心允许客户使用电话、传真、电子 邮件联络销售或服务代表。 • 互联网访问:用户可以使用 SAP CRM 的互联网组件配置和 订购产品和服务。 • 移动客户端:移动销售团队或移动服务工程师可以从笔记本 电脑连接到 SAP CRM 系统,与中心 CRM 服务器交换最新 数据。 • 群件解决方案:客户、活动和任务可以与群件系统交换。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 9 .第一单元 解决方案概览 第二课 架构概览 • SAP CRM 架构概念 – SAP 客户关系管理(SAP CRM),是 SAP 商务套件 7.

第一单元 解决方案概览 第二课 架构概览 • SAP CRM 架构概念(续) – SAP CRM 解决方案提供下列完全集成的连接: • SAP CRM 系统做为它的组件的中心 CRM 服务器 • SAP R/3 做为提供 ERP 功能的后端系统 • SAP BW 系统做为提供全面统计和分析能力的数据仓库解决 方案 • SAP APO 系统做为全局可用性承诺(ATP)检查和需求计划 解决方案 • 为 CRM 业务用户提供 SAP CRM WebClient 用户界面(UI) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 10 .

第一单元 解决方案概览 第二课 架构概览 • SAP CRM 服务器架构 – 在 CRM 中间件和外部系统之间的数据交换通过适配 器完成。适配器在各种格式之间映射和转换数据。 – CRM 服务器支持 CRM 业务对象的处理,比如在互联 网销售(CRM Web 渠道)、服务交互中心、电话销 售、活动管理和各种其他 CRM 组件中的帐户(客户、 潜在客户等)、行动和机会、产品和产品目录等。这 些 CRM 服务器应用通过 CRM 适配器与 CRM 中间件 交换数据。 – SAP NetWeaver 应用服务器是 SAP Basis 系统的后 继。SAP CRM 7.com) CR500: CRM Middleware 11 .0 基于 SAP NetWeaver 应用服务器 7.0。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 12 .第一单元 解决方案概览 第二课 架构概览 • SAP CRM 和 SAP 后端系统 – 数据在 CRM 系统和被连接的 SAP R/3 后端系统之间 的交换主要通过 CRM 中间件。在 R/3 系统安装的一 个插件(PI)扮演与 CRM 中 R/3 适配器的对应,支 持两个系统之间的通讯。数据交换包括定制、主记录、 事务和条件数据向 CRM 系统的初始传输,以及双向 的增量数据。 • 注意:集成 SAP R/3、SAP R/3 企业和 SAP ERP 核心组件 (ECC)的扩展的接口不再提交自己的附加(SAP R/3 插 件)。从 SAP ECC 6.1 是最后单独交付的 SAP R/3 插件版本。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.0 起,它们被直接包含在 SAP ECC 中。 因此 PI 2004.

com) CR500: CRM Middleware 13 .第一单元 解决方案概览 第二课 架构概览 • SAP CRM 和 SAP 后端系统(续) – 销售订单在互联网销售应用组件(CRM Web 渠道)、 交互中心、移动客户端或使用 CRM WebClient 用户 界面输入。要确认所要求的项目能否按时交付,就需 要执行可用性承诺(ATP)检查。SAP 高级计划和优 化器(SAP APO)执行这些功能。SAP APO 被用在 SAP 供应链管理中,并且可以与 SAP CRM 解决方案 无缝集成。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 14 .第一单元 解决方案概览 第二课 架构概览 • SAP CRM 和 SAP 后端系统(续2) – SAP 商务智能仓库(SAP BW)被用于做为 SAP CRM 解决方案的一部分数据源,但是也包含合并和分 析数据。 – 对于 SAP APO 和 SAP BW 集成,都需要 SAP Basis 插件:SAP Basis 插件是一个以交付 BW 服务 API 技 术(SAPI)、CRM 中间件、供应链事件管理器和财 务基础功能给 SAP 组件,以创建到这些系统的连接的 软件组件。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 15 .第一单元 解决方案概览 第二课 架构概览 • 潜在技术:qRFC – qRFC(队列远程函数调用)技术是双向的。在部分业 务场景中,SAP ERP 系统是主导系统,在 ERP 系统 中产生出站队列而在 CRM 系统中存在入站队列。 – 考虑带有出站队列和入站队列的 qRFC 的例子。CRM 使用这个带有出站和入站队列的 qRFC。带有入站和 出站队列的 qRFC 包含三阶段的流程和传输模型。所 有三个阶段完全互不依赖。这些阶段的拆分确保了异 步处理尽可能的安全。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 16 .第一单元 解决方案概览 第二课 架构概览 • 潜在技术:qRFC(续) • 1、在第一个步骤,应用数据被写入出站队列的数据库。当第 一个步骤完成,数据被保存在数据库。 • 2、在第二个步骤,QOUT 调度程序把客户系统数据库的这个 数据传输给目标系统数据库的入站队列。 • 3、在第三个步骤,目标系统的 QIN 调度程序激活在目标系 统中队列的处理 – 这个技术是双向工作的。CRM 具有一个发送函数调用 数据给 SAP ERP 的出站队列,而 SAP ERP 具有一 个出站队列,在某些业务场景下它可以做为主导系统。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

NET 连接器编程)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)下的传统 SAP 技术 (ABAP) -> RFC,或参加 SAP 课程 BC415 (ABAP 中的远程函数调用)或 BIT528(SAP .sap.第一单元 解决方案概览 第二课 架构概览 • 潜在技术:qRFC(续2) – 事务远程函数调用(tRFC)是在系统之间发送调用的 技术。它由从出站队列向接收系统的入站队列发送数 据和函数调用的 QOUT 调度程序,和读取入站队列和 执行存储函数调用的 QIN 调度程序组成。 – 事务码 SMQ1 和 SMQ2 被用来读取入站和出站队列 的数据。可以看到想处理的数据和函数调用。否则, 队列中的数据会比较难以从存储在网络上的表中访问。 – 要找到关于队列技术的更多信息,可以看 SAP NetWeaver 库(help.com) CR500: CRM Middleware 17 .

com) CR500: CRM Middleware 18 .第一单元 解决方案概览 第二课 架构概览 • 主要 CRM qRFC 队列的命名规则 – 开始队列是要求数据被传输的队列。 – 加载队列包含事务、主数据、定制或条件数据。 – CSA* 队列是 CRM 的 CRM 适配器在其他系统中后续 处理之前验证数据的。 – DIMA(数据完整性管理)和 BW 队列也存在,会单独 讨论。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 19 .第一单元 解决方案概览 第二课 架构概览 • SAP CRM:与第三方系统的数据交换 – 数据在 CRM 和连接的第三方系统(SAP 系统、非 SAP 系统、遗留系统等)之间交换主要通过 CRM 中 间件。连接通过 XIF(扩展接口)适配器实现。XIF 适 配器通常通过 http(s)、SOAP(简单对象访问协议) 和 XML(可扩展标记语言)文档或通过 RFC 和 IDoc (中间文档)文档来传出和传入数据。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第一单元 解决方案概览 第二课 架构概览 • SAP CRM:与笔记本的数据交换 – CRM 服务器:CRM 服务器包含 CRM 中间件,处理 内部应用和外部主要组件的数据交换,如 SAP ERP 后端、SAP 业务信息库或非 SAP 系统。CRM 中间件 还同步移动客户端与 CRM 数据库的数据。CRM 服务 器构建在 SAP NetWeaver 应用服务器上,以前被称 为 SAP Basis。 中间件 – 移动客户端:通常笔记本运行 移动销售/服务应用。移动客户 端通常临时连接到 CRM 服务 通讯站 器上进行数据交换。它们也可 移动客户端 中心服务器 以持久的连接到服务器。移动 客户端通过通讯站连接到 CRM 服务器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 20 .

第一单元 解决方案概览 第二课 架构概览 • CRM 服务器 – CRM 服务器是可伸缩的,因为它基于 SAP NetWeaver 应用服务器(过去的 SAP Basis 系统)。 SAP NetWeaver 应用服务器提供 SAP Basis 技术和 ABAP 工作台,做为很多应用开发者的开发环境。 – CRM 服务器包含 CRM 服务器引用和 CRM 中间件的 主要部分。CRM 数据库是 CRM 服务器应用的中心数 据库。 – CRM 中间件的主要部分提供下列功能: • 数据排队和传输 • 复制和重组服务,确保移动客户端或外部系统获得所需数据 • 数据交换和映射 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 21 .

com) CR500: CRM Middleware 22 .第一单元 解决方案概览 第二课 架构概览 • 最佳实践 – 最佳实践是缩短 SAP 项目实施事件的最佳方法。 – 它们会落后最新版本的发行版几个月的时间,但即使 最新版本尚未发布,它们仍旧非常有帮助,因为大部 分东西是不变的。 – 与 CRM 中间件相关的主要最佳实践组件(积木组件) 是 B09(CRM 定制复制)和 C03(CRM 主数据和交 易数据复制)。在这里,最新版本的 CRM 最佳实践 在资料创建时可以得到。当最新版本的最佳实践被创 建和更新时,这里也会修改。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 • 单元目标 本单元完成后,应该能: – 描述 SAP R/3 后端的消息流 – 描述 SAP CRM 与 SAP R/3 之间的连接 – 描述定制数据的同步场景 – 描述业务数据和条件的业务场景 – 用 CRM 中间件开始数据流 – 描述从 CRM 到 SAP R/3 的数据交换 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 23 .

com) CR500: CRM Middleware 24 .第二单元 与 R/3 后端的数据交换 • 单元概览 – 本单元讨论使用 CRM 中间件与 R/3(ECC)后端数 据交换的细节。 • 本单元的课程为 – – – – 介绍 定制同步 从 ECC 下载到 CRM 从 CRM 上传到 ECC SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 25 .第二单元 与 R/3 后端的数据交换 第一课 介绍 • 消息流概览 – 入站处理:不同格式的输入数据,比如,来自 SAP R/3 后端的 BAPI 结构、来自移动客户端的同步 BDoc 消息(sBDoc)、来自外部系统的 XML/SOAP 或者 IDoc,都被转换为消息 BDoc 消息(mBDoc)。 – 验证:输入数据的完整性由相关的 CRM 应用验证。 在验证成功时,数据单元被传递给出站处理。如果输 入数据无效,BDoc 消息会保留在消息流中,处于错 误状态。 – 出站处理:接收系统,例如 SAP R/3 后端、外部系统 或移动客户端,被确定。然后 BDoc 消息被传递给相 应的出站适配器,将消息转换为接受者的数据格式。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

0 可以被用作一个独立系统,这意味着在执行 CRM 相关任务时不需要 R/3 后端。 – 在 CRM 中,R/3 适配器与 R/3 系统通过 R/3 插件的 远程函数(RFC)通讯。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.第二单元 与 R/3 后端的数据交换 第一课 介绍 • 用于 SAP R/3 后端系统的消息流 – 通过 CRM 中间件的数据交换需要在 SAP R/3 上安装 R/3 插件(PI)。 – SAP R/3 后端(一个或多个 SAP R/3 后端)扮演的角 色是 • 定制和业务数据(主数据、交易数据、条件等)的提供者 • 进一步执行的业务数据的接受者(例如后勤执行) – CRM 7.com) CR500: CRM Middleware 26 .

第二单元 与 R/3 后端的数据交换 第一课 介绍 • 连接:CRM 与 R/3 – 在 CRM 系统与 R/3 系统之间的通讯基于远程函数调 用(RFC)。 – 在 R/3 系统你必须创建 RFC 目的地给 CRM 系统。然 后激活 CRM 做为表 CRMCONSUM 的消费者,并维 护表 CRMRFCPAR。通过这个表,用于数据传输的 RFC 目的地确认会连接到消费者、客户端、对象名和 传输类型。例如,可以只在初始下载时发送数据给消 费者,而不能用于增量下载。 – 在 CRM 系统中,必须创建到 R/3 后端的 RFC 目的地 并用工具管理控制台创建 R/3 站点。R/3 站点指向 RFC 目的地。在表 CRMCONSUM 中激活 R/3 OLTP 做为消费者。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 27 .

第二单元 与 R/3 后端的数据交换 第一课 介绍 • 管理控制台中的 R/3 站点 – 管理控制台可以通过菜单访问:架构和技术 → 中间件 → 管理 → 管理控制台(或事务码 SMOEAC)。 – 在管理控制台中检查站点需要下列步骤: • • • • • 选择对象类型站点 选择图标“显示” 展开节点“R/3” 标记站点并选择上下文菜单“显示”或使用双击跳转到细节视图。 要找到 RFC 目的地,选择按钮“站点属性”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 28 .

第二单元 与 R/3 后端的数据交换 第一课 介绍 • 管理控制台中的 R/3 站点(续) – 创建新站点需要下列步骤。 • 用 CRM 中的事务码 SM59 创建/检查从 CRM 系统到 R/3 系 统的 RFC 目的地。测试 RFC 连接并确认 R/3 系统中的 RFC 用户具有适当的权限。 • 在管理控制台中创建站点: – – – – 选择按钮“创建” 提供站点细节,例如:站点名称和站点描述,站点类型“R/3” 指定依赖于站点类型的站点属性,例如 R/3 后端的 RFC 目的地 按“保存”按钮结束创建过程 – 在管理控制台中存在具有制定权限的 SAP 角色。 • 角色 SAP_CRM_MWAC_ADMIN_ALL 用于完全授权 • 角色 SAP_CRM_MWAC_SITE_CHANGE 用于站点维护 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 29 .

com) CR500: CRM Middleware 30 .第二单元 与 R/3 后端的数据交换 第一课 介绍 • R/3 站点的站点属性 – R/3 站点由 RFC 目的地、逻辑系统、R/3 后端的版本、 插件的版本和插件的相应支持包(SP)来决定。 – 有两个 SAP 角色指定了在管理控制台中创建或维护对 象的权限: • 角色 SAP_CRM_MWAC_ADMINISTRATOR 用于员工、站 点、组织单元和描述 • 角色 SAP_CRM_MWAC_CUSTOMIZER 用于复制对象和发 布。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 初始的从 R/3 到 CRM 的定制数据加载 – 对于部分定制对象,存在从 R/3 到 CRM 的预定义数 据传输,即使定制表的结构在 R/3 和 CRM 中并不相 同。一个或多个数据库表的数据在定制适配器对象中 分组在一起。定制适配器对象的数据可以通过初始加 载从 R/3 传输到 CRM 系统。在本节中,会详细解释 定制适配器对象 – 可以使用下载监视器(事务码 R3AM1)来控制初值加 载。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 31 .

com) CR500: CRM Middleware 32 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 初始的从 R/3 到 CRM 的定制数据加载(续) – 例如:定制适配器对象 DNL_CUST_KTOKD • R/3 表 T077D 和 T077X • CRM 表 CRMC_T077D 和 CRMC_T077X • 映射函数模块 CRM_BUPA_MAP_KTOKD_CI。 – R/3:CRMSUBTAB:对象类 CUSTOMIZING 中对象 的通用抽取器的名称 CRS_CUSTOMIZING_EXTRACT SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 33 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制适配器对象(一) – 使用 架构和技术 → 中间件 → 数据交换 → 对象管理 → 定制对象 或事务码 R3AC3 来显示 CRM 中的定制 适配器对象。 – 所有定制适配器对象都被分配给对象类 CUSTOMIZING。 – 在“初始流上下文”选项卡,可以找到支持的 CRM 中间 件流上下文,以及源和目标站点。 – 在“表/结构”选项卡,找到源系统中数据库表的名称。 – 要创建过滤器标准,选择选项卡“表/结构”中的按钮“过 滤器设置” SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制适配器对象(二) – 指定 R/3 站点。站点必须事先在管理控制台(事务码 SMOEAC)中创建,因为相应的 RFC 目的地要用于 同步。 – 指定 R/3 数据抽取器中 WHERE 子句的表字段。 – 指定过滤器选项(选项:源和目标数据库的过滤器、 只针对目标数据库的过滤器、只针对源数据库的过滤 器)。 – 保存过滤器标准。过滤器标准会自动与 R/3 同步。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 34 .

com) CR500: CRM Middleware 35 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制适配器对象(三) – 定制数据在通用结构 BAPIMTCS 中通过 qRFC 被传 输给 CRM 系统。映射函数模块将这个数据映射到 CRM 表结构中并更新 CRM 表。 – 这里没有创建 mBDoc,也不启动消息流。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 找到所涉及的适配器对象:表 SMOFTABLES – 查找适配器对象的方法,例如收付条件: • 1、在 R/3 的定制或应用表中查找相关数据,定制表 T052 • 2、在 CRM 中访问表 SMOFTABLES,搜索 R3TABNAME 为 T052 的条目,找到适配器对象 DNL_CUST_PRICE • 3、使用事务码 R3AS 对这个对象进行请求加载 – 定制表不总是包含 SAP 提供的适配器对象。例如,区 域表就没有提供的定制对象。 – 如果感到有必要,可以构建自己的适配器对象来传输 数据。 – 使用最佳实践,提供了适配器对象的清单以及何时执 行它们。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 36 .

com) CR500: CRM Middleware 37 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制适配器对象的入站和出站队列 – 在用事务码 R3AS 对特定的定制适配器对象开始初始 加载时,数据请求通过 qRFC 被从 CRM 系统发送给 R/3 后端。 – 在初始加载中所使用的 qRFC 队列的命名规范为 R3AI_<定制适配器对象>(R3A:R/3 适配器;I:初 始加载)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制适配器对象的入站和出站队列(续) – 运行时的行为: • 在 CRM 系统中通过事务码 R3AS 启动单个定制适配器对象 的初始加载。 • 被开始的报表传输数据请求给 R/3 系统。相应 R/3 站点的 RFC 目的地被用于数据传输。对于定制数据,数据请求包含 R/3 定制表的名称和过滤器条件。 • 在 R/3 中,定制数据的通用抽取器选择指定给定制适配器对 象的数据库表并触发每个 qRFC 的数据传输。 • 该数据通过 qRFC 被传输给 CRM 服务器(函数模块 BAPI_CRM_SAVE)。 • R/3 适配器将数据转换为 CRM 定指标的结构并存储数据到数 据库。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 38 .

com) CR500: CRM Middleware 39 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 出站队列监视器:SMQ1 – 要访问出站队列监视器,转到 中间件 → 监视 → 队列 → 显示出站 RFC 队列 或使用事务码 SMQ1。 – 尽管属于一个队列的 LUW(逻辑工作单元)被存储在 tRFC 表 ARFCSSTATE 和 ARFCSDATA 中,却不能 使用 tRFC 监视器(事务码 SM58)来维护或显示这 些 LUW。必须使用出站队列管理事务码 SMQ1。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 出站队列监视器:SMQ1(续) – 下列出站队列数据(队列属性和指向 tRFC 表中相关 LUW 的指针)被存储在表 TRFCQOUT 中,可以使用 事务码 SMQ1 来显示和维护。下列功能是可用的。 • 列出队列 • 显示队列,包括相关的 LUW 和函数模块(包含输入数据)的 清单 • 开始/停止队列的传输 • 删除队列或队列条目(警告:删除队列可能会造成不一致) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 40 .

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 出站队列监视器:SMQ1(续2) – 如果在远程接受者系统的 LUW 中发生错误,队列条 目的函数模块在那里被回滚。相关 LUW 以及队列中 所有其他 LUW 保持在队列中,也在发送者系统的 tRFC 表中。在纠正错误后,可以使用事务 SMQ1 来 再次传递 LUW 队列(通过 编辑 → 执行 LUW)。 – 可以在 note 378902 中找到关于 qRFC 的细节信息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 41 .

com) CR500: CRM Middleware 42 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 入站队列监视器:SMQ2 – 要访问出站队列监视器,转到 中间件 → 监视 → 队列 → 显示入站 RFC 队列 或使用事务码 SMQ2。 – LUW 属于一个队列并存储在 tRFC 表 TRFCQIN、 TRFCQSTATE 和 TRFCQDATA 中。却不能使用 tRFC 监视器(事务码 SM58)来维护或显示这些 LUW。必须使用出站队列管理事务码 SMQ2。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 入站队列监视器:SMQ2(续) – 入站队列数据(队列属性和指向 tRFC 表中相关 LUW 的指针)被存储在表 TRFCQIN 中。状态可以在表 TRFCQSTATE 中,而数据在表 TRFCQDATA 中。可 以用事务码 SMQ2 显示和维护入站 qRFC。下列功能 是可用的。 • 列出队列 • 显示队列,包括相关的 LUW 和函数模块(包含输入数据)的 清单 • 开始/停止队列的传输 • 删除队列或队列条目(警告:删除队列可能会造成不一致) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 43 .

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • qRFC 入站队列监视器:SMQ3(续2) – 如果在 LUW 中发生错误,队列条目的函数模块在那 里被回滚。相关 LUW 以及队列中所有其他 LUW 保持 在队列中,也在入站 qRFC 表中。在纠正错误后,可 以使用事务 SMQ2 来再次传递 LUW 队列(。 – 可以在 note 378903 中找到关于 qRFC 的细节信息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 44 .

第二单元 与 R/3 后端的数据交换 第二课 定制同步 • 定制数据的一般抽取器 – 可以在表 CRMSUBTAB 中找到一般抽取器的名称, 在 R/3 中开始事务码 SM30: • 选择表 CRMSUBTAB • 搜索对象类 CUSTOMIZING 并下载 • 函数模块 CRS_CUSTOMIZING_EXTRACT 在列函数名称中 被分配。 – CRM 会存储分配给定制适配器对象的定制表的名称给 通用抽取器。通用抽取器检查过滤器标准并从定制表 查询数据。数据被转换为传输结构 BAPIMTCS。这个 数据包会按每个 qRFC 传输给 CRM 的 R/3 适配器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 45 .

com) CR500: CRM Middleware 46 .第二单元 与 R/3 后端的数据交换 第二课 定制同步 • CRM 系统中的入站处理 – R/3 适配器调用特定定制适配器对象的映射函数模 块,并把数据容器传递给函数模块。映射函数模块把 BAPIMTCS 数据转换为 CRM 定制表的结构并更新该 表。映射规则在映射函数模块中实现。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 47 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 在 R/3 后端和 CRM 之间的数据交换 – 加载数据可以在源和目标系统之间交换,例如,在 SAP R/3 后端和 CRM 服务器之间。例如业务合作伙 伴主数据和产品主数据,它们如下分组: • • • • 业务对象:事务码 R3AC1 定制对象:事务码 R3AC3 条件对象:事务码 R3AC5 这些对象被存储在表 SMOFOBJECT 中 – 请考虑这个问题,哪些对象被加载到哪个目标系统依 赖于业务流程,并且必须为每个应用定义。通常,初 始加载和增量加载要从 R/3 到 CRM,反之亦然。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务数据从 R/3 到 CRM 的初始加载 – 初始加载的数据流包含下列步骤: • 用 CRM 事务码 R3AS,发出初始下载命令。 • RFC 按顺序被排队并处理(对象相关或无关)。 • 在后端系统,函数模块调用(特定对象的抽取器模块调用) 被用来抽取所需数据。 • BAPIMTCS 数据容器被创建,包含了要被发送给 CRM 中间 件服务器的所选数据。 • 数据被用 qRFC 传输给 CRM 服务器。 • 在 R/3 适配器中,数据被映射到 mBDoc 然后传递给入站消 息流。 • 入站消息流触发验证服务器。数据从 CRM 适配器传递给 CRM 应用。CRM 应用验证数据并更新相关的 CRM 数据表。 验证成功后,出站消息流被触发。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 48 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务数据从 R/3 到 CRM 的初始加载(续) – 关于执行初始下载的信息,参见 SAP note 350176。 • 业务适配器对象(一) – 可以用事务码 R3AC1 显示和维护业务适配器对象。 – 在“初始流上下文”选项卡中,找到支持的源和目标站点 类型以及相应的流上下文。 • 业务适配器对象(二) – 在“对象中的表/结构”选项卡中,找到被抽取器使用的 部分 R/3 表的名字。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 49 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务适配器对象(三) – 过滤器选项在 CRM 系统中设置,允许过滤的业务对 象可以只在源系统、只在目标系统或同时在两个系统。 然而,业务数据通常在源系统过滤,以减少从 R/3 传 输的数据量。这时,过滤器标准在数据被发送到 CRM 服务器之前应用: – 意图: • 减少 R/3 后端与 CRM 服务器之间的数据量 • 保持 R/3 特定的数据在 R/3 后端中 – 过滤器设置是系统定制的一部分。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 50 .

com) CR500: CRM Middleware 51 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务适配器对象(三)(续) – 指定过滤器标准的事务可以在下面找到:中间件 → 数 据交换 → 对象管理 → 业务对象(事务码 R3AC1)。 选择业务对象和“过滤器设置”选项卡。可以使用所有预 定义的字段(存储在表 SMOFFILFLD)。 – 保存过滤器条目会触发向 R/3 中插件的自动传输。 CRM 系统使用相应站点的 RFC 目的地。因此,到 R/3 的站点必须首先维护(事务码 SMOEAC)。过滤 器设置存储在表 SMOFFILTAB 中,并且参考表字段。 在 R/3 中,过滤器设置被存储在数据库表 CRMFILTAB 中。 – 过滤器也被用于增量加载(R/3 后端到 CRM 服务器)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 52 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务适配器对象(四) – 在“映射模型:R/3 到 CRM”选项卡,可以找到将 BAPIMTCS 数据转换为消息 BDoc 的函数模块。 • 业务适配器 对象的入站 和出站队列 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 业务适配器对象的入站和出站队列(续) – 数据传输基于 qRFC 技术。 – 初始加载中使用的 qRFC 队列的命名规范为 R3AI_< 业务适配器对象>(R3A:R/3 适配器;I:初始加载)。 – 为业务数据指定的抽取器选择分配给业务适配器对象 的数据库表,并触发每个 qRFC 的数据传输。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 53 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • R/3(插件):对象特定的抽取器 – 可以在 R/3 的 CRMSUBTAB 表中找到对象特定抽取 器的名称。 • R/3 入站适配器 – R/3 入站适配器创建一个消息 BDoc(mBDoc)并将 来自 BAPIMTCS 数据容器的数据转换为 mBDoc 结构。 然后入站消息流开始。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 54 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • BDoc:消息 BDoc 类型(一) – 消息 BDoc 由两部分组成: – 第一部分:规范部分 • 这个部分是必须的 • 规范部分由 BDoc 抬头和片段组成,可能按照层级结构来排 列。传统部分的片段不映射到数据库表。 • 这个部分需要用开发工具 BDoc 建模器(事务码 SBDM)来 建模。 • 只有规范部分被用来确定 mBDoc 消息的接收者。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 55 .

com) CR500: CRM Middleware 56 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • BDoc:消息 BDoc 类型(一)(续) – 第二部分:扩展部分 • 这个部分是可选的 • 复杂的数据类型用数据资源库工具(事务码 SE11,数据字典) 来建模。 • 扩展不只为消息 BDoc 所使用。 • 扩展部分被用于保持增量或抽取数据以便传递到 CRM 服务器 应用(入站的情况)或发送给远程系统(出站的情况)。 • 扩展部分不能被用于确定接受者。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • BDoc:消息 BDoc 类型(一)(续2) – 在复制数据时(例如从 CRM 到 R/3),消息 BDoc 类 型就类似一个信封,信封中的数据(扩展部分)是 CRM 中间件不能访问的,而信封上的数据(规范部分) 是 CRM 中间件可以访问的。每个应用使用不同的地 址信息,因此,销售订单就可以根据销售组织传递到 不同的后端系统。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 57 .

com) CR500: CRM Middleware 58 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • BDoc:消息 BDoc 类型(二) – 复制特征与 mBDoc 的瞬间状态保持一致,即,只有 整个 BDoc 可以被分发给所有可能的接受者(批量复 制)或给它们中的一小部分(简单智能复制)。不能 选择 mBDoc 的特定部分进行复制而排除其他部分, 这中情况在为移动世界设计的 sBDoc 中时可以的。在 移动世界中,存在大量数据库,因此更加精细的数据 分发技术——例如调整——是非常有用的。这对用于 消息 BDoc 的数据交换是无效的,因为在简单复制 中,分发数据不存储在表中,因此对消息 BDoc 的调 整是不可能的。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 59 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • BDoc:浏览 BDoc 类型 – BDoc 建模器(事务码 SBDM)是用于显示、创建和 增强 BDoc 类型的开发工具。 – 现有的 BDoc 类型被列在 BDoc 建模器的 BDoc 概览 (导航树)中。这里可以选择并展开 BDoc 类型显示 它的结构。这个结构显示了数据段的层级。 – 注意:BDoc 类型的定义和增强需要关于应用的知识。CRM 中 间件不具有创建或增强 BDoc 的业务逻辑。从这点来看,它只 是个传输和处理 BDoc 消息的数据容器。 – BDoc 建模特征: • 消息 BDoc 类型的建模 • 分配一个或多个同步 BDoc 类型给一个消息 BDoc 类型 • 分配站点类型(见数据交换单元)到同步和消息 BDoc 类型 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 入站消息流的流上下文 – 对于入站消息流,只有一个服务可用:验证服务。我 们会详细解释出站消息流的流上下文概念。 – 在事务码 SMW3FDIF 中找到每个 mBDoc 类型的验证 函数模块的名称。 – 例如:对 mBDoc BUPA_MAIN(对象业务合作伙伴) 的验证服务由函数模块 CRM_BUPA_MAIN_VAL 实现。 – 在成功验证后,中间件开始相应的出站消息流,使用 流上下文 MO1 或批量处理的 MO2。通常,流上下文 MO1 包含下列服务: • 简单复制服务:该服务查看验证接收者感兴趣的数据。关于 订阅的配置会在《业务数据上传》一课中详细解释。 • 调用出站适配器:这个服务调用适配器对象和出站队列。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 60 .

com) CR500: CRM Middleware 61 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 查看流上下文 – BDoc 类型的有效流上下文可以通过事务码 SMO8FD (路径:中间件 → 消息流 → 显示和检查流定义)查 看。 – 每个流上下文由一系列的服务(函数模块)组成。 – 消息流上下文: • MI0 验证(MI:消息流入站):同步入站流、XML 适配器、 群件适配器和 R/3 适配器,传递数据给 CRM 数据库。对于 从 SAP R/3 的初始加载,验证方法在通知方法之前被调用。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 62 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 开始初始加载 – 开始初始加载的事务码为 R3AS,路径 中间件 → 数 据交换 → 初始加载 → 开始。 – 如果初始加载没有成功完成,参考 SAP note 429423,会提供一般性错误分析的有用建议。 – 监视初始加载:监视工具: • 监视初始加载:R3AM1 • qRFC 监视: – – – – 出站队列日程:SMQS 出站队列:SMQ1 入站队列日程:SMQR 入站队列:SMQ2 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 63 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 开始初始加载(续) • BDoc 监视: – BDoc 细节:SMW01 – BDoc 摘要:SMW02 • 中间件跟踪:SMWT • 中间件监视驾驶仓:SMWP – 要监视初始加载,调用 中间件 → 数据交换 → 初始加 载 → 监视对象(R3AM1)。 – 从 SAP R/3 发送的数据可以在 CRM 服务的入站队列 中找到(事务码 SMQ2)。如果连接被中断或专门设 置了参数,则数据会仅保存在 SAP R/3 的出站队列中 (事务码 SMQ1)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 64 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 开始初始加载(续2) – 中间件跟踪监视器是一个跟踪消息流的工具,记录相 关事件,提供评估所用的信息。它可以从显示 BDoc 的事务(MSW01)、通过菜单路径 中间件 → 监视 → 消息流 → 显示中间件跟踪 或直接用事务码 SMWT 访 问。 – 还可以使用中间件监视驾驶舱来查看初始加载的状态。 中间件监视驾驶舱可以通过 中间件 → 监视 → 集中监 视 → 监视驾驶舱(SMWP)来访问。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 显示 BDoc 消息摘要 – 还存在关于 BDoc 消息的概览功能:中间件 → 监视 → 消息流 → 显示 BDoc 消息摘要(事务码 SMW02)。 BDoc 消息的清单根据 BDoc 类型和消息状态合并显 示。“计数器”列显示消息的数量。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 65 .

com) CR500: CRM Middleware 66 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 显示 BDoc 消息 – 功能显示 BDoc 消息列出所有 BDoc 消息(事务码 SMW01:中间件 → 监视 → 消息流)。它显示: • BDoc ID 和 BDoc 类型、BDoc 状态、流上下文、队列名称以及 BDoc 消息发送的日期和时间。 • 流控制跟踪,数据和错误段,发生错误的服务(最后遇到的服 务),以及接收器清单。 • 相关的加载和请求,邻居对象(父 BDoc 消息、子 BDoc 消 息,返回给发送者的确认 BDoc 消息)以及错误修正(与特 定状态和上下文的 BOoc 类型相关的 SAP 帮助文档)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 显示 BDoc 消息(续) – 成功执行的消息显示为绿灯,那些仍旧在处理的显示 为黄灯,而按终端内核条件出现则为红灯。 – 如果消息正在处理,并且不能在有限的时间内完成, 它可以重启消息、浏览消息或不需要消息。一个 BDoc 消息可以用下列方式处理: • 标记为已删除(删除 BDoc 消息可以造成数据不一致。 • 重试处理 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 67 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 显示 BDoc 细节 – 功能显示 BDoc 消息允许显示各个 BDoc 消息的内 容,有时对错误处理非常关键。 – 可以通过下面路径打开这个屏幕 • SMW01 → 选择相关的 mBDoc 消息 → 选择扩展数据 → 点 击结果的表格图标 → 选择 shift+F7(按钮栏第一个图标) • SMW01 → 选择相关的 sBDoc 消息 → 选择规范数据 → 点击 结果的表格图标 → 选择 shift+F7(按钮栏第一个图标) • 性能问题:初始加载 – 关于初始下载的并行处理的细节信息,可以在 CRM 最佳实践文档《C03 CRM 主数据和交易数据复制》, 以及 SAP note 350176 中找到。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 68 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 增量加载 R/3 到 CRM:数据流 – 增量加载允许预定义的适配器对象(而非定制数据) 在 R/3 后端和 CRM 服务器之间持续同步,这意味着 数据更新被立即发送到 CRM 服务器。接收到的数据 被自动处理,qRFC 被用于串行化。 – 增量加载在成功开始了初值加载之后,由中间件自动 激活。 – 关于从 R/3 后端到 CRM 服务器的增量加载的一般性 分析的更多信息,参见 SAP note 430980。要分析从 CRM 服务器到 R/3 后端的增量加载,参考 SAP note 431345。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 69 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 增量加载 R/3 到 CRM:数据流(续) – 数据流可以通过例子来解释(修改客户主数据): • 在 R/3 对话程序中修改和保存客户或联系人后,业务交易事 件(BTE)1321 被发出。 • 复杂的数据结构被翻译成 BAPIMTCS 结构。过滤器删除所有 不满足在 CRM 事务码 R3AC1 中维护的过滤器条件的数据。 此后,从定制表 CRMRFCPAR 确定逻辑目的地。 • 在 R/3 中创建一个队列名称为 R3AD_* 的出站队列。接下来 出站日程表发送 LUW 数据给 CRM 系统的 qRFC 入站队列。 • CRM 中的 R/3 适配器映射 BAPIMTCS 结构到一个 mBDoc。 • 中间件流调用验证服务。它在表 SMW3BDOCIF 中查找应用 函数模块验证并保存 BDoc 数据。例如,对于 BUPA_MAIN 的验证函数为 CRM_BUPA_MAIN_VAL。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 70 .

第二单元 与 R/3 后端的数据交换
第三课 从 ECC 下载到 CRM
• 对象类
– 对象类控制着对业务适配器对象分组的增量就爱在的
激活和禁止激活。业务适配器对象可以被分配给对象
类。此外,业务交易时间(BTE)的名称也被分配给
对象类。
– 可以在事务 R3AC4 中维护对象类。
– 业务交易时间的实现是 R/3 插件的一部分。如果 BTE
在 R/3 中被激活,维护业务数据的程序在更新数据库
表的时候就会触发 BTE。BTE 转换数据为
BAPIMTCS 结构。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

71

第二单元 与 R/3 后端的数据交换
第三课 从 ECC 下载到 CRM
• 对象类(续)
– 可以在 R/3 中的表 TBE31 中看到有效的 BTE。这个
表可以通过事务 FIBF 访问。
– 可以检查表 TBE11,BTE 是否为单个应用激活。选择
事务 FIBF 环境 → 标识 → SAP 应用。CRM 抽取器通
常被分配给应用 BC-MID。
– 可以在 R/3 后端的表 CRMRFCPAR 中禁止激活适配
器对象级别的增量加载。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

72

第二单元 与 R/3 后端的数据交换
第三课 从 ECC 下载到 CRM
• 激活增量加载
– 增量加载在初始加载成功之后自动被激活。可以在
R/3 中用事务码 SM30 打开数据库表 TBE31 检查激活
的 BTE。
– 可以在 CRM 系统中手工激活(禁止激活)BTE,路
径 中间件 → 数据交换 → 从 R/3 后端增量加载 → 设
置增量加载(R3AC4)。
– 有些时候,可以不执行任何初始加载就激活特定对象
的增量加载。例如,对于互联网销售场景,不总是需
要把 R/3 后端已经处理的销售订单传回到 CRM 服务
器。这时,只要为销售订单手工激活增量加载即可。
– 禁止激活对象类的增量加载会自动与 R/3 后端同步。
SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

73

第二单元 与 R/3 后端的数据交换
第三课 从 ECC 下载到 CRM
• R/3 到 CRM 的增量加载:每个 qRFC 的数据传

– 在初始加载时,所有增量消息都被停止增量队列收集。
这确保了在初始加载时创建的增量消息不会丢失,并
且它们发生的顺序保持原样。
– 在成功的初始加载后,停止的增量队列会被释放,这
样增量消息就可以被处理。注意,这还保证了 CRM
服务器只接收实现被加载到 CRM 服务器的业务对象
的增量消息。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

74

第二单元 与 R/3 后端的数据交换
第三课 从 ECC 下载到 CRM
• R/3 到 CRM 的增量加载:批量更新
– 何谓批量数据?
– 批量数据在下列情况下创建:
• 如果必须更新所有业务合作伙伴的某个字段
• 如果所有定价条件需要被更新
• 如果素有物料主记录要被更新到最新状态。

– 迄今为止,对于上述情形,独立的增量输出被用远程
函数调用(RFC)从 ERP 后端发送到 CRM 系统,并
且单独处理。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

75

com) CR500: CRM Middleware 76 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • R/3 到 CRM 的增量加载:批量更新(续) – 批量数据处理的概念如下工作: • 在 ERP 后端实现修改后,数据首先被收集在 ERP 后端的批 量队列中(队列名称:MASS_CRM_*)。 • 数据使用 CRM0_BUNDLE_AND_START_QUEUES 报表打 包,然后通过 RFC(MASS_CRM_*)放到 CRM 系统的入站 队列中。 • 当批量队列在 CRM 中被处理时,数据被单独或成块放在增量 队列(R3AD*)中,依赖于相关应用的要求。 • 后续处理在应用中执行。 – 初始加载和数据请求不会被这个概念影响。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

1 SP5 或 PI 2004.第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 定制批量数据处理 – 该功能在产品交付时“无法被激活的”,在 ERP 后端, 必要的修改包含在 PI_BASIS 2005.1 SP 10 中。 – 第一步:在 CRM 系统和 ERP 后端系统中维护 CRMOBJECTHIER 表。 – 第二步:修改 CRMMASSUPD 表(对于每个对象适 配器)以允许激活,参见应用 note 获得更多信息。这 些修改必须在 CRM 和 ERP 后端同时实现。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 77 .

第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 定制批量数据处理(续) – 第三步:使用事务 R3AC1 或 R3AC5 激活 CRM 系统 中的批量数据处理。 – 第四步:在 CRM 系统中,必须在事务 SMQR 中注册 MASS* 入站队列。 – 第五步:在 ERP 后端中执行了数据修改后,必须开始 CRM0_BUNDLE_AND_START_QUEUES 报表发送 数据给 CRM 系统。还可以安排这个报表为后台作业。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 78 .

com) CR500: CRM Middleware 79 .第二单元 与 R/3 后端的数据交换 第三课 从 ECC 下载到 CRM • 定制批量数据处理(续2) – 注意: • 在 CRMMASSUPD 表中的条目必须在 CRM 和 ERP 后端中 同步。 • 在 CRMOBJECTHIER 表中的条目必须在 CRM 和 ERP 后端 中同步,它们必须是互相依赖的条目(参见特定应用的 note)。 • 在 CRMMASSUPD_CUS 表中的条目必须在 CRM 和 ERP 后端中同步。可以使用事务码 R3AC1 和 R3AC5(在 CRM 系统中)中的“同步”按钮来做这件事。 • 更多信息可以在 SAP note 802804 中找到。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 从 CRM 到 ERP 后端的数据交换 – 加载对象可以在源和目标系统之间交换,例如,在 SAP R/3 后端和 CRM 服务器。例如业务合作伙伴主 数据、订单和产品主数据。它们如下分组: • • • • 业务对象:事务码 R3AC1 定制对象:事务码 R3AC3 条件对象:事务码 R3AC5 对象被存储在表 SMOFOBJECT 中。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 80 .

com) CR500: CRM Middleware 81 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 从 CRM 到 ERP 后端的数据交换(续) – 请考虑这个问题,哪些对象被加载到哪个目标系统依 赖于业务流程,并且必须为每个应用定义。通常,初 始加载和增量加载要从 R/3 到 CRM,反之亦然(以及 在移动场景中 CRM 到 CDB)。例如: • 条件只会从 R/3 后端加载到 CRM 服务器。 • 销售订单通常会从 CRM 服务器加载到 R/3 后端进一步执行。 不存在初始加载,只有增量加载。 • 从 CRM 服务器到 R/3 后端的增量加载通过分配 R/3 站点给 订阅来定义。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 出站消息流 – 简单复制服务确定哪个系统应当接收消息。这可能是 一个或多个 R/3 或非 SAP 系统。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 82 .

com) CR500: CRM Middleware 83 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 业务适配器对象 – 可以用事务码 R3AC1 来显示业务适配器对象。 – 上传场景对业务适配器对象提供支持,如果存在以 CRM 做为源站点类型,而 R/3 做为目标站点类型的初 始流上下文。相应的流上下文为 MO4。 – 在“映射模块 CRM 到 R/3”选项卡中,可以找到用于转 换业务数据到 BAPIMTCS 数据容器的函数模块。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 初始加载 CRM 到 R/3:CRM 系统中的数据抽取 – 用事务码 R3AS 开始初始上传。选择业务适配器对 象,CRM 做为源站点类型而 R/3 做为目标站点类型: • 用于初始加载的报表为每个 qRFC 调用函数模块 CRS_FIRST_DOWNLOAD_TRIGGER。队列的命名规范为 R3AI*。 • 函数模块 CRS_FIRST_DOWNLOAD_TRIGGER 调用业务适 配器对象特定的抽取器。可以在定制表 CRMSUBTAB 中找到 抽取器的名字。搜索特定的消费者,适配器对象的名字在 OBJNAME 列中。 • 抽取器函数模块选择相关数据的 GUID,并传输每个 qRFC 的 ID 清单给适配器。队列的命名规范为 CRI*R3AI。 • 下一个步骤,mBDoc 消息被创建,并被传递给出站消息流。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 84 .

com) CR500: CRM Middleware 85 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 初始加载 CRM 到 R/3:数据流 – 用事务码 R3AS 开始初始加载。选择业务适配器对 象,CRM 做为源站点类型而 R/3 做为目标站点类型: • 在出站消息流中,流上下文 MO4(mBDoc 直接发送)控制 要被调用的服务。 • R/3 出站适配器转换 BDoc 为 BAPIMTCS 结构,并为每个 qRFC 传输数据给 SAP 接收者。队列的命名规范为 CRI*R3AU。 • 在目标系统中,函数模块 CRM_UPLOAD_TRIGGER 触发入 站处理。CRMSUBTAB 包含对象特定的函数模块 • 存储对象引用和基于记录的键分配。 • 在 R/3 数据库创建数据前,会检查参考 ID,避免程序异常中 止或重复发送数据造成的错误。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 86 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 初始加载 CRM 到 R/3:数据流确认 – 对象特定的函数模块通过检查表 CRMKEY 来确定相 同数据是否已经被创建。因此后端可以不必提供更新。 函数模块将数据写入数据库(回复消息的增量事件会 被自动触发)。 – 带有消息 ID 的增量加载消息、状态和错误消息被创建 并发回到 CRM 系统。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 87 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 定制出站处理 – 消息流上下文: • MO1 通知(MO:消息流出站):一个对订阅站点的实例以 及诸如 BW 适配器或移动桥接器等附加消费者的增量分发会 被 CRM 服务器应用触发。 • MO2 通知(多重):多个对订阅站点的实例和附加消费者如 BW 适配器的增量分发。 • MO4 初始加载 CRM 到 R/3:在管理控制台开始的数据抽取 (从 CRM 到外部站点 R/3、XIF、群件适配器)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 88 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 定制出站处理(续) • 表 SMW3FDSTD 包含了以流上下文格式定义的 SAP 标准流。 SAP 标准流定义由 BDoc 特定类型和特定客户的表的上下文 条目控制。表 SMW3FDBDOC 包含了 BDoc 特定类型但非特 定客户的流定义。如果希望覆盖标准流,在标准流标 SMWFDSTD 中为相同上下文做相同的条目。表 SMW3FDCUST 包含了流上下文形式的特定客户和特定 BDoc 流定义。这些条目覆盖 BDoc 特定类型流和标准流。特 殊的定义,例如验证服务,可以在表 SMW3BDOCIF 中找到。 • 查看 BUPA_MAIN 的流上下文 – 指定 BDoc 的完整定义可以使用事务码 SMO8FD 检 查,路径 中间件 → 消息流 → 显示和检查流定义。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 复制的不同类型 – BDoc 消息是对站点的复制。 – 消息 BDoc 类型被用在 CRM 中间件中,被传递给 R/3 适配器。 – 可以区分两个不同的复制类型: • 简单批量复制:如果站点被订阅,消息为所有实例复制。 • 简单智能复制:复制依赖于字段值(过滤指标) – 然而,每个 BDoc 类型智能通过一个复制类型被复制。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 89 .

com) CR500: CRM Middleware 90 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 简单批量复制:复制模型 – 在 CRM 服务器和站点之间的数据交换定义在复制模 型中。业务对象类型技术上表示为 BDoc 类型。一个 单独的复制对象用管理控制台从一个 BDoc 类型生成 (1:1 的关系)。 – 站点可以订阅给一个或多个发行者,以接收与它们工 作相关的数据。 – 简单批量复制是最简单的复制类型。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 91 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 中间件对象 – 使用中间件对象浏览器(事务码 CMWMON)检查现 有的中间件对象及其关系。 – 使用管理控制台(事务码 SMOEAC)来创建客户特定 的对象如站点、复制对象、发布和订阅。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 简单智能复制:复制模型 – 简单智能复制: • 标准字段的制定可以被用来选择特定逻辑类型的业务对象 (例如,特定邮政编码区域的所有客户)。标准中交付了一 些基本的发布集合,但是可以被扩展。 • 例如:复制对象业务合作伙伴(BUPA_MAIN)包含复制标准 字段 IS_CUSTOMER,它描述了维护为角色售达方的业务合 作伙伴。在这个字段的内容的基础上,该对象在各个站点上 生效。区域是复制对象客户的另一个分发标准。在标准字段 中必须为它定义一个值。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 92 .

第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 管理控制台:查看复制对象 – 可以通过事务 SMOEAC(管理控制台)查看复制对象。 选择对象类型“复制对象”。 • 查看发布 – 可以通过事务 SMOEAC(管理控制台)查看发布。选 择对象类型“发布”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 93 .

com) CR500: CRM Middleware 94 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 查看订阅 – 可以通过事务 SMOEAC(管理控制台)查看订阅。选 择对象类型“订阅”。 • 管理控制台:为站点指定订阅 – 订阅可以被指定给站点。选择对象类型“站点”,选择想 要指定新订阅的站点。转入修改模式(F9)并选择信 息区域的“订阅”选项卡。这里可以指定或删除订阅。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 95 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 增量加载 CRM 到 R/3:数据流 – CRM 应用在一个 LUW 中在数据库创建数据并创建 BDoc。BDoc 被通过 qRFC 传递给出站流。队列的命 名规范为 CSA*。 – 对于单个数据,流上下文为 MO1,多重数据为 MO2。 – 在这些流上下文中,复 制服务被调用,以找出 订阅的接收者。对于每 个接受者调用相应的出 站适配器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 96 .第二单元 与 R/3 后端的数据交换 第四课 从 CRM 上传到 ERP • 增量加载 CRM 到 R/3:qRFC – 在例子中,数据被传输给 R/3 系统。R/3 出站适配器 被调用,把 BDoc 转换到 BAPIMTCS 数据容器。 – BAPIMTCS 数据容器被通过 qRFC 传输给接受者。队 列的命名规范为 R3AU*。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 97 .第三单元 CRM 中间件操作 • 单元目标 本单元完成后,应该能: – 利用监视工具 – 设置错误处理特征 – 理解跨系统比较和同步对象的工具 – 解决从 R/3 到 CRM 初始加载的错误 – 解决从 R/3 到 CRM 增量加载的错误 – 解决从 CRM 到 R/3 加载的错误 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 98 .第三单元 CRM 中间件操作 • 单元概览 – 本单元描述了监视数据加载、请求、数据完整性管理 和错误解决的可能性。 • 本单元的课程为 – – – – – – CRM 中间件:监视 错误处理 数据完整性管理和请求 解决从 R/3 到 CRM 初始加载的错误 解决从 R/3 到 CRM 增量加载的错误 解决从 CRM 到 R/3 加载的错误 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • CRM 中间件监视驾驶舱 – CRM 中间件监视驾驶舱提供状态信息,也做为访问重 要管理和监视工具的导航平台。交通灯标明了各个条 目的状态。在右边列的字段包含了每次状态检测的日 期。 – CRM 中间件门户可以通过菜单:中间件 → 监视 → 中 心监视 → 监视驾驶舱(事务码SMWP)访问。 – 运行监视驾驶舱的先决条件是: • 计划了后台作业 SAP_MW_COCKPIT_COLLECTOR_<客户 端>,这个作业会在用户首次调用 SMWP 之后被启动。。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 99 .

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 显示 BDoc 消息 – 显示 BDoc 消息的功能列出所有 BDoc 消息:中间件 监视 消息流(事务码 SMW01)。它显示: • BDoc ID 和 BDoc 类型、BDoc 状态、流上下文、队列名称、 DBoc 消息发送的日期和时间。 • 流控制跟踪、数据和错误段、发生错误的服务(最后到达的 错误)以及接收者列表。 – 被成功处理的消息显示为绿灯,仍在进行的显示为黄 灯,由于错误而中止的则显示红灯。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 100 .

com) CR500: CRM Middleware 101 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 显示 BDoc 消息(续) – 如果消息正在被处理并且没有在合理的时间内处理完 成,可以重新启动这个消息、查看消息内容或撤销消 息。BDoc 消息可以用下列方式处理: • 标记为删除 – 注意:删除 BDoc 消息可能造成数据不一致。 • 重试操作 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • BDoc 消息:错误分析 – 使用事务 SMW01 显示 BDoc 处理中错误的原因。选 择 BDoc,然后选择错误按钮。在 BDoc 消息状态的 所有错误都被显示。如果在中间件的处理没有造成错 误,就什么都不显示。这时,就必须选择按钮“接收 者”,因为错误是由于接收者在处理数据时发生的问题 而导致的。 – 要只显示带有错误的 BDoc 消息:在选择品目中标记 BDoc 状态标志:错误或选择状态 E01、E02、E03、 E04 或它们的组合。 – 关于 BDoc 错误的的更多信息会在最佳实践文档中发 布。还可以参见 SAP note 768503。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 102 .

com) CR500: CRM Middleware 103 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • BDoc 恢复框架(一) – BDoc 消息恢复机制改善了错误处理能力。 – 错误状态的 BDoc 应该被标记为“已删除”以避免可能导 致不一致的重处理。 – 通过标记 BDoc 为“保存它的 ID”,已删除对象的 ID 被 添加到 BDoc 恢复工作清单中,允许在事务码 SMW3RC 中做进一步的分析。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 104 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • BDoc 恢复框架(二) – 在 SMW3RC 中有两个主要的选择选项:显示工作清 单和显示处理清单。 – 工作清单是需要被恢复的 BDoc 消息的清单。当 BDoc 消息在事务 SMW01 中通过保存标识符而删除 时,它被存储到工作清单中。 – 这个清单可以由管理员分析,必须决定处理这个数据 采取何种合适的操作。可能的操作有: • • • • 从 CRM 抽取数据(提交) 从 R/3 创建请求 创建 DIMA(数据完整性管理器)比较 标记 BDoc 消息为已完成 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • BDoc 恢复框架(二)(续) – 当管理员选择了期望的操作,条目被从工作清单移 除,存储在处理清单中。 – 从处理清单,可以启动期望的操作。 – 处理清单的批量处理可以使用事务码 SMW3RCW。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 105 .

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • qRFC 出站调度监视 – 出站调度一般不是经常性的工作。因此,它的状态通 常显示为非激活。 • 它只在有条目存储在出站队列时才开始工作。 • 要找出它是否运行,检查行的最后更新。要更新这个显示, 选择“刷新”按钮。 • 如果出站调度会处理一定数量的 qRFC LUW,它的状态显示 为等待。 – 注意:只有注册的队列可以被处理。可以通过撤销 RFC 目的地 来停止出站处理(只用于维护)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 106 .

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • qRFC 入站调度监视 – 入站调度基于队列名称配置(与处理目的地的出站调 度 SMQS 不同)。这意味着如果新队列被使用,它们 就必须配置过,否则这些条目就不会被处理。 – 在 SM59 中,应该存在被称为 NONE 的内部目的地。 • RFC 连接类型 “I”,并且不能在这里维护用户。 – 此外,SM59 中应该为每个队列(例如 R3A*、CSA*、 CRM*)有一个逻辑目的地(RFC 连接类型“L”),在 字段“参考条目”中包含内部目的地 NONE。在选项卡 “登录/安全”中,可以维护 CRM 内部 RFC 用户(用户 类型“通讯”)的登录信息。此后的 RFC 请求都会用这 个专门的用户处理。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 107 .

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • qRFC 入站调度监视(续) – 使用多个逻辑目的地的目的是可以在以后根据用户名 区分哪个业务凭证的队列被创建或修改。 – 下面可以在 SMQR 中为每个交易注册相应的入站队列 (R3A*、CSA*、CRM* 等)。在注册中,被创建的 逻辑目的地被输入字段 USERDEST,此后就在列“目 的地及登录数据”中看到。这让被处理的每个入站队列 都有它自己特定的逻辑目的地(并且因此有一个专门 的用户)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 108 .

com) CR500: CRM Middleware 109 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 消息流统计 – 消息流统计通过 中间件 → 监视 → 消息流 → 显示消 息流统计(事务码 SMWMFLOW)来加载。 – 要激活消息流统计,选择“转到 → 激活统计”。这里可 以分别激活“内核应用统计”和“中间件消息流统计”。关 于激活监视器的更多信息可以在 SAP 图书馆中找到。 – 在 CRM 中间件中处理 BDoc 消息的时间可以使用针 对 BDoc 类型、站点和队列的消息流统计来显示。这 个监视器显示了 BDoc 消息的总执行时间,由在入站 队列中等待的事件加上处理时间组成。处理时间是 BDoc 花费在入站适配器和在两个流中时间的总和。 监视器显示某种类型的所有 BDoc 消息的平均执行时 间或某个单独 BDoc 消息的执行时间。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 110 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 消息流统计(续) – 内核应用统计提供处理某种 BDoc 类型的 BDoc 消息 使用的 CPU 时间和数据库时间。响应时间包括 CPU 时间和数据库时间。注意数据库时间还包含部分 CPU 时间,这样这两个时间的和并非响应时间(参考 SAP note 351207)。还可以显示所选 BDoc 类型的各种服 务的执行时间,选择“每服务”按钮。 – SAP R/3 内核应用统计监视器需要标准 CCMS 批量作 业的定义。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 中间件跟踪 – 从显示 BDoc 消息的界面,可以访问中间件跟踪。 – 访问中间件跟踪以及附加信息的另一个菜单路径是 中 间件 → 监视 → 消息流 → 显示中间件跟踪(SMWT)。 – 需要通过 中间件 → 监视 → 消息流 → 设置中间件跟 踪(SMWTAD)执行设置,以使用显示中间件跟踪的 功能。 – “显示 BDoc 消息摘要”功能列出与“显示 BDoc 消息”相 同的 BDoc,但是根据站点、消息类型(Exx、Ixx、 Fxx)和 BDoc 类型分组。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 111 .

com) CR500: CRM Middleware 112 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 中间件跟踪(续) – 访问 BDoc 消息摘要的另一个菜单路径是 中间件 → 监视 → 消息流 → 显示 BDoc 消息摘要(SMW02)。 • 未处理的 BDoc 消息 – 从菜单中选择 架构和技术 → 中间件 → 监视 → 消息 流 → 显示未处理的 BDoc 消息摘要。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 113 .第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 错误分析的提示 – 可能的错误情况:业务对象在 CRM 应用中被修改, 但是在 SAP R/3 中没有接收到修改(增量加载)。 – 在目标系统中发生错误或丢失更新数据时,应该执行 下列步骤: • • • • 检查包含了中间件跟踪信息的 BDoc 消息。 检查 CRM 系统的出站队列 检查 R/3 系统的出站队列 检查 CRM 系统的入站队列 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 错误分析的提示(续) – 此外,验证指定给站点的 RFC 目的地以及逻辑系统 (在管理控制台中)以及在 CRM 系统和 SAP R/3 系 统中设置的 CRM 中间件参数(例如 CRMRFCPAR)。 – 关于解决 BDoc 错误的更多信息会在最佳实践文档中 发布。还可以参见 SAP note 768503。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 114 .

第三单元 CRM 中间件操作 第一课 CRM 中间件:监视 • 消息流监视:管理员的任务表 CRM 服务器监视活动/功能 监视类型 监视频率期间和事件 中间件监视驾驶舱 SMWP 根据业务处理,每天几次 在发生错误时 BDoc 消息/摘要 SMW01/SMW02 根据业务处理,每天几次 在发生错误时 消息流统计 SMWMFLOW 日常 在发生错误时 中间件跟踪 SMWT 在发生错误时 未处理 BDoc 消息摘要 SMW03 在发生错误时 qRFC 监视 SMQ1+SMQ2 每天几次 在发生错误时 检查流定义 SMO8FD 在发生错误时 在 BDoc 修改或服务或流修改之后 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 115 .

第三单元 CRM 中间件操作 第二课 错误处理 • 中央错误处理服务的综合 – 中央错误处理服务(CES)在接收到内部或外部错误 条件时由流控制启动,例如,服务返回了错误码 Exx。 – 所有服务都使用 CES 来处理错误。关于后续服务的信 息被保持在流定义中。 – 所有错误信息的中央单元是错误段,是所有 BDoc 消 息的一部分,包含: • 消息类型 • 服务返回码 • 最后的服务 – 根据错误段信息,CES 开始 CES 行动。可能的 CES 行动包括工作流、邮件等。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 116 .

第三单元 CRM 中间件操作 第二课 错误处理 • 错误处理策略 – 一般策略:中间件服务器的模块化架构提供中央错误 处理能力,每个服务或适配器可以返回错误消息或返 回码给这个全局的处理控制。依赖于这些代码,可以 触发不同的错误行动,指导问题的解决方案。 – 此外,系统管理员的日常监视会阻止或检测其他错误 条件。 – CCMS 可以用事务 RZ20(CCMS 监视器设置)来开 始。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 117 .

com) CR500: CRM Middleware 118 .第三单元 CRM 中间件操作 第二课 错误处理 • 错误处理:流控制 – 按照定义,在服务返回错误码 Exx 时,发生错误。 – 工作流事件:标准事件被预配置了,默认出现在创建 或修改 CRM 数据的用户的收件箱中。对于来自 R/3 的数据,维护在 RFC 目的地中用户的收件箱会收到工 作流事件。当事件被执行,可以查看消息和决定是否 要: • 删除消息 • 重新开始消息 • 重新开始下一个服务的处理 – 邮件:一封电子邮件消息被发送给指定用户。这封邮 件可能包含 BDoc 消息和处理信息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第二课 错误处理 • 错误处理配置 – 可以指定不同的错误行动: • • • • 标准错误行动(对于所有消息有效) 特定 BDoc 类型的错误行动 特定站点类型的错误行动 被取消消息的错误行动 – 这四种逻辑级别被用来按相反的顺序确定要执行的行 动。如果没有特定的错误行动被指定给消息,就开始 最小行动(即默认行动)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 119 .

第三单元 CRM 中间件操作 第二课 错误处理 • 错误处理配置(续) – 这四种逻辑级别被用来按相反的顺序确定要执行的行 动。如果没有特定的错误行动被指定给消息,就开始 最小行动(即默认行动)。 – 可以为消息选择下列行动: • 工作流事件:对象类型为 MIDMESSAGE 的开始事件 SERVICEERROROCCURRED 被准备(结束事件是 SERVICEERRORFINISHED)。这个事件触发标准任务 TS75110000 的工作项目(MIDMESSAGE,显示消息)。在 该事件执行后,可以查看消息并决定对它做什么(删除、重 提交、返回处理下一个服务)。 • 电子邮件功能 • 使用事务码 SMW3WD 找到中止的 BDoc 消息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 120 .

第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 数据一致性 – 在特定情况下,需要工具来纠正不一致的数据,例 如,在不得不重启一个系统后(不完整恢复)。SAP 提供工具检测并修复不一致性。 – 数据完整性管理器是 CRM 中的一个工具(事务码 SDIMA)可以被用来修复 CRM 和 R/3 后端之间不一 致的定制设置。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 121 .

com) CR500: CRM Middleware 122 .第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 数据一致性(续) – 请求加载选择从 SAP R/3 系统到 CRM 数据库或从 CRM 数据库到 R/3 系统的数据。都在 CRM 系统中用 事务码 R3AR4 触发。该请求改写定制对象和业务数 据的条目。因此,它的行为类似初始加载。请求过滤 器补充适配器对象过滤器,具有更少的数据加载并因 此允许更多精确的过滤。请求被用于同步没有增量加 载能力的数据,如定制。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 数据完整性管理器 – 使用数据完整性管理器(DIMA),可以检测和修复 SAP CRM 系统场景内跨组件对象之间的不一致。 – 由于 SAP CRM 系统场景经常由多个数据库组成。每 个 SAP CRM 系统具有一个 CRM 数据库。在多数情 况下,与一个或多个 SAP R/3 后端系统交换数据时必 要的。一个统一的数据库是与移动客户端交换数据的 基础。保持不同数据库或数据集中对象的同步时非常 重要的。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 123 .

com) CR500: CRM Middleware 124 .第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 数据完整性管理器(续) – 数据完整性管理器比较不同组件的差异并显示不一致 的地方。数据比较总是在 CRM 数据与 R/3 后端数据 库,以及 CRM 数据库与统一数据库之间执行。 – 对于很多对象,还可能通过数据完整性管理器来同步 数据。 – 在数据完整性管理器中有两种比较类型:抬头比较和 明细比较。 • 抬头比较值检查对象实例是否在两个数据库中都存在。 • 明细比较则比较两个数据库中找到的对象实例的所有数据。 – 部分对象可能不允许抬头比较。则会执行明细比较。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 个别数据的显式请求 – 请求可以使用菜单 中间件 → 数据交换 → 同步 → 开 始请求(事务码 R3AR4)来启动。 – 请求过滤器与一般适配器对象过滤器融合。 • 警告:用于表字段的一般适配器对象过滤器在请求中被忽 略,如果该请求的过滤器为相同表字段定义。这样做的原因 是抽取器,即从数据库抽取数据的模块,把相同表字段的过 滤器用“或”关系合并。如果请求的过滤器也合并了“或”语句, 结果就会是初始加载的所有数据。如果为请求定义过滤器, 一定要记住这点。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 125 .

com) CR500: CRM Middleware 126 .第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 个别数据的显式请求(续) – 请求还可以用后台作业调度(报表 SMOF_REQUESTN)。 – 通过专门的请求,可能能够修复一个 BDoc 错误。在 事务码 SMW01 中标记失败的 BDoc 为已删除,并为 带有特殊过滤器设置的对象开始请求。 • 警告:这个工作只应当用于当对象在重做前没有被修改的情 况下。否则,可能发生数据部一致。在使用此方法前需要与 应用顾问仔细检查! SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 127 .第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • 创建请求 – 要创建新请求,开始事务码 R3AR2。 – 切换到修改模式并选择“新条目”。 – 输入请求名称以及相应的适配器对象。选择输入实现 对象类和其他属性。 – 可以通过双击“请求细节”来跳转到选择指标的维护。选 择“新条目”并输入发送者系统中源表的表名和字段名。 选择数据库选择的值或间隔。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 128 .第三单元 CRM 中间件操作 第三课 数据完整性管理和请求 • qRFC:业务适配器对象的请求 – qRFC 队列的命名规范为 R3AR_<业务适配器对象> (R/3 适配器请求),用于单独数据的显式请求。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 129 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 业务数据的初始加载:监视 – 下载监视器,事务码 R3AM1,提供业务对象的初始加 载状态。 – BDoc 监视器,事务码 SMW01,提供单个 BDoc 消息 的状态。要找到哪个 BDoc 类型被用于哪个业务对 象,检查对象管理(事务码 R3AC1、R3AC3、 R3AC5)。可以找到业务对象的相应 BDoc 细节。 – 要检查数据是否完成,检查相应的应用事务或存储数 据的表。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 业务数据的初始加载:监视(续) – 请求和 DIMA 问题可以按类似初始加载的方法检查, 只有一些例外: • 监视器不是 R3AM1 而是用于请求的 R3AR3 和包含在事务 SDIMA 中 • 队列名称不同:请求为 R3AR* 而 DIMA 为 R3AH* 或 R3AT*。 – 从 CRM 到 CDB 的加载可以按类似 R/3 到 CRM 的方 式加载,只有一些例外: • 所有从 R/3 加载时在 R/3 中检查的事项 都应该在 CRM 中检 查 • 队列名称不同,以 CRI 或 CDB 开始 • 通常,使用目的地 NONE 而非特定目的地 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 130 .

com) CR500: CRM Middleware 131 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载尚未开始前 – 检查对象是否存在父对象:父对象存储在表 SMOFOBJPAR 中,可以在对象管理中查看(事务码 R3AC1、R3AC3、R3AC5)。 – 检查,父对象是否被成功加载。 – 检查,如果运行的初始加载、请求和 DIMA 实例的数 量是否大于 SMOFPARSFA 参数 MAX_PARALLEL_PROCESSES 的值。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载尚未开始前(续) – 检查加载监视器(R3AM1)、请求监视器(R3AR3) 和 DIMA(SDIMA)。相应的表位 SMOFDSTAT、 SMOFRSTAT、SDIMASTAT。这些表中的所有状态 为正在运行的条目都必须被添加到进程数量合计中。 – 如果没有足够的空闲进程,加载启动的顺序如下: • • • • 为没有任何父对象的对象开始初始加载。 为父对象已经为绿色状态的对象开始初始加载。 开始请求。 开始 DIMA 实例。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 132 .

第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载被中止 – 加载被手工中止时,要重启初始加载。 – 加载被自动中止时,说明从 CRM 到 R/3 的数据加载 不成功,检查上传。 – 中止初始加载: • 如果需要中止初始加载,使用事务码 R3AM1 中止下载监视 器中的加载是不够的。按如下步骤操作: – 在事务码 R3AM1 中中止初始加载。 – 检查 R/3 或 CRM 事务 SM50 中相应的进程,取消它。确保取 消了正确的进程以避免数据丢失。进程的用户应该是 SM59 中 RFC 目的地维护的用户。 – 删除 SMQ1 和 SMQ2 中的队列条目。在两个队列中均有队列条 目。 – 删除初始加载时很危险的,应该明确知道自己在做什么! SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 133 .

com) CR500: CRM Middleware 134 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载正在运行 – 检查下载监视器,事务码 R3AM1,已经被处理的块是 否在增加。如果是的,说明加载仍在运行,你必须等 待。如果块数量没有增加甚至为 0,检查下列事项: – 数据请求已经到达 SAP R/3? • 检查 CRM 出站队列中的队列条目(SMQ1)。 • 如果下载监视器(R3AM1)中的块数量显示为 0: • 在 CRM 的事务码 SM59 中检查对于 R/3 的目的地。 – 数据已经在 R/3 中被抽取? • 在 R/3 的 ST22(ABAP 运行时错误)中检查短转储。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 135 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载正在运行(续) – 数据已经被发送给 CRM? • 检查 qRFC 出站队列(SMQ1)的队列条目。 • 如果下载监视器(事务码 R3AM1)中的块数量显示为 0: – 在 R/3 的 SM59 中检查对于 CRM 的目的地。 – 在对象管理中检查哪个消费者被用于该对象。 – 如果消费者已激活,检查 R/3 中的 CRMCONSUM 表。 – 在 R/3 的表 CRMRFCPAR 中检查给定消费者是否存在对该对 象的条目。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 136 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载正在运行(续2) • 数据是否到达 CRM? – 在 CRM 出站队列(SMQ2)中检查队列条目。 – 检查流跟踪,事务码 SMW01,是否存在处于错误状态的 BDoc 消息。 – 在 CRM 的 ST22(ABAP 运行时错误)中检查短转储。 • 表 CRMRFCPAR: – 表 CRMRFCPAR 被评估的方式为检查是否存在指定对象的条 目。如果不存在指定条目,就会采用对象名“*”的条目。对于加 载类型也是一样。如果不存在条目,初始加载会在 CRM 的事务 码 SMQ1 中回滚,标记为 SYSFAIL,说明没有连接 CRM。 – 如果标记 DISCARDDAT(忽略数据)设置为“X”,就不会发送 数据。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 137 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 加载正在运行(续3) • 队列条目的状态: – 初始加载的队列名称以 R3AI 开始。 – 如果存在状态为 READY 的队列,检查事务码 SMQS(对于 SMQ1)或 SMQR(对于 SMQ2)。如果存在状态为 SYSFAIL 的队列,分析错误,纠正它并重启队列。SYSFAIL 经常造成短 转储。如果在 CRM 的出站队列中看到 SYSFAIL,就要到 R/3 系统中检查短转储,反之亦然。 – 如果存在状态为 RUNNING 的队列条目,等待加载结束。 » 警告:永远不要手工删除队列条目! • RFC 目的地: – 检查 RFC 目的地是否指向正确的系统。如果初始加载从系统 A 开始并选择系统 B 中的数据,而称为 A 的 RFC 目的地却指向 了系统 C,则数据会被发送给系统 C,而无法处理。系统 A 永 远得不到回答,加载会保持运行状态,而没有块被加载。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • BDoc 错误 – 在 BDoc 消息监视器中检查,事务码 SMW01,是否 存在技术错误或验证错误。 – 对于技术错误,在事务码 ST22 中检查是否存在相应 的短转储。 – 对于验证错误,检查错误消息并纠正问题。 • 注意:如果对业务对象进行过修改,之后重启错误的 BDoc 可能造成数据不一致。如果不确定业务对象在此期间是否被 修改过,就要比较两个对象并检查哪个是正确的。然后为业 务对象定义一个请求并开始它。然后可以手工设置错误的 BDoc 消息为已完成。如果确定没有做过修改,可以重启动错 误的 BDoc 消息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 138 .

com) CR500: CRM Middleware 139 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 数据不完整 – 检查业务适配器对象(事务码 R3AC1): • 检查过滤器标准:是否由于过滤器的原因造成数据丢失? • 检查对象中的“表/结构”选项卡:是否把所需表标记为不激 活? – 为消息检查中间件跟踪(事务码 SMWT)。 – 如何合并过滤器工作? • 如果维护了多个过滤器条件,过滤器被合并,因此对于相同 表中相同字段的过滤器条件用“或”逻辑合并,而不同表或字段 的过滤器用“与”逻辑合并。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 140 .第三单元 CRM 中间件操作 第四课 R/3 到 CRM 初始加载错误 • 数据不完整(续) • 例如: 表名 字段名 操作 值 KNA1 KUNNR EQ 0000012345 KNA1 KUNNR GE 0000020000 KNA1 BRSCH EQ ABC KNVV VKORG EQ 1000 • 这样定义的结果是分支机构为 ABC 并且销售组织为 1000 并 且客户编号为 0000012345 或者大于 0000020000 的业务合 作伙伴被选择。 – 注意:不能创建诸如 ( A = 1 and B = X) or ( A = 3 and B = Y ) 这样的条件。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 141 .第三单元 CRM 中间件操作 第五课 R/3 到 CRM 增量加载错误 • 增量下载:检查定制 – 是否激活了增量加载? • 检查 R/3 后端的表 TBE11 中是否激活了应用 BC-MID 和 NDI。 • 检查是否激活了业务交易事件(BTE) – 在 CRM 中到事务码 R3AC4 检查事件 – 在 R/3 中在表 TBE31 中是否找到这些事件 – 错误处理 • 在事务码 R3AC4 中,所有不同对象所需的事件被列出。这些 事件在初始加载开始后被自动激活。可以使用事务 R3AC4 手 工激活或禁止激活事件。事件是客户端相关的,因此只在一 个 R/3 客户端禁止激活是不能完全禁止的。如果希望完全禁 止,必须手工操作。在 R3AC4 中禁止激活一个事件导致 CRMRFCPAR 中条目的标记“撤销数据”被设置为“X”,并且阻 止了数据发送给 CRM。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第五课 R/3 到 CRM 增量加载错误 • 增量下载:SAP R/3 中的错误 – 数据是否被发送给 CRM? 检查 R/3 中出站队列(SMQ1)的队列条目 检查 R/3 的 SM59 中用于 CRM 的目的地 检查 R/3 的表 CRMCONSUM 中所有激活的消费者 检查 R/3 的表 CRMRFCPAR 中所有激活的消费者是否存在 对象条目 • 如果队列停止,检查初始加载或请求是否运行 • 检查过滤器定义 • • • • SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 142 .

第三单元 CRM 中间件操作 第五课 R/3 到 CRM 增量加载错误 • 增量下载:SAP R/3 中的错误(续) – 队列条目的状态: • 如果以 R3AD 开始的队列条目有 STOP 状态并且在结尾有个 “*”,这通常由于运行初始加载或请求造成。在允许增量加载 前,它们必须先结束。 • 关于队列条目结构的更多信息,参考前面关于正在运行的加 载的内容。 – 在哪里检查过滤器定义: • 可以在 CRM 的对象管理(R3AC1、R3AC3、R3AC5)中检 查过滤器定义。检查过滤器是为哪个消费者设置的。检查在 R/3 表 CRMRFCPAR 中使用的消费者是否匹配过滤器标准选 定的消费者。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 143 .

第三单元 CRM 中间件操作 第五课 R/3 到 CRM 增量加载错误 • 增量下载:CRM 中的错误 – CRM 是否接收到数据? • 检查 CRM 入站队列(SMQ2)中的队列条目 • 检查 CRM 中间件流跟踪,事务码 SMW01,是否存在错误的 BDoc 消息。 • 检查 CRM 中事务码 ST22 中的短转储。 – 如果过多数据到达 CRM • 检查 note 788822 • 实现该 note 中提到的所有 note • 检查该 note 中描述的所有定制设置 – 队列条目的状态: • 关于队列条目结构的更多信息,参考前面关于正在运行的加 载的内容。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 144 .

com) CR500: CRM Middleware 145 .第三单元 CRM 中间件操作 第六课 CRM 到 R/3 的加载错误 • 没有数据复制到 R/3 站点 – R/3 站点是否是数据的接收者? • 是否存在到 R/3 站点的正确的 RFC 目的地?检查管理控制台 (事务码 SMOEAC)。 • 在管理控制台(事务码 SMOEAC)中检查是否存在与对象和 R/3 站点对应的订阅。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 146 .第三单元 CRM 中间件操作 第六课 CRM 到 R/3 的加载错误 • 没有数据复制到 R/3 站点:增量加载 – CRM 应用在一个 LUW 中在数据库创建数据并创建 BDoc。BDoc 通过 qRFC 被传递给出站流。队列的命 名规范为 CSA*。 – 对于单条数据,流上下文为 MO1,对于多条数据为 MO2。 – 这些流上下文中,复制服务被调用,找到订阅的接收 者。对于每个接收者都调用出站适配器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第三单元 CRM 中间件操作 第六课 CRM 到 R/3 的加载错误 • 没有数据传输 – 这里,数据将被传输给 R/3 系统。R/3 出站适配器被 调用,转换 BDoc 为 BAPIMTCS 数据容器。 – BAPIMTCS 数据容器通过 qRFC 被传递给接收者。队 列的命名规范为 R3AU*。 – 数据是否被发送到 R/3? • 在 CRM 出站队列(事务码 SMQ1)中检查队列条目 • 在 CRM 事务码 SM59 中检查对于 R/3 的目的地 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 147 .

com) CR500: CRM Middleware 148 .第三单元 CRM 中间件操作 第六课 CRM 到 R/3 的加载错误 • 没有来自 R/3 的响应 – BDoc 监视器会显示 R/3 是否发送了应答,状态为“发 送给接收者,但没有响应”。检查接收者的错误。 – CRM 是否接收到响应? 增量加载是否工作?检查增量加载 检查 R/3 出站队列(SMQ1)中的队列条目 检查 R/3 的 SM59 中对于 CRM 的目的地 检查 R/3 中表 CRMCONSUM 中所有激活的消费者 检查 R/3 中表 CRMRFCPAR 中所有激活消费者是否存在对 象条目 • 检查 CRM 入站队列(SMQ2)中的队列条目 • 检查流跟踪,事务码 SWM01,是否存在 BDoc 的错误消息 • 检查 CRM 中事务码 ST22 显示的短转储 • • • • • SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第四单元 与第三方后端的数据交换 • 单元概览 – 本单元讨论使用 CRM 中间件与第三方后端的数据交 换的细节 • 单元目标 本单元完成后,应该能: – 描述通过 XIF(外部接口适配器)的数据交换 • 本单元的课程为 – 外部接口适配器(XIF) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 149 .

com) CR500: CRM Middleware 150 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 外部接口适配器 – 它可以被用于 • 数据对象的初始加载 • 数据对象持续的实时数据交换 – 它双向工作:业务对象(数据)可以被发送和接收: • 从 SAP CRM 到外部系统 • 从外部系统到 SAP CRM – 它使用两种标准格式: • XML/SOAP(可扩展标记语言/简单对象访问协议) • ALE/IDoc(应用连接和使能/中介文档) – 它是可扩展的,不需要修改程序代码 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 外部接口适配器(续) – 业务数据对象,如订单或业务合作伙伴可以以 SOAP/XML 或 IDoc 格式,用外部接口(XIF)发送。 • 从 CRM 系统到外部系统 • 从外部系统到 CRM 系统 – 数据对象可以通过文件传输,用 DX/LSMW(数据交 换/遗留系统移植工作台)来初始加载,并且可以永久 的传递给 CRM 系统。 – 数据对象可以用 CRM 中间件适配器框架初始加载到 外部系统、数据文件中,或由 CRM 通过合适的应用 事务永久发送到外部系统。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 151 .

• CRM 包含了 DX 工作台和映射工具,它们基于文件,完成初 始数据加载。 • 15 个认证的第三方 ALE 消息处理系统(BEA、IBM、 MQSeries、NEON、TIBCO) • 58 个认证的第三方 ALE 转换器(CrossWorlds、Harbinger、 Mercator、Oberon、Sterling)。 • 57 个认证的第三方 EDI 子系统(Actis、Harbinger、 Premenos、Seeburger、Sterling)。 • 14 个认证的第三方移植接口合作伙伴工具(Artuad、 ETI*Extrat、NSX、SOPRA)。 • 认证的第三方产品的可以在 http://www.com) CR500: CRM Middleware 152 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 使用 XIF 适配器的后端集成概览 – SAP 业务连接器对客户是免费的,链接 http://service.com/csp 中找到。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.sap.sap.com/connectors.

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器:可交换的业务对象 – – – – – 产品(双向) 价格条件(从外部到 CRM) 业务合作伙伴(双向) 业务合作伙伴层级(从外部到 CRM) 业务交易行为(双向) • • • • • 线索 机会 销售订单 服务订单 等 – 发票(从 CRM 到外部) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 153 .

com) CR500: CRM Middleware 154 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器:概览 – XIF 适配器提供: – CRM 服务器消息流的服务 – 为外部系统提供批量消息能力的 IDoc 和 XML 接口 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器 – 在出站事务中——例如在应用事务中创建或修改数据 对象——创建一个 mBDoc,并传输给 CRM 中间件。 可能的 mBDoc 外部接收者在 CRM 中间件中被确定, 并且与 mBDoc 一起被传输给 XIF 适配器。在 mBDoc 中的数据在 XIF 适配器中被转换类似 XML 的复杂数 据结构,然后开始一个合适的基础服务(SOAP、ALE) 把数据发送给外部接收者,例如通过第三方中间件工 具。 – 在入站事务中,XML 或 IDoc 格式的入站消息被 XIF 适配器通过基础服务(SOAP、ALE)接收,并且转换 为 mBDoc 的结构。CRM 中间件开始,调用合适的应 用验证服务,在成功检查消息后更新应用。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 155 .

com) CR500: CRM Middleware 156 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器:SOAP/XML – 关于 SOAP/XML 处理的更多细节: • SOAP/XML 消息可以被发送给 SAP NetWeaver 流程集成 (PI),这里 XML 消息可以被映射为其他 XML 模式。XML 消息可以被传递给其他业务系统。 • SOAP/XML 消息可以被发送到 XML 消息系统,基于映射规 则将 XML 转换为其他 XML 模式,并基于传递规则将这些消 息发送给其他应用。 • 对于 CRM 与 SAP 业务连接器的通讯,应该使用 IDoc。IDoc 传输比 SOAP/XML 要快,因为 IDoc 文档不包含元数据信息 (标签),并且,相比之下发送的行也少很多。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器:IDoc – 关于 IDoc 处理的更多细节: • IDoc 可以被用于发送数据给 SAP NetWeaver 流程集成 (PI),其中 IDoc XML 文档会被实现并且映射到其他 XML 模式。XML 消息可以被发送给其他业务系统。 • IDoc 可以被用于发送数据给 SAP 业务连接器,其中 IDoc XML 文档会被实现并映射到其他 XML 模式。 • IDoc 可以被用于发送消息给纯文本文件。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 157 .

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • XIF 适配器:IDoc(续) • IDoc 可以被用于发送消息给 ALE 转换器,其中 IDoc 被映射 到标准的消息格式(EDI 通讯)。 • IDoc 可以被用于发送消息给 ALE 消息系统。与 ALE 转换器 相比,消息处理器不会执行任何转换或映射,而代之以接收 IDoc 并把它们发送给应用去处理。 • IDoc 可以被用来发送消息给 EDI 系统。跟 ALE 转换器相 比,EDI 子系统不使用直接的程序到程序的通讯来传输 IDoc。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 158 .

com) CR500: CRM Middleware 159 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 定制 IDoc 出站处理 – 在使用 IDoc 出站处理时,必须要执行: • 创建 RFC 目的地 – 事务码 SM59:TCP/IP 连接 • 创建逻辑系统 – 事务码 SALE • 创建接收者端口 – 事务码 WE21:事务 RFC 或文件 • 创建合作伙伴参数 – 事务码 WE20:合作伙伴类型 LS、前面创建的逻辑系统,为出 站参数维护消息类型 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 160 .第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 定制 IDoc 出站处理(续) • 输入出站参数 – 事务码 WE20:例如,传输一次的 IDoc,基本类型 CRMXIF_*_SAVE_MO1,消息类型 CRMXIF_*_SAVE_M,带 有接收者端口 • 创建站点 – 事务码 SMOEAC:站点类型为 IDoc 的外部接口,带有维护的 合作伙伴参数 • 为发布维护订阅 – 事务码 SMOEAC:对象类型为订阅,分配维护的站点给订阅 • 分配维护的站点给接口类型 – 事务码 CRMXIF_C1:为新站点维护 BDoc 类型和接口类型 (CRMXIF_*_SAVE) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 定制 SOAP/XML 出站处理 – 在使用 SOAP/XML 出站处理时,必须要执行: • 创建 HTTP 目的地 – 事务码 SM59:对外部系统的 HTTP 连接 • 创建站点 – 事务码 SMOEAC:站点类型为 XML 的外部接口,并制定 HTTP 目的地 • 为发布维护订阅 – 事务码 SMOEAC:对象类型为订阅,分配维护的站点给订阅 • 分配维护的站点给接口类型 – 事务码 CRMXIF_C1:为新站点维护 BDoc 类型和接口类型 (CRMXIF_*_SAVE) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 161 .

第四单元 与第三方后端的数据交换 第一课 外部接口适配器(XIF) • 定制 入站处理 – 定制 IDoc 入站 • 创建逻辑系统,通过 SALE → 准备发送者和接收者系统 → 设置逻辑系统 → 命名逻辑系统 • 创建合作伙伴参数,通过事务码 WE20(合作伙伴类型 LS) • 在入站参数中输入合适的消息类型 CRMXIF_*_SAVE_M (CRMXIF_*_SAVE_S) – 定制 SOAP/XML 入站 • 接收 SOAP/XML 文档不需要 CRM 做出定制 • CRM HTTP 端口设置,通过事务码 SMICM → 转到 → 服务。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 162 .

com) CR500: CRM Middleware 163 .第五单元 BW(BI) 适配器概览 • 单元概览 – 本单元关注 BI 需要从发送系统(如 CRM 或 ERP)得 到的扁平布局的字段,它被称为抽取结构(BI 相关对 象的部分被称为数据源)以及 BW 适配器如何获得 BDoc 并将其写入这个结构。 • 单元目标 本单元完成后,应该能: – 理解 BI 适配器的意图和技术 – 理解包含 BI 和 CRM 的典型项目的角色和责任 • 本单元的课程为 – BI 适配器概览 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 164 .第五单元 BW(BI) 适配器概览 第一课 BI 适配器概览 • 增量抽取的场景 – BW 适配器多数时候通过中间件消息流调用。只有非 常罕见的情况下会在同步流中涉及到 BW 适配器。类 CRM 同步数据库 似 R/3 适配器 (移动销售/服务) 的功能(R/3 同步业务文档 适配器转换 BDoc 到 BAPIMTCS 布局),BW BW 适配器 适配器转换 BDoc 到 BW 系统期望的 CRM 消息业务文档 应用数据库 布局(结构) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 165 .第五单元 BW(BI) 适配器概览 第一课 BI 适配器概览 • CRM 抽取框架:增量处理 – 对于 R/3 适配器,转换 mBDoc 为扁平结构 BAPIMTCS 的任务可以放在出站队列,然后传递给 R/3。 – 相似的,BW 适配器(它现在应当被称为 BI 适配器) 也具有将 BDoc 转换为 BI 可以应用的结构的任务。这 个结构被称为抽取结构。 – 抽取结构(相关业务字段的集合)加上根据功能观点 而来的抽取方法论就构成了一个 BI 数据源。数据源的 一个例子是 CRM_OPPT_H。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• CRM 抽取框架:增量处理(续)
– 由于相同的 BDoc(就像事务
BUS_TRANSACTION_MESSAGE)可以被用于处理
很多不同的文档(订单、报价),文档类型(dtype)
和 BDoc 一起被用来识别合适的 BW 适配器元数据。
这个元数据由 BDoc 和相应 BI 数据源(抽取结构)之
间的映射逻辑构成。
– 第二步是在客户特定的业务附加(BAdI)中查找附加
字段。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

166

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• CRM 抽取框架:增量处理(续2)
– 中间件流调用 BW 适配器,然后 BW 适配器写入出站
队列。BI 人员可以用 BW 增量队列(事务码 RSA7)
来调用这个队列。BW 增量队列是一个 BW 特定的程
序,可以读取 CRM 的出站队列。它还能以便于阅读
的方式显示包含在队列中的数据。
– R/3 和 BI 的一个主要不同之处是在出站队列中,队列
监控不会自动处理 BI 队列。数据一直停留在出站队列
中(对 BI 就是增量队列)直到 BI 团队通过称为信息
包的 BI 对象要求传输数据。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

167

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• BW 适配器基本功能
– 定义:
• 数据源(一个 BI 术语,与源系统(CRM)相关的未加工数据
字段的集合,以及抽取这些字段的技术手段。定义为 ABAP
结构的字段集合被称为 BW 抽取结构。PSA 是一个 BI 中的
物理表,临时存储这些未加工数据用于 BI 的高效处理,并可
以进行数据备份)。
– 例如:CRM 数据源 0CRM_SALES_ACT_1 包含一个包含
CRM 活动字段的抽取结构(活动合作伙伴、开始和结束日期、
原因代码以及与 CRM 活动相关的其他字段)。

• BI 转换时数据从未处理格式(CRM BDoc 字段)到 BI 报表
目标,例如 BI 立方体的映射和清理规则。BI 立方体是一个多
维的表连接关系的集合,为查询提供稳固和高效的对象。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

168

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• BW 适配器基本功能(续)
• BW 适配器(BWA)多数时候被消息流调用,只有很少情况
下被同步流调用。一旦被激活,BW 适配器就要完成将层级
的 BDoc 对象转换为 BI 所需的扁平结构的任务。
• BW 适配器在 CRM 中的主要原因是捕获增量(修改或新纪录)
并且准备让它被 BI 获取。做为处理的一部分,BW 适配器检
查增量为特定集合的数据(称为数据源)激活(BI 功能)。
如果它激活,则包含在 BDoc 中的记录就用唯一标识它的数
据源名称写入出站队列。为减少歧义和隐藏不需要的数据,
BI 增量队列是一个提供给出站 qRFC 队列的功能性名称。这
个队列中的数据不会立即发送给 BI,而是在队列中等待,直
到使用称为信息包的 BI 对象请求特定源的增量数据时,它才
传输。事务码 RSA7 被用于查看队列(出站队列)中的数
据,它也被认为是一个数据源。
SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

169

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• BW 适配器基本功能(续2)
• 服务 API(SAPI)是一个处理信息包和整理对 BI 数据传输的
通用接口。服务 API 做为“插件”软件组件的一部分安装,在
R/3 或 CRM 中都是相同的。
• 事务码 BWA1 允许查看元数据,由 BW 适配器使用(数据源
(抽取结构)和 BDoc 之间的映射规则)。事务码 BWA5 被
用来为特定 BI 数据源激活 BW 适配器功能。除了当前使用的
标准事务码 RSA5 以外,它必须为每个业务内容数据源执行。
然而,如果 BI 内容已经用包含在 BI 中的普通工具激活,
CRM 组件(RSA5/BWA5)也会自动激活。
– 注意:并非所有 CRM 到 BI 的传输都通过 BWA。很多情况
下,对于较少的数据量,抽取处理就类似 R/3 的方式,不需要
CRM 特定的 BW 适配器。

• 通过 BWA5 的激活不是必要的,它在 BI 数据源被激活时自
动执行。
SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

170

第五单元 BW(BI) 适配器概览 第一课 BI 适配器概览 • BW 适配器做为消息流的一部分 • 在多数情况下,消息流是调用 BW 适配器的流程的一部分。 记住前面提到的信息,BW 适配器按照特定业务目的把 BDoc 结构转换为扁平的“抽取结构”的字段。这个数据然后被写入出 站队列。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 171 .

第五单元 BW(BI) 适配器概览 第一课 BI 适配器概览 • BW 适配器和它的元数据 – BI 数据源是 BI 特定的对象,定义了要被抽取的字段 的集合(例如抽取结构)。 – BI 数据源例子的一个小清单(每个都有自己的抽取结 构)包含: • • • • 0CRM_OPPT_H:机会抬头 0CRM_OPPT_I:机会行项目 0CRM_SRV_CONFIRM_H:服务确认 0CRM_SALES_ACT_1:活动 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 172 .

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• BW 适配器和它的元数据(续)
– BW 适配器的任务是获得特定的 BDoc 和文档,然后
选择合适的元数据(上面例子中的 0CRM_OPPT_H)
并执行指定的映射逻辑。
– 在结构中的数据然后被写入出站队列(对 BI 人员来所
就是增量队列)
– 构造器会解释这不是关注 BI 和 CRM 的 CR900 分析
课程。即,BW 适配器的元数据在相关 BI 数据源被 BI
团队激活后自动激活供使用。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

173

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• BI 增量队列(RSA7)和出站队列(SMQ1)
– 注意 BI 特定的事务码 RSA7 只显示了对应于 BI 数据
源名称的 BI 相关队列,而通过的 SMQ1 事务显示了
所有的 CRM 出站队列,甚至包括 R/3 或移动站点或
其他系统的。
– RSA7 和 SMQ1 都读取相同的 qRFC 表。
– 一个巨大的不同是 BW 相关队列不会自动被队列输出
监督程序处理。这些数据被设计为保留在出站队列
中,直到 BW 应用团队执行 BI 信息包。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

174

第五单元 BW(BI) 适配器概览
第一课 BI 适配器概览
• CRM 到 BI 的基本项目任务和职责
– 第一步:BI 和 CRM 之间的技术性 RFC 连接
– 第二步:识别/激活 BI 内容,包括 CRM 数据源和
BWA 对象
– 第三步:增强 CRM 数据源和 BI 对象
– 第四步:每晚抽取和监视 BI 加载并调适问题
– 第五步:用户/超级用户/分析员的查询设计和高效使用
• 在步骤一里,NetWeaver 人员负责维护在 BI 和源系统包括
CRM 之间合适的 RFC 连接
• 业务内容由:BI 查询、立方体和数据源、以及 CRM 中用于
BDoc 映射的 BW 适配器对象组成。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

175

第六单元 群件适配器概览
• 单元概览
– 本单元描述群件以及它如何被用来在群件
(Lotus/Outlook)和 CRM 之间传输联系人和活动。

• 单元目标
本单元完成后,应该能:
– 理解群件适配器的意图和基本技术

• 本单元的课程为
– 群件适配器概览
SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

176

第六单元 群件适配器概览
第一课 群件适配器概览
• 群件适配器的场景
– 诸如帐户、活动和任务等数据可以在 SAP CRM 与群
件解决方案之间双向交换。帐户、活动和任务被提供
给群件用户的联系人、约会和任务,反之亦然。
– 右图展示了
群件集成中
的数据流。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

177

2 的 ABAP MapBox 修改 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.0 SP09 的 ABAP MapBox 修正 1096187:针对 CatsList.xml 的修正——ABAP MapBox 1096928:针对 CRM 5.0 的 ABAP MapBox 修正 1097065:针对 CRM 5.com) CR500: CRM Middleware 178 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器的场景(续) – 在 CRM 和群件之间的数据交换通过群件适配器和群 件连接器完成。群件适配器做为 CRM 中间件的消息 流的一部分被调用。后面会讨论每个组件的细节。 – 与群件适配器相关的 note 如下: • • • • • 通用群件集成: 1071992:针对 CRM 5.

com) CR500: CRM Middleware 179 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器的场景(续2) • • • • SAP 群件连接器: 843407:安装指南 957409:群件交换连接器问题指南 959294:群件适配器定制和用户指南。这个 SAP note 描述 了基于 Java 的 MapBox 的定制设置。还可以用它设置基于 ABAP 的 MapBox,因为保存数据的方式只有很少差异。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 180 .第六单元 群件适配器概览 第一课 群件适配器概览 • 集成架构:群件适配器 – 群件适配器: • 在 CRM 服务器上的群件适配器支持消息的转换。它基于 SyncPoint 技术。BDoc 消息被转换为标准群件格式 (iCalendar 和 vCard)。这里使用了一个映射框架, MapBox 和有效荷载接口(基于 SOAP 的消息接口,用于在 CRM 服务器和群件连接器之间交换数据)。iCalendar 和 vCard 是显示群件日历对象和联系人的互联网标准。为群件 集成已经提供了预定义的映射。 • vCard 或 iCalendar XML 数据通过互联网标准 HTTP 协议, 做为 SOAP 消息被从 MapBox 发出。群件连接器提供项目被 处理或未被处理的响应。 • 群件服务器(Lotus Domino 或 Microsoft Exchange)的工作 是在员工下次登录时将新的联系人、活动或任务通知给他们。 这个处理也可以反向工作。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第六单元 群件适配器概览 第一课 群件适配器概览 • 集成架构:MapBox 和 SAP 群件连接器 – 对于 CRM 2009 SP09 以后的版本,必须做出设置来 使用 ABAP 版本的 MapBox 代替 Java 版本: – 下列步骤已经完成,但应该检查确认: • • • • 步骤一,到事务码 SM30 步骤二,输入视图名 ISPCFG 步骤三,点击创建新条目 在参数名中输入值“CRM_MAPBOX”,参数值为“*”。 – 提示,不要删除 ISPCFG 表中的其他条目。 – 此外,如果想要在应用日志(事务码 SLG1)中记录 MapBox 功能,需要向第二个参数值字段添加“X”。要 查看由 MapBox 生成的日志,访问 SLG1,在对象字 段中输入 CMW_MBX 并执行。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 181 .

com) CR500: CRM Middleware 182 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置一:管理控制台中的站点 – 必须使用下列站点类型为群件适配器创建站点: • 群件适配器 01(mBDoc) 这个站点允许在 CRM 活动管理/劳动力管理与群件之间交换 活动和任务。此外,它允许帐户主数据与群件的公共联系人 文件夹的双向交换。 • 群件适配器 02(sBDoc) 这个站点允许传输帐户主数据到每个群件用户的私有文件夹。 – 步骤: • 1、登录到 CRM 服务器,选择 架构和技术 → 中间件 → 管理 → 管理控制台(事务码 SMOEAC)。 • 2、从“对象类型”下拉列表中选择“站点”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置一:管理控制台中的站点 • 3、从应用菜单选择 对象 → 创建,或从应用工具栏选择相应 符号 – 出现“管理控制台:添加站点”屏幕 • 4、在“对象信息:站点”下输入下列细节: – 名称:标识新站点的名称,为站点输入名称 – 描述:指定站点描述,为站点输入描述 – 类型:指示站点类型,从下拉列表中选择“群架适配器 01 (mBDoc)”站点类型。 • 5、保存站点 • 6、要创建基于“群件适配器 02(sBDoc)”站点类型的站点, 重复 3 到 5 步,只是第四步的选择改变。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 183 .

com) CR500: CRM Middleware 184 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置二:请求订阅 订阅 发布 群件适配器定制(MESG) 群件适配器定制(MESG) 群件适配器消息(按对象为 GWA_APPLN_MSG)(MESG) 段名称 = GWA_MSG_CLASSIC 段字段名 = ARBGB 操作符 = EQ 标准类型 = D 标准值下限 = GWA_APPLN_MSG 群件适配器通用消息(按对象)(MESG) 所有 BDoc 类型的群件适配器元数据(MESG) 所有 BDoc 类型的群件适配器元数据(MESG) 群件对象主目录列表(MESG) 群件对象主目录列表(MESG) 群件对象选择过滤器字段和值(MESG) 群件对象选择过滤器字段和值(MESG) 所有业务合作伙伴(MESG) 所有业务合作伙伴(MESG) 所有业务交易(MESG) 所有业务交易(MESG) 只有当劳动力管理应用被用于群件集成时,才创建下列订阅 WFM 群件集成定制(MESG) WFM 群件集成定制(MESG) WFM 群件集成(MESG) WFM 群件集成(MESG) SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 185 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置三:初始处理 – 要成功实施群件,需要几个步骤: • • • • • • • 1、准备定制下载 2、定制数据下载到 MapBox 资源库 3、加载帐户到 MapBox 资源库 4、公共联系人文件夹同步 5、私有联系人文件夹同步 6、活动同步 7、任务同步 – 提示:上面标出的步骤超过本课程允许的范围和时间,在课程 CR500 中的附录中有详细的循序渐进向导。 – MapBox 必须获得 BDoc 中信息的键(例如国家 01),并且把相关文本传递给 vCard XML 输出。这需 要很多关于活动和客户的定制和元数据的信息。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 186 .第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置三:初始处理(续) – 要成功实施群件,需要几个步骤: • • • • • • • 1、准备定制下载 2、定制数据下载到 MapBox 资源库 3、加载帐户到 MapBox 资源库 4、公共联系人文件夹同步 5、私有联系人文件夹同步 6、活动同步 7、任务同步 – 提示:上面标出的步骤超过本课程允许的范围和时间,在课程 CR500 中的附录中有详细的循序渐进向导。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置三:初始处理(续2) – MapBox 必须获得 BDoc 中信息的键(例如国家 01),并且把相关文本传递给 vCard XML 输出。这需 要很多关于活动和客户的定制和元数据的信息。 – 另一个主要的先决条件是维护电子邮件地址。CRM 中 的所有要加入群件集成和参与商业活动的帐户都必须 在帐户管理应用中具有一个有效的 SMTP 电子邮件地 址。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 187 .

第六单元 群件适配器概览 第一课 群件适配器概览 • 群件适配器设置三:初始处理(续3) – 帐户做为联系人同步到公共联系人文件夹或私有邮箱 联系人文件夹,不管在业务合作伙伴主数据中是否维 护了电子邮件地址。 – 但是为了把活动管理集成到工作中,希望把 CRM 中 的商务活动同步成群件的约会或任务的合作伙伴都必 须在帐户主记录中维护一个有效的电子邮件地址。 • 确保没有为不同的帐户维护相同的电子邮件地址 • 电子邮件地址必须被维护在帐户的“主要地址和通讯数据”中。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 188 .

com) CR500: CRM Middleware 189 .第七单元 SAP CRM 现场销售 • 单元概览 – 本单元讲解与 CRM 现场销售相关的 CRM 中间件功能。 • 单元目标 本单元完成后,应该能: – 连接移动客户端到 CRM 中间件 – 描述 SAP CRM 现场销售的系统场景 – 描述 sBDoc 的使用和意图 – 描述并监视在移动客户端场景下从 CRM 到 CDB 的定 制对象的数据流 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 • 单元目标(续) – 描述并监视在移动客户端场景下从 CRM 到 CDB 的业 务对象的数据流 – 描述复制管理功能 – 描述从 CDB 到移动客户端的初始数据加载 – 描述并监视在移动客户端场景下从 CRM 到中间件队 列的定制对象的数据流 – 描述并监视在移动客户端场景下从 CRM 到中间件队 列的业务对象的数据流 – 描述并监视在移动客户端场景下从移动客户端到中间 件队列的业务对象的数据流 – 描述复制和调整的技术要点 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 190 .

第七单元 SAP CRM 现场销售 • 本单元的课程为 – – – – – – – – – – 系统场景 sBDoc 和统一数据库 从 CRM 到 CDB 的定制对象的初始加载 从 CRM 到 CDB 的业务对象的初始加载 复制管理 从 CDB 到移动客户端的初始数据加载 从 CRM 到队列的定制对象的持续数据加载 从 CRM 到队列的业务对象的持续数据加载 从移动客户端到队列的持续数据加载 次要和主要的调整 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 191 .

第七单元 SAP CRM 现场销售
第一课 系统场景
• 用于笔记本的 SAP CRM
– 做为 SAP NetWeaver Mobile 的一部分,Mobile .NET
客户端(SAP CRM)是一个为基于 Microsoft
Windows 设计和优化的偶尔连接服务器的 CRM 现场
应用,它运行在具有较大屏幕的移动设备上,如笔记
本。
– CRM 集成服务(CRM 中间件)为移动客户端提供同
步工具,确保业务数据和处理在公司内和现场用户之
间无缝集成。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

192

第七单元 SAP CRM 现场销售
第一课 系统场景
• Mobile .NET 客户端
– 移动客户端上的运行时环境由多个层组成:应用层,
代表应用代码,被拆分为包含应用逻辑的业务对象层
(BOL)和定义应用感官以及确定用户输入输出的用
户界面层(UIL)。
– 应用代码用 .NET 编程语言编写(比如 VB.NET 或者
C#.NET)。
– 业务文档层(BDoc 层)包含业务文档(BDoc)的运
行时元信息。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

193

第七单元 SAP CRM 现场销售
第一课 系统场景
• Mobile .NET 客户端(续)
– BDoc 为应用业务数据提供一个“看起来象对象”的结构
化数据格式,它存储在关系型数据库的各个表中(移
动客户端的“用户数据库”和 CRM 服务器上的“统一数
据库”(CDB))。
– 移动客户端上的 BDoc 层处理对本地数据库的访问。
同时(例如在同一个 COMMIT 周期中),它把可以数
据按可以传输到服务器的格式存储在本地队列中。
– 在客户端,连接管理器触发传输层,在新数据到达时
读取入站队列。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

194

第七单元 SAP CRM 现场销售
第一课 系统场景
• SAP 移动应用工作室
– 设计环境,移动应用工作室(MAS),与 Microsoft
Visual Studio .NET 集成,并提供一系列可视化的建模
工具以方便应用开发,还有代码生成器来根据存储在
移动应用资源库(MAR)中的应用元数据生成源代码。
– MAS 加上 MAR 可以处理多用户开发,并且提供对开
发对象的严格开发管理。
– 对标签和标题的多语言翻译也被处理。
– 基于标准 R/3 传输系统的软件逻辑与 CRM 中间件关
联,用于应用元数据以及生成运行时文件。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

195

第七单元 SAP CRM 现场销售
第一课 系统场景
• COM 对象做为通讯接口
– 当用户决定通过调用 ConnTrans 程序开始通讯处理
时,客户端的连接管理器实现到服务器的连接,然后
激活消息传输服务,它调用通讯站上的传输代理向服
务器传输数据。其他传输服务可以被包含在连接会话
中,这样用户只需要初始化通讯一次。
– DCOM 被用于客户端/服务器通讯。SAP .NET 连接
器,一个 SAP 中间件产品,做为 Microsoft 和 ABAP
环境之间的接口,让 RFC 函数调用在 COM 组件中也
起作用。

SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com)

CR500: CRM Middleware

196

com) CR500: CRM Middleware 197 .第七单元 SAP CRM 现场销售 第一课 系统场景 • COM 对象做为通讯接口(续) – SAP .NET 连接器把来自消息传输服务的 DCOM 函数 调用翻译成调用 CRM 服务器上入站适配器的 RFC 函 数。输入的 DCOM 函数调用不产生队列,也不存储在 通讯站上。 – 组件对象模型(COM)是一个开放的跨平台客户端/服 务器应用开发架构,基于面向对象编程。应用和系统 甚至可以由不同供应商提供。这个技术支持各种编程 语言的开发。通过 COM 技术,客户端通过在对象上 实现的接口来访问对象。COM 是语言无关的,因此, 任何产生 ActiveX 的语言都可以产生 COM 应用。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

.com) CR500: CRM Middleware 198 .exe,“Unicode 移动传输设置”下的字段必须包含通讯站的 IP 地址或 名称,并且要在通讯站中定义“传输目的地”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.第七单元 SAP CRM 现场销售 第一课 系统场景 • 连接:移动客户端/通讯站 – 在网络级别,为通讯站提供 TCP/IP 连接就足够了。 – 在安装移动客户端应用时,会提示打开还是关闭复制。 如果复制被关闭,安装程序为客户端应用提供一个预 填充的数据库。这时,它不能与 CRM 中间件交换数 据。如果允许复制,会提示输入通讯站的 IP 地址。 – QmtCnfg.\SAP\mobile\Bin.exe 程序可以被用来测试移动客户端和通讯 站之间的 DCOM 连接。该程序包含在客户端安装目录 的 .Net 下。 – 如果在 CRM 客户端打开了 QmtCnfg.

第七单元 SAP CRM 现场销售 第一课 系统场景 • 连接:移动客户端/通讯站(续) – 用于 DCOM 连接的设置可以使用程序 dcomcnfg.com) CR500: CRM Middleware 199 .exe 指定。 – 对于安全第一通讯,在客户端和 CRM 中间件之间的 RFC 连接必须被实现一次。该 RFC 被配置并被程序 ASiteID 使用(它可以通过客户端控制台被调用),它 需要用户和移动客户端对 CRM 服务器是已知的。在 CRM 中间件的用户和站点管理以及安全第一通讯会在 “复制和调整概览”一节中讨论。 – 要解决问题,参见 SAP note 169550。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

exe 来 测试。 – 在通讯站上运行微软事务服务器(MTS)有两个主要 原因:更高的安全性(授权)和更好的性能(连接 池)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.NET 连接器中定义一个 RFC 目的地。 • 在通讯站和中间件之间的通讯可以使用程序 QmtCnfg.第七单元 SAP CRM 现场销售 第一课 系统场景 • 连接:通讯站/中间件 – 在通讯站和 CRM 中间件之间的连接设置包含下列步 骤: • MTS 安全设置必须被指定。这指定了移动客户端和通讯站之 间的安全级别和数据加密。 • 必须在通讯站的 SAP .com) CR500: CRM Middleware 200 .

第七单元 SAP CRM 现场销售 第一课 系统场景 • 目的地的配置 – 要设置通讯站与 CRM 服务器之间的通讯以完成数据 同步,需要使用队列消息传输配置工具(QmtCnfg)。 – 选择 开始 → 程序 → 中间件 → QmtCnfg,出现队列 消息传输配置属性屏幕。 – 选择 选择 → Unicode SAP 目的地。 – 选择“新目的地”,出现“创建新目的地”对话框,输入新 目的地的名字。 – 在连接类型下面: • 指定连接类型为“R/3 连接” • 选择“负载均衡”或“专门服务器”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 201 .

第七单元 SAP CRM 现场销售 第一课 系统场景 • 目的地的配置(续) – 在“连接参数”下,如果前面选择了“负载均衡”,则: • 在“消息服务器”字段,输入消息服务器的名称 • 在“R/3 系统名称”字段,输入 R/3 系统的名称 • 在“组”字段,输入组的名称 – 如果前面选择了“专门服务器”,则: • 在“R/3 主机名”字段,输入消息服务器名称 • 在“系统编号”字段,输入系统编号 – 在“登录”下,指定客户端和语言。在“安全”下,指定连 接服务器的用户 ID 和密码。选择“保存”。 – 要设置你创建的目的地为默认目的地,在“操作模式” 下,选择“默认目的地”并选择“保存”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 202 .

第七单元 SAP CRM 现场销售 第一课 系统场景 • 连接检查 – 要检查登录信息的正确性,选择“测试连接”。 – 程序 QmtCnfg.\SAP\mobile\Bin.Net 下。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.exe 可以被用来测试通讯站和 CRM 中 间件之间的 DCOM 连接。在标准安装中, QmtCnfg.exe 还可以被用于测试移动客户端和通讯站 之间的 DCOM 连接,这时,它必须在移动客户端上打 开。这个程序在移动客户端的目 录 ..com) CR500: CRM Middleware 203 .exe 程序可以在下列路径下找到: C:\Program Files\SAP\rfcsdk\CommStation50 – 还可以通过 开始 → 程序 → 中间件 → 队列消息传输 配置 加载。 – QmtCnfg.

com) CR500: CRM Middleware 204 .第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 移动客户端上的 BDoc – 在移动客户端上,业务事务都基于业务对象。它们保 持在本地数据库上。应用程序由用户界面和业务逻辑 组成。相应的 BDoc 层检查数据修改是否与数据同步 相关,并且 存储数据到 数据库。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 205 .第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 本地数据库和统一数据库表 – 出于性能和复制的原因,移动客户端的数据在 CRM 服务器上分散在多个表中。这些表被称为统一数据库 (CDB)。从技术的观点来看,统一数据库只是 CRM 服务器上物理数据库中的一部分表。 – 移动客户端的数据模型结构清晰,并且,需要数据转 换。CDB 包含已经被转化的数据。此外,这些表在增 量数据计算时也需要,这样,BDoc 消息发送给移动 客户端时值包含修改过的字段。这减少了发送给移动 客户端的数据量。此外,复杂的包含依赖性和数据重 分发(调整)的复制场景只能使用 CDB 来有效支持。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 同步 BDoc – 同步 BDoc(sBDoc)在 BDoc 建模器(事务码 SBDM)中维护: • • • • • 用于与移动客户端的数据同步 结构定义在相应的 sDBoc 类型中 映射 BDoc 段到 CDB 表 保持在统一数据库中(CDB) 支持调整和依赖 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 206 .

第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 同步 BDoc 类型:业务视角 – 下面列出最常用的业务对象和相应的同步 BDoc 类型 名称: BDoc 类型名称 业务对象 客户和潜在客户 CAPGEN_OBJ_WRITE 联系人 CONGEN_OBJ_WRITE 销售订单 SALESDOCGEN_OBJECT_WRITE 物料 PRDCT_OBJECT 机会 OPPORTUNITY_WRITE 行动 ACTIVITY_OBJECT 活动 CAMPAIGN_WRITE 服务通知 NOTIFN_WRITE 员工 EMPLOYEE_WRITE – 注意:BDoc 类型的定义和增强需要对应用极深的知识。CRM 中间件提供创建或增强 BDoc 类型的技术。从这个角度看, BDoc 类型只是传输和处理 BDoc 消息的容器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 207 .

com) CR500: CRM Middleware 208 .第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 同步 BDoc 类型:技术视角 – BDoc 段以层级方式排列,显示数据的模型依赖。这 通过指定段之间的父子管理来获得。 – 在层级的顶端,总是唯一的根数据段。它包含唯一的 根 ID,用来 复制数据到 移动客户端。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第二课 sBDoc 和统一数据库 • 同步 BDoc 类型:技术视角(续) – 上页中的例子展示了一个同步 BDoc CAPGEN_OBJECT_WRITE(客户和潜在客户)。相 应的消息 BDoc 是 BUPA_MAIN(业务合作伙伴)。 – 数据映射是在多种环境之间传输数据的主要任务。映 射通常发生在软件接口,以便将一种格式转换为另外 一种。CRM 中间件中数据映射的例子有:保存 BDoc 在数据库并在 BDoc 之间映射(本单元后面会看 到),在消息存储中和外部及 BDoc 格式(适配器) 之间的 BDoc 显示的映射。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 209 .

com) CR500: CRM Middleware 210 .第七单元 SAP CRM 现场销售 第三课 从 CRM 到 CDB 的定制对象 • 定制适配器对象(一) – 对于从 CRM 到 CDB 的定制加载,相应的定制适配器 对象必须具有一个初始流上下文,以 CRM 为源站点 类型而 CDB 为目标站点类型。 – 通常为初始加载分配流上下文 SO3。 – 在字段“连接的 BDoc 类型”中,分配一个 sBDoc。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 211 .第七单元 SAP CRM 现场销售 第三课 从 CRM 到 CDB 的定制对象 • 定制适配器对象(二) – 在“表/结构”选项卡,可以找到使用的源数据库表和相 应的 CDB 表。 – 对于定制对象,指定对象类“定制”。 – 如果字段“功能”包含条目“COMPARE”,定制适配器对 象也就支持同步加载。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 212 .第七单元 SAP CRM 现场销售 第三课 从 CRM 到 CDB 的定制对象 • 相应的 sBDoc – 在 BDoc 建模器(事务码 SBDM)中,可以看到 sBDoc。对于每个数据库表指定一个段类型。 • sBDoc 的流定义 – 在 SMO8FD 中,可以看到 sBDoc 的流定义。下面会 解释这个服务。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第三课 从 CRM 到 CDB 的定制对象 • 初始加载 CRM 到 CDB 的定制数据 – 对于业务数据的初始加载,必须找到相应的业务适配 器对象。检查事务码 R3AC1,是否支持从 CRM 到 CDB 的加载。 – 找到相应的 mBDoc,必须为每个要被传输到 CDB 的 mBDoc 激活移动桥接器。 – 用事务码 R3AS 开始初始加载。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 213 .

第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • BDoc:两种类型的 BDoc 流 – 使用 mBDoc 的消息流是传输数据到 CRM 服务器应用 (在 CRM 服务器内部和从/到外部系统)的基础。 mBDoc 的“哲学体系”主要是临时的数据容器(跟持久 的数据容器 IDoc 不同)。在 mBDoc 提交后,它就不 再存在,状态也是无关紧要的。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 214 .

com) CR500: CRM Middleware 215 .第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • BDoc:两种类型的 BDoc 流(续) – 使用 sBDoc 的同步流是专为“为高度分布式移动场景 设计”的基础架构。 • 由于需要为大量数据库提供数据,需要优化复制的数据量。 • 由于移动客户端的资源限制,不能获得所有数据,必须定义 复制规则。 • 当赋值规则改变后,必须能找到谁接收到了什么数据,以便 调整数据分发(调整)。dBDoc 赋值的状态因此保持在“巡查 表”中。 • 对于调整,可以为某个移动客户端方便的抽取新数据。 – 同步和消息流通过映射服务(移动桥接器)连接。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • 激活移动桥接器 – 选择事务码 SM30 并输入 SMW3FDCUST,或开始事 务码 SMW3FDCUST。为这些与移动客户端相关的 mBDoc 激活移动桥接器服务。 – 在激活后,在 mBDoc 流上下文中可以发现增加的服 务。可以用事务码 SMO8FD 检查流上下文。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 216 .

com) CR500: CRM Middleware 217 .第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • BDoc 类型和它们的关系 – 例如:新帐户在 消息 BDoc 同步 BDoc 潜在的业务处理 (mBDoc) (sBDoc) CRM 系统中创 CAMGEN_OBJ_WRITE 客户 建后,消息 BDoc BUPA_MAIN CONGEN_OBJ_WRITE 联系人 BUPA_MAIN 被 BUS_TRANS_MSG SALESDOC_GEN_O_W 销售订单或报价 ACTIVITY_OBEJCT 活动 创建。要分发这 OPP_WRITE 机会 个新信息给移动 NOTIFN_WRITE 服务通知 客户端,就必须 SRV_WRITE 服务订单 执行从消息 BDoc (mBDoc)到同步 BDoc(sBDoc)的映射。依赖于 业务属性,业务合作伙伴信息通过针对客户的同步 BDoc CAPGEN_OBJ_WRITE 或针对联系人的 CONGEN_OBJ_WRITE 被分发。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 218 .第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • mBDoc、sBDoc 和业务适配器对象 – 使用中间件对象浏览器,事务码 CMWMON,可以显 示 sBDoc 到 mBDoc 的分配。 mBDoc BUPA_MAIN 分配给 sBDoc CAPGEN_OBJECT_WRITE 用来开始初始加载的业务适配器 对象。检查,是否支持源站点 CRM 和目标站点 CDB SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • 初始加载 CRM 到 CDB – 用事务码 R3AS 开始初始上传。选择业务适配器对 象,CRM 做为源站点类型而 CDB 做为目标站点类型: • 初始加载的报表为每个 qRFC 调用函数模块 CRS_FIRST_DOWNLOAD_TRIGGER。队列的命名规范为 R3AI*。 • 函数模块 CRS_FIRST_DOWNLOAD_TRIGGER 调用特定抽 取器的业务适配器对象。可以从定制表 CRMSUBTAB 中找到 抽取器的名称。搜索消费者 CDB,在列 OBJNAME 中的就是 适配器对象。 • 抽取器函数模块选择相关数据的 GUID,并为每个 qRFC 传 输 ID 清单给适配器。队列的命名规范为 CRI*R3AI。 • 下一个步骤,mBDoc 被创建并传递给出站消息流。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 219 .

第七单元 SAP CRM 现场销售 第四课 从 CRM 到 CDB 的业务对象 • 初始加载:qRFC 队列 – 统一数据库(CDB)被用于移动客户端的数据复制和 调整。它是 CRM 数据库中的逻辑数据库,具有下列 性能优势: • 快速的数据调整 • 快速的移动客户端数据库恢复 – 同步流的一个主要任务是存储数据到 CDB,这通过使 用 CDB 服务来完成。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 220 .

第七单元 SAP CRM 现场销售 第五课 复制管理 • 智能复制的发布 – 在管理控制台中为 sBDoc类型定义复制的步骤: • 第一步:必须指定复制类型,如批量或智能。对于智能复制 对象,还可以指定潜在的分发标准和操作符。 • 第二步:为复制对象定义一个或多个发布。发布是 sBDoc 的 逻辑分组,允许订阅者只选择所需的数据。智能发布意味着 为它指定了一个智能复制对象,并且它指定了用于数据发布 的实际标准字段和操作符。 • 第三步:创建订阅,基于这些发布为站点分配订阅,并且为 标准字段提供实际的值。 • 第四步:为订阅指定一个或多个站点。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 221 .

第七单元 SAP CRM 现场销售 第五课 复制管理 • 智能复制的发布(续) – 例如: • 创建了一个发布,例如“邮政编码区域客户”。这是根据邮政编 码对复制对象“客户”进行分发的基础。 • 然后为这个分发定义订阅。各种站点现在可以在这里根据各 种值来订阅(例如,站点一需要邮政编码区域 30000 到 40000,而站点二需要 40000 到 50000)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 222 .

第七单元 SAP CRM 现场销售 第五课 复制管理 • CAPGEN_OBJECT_WRITE 的复制对象 – 对 sBDoc CAPGEN_OBJECT_WRITE 有不同的发布。 – 所有对一个 sBDoc 类型的发布都依赖于一个复制对象。 在 sBDoc 类型和复制对象之间是 1:1 的关系。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 223 .

第七单元 SAP CRM 现场销售 第五课 复制管理 • 对智能复制的订阅 – 对于移动场景存在两种不同类型的发布:批量或智能。 – 对于批量发布,不指定标准字段。批量发布可以被指 定给不同的复制对象,但是一个复制对象智能被指定 给一个批量发布。 – 对于智能复制,发布必须制定对过滤器规则有效的标 准字段。一个智能发布不能被指定给不同的复制对象。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 224 .

第七单元 SAP CRM 现场销售 第六课 从 CDB 到移动客户端的加载 • 管理控制台抽取和 ConnTrans – 可以从管理控制台手工启动管理控制台(AC)抽取。 – AC 抽取将订阅的数据从 CDB 传输给移动站点的相应 出站队列。 – 对于向移动客户端的数据传输,必须在移动客户端上 开启程序 ConnTrans。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 225 .

第七单元 SAP CRM 现场销售 第六课 从 CDB 到移动客户端的加载 • 监视 AC 抽取 – 要调用复制和调整队列监视器,在 SAP 轻松访问菜单 中选择 架构和技术 → 中间件 → 监视 → 队列 → 监视 器 R 和 R 队列。 – 使用这个功能,显示当前客户端的六个复制和调整队 列: • AC_EXTRACT:这个队列包含由管理控制台创建的条目以及 要被执行的数据抽取。基于这个队列的作业运行该抽取。 • EXTRACTBLK:这个队列包含从类型为“批量”的 BDoc 类型 抽取数据的作业。这个条目由管理控制台创建。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 226 .

com) CR500: CRM Middleware 227 .第七单元 SAP CRM 现场销售 第六课 从 CDB 到移动客户端的加载 • 监视 AC 抽取(续) • EXTRACT:这个队列包含从其他 BDoc 类型抽取数据的作业。 这个条目由调整创建。 • REALIGN:这个队列包含分发请求调整的 BDoc 类型的条目。 • SUBCHECK:这个队列包含由管理控制台创建的条目,当新 订阅被创建或现有订阅被修改或删除时,相应的作业会运行。 • DEPENDENCY:这个队列检查对象之间的依赖性。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第七课 从 CRM 到队列的定制对象 • 设想:同步加载 – 1、比较键值,找出 CDB 中的丢失条目 – 2、比较 CDB 中现存行的字段,找出条目的不同值 – 3、只传输丢失和更改的定制数据 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 228 .

com) CR500: CRM Middleware 229 .第七单元 SAP CRM 现场销售 第七课 从 CRM 到队列的定制对象 • 同步加载的配置 – 可以用事务码 R3AC3 检查定制适配器对象的设置。 对于从 CRM 到 CDB 的同步定制加载,相应的定制适 配器对象的初始流上下文必须是以 CRM 为源站点类 型而 CDB 为目标站点类型。 – 通常为初始加载指定流上下文 SO3。 – 在字段“连接的 BDoc 类型”中,指定 sBDoc。 – 在“表/结构”选项卡中,可以找到使用的源数据库表和 相应的 CDB 表。 – 对于定制对象,要指定“定制”对象类。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第七课 从 CRM 到队列的定制对象 • 同步加载的配置(续) – 如果字段“功能”包含条目 COMPARE,定制适配器对 象也支持同步加载。 – 可以用事务码 CMWMON 检查相应的订阅。订阅应该 已经为初始加载而创建。 – 用事务码 R3AS4 来开始初始加载。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 230 .

第七单元 SAP CRM 现场销售 第七课 从 CRM 到队列的定制对象 • CRM 到 CDB 的同步加载:数据流 – 用事务码 R3AS 开始对定制数据的同步加载。选择定 制适配器对象,CRM 做为源站点类型而 CDB 做为目 标站点类型。 – 上传函数模块被调用,选择相应的数据,而 CRM 适 配器创建一个 sBDoc 并且开始出站消息流。 – 在出站同步流中,流上下文 SO3 控制将被调用的服务。 复制服务确定目标站点。对于移动客户端,对站点分 配为出站队列 ID。 – 数据包被存储在相应的出站队列,并且用移动客户端 上的 ConnTrans 程序完成下一次同步。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 231 .

com) CR500: CRM Middleware 232 .第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • CRM 服务器上的数据交换 – 可以通过 CRM 应用(CRM WebClient UI)直接修改 CRM 数据,或在 mBDoc 的入站流的验证服务修改。 在 CRM 应用中,如果存在出站流,就会被触发。 – 如果为 mBDoc 激活了移动桥接器 ,一个或多个 sBDoc 被创建。数据被发布到 CDB。 – 对于所有发布的站点,sBDoc 被存储在相应的出站队 列中。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 出站消息流:移动桥接器服务 – 出站处理:对于移动客户端,移动桥接器转换 mBDoc 消息为 sBDoc 消息(也允许多个 sBDoc 消息:业务 合作伙伴客户、业务合作伙伴联系人、员工、客户层 级)。 – 统一数据库(CDB)被用于移动客户端的数据复制和 调整。它是一个在 CRM 数据库中的逻辑数据库,具 有下列性能优势: • 数据的快速调整 • 移动客户端数据库的快速恢复 – 同步流的一个主要任务是在 CDB 中存储数据,这通过 使用 CDB 服务完成。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 233 .

第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 巡查表 – 在调整时,复制键(等于根 ID,根段的主键)以及合 适的站点 ID 被写入巡查表。对于对象复制,这就能够 读取巡查表的条目了。 – 巡查表在智能复制对象被创建后生成。它在调整时被 填写。 – 所依赖的站点 ID 基于订阅被识别。 • 提示:注意,对象复制的先决条件是 sBDoc 消息的根段值包 含一条数据记录,因为复制键必须唯一。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 234 .

第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 巡查表(续) – 在移动客户端崩溃时,可以用存储在巡查表中的信息 很容易的重建系统。可以使用管理控制台的抽取功能。 – 复制对象类型的复制键在复制和调整资源库中是固定 的。明确的,复制键和相应的段名称在表 SMOHREPOBJ 中是固定的。在这表中,字段 LU_FIELD 表示复制键而字段 LU_SEGMENT 表示相 应的段名称。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 235 .

第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 出站流:智能复制 – 出站处理:对于移动客户端,移动桥接器转换 mBDoc 消息为 sBDoc 消息(也允许多个 sBDoc 消息:业务 合作伙伴、员工、客户层级)。 – CDB 服务:验证过的数据被写入 CDB 表。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 236 .

com) CR500: CRM Middleware 237 .第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 出站流:智能复制(续) – 复制和重排列:如果复制对象中任何可能的标准字段 被修改(例如,设置了发送款),调整检查被触发, 将条目添加到调整队列中。调整在巡查表中检查哪个 移动客户端之前接收了 sBDoc 实例以及哪个移动客户 端根据 CDB 中的新数据接收了它。如果必要,它更新 巡查表。基于新旧移动客户端清单之间的不同,通过 向抽取队列中添加条目来触发抽取和删除。 – 出站适配器移动:sBDoc 消息被发送给分配给 sBDoc 实例的移动客户端。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 238 .第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 数据收集器服务 – 通常,同步服务将所有消息立即放在相关接收者的队 列中。如果大量更新消息需要在短时间内处理,这会 导致非常大的数据卷,因为必须为每个更新发送一条 消息。 – 可以通过使用数据收集器来避免这个现象。数据收集 器收集特定对象类型的所有 BDoc 消息。数据会以整 理过的批量消息形式周期性抽取。这充分减少了移动 客户端的出站队列中的数据量。这由于对频繁更新的 对象类型实例有效。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 数据收集器服务(续) – 必须把数据收集器定义为逻辑站带你,并为他们分配 物理站点,这样数据收集器才可以收集数据。数据收 集器的创建是可选的。 – 在菜单中,选择 对象 → 创建,或者应用工具栏的相 应图标。 – 在“对象信息”区域,为站点分配一个唯一的名字,描述 站点(可选的)并选择“数据收集器”类型。选择“站点 属性”来选择对应于站点类型的属性。指定抽取数据收 集器的属性。 – 保存数据收集器。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 239 .

com) CR500: CRM Middleware 240 .第七单元 SAP CRM 现场销售 第八课 从 CRM 到队列的业务对象 • 数据收集器服务(续2) – 选择“订阅”并使用默认订阅来指定数据收集器需要收集 哪些数据。 – 选择“站点”并为逻辑数据收集器指定一个物理站点,这 样数据收集器才可以收集数据。 – 最后保存数据。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 241 .第七单元 SAP CRM 现场销售 第九课 从移动客户端到队列的加载 • 移动客户端的数据修改 – 在移动应用中的数据修改被 BDoc 层存储在本地数据 库。如果数据与 CRM 服务器的数据同步相关,BDoc 层会在出站队列中创建条目。 – 可以用客户端控制台 检查出站队列。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 242 .第七单元 SAP CRM 现场销售 第九课 从移动客户端到队列的加载 • ConnTrans/消息传输服务 – 在通讯时,站点 ID 和队列 ID 被用来标识哪个队列被 填写和空闲。 – 对于每个站点,只有一个从 CRM 服务器到移动客户 端的队列和一个从移动客户端到 CRM 服务器的队列。 – CRM 服务器的出站队列连接到移动客户端的入站队 列,反之亦然。 – 只有在发送和接收数据时,才需要通讯站的连接。导 入是移动客户端的本地处理。 – 可以使用拨号网络在发送前自动连接,接收后自动断 开。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第九课 从移动客户端到队列的加载 • 内部流:入站处理 – 入站处理:来自移动客户端的输入数据(同步 BDoc 消息)被转换为消息 BDoc 消息。 – 验证:输入数据的一致性由相关的 CRM 联机应用验 证。在验证成功后,数据单元被传递给出站队列。当 输入数据无效时,原始消息以及错误状态被发回给发 送者。 • 移动客户端的队列监视 – 在队列监视器中,入站和出站队列可以被显示,并且 可以使用全面的过滤器选项。队列监视器可以通过客 户端控制台调用。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 243 .

tps 代表“事务层表示存储”。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.第七单元 SAP CRM 现场销售 第九课 从移动客户端到队列的加载 • 移动客户端上的 BDoc 层:概览 – 出于性能原因,BDoc 类型元数据在操作系统级的缓 存文件中保持 BDoc 类型的结构。如果没有这个缓存 文件,这个信息就必须为每个 BDoc 消息从多个数据 库表恢复,这要从 CRM 服务器接收。缓存文件的名 称为:TLCache.com) CR500: CRM Middleware 244 .tps,代表“事务层高速缓存”,是 BDoc 层的正式名称。后缀 .

com) CR500: CRM Middleware 245 .ddl 文件可以在为特定表创建脚本 时做为日志文件创建。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.ddl 文件来完成。.第七单元 SAP CRM 现场销售 第九课 从移动客户端到队列的加载 • 移动客户端上的 BDoc 层:概览(续) • 注意:注意 MS SQL 企业管理器只用于 MS SQL Server 版本。 MS DE 版不包含企业管理器。这时,表定义可以通过用记事 本浏览 .

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 如何确定复制清单? – 确定实例 GUID 和 BDoc 类型 ID – 确定复制对象和复制类型 – 根据复制类型: • 智能复制: – 访问巡查表 /1CRMG0/<行业><短 ID>RRL – 通过复制键选择(= 实例 GUID) • 依赖复制: – 确定父复制对象和复制键 – 访问父巡查表 – 通过复制键选择(= 父 GUID) • 批量复制: – 对于所有批量复制对象只有一个巡查表:SMOHLUBULK – 通过发布 GUID 选择 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 246 .

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 复制如何工作? – 当 BDoc 被流提交时,复制和调整服务首先执行数据 复制。 – 相关巡查表的复制键被用来确定与应用相关的站点 ID,并通过使用这些站点 ID 来确定接收者清单。 – BDoc 和站点 ID 被返回给流,并从那里传递给出站适 配器,它把 BDoc 放到相关的出站队列。 – 最后,复制和调整服务确定是否需要调整,如果需 要,参考下面的解释。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 247 .

com) CR500: CRM Middleware 248 .第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 调整(同步) – 调整是数据的重新分发,确保所有站点通过订阅接收 到分配给它们的数据。它还确保了分布式的本地数据 库与中心统一数据库保持相同的状态。 • 次要调整由“对数据的修改”触发,例如,在某个字段被修改时。 这时,删除或更新 BDoc 消息被复制到移动客户端。 • 主要调整由“对订阅的修改”触发,例如,在创建或删除订阅时。 这时,属于订阅的 BDoc 消息的相应删除或创建消息被复制 到移动客户端。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 次要调整(同步) – 次要调整应用于单个 BDoc 实例。 – 它在下列情况下发生: • 创建对象(例如 BDoc 实例):数据被抽取到所有相关站 点,包括所有依赖的 BDoc 实例。 • 修改复制相关的字段:相关站点被重新计算,并且如果必 要,会删除或抽取 BDoc 实例。 • 删除 BDoc 消息:触发 BDoc 实例以及所有依赖 BDoc 实例 的删除。 – 它在 sBDoc 出站处理时自动触发,在一个复制调整队 列中创建一个条目。 – “次要调整”和“基于 BDoc 的调整”的表述是等价的。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 249 .

com) CR500: CRM Middleware 250 .第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 次要调整如何工作? – 一旦请求了调整,BDoc 消息被复制到独立的调整队 列准备进一步处理。 – 调整队列负责维护巡查表。在这些巡查表中,维护复 制对象和站点的分配。如果过去做出的分配被修改 了,例如,如果输入新对象或旧对象被删除或分发标 准被修改,这必须在相关的巡查表中体现。 – 该活动是必要的,因为这些对巡查表的修改被写入抽 取队列。存在两个抽取队列:一个用于批量的 BDoc 消息复制,一个用于智能 BDoc 消息复制。通过使用 BDoc 消息,这些活动通过出站适配器被传递给相关 站点和对应的出站队列。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 主要调整(同步) – 主要调整与多个 BDoc 实例关联。 – 例如:销售代表负责一个新的销售区域。这意味着对 相应站点的订阅都必须修改。可以在管理控制台中修 改站点来完成:(解除)分配订阅或修改订阅:(解 除)分配站点。 – 它在用管理控制台输入/删除订阅时出发。 – 它由很多次要调整组成。 – “主要调整”和“基于包的调整”的表述是等价的。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 251 .

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 主要调整如何工作? – 任何时候站点到订阅的分配被添加或删除时,相应的 订阅被追加到 SUBCHECK 队列。所有被这个订阅影 响的 BDoc 实例都被添加到整理队列。从那里,对于 BDoc 实例的整理计算按与次要调整相同的方式执行。 这确保了依赖 BDoc 实例也会在主要调整时被重新分 发。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 252 .

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 复制和整理队列监视 – 复制和整理队列只用于移动客户端。 – 复制和整理队列为当前客户端显示: • AC_EXTRACT 队列表示直接在管理控制台出发的抽取作业。 • EXTRACTBLK 队列用于批量复制 BDoc 消息的抽取请求。 • EXTRACT、REALIGN、DEPENDENCY 和 SUBCHECK 被 用于复制和整理。复制队列可以通过点击交通灯来手工停止 和开始。 – 通常,所有队列都应该在运行或等待,后台的批处理 作业在有条目输入到队列中时,被队列监督程序自动 触发。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 253 .

第七单元 SAP CRM 现场销售 第十课 次要和主要的调整 • 复制和整理队列监视(续) – 队列后显示的数字表示当前队列中的条目数量。这个 数量应该持续减少,除非同时有新条目被加入队列。 通过点击数字,可以查看相关队列中的条目。 – 如果队列中的条目数量长期保持不变,检查队列监控 程序的状态是否为 RUNNING。 – 系统路径:中间件 → 监视 → 队列 → 监视器 R 和 R 队列(事务码 SMOHQUEUE)。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.com) CR500: CRM Middleware 254 .

com) CR500: CRM Middleware 255 .附录一:群件准备和同步设置指南 • 主要步骤 – – – – – – 准备下载定制 加载定制对象到 MapBox 资源库 加载业务合作伙伴到 MapBox 资源库 公共文件夹联系人同步 私人联系人文件夹同步 从 CRM 为群件激活同步 – 详细内容略,请自行阅读原文。 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.

com) CR500: CRM Middleware 256 .后记 • • 本文看过后感觉一头雾水,好像通篇就在翻来覆去折腾那几个小概念: 出站、入站、队列、BDoc。其实 SAP 以及它认证的那些公司把工具 全都做好了,我们需要学习的只是如何使用它们,如果针对各种外部 系统选择合适的中间件方案。 发现所谓的 CRM 技术教材还是侧重于配置和使用,并没有涉及到开 发的内容,略感失望。由于我们此次 CRM 项目不实施服务模块,也 没有呼叫中心,因此略过 CR410《SAP 交互中心 WebClient》,下 一篇学习 CR100《定制基础》——各个主要模块的配置。 • 如果这篇笔记能对您了解 SAP 开发有一点帮助,我会感到十分欣慰。 • 您可以在网络上转发这篇学习笔记,可以把它用在任何非盈利的培训 中,可以摘录其中内容用在您的免费文章中。但是为了表示对我劳动 的尊重,请不要以任何形式赢取利益(包括积分下载等可能引起别人 支付现金换取积分的情形),请保留我的署名。 强晟 2010年7月4日 SAP 学习笔记系列 (by 强晟 qiangsheng@hotmail.