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.txturl

  • /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的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索