SAP CRM附件在應用伺服器上的儲存原理解析

i042416發表於2020-08-06

History:

Content Management(CM) was introduced in basis release 6.10 and implemented in CRM 3.0. Before CM was used, CRM applications was using the Business Document Service (BDS) or Generic Object Services (GOS) to implement Document management requirement. BDS was used in most applications like Business partners, products, product catalogues, solution database, campaigns. GOS was only used in the One Order objects like activities and opportunities. All BDS applications changed to CM in 3.0, the One Order objects only in 3.1.

A document in CM consists of several objects. The most important two are so called “logical info object” (LOIO) and a “physical info object” (PHIO). A LOIO as a logical folder or bracket which holds PHIOs together, while a PHIO represents the content of a specific version of a document. Let’s use the word edit in the real world as example. If one works on a Word document and changes the document over time, each saved version would be represented by a PHIO. The LOIO would be the word document itself. This is much like if one looks at SE38 in ABAP: The program name is the LOIO and each transported version of the code is the PHIO.

Let’s see an example. I have a product ZCM_DEMO with guid 0090FA0D8DC21ED395FD7C687F99BFF7, BOR type = BUS1178. I create one attachment for it:


SAP CRM附件在應用伺服器上的儲存原理解析


Go to table SKWG_BREL, input product guid 0090FA0D8DC21ED395FD7C687F99BFF7, and we see two entries belonging to this product. The first entry indicates a folder instance which is actually a logical container to hold all attachments for the given product.


SAP CRM附件在應用伺服器上的儲存原理解析


The content of column INSTID_B has naming convention as . The guid in the first row can be found in table CRM_FOLDER:


SAP CRM附件在應用伺服器上的儲存原理解析


The guid 0090FA0D8DC21ED395FD830F8DD9DFFF in the second row can be found in table BDSLOIO22, together with the name of attachment.


SAP CRM附件在應用伺服器上的儲存原理解析


You are asking how I get to know the name of table BDSLOIO22? If one application wants to use CM to store document, it should have its dedicated class for physical object and logical object, or use the default one CRM_L_DOC. The relationship between application and its class is maintained in tcode DMWB:


SAP CRM附件在應用伺服器上的儲存原理解析


in table BDSPHIO22, by specifying logical information object ID, we can get all phyiscal object lists.


SAP CRM附件在應用伺服器上的儲存原理解析


once you get phyical object id 0090FA0D8DC21ED395FD830F8DD9FFFF, you can find the respective entries in table BDSCONT22.


SAP CRM附件在應用伺服器上的儲存原理解析


The real content of attachment is stored in a claster way, so you cannot see its detail in SE16.


SAP CRM附件在應用伺服器上的儲存原理解析


How do I know the database table name BDSCONT22? (1) Get the storage category BDS_DB22 by physical class name.


SAP CRM附件在應用伺服器上的儲存原理解析


(2) execute function module SCMS_SDOKSTRE_LIST to get all lists of database table. Then you can find the table name BDSCONT22 for your storage category BDS_DB22.


SAP CRM附件在應用伺服器上的儲存原理解析


要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

SAP CRM附件在應用伺服器上的儲存原理解析


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2709634/,如需轉載,請註明出處,否則將追究法律責任。

相關文章