写点什么

SAP CRM 和 Cloud for Customer 的 Document flow API 介绍

用户头像
Jerry Wang
关注
发布于: 2021 年 05 月 23 日
SAP CRM 和 Cloud for Customer 的 Document flow API 介绍

Document flow API in CRM

以一个具体的例子来说明。在 Appointment 的 Overview page 上能看见一个名叫 Reference 的区域,这里可以维护一些其他的业务文档的 ID,这样可以将该业务文档同当前正在编辑的 Appointment 关联起来。



我写了一个简单的报表来演示如何用 ABAP 代码给这个 Reference 区域的字段赋值,背后用到的实际上就是 CRM Document flow 相关的 API. 报表的源代码在我的github上:


代码的核心就是使用 CRM One Order 的 function module CRM_ORDER_MAINTAIN, 把 document flow 相关的数据传入到 changing 参数 ct_doc_flow 里。



这个 ct_doc_flow 的内容生成逻辑如下。既然是 Document Flow,必然涉及到两个 document,在 API 里用后缀为 A 和 B 的字段来存储,如下图绿色区域所示。这些字段需要分别存储两个 document 的 GUID 和 BOR 类型。



假设我执行 report 时指定的 Opportunity 的 ID 是 888,那么 report 成功执行后,我能在 References 区域看到如下的字段。Opportunity 的 ID 和描述信息已经能够正常显示了。



同时在 Transaction History 区域也能看到该关联关系:


Document flow API in C4C

假设我需要在 Cloud Application Studio 里开发一个功能,允许客户能够手动将两个 Ticket 关联起来。


1. 在 Ticket 的 BO ServiceRequest 上创建一个新的 action linkTicket 用于实现关联逻辑。同时创建一个新字段用于存储需要关联的 Ticket ID:



通过 Cloud Application Studio 将这个新字段配到 UI 上,同时在工具栏里新增一个按钮,绑定到 BO 的 action linkTicket 上。




Action 的实现代码:


import ABSL;
var eleBTD: elementsof ServiceRequest.BusinessTransactionDocumentReference;
eleBTD.BusinessTransactionDocumentReference.ID.content = this.refTicket;
eleBTD.BusinessTransactionDocumentReference.TypeCode = "118"; // type code of BO ServiceRequest
eleBTD.BusinessTransactionDocumentRelationshipRoleCode = "2"; // Successor document
this.BusinessTransactionDocumentReference.Create(eleBTD);
复制代码


2. 假设我想把 Ticket 3638 和 Ticket 3622 关联起来,我需要打开 Ticket 3638,在新字段 Reference Ticket 里手动输入 3622,然后点击按钮 Link Ticket.



成功执行之后,在 Ticket 的 Document Flow tab 即可看到这个关联关系。



要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":



发布于: 2021 年 05 月 23 日阅读数: 7
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
SAP CRM 和 Cloud for Customer 的 Document flow API 介绍