SAP CRM数据库表CRMD_SRV_REFOBJ和CRMD_SRV_OSSET
It is allowed to create several reference objects per header or item of a given business document.
The related database tables to maintain the relationship between a business document and its referenced object are listed below:
You can run the following report to get a list of all business document which have been assigned with at least one product as reference object:
REPORT order_display_has_ref_obj.
SELECT * INTO TABLE @DATA(lt_refobj) FROM crmd_srv_refobj WHERE type_object = 'A'. " product
CHECK sy-subrc = 0.
SELECT * INTO TABLE @DATA(lt_osset) FROM crmd_srv_osset FOR ALL ENTRIES IN @lt_refobj
WHERE guid = @lt_refobj-guid_ref.
CHECK sy-subrc = 0.
SELECT * INTO TABLE @DATA(lt_link) FROM crmd_link FOR ALL ENTRIES IN @lt_osset
WHERE guid_set = @lt_osset-guid_set.
CHECK sy-subrc = 0.
SELECT * INTO TABLE @DATA(lt_order) FROM crmd_orderadm_h FOR ALL ENTRIES IN @lt_link
WHERE guid = @lt_link-guid_hi.
LOOP AT lt_order ASSIGNING FIELD-SYMBOL(<order>).
WRITE:/ |Order ID: { <order>-object_id }, type: { <order>-process_type }, Description: { <order>-description }| COLOR COL_GROUP.
ENDLOOP.
SELECT * INTO TABLE @DATA(lt_item) FROM crmd_orderadm_i FOR ALL ENTRIES IN @lt_link
WHERE guid = @lt_link-guid_hi.
CLEAR: lt_order.
SELECT * INTO TABLE lt_order FROM crmd_orderadm_h FOR ALL ENTRIES IN lt_item
WHERE guid = lt_item-header.
LOOP AT lt_item ASSIGNING FIELD-SYMBOL(<item>).
READ TABLE lt_order ASSIGNING <order> WITH KEY guid = <item>-header.
ASSERT sy-subrc = 0.
WRITE:/ |Item: { <item>-description }, Order id: { <order>-object_id } | COLOR COL_NEGATIVE.
ENDLOOP.
On the other hand, if you know the ID of order and you would like to check whether it has been assigned with reference product or not, you can execute this report:
REPORT ORDER_DISPLAY_REFERENCE_PROD.
PARAMETERS: id TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '8000002271',
ptype TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'SRVO'.
SELECT SINGLE guid INTO @DATA(guid) FROM crmd_orderadm_h WHERE object_id = @id
AND process_type = @ptype.
IF sy-subrc <> 0.
WRITE:/ |document not found for id: { id }| COLOR COL_NEGATIVE.
RETURN.
ENDIF.
SELECT SINGLE guid_set INTO @DATA(setguid) FROM crmd_link
WHERE guid_hi = @guid AND objtype_set = '29'.
CHECK sy-subrc = 0.
SELECT * INTO TABLE @DATA(lt_osset) FROM crmd_srv_osset
WHERE guid_set = @setguid.
CHECK sy-subrc = 0.
SELECT * INTO TABLE @DATA(lt_refobj) FROM crmd_srv_refobj FOR ALL ENTRIES IN @lt_osset
WHERE guid_ref = @lt_osset-guid.
LOOP AT lt_refobj ASSIGNING FIELD-SYMBOL(<obj>).
cl_crm_1order_set_print_tool=>print_structure( <obj> ).
ENDLOOP.
Specify the order ID and type:
If this order has reference product assigned, the product information will be printed out:
You may observe that every time you create a new Service Order with transaction type SRVO, there will automatically be two entries generated in table CRMD_SRV_OSSET, one for subject_profile SERVICE and the other for ACT00001.
The two profiles are configured via the following customizing:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法