我们打开一个 SAP 帮助文档的页面,看到如下链接:
其中 q=site
表明查询关键字为 site,loio 后面是一串 guid:
loio76a5e87baecd4900b2d0f16e3768354e
version=2205 表明 Commerce Cloud 的版本号。
在SAP CRM中URL对象以逻辑对象(LOIO)和物理对象(PHIO)的形式存储。
为了获得LOIO和PHIO的值,我们需要使用方法:CL_CRM_DOCUMENTS=>GET_INFO_URL。
我们需要将 INSTID_A + TYPEID_A + CATID_A 字段传递到数据库表 SKWG_BREL 作为输入。
函数 SDOK_LOIO_GET_URI 可以用来读取 url.
使用如下的代码,根据 loio guid,获得 document url:
TYPES : BEGIN OF l_typ_instid, instid_a LIKE skwg_brel-instid_a, END OF l_typ_instid. ** Get URL link DATA : l_tab_loios TYPE skwf_ios, l_tab_phios TYPE skwf_ios, l_wa_loios TYPE skwf_io, l_wa_phios TYPE skwf_io, l_wa_busobject TYPE sibflporb, l_wa_object TYPE sdokobject, l_wa_skwg TYPE skwg_brel, l_wa_url TYPE sdokcomurl, l_var_url TYPE saeuri. DATA : l_tab_skwg TYPE STANDARD TABLE OF skwg_brel, l_tab_instid TYPE STANDARD TABLE OF l_typ_instid. FIELD-SYMBOLS : <l_wa_instid> TYPE l_typ_instid, <l_wa_guid> TYPE os_guid. LOOP AT it_object_guid ASSIGNING <l_wa_guid> . APPEND INITIAL LINE TO l_tab_instid ASSIGNING <l_wa_instid>. <l_wa_instid>-instid_a = <l_wa_guid>. ENDLOOP. SELECT * FROM skwg_brel INTO TABLE l_tab_skwg FOR ALL ENTRIES IN l_tab_instid WHERE instid_a = l_tab_instid-instid_a AND instid_b LIKE ‘L/CRM_L_URL%’. SORT l_tab_skwg BY instid_a typeid_a catid_a. DELETE ADJACENT DUPLICATES FROM l_tab_skwg COMPARING instid_a typeid_a catid_a. LOOP AT l_tab_skwg INTO l_wa_skwg. CLEAR : l_wa_busobject. REFRESH : l_tab_loios, l_tab_phios. l_wa_busobject-instid = l_wa_skwg-instid_a. l_wa_busobject-typeid = l_wa_skwg-typeid_a. l_wa_busobject-catid = l_wa_skwg-catid_a . CALL METHOD cl_crm_documents=>get_info_url EXPORTING business_object = l_wa_busobject IMPORTING loios_url = l_tab_loios phios_url = l_tab_phios. LOOP AT l_tab_loios INTO l_wa_loios. CLEAR : l_wa_object, l_var_url, l_wa_url. MOVE-CORRESPONDING l_wa_loios TO l_wa_object. CALL FUNCTION ‘SDOK_LOIO_GET_URI’ EXPORTING object_id = l_wa_object IMPORTING uri = l_var_url. MOVE l_wa_skwg-instid_a TO l_wa_url-component. MOVE l_var_url TO l_wa_url-url. APPEND l_wa_url TO et_urls. ENDLOOP. ENDLOOP.
SAP Document 存储支持如下几种方式:
- SAP DMS
- Generic Object Services
- Direct upload as in CRM, PPM
- Business Document Services
- Archivelink
以上方法除了 archivelink 外,都使用 LOIO 和 PHIO 类的概念在SAP中上传原始文件。除了archivelink外,每个文档上传方法都有链接的PHIO和LOIO类。SAP Object链接到LOIO id,原始文档链接到PHIO id。每种文档上传方法的LOIO id和PHIO id之间存在一定的关系。
默认情况下,对于除archivelink之外的每种文档上传方法,原始文档都存储在SAP数据库表中。对于SDOKPHCL表中针对各自的PHIO类的每个上传方法,都可以使用默认的SAP数据库表。如果需要,可以使用配置将这些原始文件定向到内容服务器。