§ I hope this will help you.
1) PAI - Pass the screen value to a global variable declared at your custom screen function group. By doing this at the run time of the XD01, screen value from your custom screen can be accessed.
Example: I have a screen 9001 added to XD01 with field called knvv-zzvdc2 and on my PAI, I will have the following code.
MODULE user_command_9001 INPUT.
*-----Pass Value To The Global Variable, To Read It Form BADI
gv_zzvdc = knvv-zzvdc2.
ENDMODULE. " USER_COMMAND_9001 INPUT
Global definition
Include: LZSD_CUSTOMER_EXTTOP
DATA: gv_zzvdc TYPE knvv-zzvdc.
2) BADI method : GET_DATA - Once you set the value on the global variable following code should help you to retrieve the value and save it on your Z Table
*-----Local Data Declaration pointed to the function group
CONSTANTS: lc_zzvdc TYPE knvv-zzvdc VALUE '(SAPLZSD_CUSTOMER_EXT)gv_zzvdc'.
FIELD-SYMBOLS: <fs_zzvdc> TYPE ANY.
*-----Get The Value From The Custom Screen
ASSIGN (lc_zzvdc) TO <fs_zzvdc>.
s_knvv-zzvdc2 = <fs_zzvdc>.