SAP CRM和C4C的内容管理(Content Management)

SAP CRM内容管理

SAP CRM使用Attachments这个UI给用户提供内容管理的功能。通过新建按钮可以上传本地文档到CRM系统:

该内容管理支持简单的版本管理功能,用户可点击Check Out将一个文档导出到本地,编辑结束之后通过Check In按钮将修改版本导入至CRM。

每次Check Out / Check In会生成一个新的版本。

从技术上来说,每一个文件上传到CRM后,会自动生成一个Logical Info Object(LOIO)和Physical Info Object(PHIO)。仅从这对概念的名称就能猜到它们的用途:LOIO是一个逻辑上的概念,描述一个文件的客观存在。PHIO则承载一个文件的具体内容,每次Check In之后,用户在UI上看到一个新版本的生成,而后台则对应一个新的PHIO实例的生成。这也是为什么查看Content Management对应的API CL_CRM_DOCUMENTS, 会发现很多方法的参数里都有LOIO/PHIO出现的原因。

CRM内容管理系统的内容存储实现

内容管理系统要实现的一个重要功能就是内容存储。我给CRM系统里某个product上传了一个文本文件。

点击文件名"Jerry"这个超链接,在浏览器里打开了文本文件。

那么这个文本文件如何存储在CRM服务器上的?仔细查看这个浏览器链接:

/sap/bc/contentserver/001/jerry?get&pVersion=0045&contRep=BDS_DB22&docId=FA163EE56C3A1EE8908EFBAA20D4FC6C&compId=jerry.txt

  • /sap/bc/contentserver:事务码SICF,Service Name输入contentserver,可以找到这个Service对应的ABAP处理类CL_HTTP_EXT_CSIF。

在其方法HANDLE_REQUEST设置断点即可调试。

介绍了如何通过BDS_DB22这个编号找到对应的后台数据库表名称。通过文章里介绍的步骤,找到数据库表BDSCONT22。

docId=FA163EE56C3A1EE8908EFBAA20D4FC6C

把这个docId放到BDS_DB22这张表里根据PHIO_ID查询,即可找到上述例子里文本文件jerry.txt在这张表里存储的内容。

因为除了文本文件,内容管理系统还需要支持其他诸如PDF或视频文件的存储,因此数据库表对应字段采用了特殊的数据类型INDX_CLSTR和INDX_CLUST,因此文件的具体内容无法直接通过在事物码SE16查表浏览。

而需要使用function module SCMS_R3DB_IMPORT。如果查看其代码,会发现这个函数正是使用了ABAP关键字IMPORT去操作这两个特殊的表字段从而读取出文件的实际内容。

作为企业级管理软件的一个模块,病毒扫描的支持是必不可少的。SAP在CRM内容管理系统里实现了病毒扫描的框架,而具体执行病毒扫描的引擎由客户自行配置:

在我的公众号文章SAP S4CRM vs C4C, 诸葛亮和周瑜?里提到SAP CRM内容管理的一个特色功能:用户可以点击下图step 1中的"With Template"按钮,在本地开发一个word模板文件,将里面的字段绑定到CRM标准的BO模型字段上,如下图step 2所示。运行时渲染的word文件里就会显示其从属的业务文档里的对应数据,如图step 3所示。

这个运行时word文件的渲染实现,其技术原理在我的博客Manipulate Docx document with ABAP里介绍过。

关于SAP CRM内容管理的更多介绍,请参考我的博客合集:

A collection of technical details about Content Management

C4C 内容管理

作为一款云产品,用户从浏览器里无法像在SAP CRM那样,能够轻易地查看其服务器端的存储明细。在Chrome开发者工具里看到文件的超链接是一个简单的"#"。

实际情况是,每次点击超链接,C4C的ABAP后台会动态计算出该文件供用户下载或者预览的url:

https://xxxxx.crm.ondemand.com/sap(cz1TSUQlM2FBTk9OJTNhdmFhaTAza3ZjX0tWQ18wMCUzYXpkMUFiM1FIQ1VfR2pUU2NWbEZBUzk5NWtydVBnaF9GWXNBaXhBWUMtQVRU)/ap/ds/wd/doc/00163E11A66C1ED8909167D838730A19/clipboard1.png?sap-client=331&Ctxt=QlVTSU5FU1NfUEFSVE5FUl9UTVBMOkFUVEFDSE1FTlRfRk9MREVS&Shm=00163E11A66C1ED8909167D838730A19

因为C4C的后台对客户和Partner不可见,因此这个url的计算逻辑不便透露。

C4C同CRM一样,对于上传的文件和发送的邮件均有内置的病毒扫描引擎以确保C4C解决方案的安全性。

除此之外,您也能通过Business Configuration工作中心里配置允许哪些MIME Type的文件上传到C4C系统。

对于在Cloud Application Studio里自己创建的Custom BO,也可通过简单的步骤即可同样支持文件上传的功能。具体步骤参考我的博客:

Step by step to enable your custom BO with attachment upload functionality

如果上传的文件是图片,您甚至可以在Cloud Application Studio里做些简单的开发,将这些图片和Custom BO的数据合并起来,渲染成一个PDF文件。

具体步骤参考我的博客:

How to render PDF which displays picture from the image attachment of your custom BO

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:https://www.cnblogs.com/sap-jerry/p/8903981.html

时间: 2024-10-28 17:40:27

SAP CRM和C4C的内容管理(Content Management)的相关文章

Document flow API in SAP CRM and C4C

Document flow API in CRM 以一个具体的例子来说明.在Appointment的Overview page上能看见一个名叫Reference的区域,这里可以维护一些其他的业务文档的ID,这样可以将该业务文档同当前正在编辑的Appointment关联起来. 我写了一个简单的报表来演示如何用ABAP代码给这个Reference区域的字段赋值,背后用到的实际上就是CRM Document flow相关的API. 报表的源代码在我的github上: 代码的核心就是使用CRM One

SAP CRM,C4C和Hybris的页面技术明细信息查看

CRM 按F2就能看到页面的technical data, 就能找到当前页面是哪一个BSP component实现的: C4C 也能看见technical data Hybris 比如这个product detail page,我想知道是哪个JSP文件实现的? 问了成都Hybris开发同事,答案是没有,得自己找. 囧 找到product detail page: 双击进去: 找到这个product detail page的明细: 用类似ABAP的思路:SE16查表: select * from

SAP S4CRM和C4C的技术比较

如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4C)不甚熟悉,那我建议您可以先浏览我之前写的这两篇微信公众号文章. SAP的这三款CRM解决方案,您能区分清楚么 Hello World, S/4HANA for Customer Management 1.0 发布了这两篇文章之后,我在后台收到很多朋友的留言,询问S4CRM和C4C相比较的各种问题.因此我写了这篇文章,统一作答. Jer

SAP CRM 开发学习资料和教程整理

首先是SAP网站上面的相关内容 SAP Customer Relationship Management:SAP的帮助中心,里面的内容比较全面 CRM Books:相关书籍,我没有看过,因为看起来全都价格不菲 https://wiki.scn.sap.com/wiki/display/CRM:CRM WIKI,有很多现成的解决问题的办法 https://wiki.scn.sap.com/wiki/display/CRMSales:也是CRM WIKI,和上一个区别是主要由中文内容构成 Busin

SAP CRM 为用户创建业务合作伙伴并分配到组织单位

想要在SAP CRM的前台完成一些操作,需要登录的用户在系统中存在对应的业务合作伙伴才可以,某些情况下,还需要被分配到公司.部门.职位.下面是相关的操作步骤. 本文假定读者已经拥有一个开发帐号. 本文地址:http://www.cnblogs.com/hhelibeb/p/6268387.html 原创内容,转载请注明 创建BP 前往事务代码BP,点击新建人员按钮 类型选择 员工 在新屏幕中填入姓名.国家等必输项 关键步骤:切换到“标识”(Identification)标签,输入用户名,保存 点

SAP CRM BOL编程基础,代码+详细注释

网络上可以找到一些使用BOL查询.维护数据的DEMO,但几乎都是单纯的代码,缺乏说明,难以理解.本文除了代码外,还给出了详细的注释,有助于理解BOL编程中的一些基本概念. 这是一篇翻译的文章,你可能会发现部分内容不是很好理解,这时可以直接阅读原文. 原文所在的sapcrmwebui.com是一个不错的博客,然而网站不是很稳定,偶尔会连接不上,建议使用Internet Archive访问. 如果你访问不了Internet Archive,说明你需要一点过墙的手段. 本文链接:http://www.

SAP CRM 高效调试方法

调试,是程序开发中的基本技巧.在SAP CRM中,错误消息通常在前台的Web页面中展示,快速定位错误消息在源代码中的位置,对发现和解决程序中的问题有着重要的意义. 我在SAP的网站上面找到了一篇不错的相关文章,翻译在这里. 英文原文:How to quickly locate the code where the error message is raised for Business Transaction Application 本文链接:http://www.cnblogs.com/hhe

sap crm 常用表

[转自 http://blog.csdn.net/zhongguomao/article/details/6714616] SAP CRM 参数文件集目标组常用表: CRMD_MKTTG_TG_T CRM 市场营销: 目标组文本 CRMD_MKTTG_TG_H CRM 市场营销: 目标组抬头数据 CRMD_MKTTG_TG_I CRM 市场营销: 目标组项目CRMD_MKTTG_PF_H CRM 市场营销:参数文件/注意DELETE_FLAG标志,删除后不能恢复 CRMD_MKTTG_PF_T 

百会CRM:将客户关系管理到极致

对一个企业来说,管理.市场.人才.品牌等这些珍贵的资源,具有非常重要的价值.而客户资源属于市场资源的一种,它对企业的发展起着至关重要的作用.那么针对这种宝贵的客户资源,该如何管理,才能够实现对企业价值的最大化?选择CRM系统,已是全球众多企业进行客户关系管理的首选. CRM坦白:"我不是你的全部" 当然,是不是引进一款CRM系统,就能够解决企业发展的所有问题呢?一个企业的发展,它包含着生产管理.成本管理.销售管理.往来现金.固定资产等应用管理.这一系列的组合,促成了一个公司的正常运转.