当前位置: 首页 > Web前端 > HTML

SAPCRM中的单据流API和C4C

时间:2023-04-02 23:08:30 HTML

CRM中的单据流API用一个具体的例子来说明。在Appointment的Overview页面,可以看到一个叫做Reference的区域,在这里可以维护其他一些业务单据的ID,以便将业务单据与当前正在编辑的Appointment关联起来。我写了一个简单的报表来演示如何使用ABAP代码给Reference区的字段赋值。其背后使用的API其实就是CRMDocumentflow相关的API。报告的源代码在我的github上:代码的核心是使用CRMOneOrder的功能模块CRM_ORDER_MAINTAIN,将文档流相关的数据传入变化参数ct_doc_flow。这个ct_doc_flow的内容生成逻辑如下。既然是DocumentFlow,那么肯定涉及到两个文档,存储在API中后缀为A和B的字段中,如下图绿色区域所示。这些字段需要分别存储两个文档的GUID和BOR类型。假设我执行报表时指定的OpportunityID是888,那么报表执行成功后,在References区域可以看到如下字段。可以正常显示Opportunity的ID和描述信息。同时在TransactionHistory区域也可以看到关系:DocumentflowAPIinC4C假设我需要在CloudApplicationStudio中开发一个功能,让客户手动关联两张Ticket。1、在Ticket的BOServiceRequest上新建actionlinkTicket,实现关联逻辑。同时新建一个字段用来存放需要关联的TicketID:通过CloudApplicationStudio将这个新字段赋值给UI,在工具栏添加一个按钮绑定到BO的actionlinkTicket。动作实现代码:importABSL;vareleBTD:ServiceRequest.BusinessTransactionDocumentReference的元素;eleBTD.BusinessTransactionDocumentReference.ID.content=this.refTicket;eleBTD.BusinessTransactionDocumentReference.TypeCode="118";//BOServiceRequesteleBTD.BusinessTransactionDocumentRelationCode=2Role";//后继文件this.BusinessTransactionDocumentReference.Create(eleBTD);2.假设我要关联Ticket3638和Ticket3622,我需要打开Ticket3638,在Ticket中手动输入3622newfieldReferenceTicket,然后点击LinkTicket按钮,执行成功后,可以在Ticket的DocumentFlow选项卡中看到这个关系。