Quantcast
Channel: SCN : Unanswered Discussions - SAP CRM: Service
Viewing all articles
Browse latest Browse all 1084

How to read category schema on GUI report for service request transaction type?

$
0
0

Hi Team,

 

My requirement is , i want to develop one report which is pull the data categorization 1 to categorization 4  based on service request transaction type.

input screen user select service request transaction type ,and range of posting date if we click execute then service request id and category 1 to category 4 all code groups they want to display.

 

but how to pick the values from categorization values on report.

 

1->here subject profile and code group level data maintained but in tables if copy service request id and executed on CRM_ORDER_READ -on ET_ACTIVITY_H-GUID i have copied this service request guid and checked on table -CRMV_REPORT_SUBJ but here KATALOGART and code group and code it is not maintained..but here how to pull all the data based on service request transaction type.This values they are maintained on subject profile code categorization in webui.

 

codegroup.png

2->by using this class    CL_CRM_CATEGORY_RUN_BTIL , i have copied to z class and i have implemented the logic as below ,but still i couldnt able to read all the categories. in complaint transaction types this logic is working fine but service request categorization it is not working.

 

method GET_ORDER_H_CAT.

  DATA: lr_crm_category  TYPE REF TO /rcrm/jio_crm_categ_run_btil.

  DATA: lt_subject_wrk   TYPE crmt_subject_wrkt,

  ls_subject_wrk         TYPE crmt_subject_wrk,

  ls_srv_subject_wrk     TYPE crmt_srv_subject_wrk,

  ls_category_key        TYPE crmst_category_key_btil,

  lt_categ_cat           TYPE TABLE OF /rcrm/jio_categories,

  ls_categ_cat           TYPE /rcrm/jio_categories,

  lt_cat_ca              TYPE crmt_erms_cat_ca_buf_tab,

  ls_cat_ca              LIKE LINE OF lt_cat_ca,

  lt_cat_ca_lang         TYPE crmt_erms_cat_ca_lang_tab,

  ls_hier_query          TYPE crmt_erms_cat_hi,

  lt_cat_hi              TYPE crmt_erms_cat_hi_tab,

  ls_cat_hi              TYPE crmt_erms_cat_hi.

 

 

  DATA: lv_cat_guid TYPE crm_erms_cat_guid, "Category GUID

        lv_asp_guid TYPE crm_erms_cat_guid. "Aspect (tree) GUID

  CLEAR es_categories.

 

 

* Create category object

  CREATE OBJECT  lr_crm_category

    EXPORTING

       iv_objname = 'ACIActionContextAdmin'.

*      iv_build_fieldname_tab = abap_true

 

 

  CHECK lr_crm_category IS BOUND.

* Read order header subject

  CALL FUNCTION 'CRM_SUBJECT_READ_OW'

   EXPORTING

     iv_ref_guid              = iv_guid

     iv_ref_kind              = 'A'

*     IV_GUID_SET              = IV_GUID_SET

*     IV_PROFILE_TYPE          = 'A'

   IMPORTING

     et_subject_wrk           = lt_subject_wrk

*     ET_SUBJECT_WRK_OLD       = ET_SUBJECT_WRK_OLD

*     EV_SUBJECT_PROFILE       = EV_SUBJECT_PROFILE

   EXCEPTIONS

     error_occurred           = 1

     OTHERS                   = 2.

   CHECK sy-subrc = 0 AND NOT lt_subject_wrk[] IS INITIAL.

 

 

  READ TABLE lt_subject_wrk INTO ls_subject_wrk WITH KEY ref_guid = iv_guid

                                                         ref_kind = 'A'.

  CHECK sy-subrc = 0.

* Get lowest level category guid

  CLEAR: ls_srv_subject_wrk, ls_category_key.

  MOVE-CORRESPONDING ls_subject_wrk TO ls_srv_subject_wrk.

  ls_category_key-cat_guid = lr_crm_category->map_subject_to_category( is_subject      = ls_srv_subject_wrk

                                                                       iv_ref_guid     = ls_subject_wrk-ref_guid

                                                                       iv_ref_kind     = ls_subject_wrk-ref_kind

                                                                       iv_profile_type = ls_subject_wrk-profile_type ).

  CHECK NOT ls_category_key-cat_guid IS INITIAL.

* -- Read categories recursively

  lv_cat_guid = ls_category_key-cat_guid.

  REFRESH lt_categ_cat.

  DO 4 TIMES. "Maximum category deep level

    CLEAR ls_categ_cat.

    ls_categ_cat-cat_guid = lv_cat_guid.

 

 

*   Read category header

    REFRESH: lt_cat_ca, lt_cat_ca_lang.

 

 

    CALL FUNCTION 'CRM_ERMS_CAT_CA_READ'

      EXPORTING

        iv_cat_guid         = lv_cat_guid

      IMPORTING

        et_cat              = lt_cat_ca

        et_cat_lang         = lt_cat_ca_lang

      EXCEPTIONS

        non_existent        = 1

        non_existent_aspect = 2

        data_error          = 3

        OTHERS              = 4.

 

 

    IF sy-subrc NE 0 OR lt_cat_ca[] IS INITIAL.

      EXIT.

    ENDIF.

*   Get aspect (tree) GUID

    READ TABLE lt_cat_ca INTO ls_cat_ca INDEX 1.

    lv_asp_guid = ls_cat_ca-cat-asp_guid.

 

 

    ls_categ_cat-it_cat_ca[]      = lt_cat_ca[].

    ls_categ_cat-it_cat_ca_lang[] = lt_cat_ca_lang[].

*    Get parent category from hierarchy

    CLEAR ls_hier_query.

    ls_hier_query-tree_guid = lv_asp_guid.

    ls_hier_query-tree_type = c_tree_type_cat.

    ls_hier_query-node_guid = lv_cat_guid.

 

 

    REFRESH lt_cat_hi.

    CALL FUNCTION 'CRM_ERMS_CAT_HI_READ'

      EXPORTING

        iv_hier_query            = ls_hier_query

*       IV_HIER_TEMP             = ' '

*       IV_FILL_PAR_BUFFER       = IV_FILL_PAR_BUFFER

*       IR_CAT_CHECKER           = IR_CAT_CHECKER

     IMPORTING

       et_hier                  = lt_cat_hi.

 

 

    IF lt_cat_hi[] IS INITIAL.

      EXIT.

    ENDIF.

    READ TABLE lt_cat_hi INTO ls_cat_hi INDEX 1.

 

 

    ls_categ_cat-cat_hi = ls_cat_hi.

    lv_cat_guid = ls_cat_hi-pare_guid. "For upper level cat. access

    "   Add upper cat. before lower cat.

    INSERT ls_categ_cat INTO lt_categ_cat INDEX 1.

 

 

*   Exit loop if root cat. level already accesed

    IF ls_cat_hi-pare_guid = ls_cat_hi-tree_guid.

      EXIT.

    ENDIF.

  ENDDO.

* Fill categories at every categorization level

  LOOP AT lt_categ_cat INTO ls_categ_cat.

    CASE sy-tabix.

      WHEN 1.

        es_categories-category1 = ls_categ_cat.

      WHEN 2.

        es_categories-category2 = ls_categ_cat.

      WHEN 3.

        es_categories-category3 = ls_categ_cat.

      WHEN 4.

        es_categories-category4 = ls_categ_cat.

    ENDCASE.

  ENDLOOP.

endmethod.

 

 

Could you please help here.

 

Thanks for advance.

 

 

Thanks & regards

kalpana


Viewing all articles
Browse latest Browse all 1084

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>