Monday, 11 October 2021

Customized Fields in Dispute management of FSCM

My previous companion article demonstrated the enhancement to add customized fields at Case Management. In this article, I’m going to show how to add customized fields in Dispute management.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Step 1. Enhance at table/structure level


Table UDMCASEATTR00 is for dispute case attributes like case GUID and Amount Paid, etc. Its basic attributes like case type& created time are stored at table SCMG_T_CASE_ATTR which is shared by other cases managed at FSCM like Credit Limit Request or Documented Credit Decision as well.

At this table UDMCASEATTR00, we’re going to add our customized field ZZCRM_COM_NO which is CRM Complain number by appending it at its include structure CI_UDMCASEATTR00.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Step 2. Populate the customized field for dispute case


2.1 Populate the customized field while dispute case been created without user interaction

We can call the function module ‘FDM_CASE_CREATE’ to create a dispute case(for example from an external CRM system) and insert our new customized field at EXPORTING parameter it_attributes which refer to FDM_ATTRIBUTE.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Only those 3 fields need to be filled like the below example:

* fill CRM Complaint Number
  IF dispute_attr-complaint_no IS NOT INITIAL.
    CLEAR attributes_wa.
    attributes_wa-attr_id = 'ZZCRM_COM_NO'.
    attributes_wa-attr_value = dispute_attr-complaint_no.
    attributes_wa-xdelta = ' '.
    APPEND attributes_wa TO attributes.
  ENDIF.

Also, it’s possible to update customized fields when call function module  ‘BAPI_DISPUTE_ATTRIBUTES_CHANGE’  to update attributes of dispute cases. Standard program RFDM3000 can be used as a reference for Dispute Case creation.

2.2 Populate the customized fields by using BADI implementation

Here we can use BADI: FDM_AR_DISP_COMPLETE (which is for FSCM-DM: Completion of Dispute Case before Saving) and implement its method ‘COMPLETE_DISPUTE’. Append field name as attribute ID along with its attribute value to the changing parameter C_ADDITIONAL_ATTRIBUTES like below.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

2.3 Populate the customized fields manually by the user while dispute case been created

For example, Extra customized fields are required when users try to create a Dispute Case manually at FBL5N like below.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Here need to create a screen Enhancement implementation using BADI: FDM_USER_SCREEN for the dispute case creation screen.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

This BADI: FDM_USER_SCREEN contains four methods, here just implement the first 3 methods.

2.3.1 Method GET_CREATE_SCREEN (FSCM-DM: Define User Screen during Creation)

Create customized screens include customized fields and customized programs for this new screen sector at screen editor. And declare screen number and program name like below:

  method IF_EX_FDM_USER_SCREEN~GET_CREATE_SCREEN.
   E_DYNNR    = '9001'.
   E_PROGNAME = 'Zz_program_name'.
  endmethod.

2.3.2 Method CREATE_SCREEN_PBO (FSCM-DM: PBO Event of the User Screen for Creation)

You can put PBO code here like a drop-down list for a specific field or customized F4 search help at this method.

  METHOD if_ex_fdm_user_screen~create_screen_pbo.
    TYPE-POOLS : vrm.
    DATA: ld_field    TYPE vrm_id ,
          it_listbox  TYPE vrm_values,
          wa_listbox  LIKE LINE OF it_listbox.
    DATA: it_tab TYPE STANDARD TABLE OF udmattr_rccodet,
          wa_tab LIKE LINE OF it_tab.
* Search help for field FIN_ROOT_CCODE
    refresh it_tab.
    SELECT * FROM udmattr_rccodet
      INTO TABLE it_tab
      WHERE langu EQ 'E'.

    refresh it_listbox.
    LOOP AT it_tab INTO wa_tab.
      wa_listbox-key = wa_tab-root_ccode.
      wa_listbox-text = wa_tab-description.
      APPEND wa_listbox TO it_listbox.
    ENDLOOP.
    sort it_listbox by key.
    delete ADJACENT DUPLICATES FROM it_listbox.

    ld_field = 'UDMCASEATTR00-FIN_ROOT_CCODE'.
    CALL FUNCTION 'VRM_SET_VALUES'
      EXPORTING
        id     = ld_field
        values = it_listbox.

  ENDMETHOD.

2.3.3 Method CREATE_SCREEN_PAI (FSCM-DM: PAI Event of the User Screen for Creation)

The key place to populate customized fields from user inputs accordingly.

 METHOD if_ex_fdm_user_screen~create_screen_pai.
    DATA: wa_attr TYPE LINE OF fdm_t_attribute.
    DATA: l_dynpro_program  LIKE sy-repid,
          l_dynpro_number   LIKE sy-dynnr,
          lt_dynpfield TYPE TABLE OF dynpread,
          wa_dynpfield LIKE LINE OF lt_dynpfield.
*-------------------------
* 1,Get screen values
*-------------------------
    l_dynpro_program  = 'ZXXX_PROGRAM_NAME'.
    l_dynpro_number   = '9001'.
    CLEAR wa_dynpfield.
    REFRESH lt_dynpfield.

    MOVE 'UDMCASEATTR00-ZZ_FIELDS' TO wa_dynpfield-fieldname.
    APPEND wa_dynpfield TO lt_dynpfield.

    CALL FUNCTION 'DYNP_VALUES_READ'
      EXPORTING
        dyname               = l_dynpro_program
        dynumb               = l_dynpro_number
      TABLES
        dynpfields           = lt_dynpfield.

*----------------------------------------
*2, Pass Z field to Dispute attribute
*----------------------------------------
    wa_attr-attr_id = 'ZZ_FIELDS'.
    CLEAR wa_dynpfield.
    READ TABLE lt_dynpfield INTO wa_dynpfield WITH KEY fieldname = 'UDMCASEATTR00-ZZ_FIELDS'.
    wa_attr-attr_value = wa_dynpfield-fieldvalue.
    APPEND wa_attr TO e_user_attributes.
    CLEAR wa_attr.
...
ENDMETHOD.

Besides, we can implement BADI ‘SCMG_CASE_FCODE_S’ to display the customized screen when clicking the customized button (mapping to Case: Function Code in Frontend SCMG_UI_FUNC) at the toolbar of the dispute case screen.

Step 3. Display this new field at Dispute case Header Level


After populating the value of this field, we need to display this field at the header level of the dispute case by using configurations SPRO path: FSCM->Dispute Management->Dispute Case processing->Attribute Profile->Create Attribute Profile. 

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Find your company’s attribute profile which table name is ‘UDMCASEATTR00’ and go to its attribute group, then all fields are listed at ‘Assign Attributes’. Insert the customized field and assign its group and row/column number accordingly.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Here controls the position where to display this customized field at Header data by setting row number and column number.

Final step. Display this new field at the dispute case search screen


Same as customized fields for the DCD search screen, We need to enable this field as a search field at the search screen for dispute cases by configuration SPRO path: FSCM->Credit Management->Credit Risk Monitoring->Documented Credit Decision->Create Profile for Case Search.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

At your case search profile for dispute cases, insert the customized field and assign its row/column accordingly.

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Then we can get this field at the dispute case selection screen:

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Certification, SAP ABAP Preparation, SAP ABAP Guides

Source: sap.com

No comments:

Post a Comment