深入介绍 CRM 附件存储的底层实现机制

举报
汪子熙 发表于 2024/04/05 20:18:24 2024/04/05
【摘要】 内容管理 (Content Management,简称 CM)模块在基础版本 6.10 中引入并在 CRM 3.0 中实施。在使用CM之前,CRM应用程序使用业务文档服务(BDS)或通用对象服务(GOS)来实现文档管理需求。BDS 用于大多数应用程序,例如业务合作伙伴、产品、产品目录、解决方案数据库、活动。 GOS 仅用于活动和机会等单序对象。所有 BDS 应用程序在 3.0 中都更改为 C...

内容管理 (Content Management,简称 CM)模块在基础版本 6.10 中引入并在 CRM 3.0 中实施。

在使用CM之前,CRM应用程序使用业务文档服务(BDS)或通用对象服务(GOS)来实现文档管理需求。BDS 用于大多数应用程序,例如业务合作伙伴、产品、产品目录、解决方案数据库、活动。 GOS 仅用于活动和机会等单序对象。所有 BDS 应用程序在 3.0 中都更改为 CM,仅在 3.1 中更改为 One Order 对象。

CM 中的文档由多个对象组成。 最重要的两个是所谓的“逻辑信息对象”(LOIO)和“物理信息对象”(PHIO)。 LOIO 作为将 PHIO 组合在一起的逻辑概念上的容器,而 PHIO 表示文档特定版本的内容。

我们可以通过现实世界中的 Word 文档编辑为例来理解 LOIO 和 PHIO 的概念区别和联系。

如果一个人处理 Word 文档并随着时间的推移更改该文档,则每个保存的版本都将由 PHIO 表示。而 LOIO 将是 Word 文档本身。

这很像在 ABAP 中查看 SE38:程序名称是 LOIO,每个传输的代码版本是 PHIO。

让我们看一个例子。 我有一个 CRM 附件产品 ZCM_DEMO,guid 0090FA0D8DC21ED395FD7C687F99BFF7,BOR 类型 = BUS1178。

我为其创建一个附件:

然后我们去查询数据库表 SKWG_BREL,输入产品 guid 0090FA0D8DC21ED395FD7C687F99BFF7,我们看到属于该产品的两个条目。 第一个条目指示一个文件夹实例,它实际上是一个逻辑容器,用于保存给定产品的所有附件。

上图INSTID_B 列的内容的命名约定为 <类型:F(旧)或 L(逻辑对象)><逻辑对象类型名称><guid>。

第一行中的 guid 可以在表 CRM_FOLDER 中找到:

第二行中的 guid 0090FA0D8DC21ED395FD830F8DD9DFFF 可以在表 BDSLOIO22 中找到,以及附件名称。

有朋友觉得好奇,我是如何知道表 BDSLOIO22 的名称?

其实如果一个应用程序想要使用CM来存储文档,那么它应该有其专用的物理对象和逻辑对象类,或者使用默认的CRM_L_DOC。 应用程序与其类之间的关系在 tcode DMWB 中维护:

在表BDSPHIO22中,通过指定逻辑信息对象ID,我们可以获得所有物理对象列表。

一旦获得物理对象 ID 0090FA0D8DC21ED395FD830F8DD9FFFF,我们就可以在表 BDSCONT22 中找到相应的条目。

附件的真实内容以集群方式存储,因此在SE16中无法看到其详细信息。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。