使用代码创建CRM服务请求文档的subject测试数据

网友投稿 517 2022-05-29

要求所有创建的Service Request的测试数据必须都维护好Subject:

如何用CRM_ORDER_MAINTAIN维护这个field?

First have a look at how SERVICE_OS is filled by CRM_ORDER_MAINTAIN when choosing one value from drop down list:

I have to figure out where this two REF_GUID come from so that I can do the same thing in my code.

Answer for first guid: CL_CRM_CATEGORY_RUN_BTIL~GET_OSSET_GUID

Answer for second guid:

使用代码创建CRM服务请求文档的subject测试数据

Test code:

REPORT zcreate_subject. DATA: lt_input_fields TYPE crmt_input_field_tab, ls_input_field LIKE LINE OF lt_input_fields, ls_field_name LIKE LINE OF ls_input_field-field_names, lv_guid TYPE guid_16, lt_orderadm_h_com TYPE crmt_orderadm_h_comt, ls_orderadm_h_com LIKE LINE OF lt_orderadm_h_com, ls_com_structure TYPE string, lv_selection_needed TYPE crmt_boolean, lt_save TYPE crmt_object_guid_tab, lt_saved TYPE crmt_return_objects, lt_service_os TYPE crmt_srv_osset_comt, ls_service_os TYPE LINE OF crmt_srv_osset_comt, lt_osset TYPE crmt_srv_osset_comt1, ls_osset TYPE LINE OF crmt_srv_osset_comt1, ls_read_oss TYPE crmt_srv_osset_wrk, ls_saved LIKE LINE OF lt_saved, lt_subject TYPE crmt_srv_subject_comt, ls_subject TYPE LINE OF crmt_srv_subject_comt. START-OF-SELECTION. CALL FUNCTION 'GUID_CREATE' IMPORTING ev_guid_16 = lv_guid. PERFORM call_order_maintain. PERFORM call_order_save. FORM prepare_service_os. ls_service_os = VALUE #( ref_guid = lv_guid ref_kind = 'A' ). ls_osset-profile_type = 'A'. CALL FUNCTION 'CRM_GUID_CREATE' IMPORTING ev_guid = ls_osset-ref_guid. CALL FUNCTION 'CRM_GUID_CREATE' IMPORTING ev_guid = ls_subject-ref_guid. ls_subject-asp_id = 'YBP_SERVICE'. ls_subject-katalog_type = 'D'. ls_subject-cat_id = 'CA_7'. ls_subject-mode = 'A'. APPEND ls_subject TO ls_osset-subject. APPEND ls_osset TO lt_osset. APPEND LINES OF lt_osset TO ls_service_os-osset. APPEND ls_service_os TO lt_service_os. CLEAR: ls_input_field. ls_input_field-ref_guid = lv_guid. ls_input_field-ref_kind = 'A'. ls_input_field-objectname = 'SERVICE_OS'. ls_field_name-fieldname = 'ASP_ID'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'CAT_ID'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'CODE'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'CODEGRUPPE'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'KATALOGART'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'MODE'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'REF_GUID'. APPEND ls_field_name TO ls_input_field-field_names. APPEND ls_input_field TO lt_input_fields. ENDFORM. FORM call_order_maintain. CLEAR: ls_orderadm_h_com, ls_input_field, lt_input_fields. ls_orderadm_h_com-guid = lv_guid. ls_orderadm_h_com-description = 'created by code on:' && sy-timlo. ls_orderadm_h_com-process_type = 'SRVR'. ls_orderadm_h_com-mode = 'A'. APPEND ls_orderadm_h_com TO lt_orderadm_h_com. ls_input_field-ref_guid = lv_guid. ls_input_field-ref_kind = 'A'. ls_input_field-objectname = 'ORDERADM_H'. ls_field_name-fieldname = 'DESCRIPTION'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'MODE'. APPEND ls_field_name TO ls_input_field-field_names. ls_field_name-fieldname = 'PROCESS_TYPE'. APPEND ls_field_name TO ls_input_field-field_names. APPEND ls_input_field TO lt_input_fields. PERFORM prepare_service_os. CALL FUNCTION 'CRM_ORDER_MAINTAIN' EXPORTING it_service_os = lt_service_os CHANGING ct_orderadm_h = lt_orderadm_h_com ct_input_fields = lt_input_fields EXCEPTIONS OTHERS = 99. IF sy-subrc = 0. WRITE:/ 'Order maintain function is done successfully.'. ENDIF. ENDFORM. FORM call_order_save. INSERT lv_guid INTO TABLE lt_save. CALL FUNCTION 'CRM_ORDER_SAVE' EXPORTING it_objects_to_save = lt_save iv_update_task_local = abap_true iv_no_bdoc_send = abap_true IMPORTING et_saved_objects = lt_saved EXCEPTIONS document_not_saved = 1. IF sy-subrc <> 0. WRITE: / 'Service Request created failed'. ELSE. READ TABLE lt_saved INTO ls_saved INDEX 1. WRITE: / 'Service Request created successfully, id: ' , ls_saved-object_id. ENDIF. COMMIT WORK AND WAIT. ENDFORM.

Master tenant in Hybris

根据help.hybris.com的介绍,每个Hybris server只有1个master tenant,该tenant自动创建且不能删除。

tenant信息在admin console里查看:

所有其他tenant(成为slave tenant)的technical setting,也就是JVM的setting都默认继承自master tenant:

但是和Netweaver一样,Hybris里每个tenant允许定义自己的locale和timezone, currency, date format设置。

System client in Netweaver

SAP help里的介绍:

Special client in AS ABAP with the client ID “000”. The system client is where system-specific system programs run. When you log on to the system client of a multitenancy AS ABAP, you are not subject to the restrictions caused by tenant isolation. Furthermore, other clients have read-only access to data stored there under the client ID of the system client.

Client 000 is basically used as working client only when you do support pack upgrade or ABAP load generations (SGEN) and implementing additional languages, etc. Otherwise, client 000 should not be used as a working client.

以前做BYD时,成都开发团队在dev系统上给客户做好addon,然后把package好的content(其实就是一个.zip文件)安装到测试系统上. 安装流程就是首先登陆测试系统的client 000.

原则上system client不允许拿来做transaction处理,所以才有了下面的check:

ABAP web前端 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[跟着官方文档学Selenium][学习笔记][九][WebDriver的双向协议]
下一篇:数据样本少?数据不出局?联邦学习专治各种不服!
相关文章