淺談 CRM 系統中文檔流 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即可看到這個關聯關系。
ABAP API javaScript OpenAPI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。