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

举报
Jerry Wang 发表于 2022/02/28 17:56:24 2022/02/28
【摘要】 要求所有创建的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 fig...

要求所有创建的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:


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:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。