欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SAP CRM service请求subject value determination sapcrmwebSAP成都研究院SAP Cloud Platform 

程序员文章站 2022-03-05 15:01:12
...

When a new Service Request is created, the multi-level drop down list for Service Request subject is available.

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

Where do the value for those drop down list come from?

Here below is what I found via debugging:

  1. get allowed category type from table CRMC_PROC_CATTYP based on transaction type:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

Two entries found:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

These two entries are inserted here:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

Then check for the given combination of Transaction type plus Catalog category, whether there is existing schema defined.

The check is done by API CL_CRM_ML_CATEGORY_UTIL=>GET_ASPECT.

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

I wrote a small report to check whether a schema is available for corresponding category:

REPORT zdetermine_schema.

PARAMETERS: guid TYPE crmt_object_guid OBLIGATORY DEFAULT '6C0B84B75FAB1ED7BC85AA545271F98C',
            cat  TYPE crmt_catalogtype OBLIGATORY DEFAULT 'C'.

DATA: lv_guid TYPE crmt_object_guid.

lv_guid = guid.

DATA: lr_aspect TYPE REF TO if_crm_erms_catego_aspect,
      ls_detail TYPE crmt_erms_cat_as_buf.

CALL METHOD cl_crm_ml_category_util=>get_aspect
  EXPORTING
    iv_ref_guid     = lv_guid
    iv_ref_kind     = 'A'
    iv_profile_type = 'A'
    iv_catalog_type = cat
  IMPORTING
    er_aspect       = lr_aspect.
IF lr_aspect IS BOUND.
  lr_aspect->get_details( IMPORTING ev_asp = ls_detail ).
  WRITE:/ 'ASP id:', ls_detail-asp-asp_id.
ELSE.
  WRITE:/ 'No detail data found'.
ENDIF.

In my example, no schema exists for category C:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

But a schema exists for type D:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform 

the ASP ID YBP_SERVICE comes from here:

SAP CRM service请求subject value determination
            
    
    
        sapcrmwebSAP成都研究院SAP Cloud Platform