How to use CRM_STATUS_READ to get product status?

429 views Asked by At

I want to know that How to use the Function Module CRM_STATUS_READ. In table crmd_orderadm_h have a field GUID and I want to show status by passing the GUID to the FM CRM_STATUS_READ.

I don't know how to fill parameters in this FM.

FORM create_output USING i_t_crmd_orderadm_h TYPE g_tt_orderadm_h
            CHANGING e_t_out             TYPE g_tt_out.
DATA: l_r_crmd_orderadm_h TYPE g_ty_orderadm_h,
    l_r_out             TYPE g_ty_out.
        .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT i_t_crmd_orderadm_h INTO l_r_crmd_orderadm_h.
  CALL FUNCTION 'CRM_STATUS_READ'
    EXPORTING
*       CLIENT                 = SY-MANDT
        objnr                  = 
*       ONLY_ACTIVE            = ' '
*     IMPORTING
*       OBTYP                  =  
*       STSMA                  =
*       STONR                  =  
*       ET_JEST_BUF            =
*     TABLES
*       STATUS                 =
ENDFORM.

Best Regards, Huy Vu

1

There are 1 answers

1
Suncatcher On BEST ANSWER

To call this module you gotta know two things: GUID and fragment GUID. The latter can be taken from product attributes (table COMM_PCAT_REL).

Here is the sample:

DATA(lv_guid) = get_guid_by_id( '11111111111' ).

DATA: lv_frg_guid TYPE comm_pr_frg_rod-fragment_type VALUE '37D58F1B772D53A4E10000009B38FA0B',
      rt_stat     TYPE ttjstat.

DATA: lv_objnr  TYPE comm_pr_frg_rod-status_object,
      lt_status TYPE STANDARD TABLE OF jstat.

SELECT SINGLE status_object FROM comm_pr_frg_rod 
  INTO lv_objnr WHERE product_guid = lv_guid AND fragment_type = lv_frg_guid.

CHECK sy-subrc = 0.

CALL FUNCTION 'CRM_STATUS_READ'
  EXPORTING
    objnr            = lv_objnr
  TABLES
    status           = rt_status
  EXCEPTIONS
    object_not_found = 1.