Hi Deepak,
1. I don't think there is a need to create a separate Function Group you can assign that Program name you created in BADI.
2. After Adding the Fields in CI_WCAAP you need to do your logic in PBO and PAI of the screen
Global Declarations :
TYPES : BEGIN OF ty_wcaap,
wapinr TYPE wcaap-wapinr,
objnr TYPE wcaap-objnr,
* Your newly added field
END OF ty_wcaap.
TYPES : BEGIN OF ty_keys,
* Your newly added field
END OF ty_keys.
*Declaration for internal tables holding the data from wcaap
DATA : gt_wcaap TYPE STANDARD TABLE OF ty_wcaap,
gw_wcaap TYPE ty_wcaap,
gt_keys_new TYPE STANDARD TABLE OF ty_keys.
*Reference for the BADI BADI_WCAM_WCA_001
DATA: exit TYPE REF TO badi_wcm_wca_001.
*Global structure and constant fields for screen number and key
DATA : gs_wcswapi TYPE wcswapi,
gv_lockbox_key TYPE wcaap-lockbox_key,
gv_string TYPE string.
DATA : lv_screen TYPE sydynnr VALUE '1000'.
DATA : PLANT TYPE IWERK.
DATA : WAPINR TYPE WCEWAPINR.
* process object before displaying the screen 1000
PROCESS BEFORE OUTPUT.
MODULE initialize.
MODULE STATUS_1000. "Do if req. any enable/ disable operations
*Process block for handling the user actions on screen of PROCESS AFTER INPUT.
MODULE USER_COMMAND_1000.
* Check to see if badi reference is acti
**Check the Tcode here ex Check Sy-tcode = ‘WCTK’.
IF exit IS INITIAL.
TRY.
GET BADI exit
FILTERS
iwerk = plant.
CATCH cx_badi_not_implemented.
ENDTRY.
ENDIF.
* Check again, to be sure...
CHECK NOT exit IS INITIAL.
* get data from the main screen
CALL BADI exit->subscreen_data_get
EXPORTING
iv_screen = lv_screen
IMPORTING
es_wapi = gs_wcswapi.
ENDMODULE. " INITIALIZE OUTPUT
**&---------------------------------------------------------------------*
**& Module USER_COMMAND_1000 INPUT
**&---------------------------------------------------------------------*
** Validation on Entered Data Of Sub screen
**----------------------------------------------------------------------*
MODULE user_command_1000 INPUT.
* This should never happen, but...
IF exit IS INITIAL.
TRY.
GET BADI exit
FILTERS
iwerk = Plant.
CATCH cx_badi_not_implemented.
ENDTRY.
ENDIF.
PERFORM validation_on_custom_field.
* Again, this should never be an issue, but...
CHECK NOT exit IS INITIAL.
* Put data back to the main screen
CALL BADI exit->subscreen_data_set
EXPORTING
iv_iwerk = Plant
iv_objnr = gw_wcaap-objnr
iv_aktyp = ' '
iv_dynfldgrp = ' '
iv_screen = lv_screen
is_wapi = gs_wcswapi.
ENDMODULE. " USER_COMMAND_1000 INPUT
Hope This will help you
Regards,
Pavan