Suppose you need to investigate which database table stores the value of Requested start date and end date:

/wp-content/uploads/2016/04/clipboard1_935323.png

You can just activate SQL trace via tcode ST05, make changes on either field, and save the change. Then display trace and search with keyword “update”:

/wp-content/uploads/2016/04/clipboard2_935357.png

You could find one record whose UPDATE statement contains the changed date you maintained in WebUI, which indicates the table SCAPPTSEG is what we are looking for.

/wp-content/uploads/2016/04/clipboard3_935358.png

When we browse this table in SE11, we didn’t know the relationship between APPT_GUID or APPL_GUID with the service order guid.

/wp-content/uploads/2016/04/clipboard4_935359.png

We can click the display source code button in ST05:

/wp-content/uploads/2016/04/clipboard5_935360.png

And set a breakpoint on the very code where the table is updated. From the callstack we can know the function module CRM_DATES_UPDATE_DU is updating this table.

/wp-content/uploads/2016/04/clipboard6_935361.png

Perform where used list on CRM_DATES_UPDATE_DU and we can get CRM_DATES_SAVE_OB,

/wp-content/uploads/2016/04/clipboard7_935362.png

then CRM_DATES_SAVE_EC:

/wp-content/uploads/2016/04/clipboard8_935363.png

In this function, we can know the relationship between appl_guid and service order guid:

/wp-content/uploads/2016/04/clipboard9_935364.png

I use a simple report below to illustrate the process how to get requested start and end date starting from Service order guid:

REPORT zdisplay_request_date.
PARAMETERS: guid TYPE crmt_object_guid OBLIGATORY DEFAULT '00163EA720041EE19BB780506245F081'.
DATA: lt_dates TYPE STANDARD TABLE OF scapptseg,
      lv_link  TYPE crmd_link-guid_set.
START-OF-SELECTION.
  SELECT SINGLE guid_set INTO lv_link FROM crmd_link WHERE guid_hi = guid AND objtype_set = '30'.
  IF sy-subrc <> 0.
    WRITE: / 'no requested data maintained'.
    RETURN.
  ENDIF.
  SELECT * INTO TABLE lt_dates FROM scapptseg WHERE appl_guid = lv_link.
  READ TABLE lt_dates ASSIGNING FIELD-SYMBOL(<start>) WITH KEY appt_type = 'SRV_CUST_BEG'.
  IF sy-subrc = 0.
    WRITE: / 'requested start: ' , <start>-tst_from.
  ENDIF.
  READ TABLE lt_dates ASSIGNING FIELD-SYMBOL(<end>) WITH KEY appt_type = 'SRV_CUST_END'.
  IF sy-subrc = 0.
    WRITE: / 'requested end: ' , <end>-tst_from.
  ENDIF.

Note: “30” means object name “APPOINTMENT”,  you can find the relationship from this table CRMC_OBJECTS:

/wp-content/uploads/2016/04/clipboard11_935381.png

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply