A. Below is the step to activate the Reference Key in the MIRO - Details screen.
2. Implement below code.
PERFORM modify_fi_subscreen TABLES t_acscr
USING 'XREF3' 'ACTIVE' '1'.
B.1 User exit Activation for Substitution
1. Execute tcode GCX2 .
2. Change the line with Application Area = GBLS . Change the value Ex. Program to = ZRGGBS000
3. GO to SE38 . Copy the standard program RGGBS000 to ZRGGBS000
4. Create new exit and paste below code.
*---------------------------------------------------------------------*
* FORM U111 *
*---------------------------------------------------------------------*
* Populate XREF3 BSEG-XREF3
*---------------------------------------------------------------------*
FORM u111 USING xref3 TYPE bseg-xref3 .
DATA: l_v_lifnr TYPE lifnr.
CHECK sy-tcode EQ 'MIRO'.
FIELD-SYMBOLS TYPE accit_t.
FIELD-SYMBOLS TYPE accit.
* DATA: field_accit TYPE char18 VALUE '(SAPLMRMP)xaccit[]'.
DATA: field_invfo TYPE char18 VALUE '(SAPLFDCB)INVFO'.
FIELD-SYMBOLS TYPE invfo.
* ASSIGN (field_accit) TO.
* CHECK sy-subrc EQ 0.
ASSIGN (field_invfo) TO .
CHECK BSEG-MWSKZ = '**' OR BSEG-MWSKZ = 'IG' .
* IF bseg-bschl = '31'. " Posting Key.
xref3 = -xref3.
* ENDIF.
ENDFORM.
* FORM U111 *
*---------------------------------------------------------------------*
* Populate XREF3 BSEG-XREF3
*---------------------------------------------------------------------*
FORM u111 USING xref3 TYPE bseg-xref3 .
DATA: l_v_lifnr TYPE lifnr.
CHECK sy-tcode EQ 'MIRO'.
FIELD-SYMBOLS
FIELD-SYMBOLS
* DATA: field_accit TYPE char18 VALUE '(SAPLMRMP)xaccit[]'.
DATA: field_invfo TYPE char18 VALUE '(SAPLFDCB)INVFO'.
FIELD-SYMBOLS
* ASSIGN (field_accit) TO
* CHECK sy-subrc EQ 0.
ASSIGN (field_invfo) TO
CHECK BSEG-MWSKZ = '**' OR BSEG-MWSKZ = 'IG' .
* IF bseg-bschl = '31'. " Posting Key.
xref3 =
* ENDIF.
ENDFORM.
1. This substitution is for FI checking to save xref3 in BSEG table.
2. Go to tcode GGB1 - Substitution , Choose Finacial Accounting and Line Item.
4. Create new Step with selection of BSEG-XREF3
5. Maintain the checking condition . Select Prerequisite icon and choose sy-tcode = 'MIRO'.
6. Choose the Substitution and key in the Exit name. Activate the Substitution
1. Execute OBBH Tcode - To select the and activate the substitution based on company code.
2. Click new entries for each company code.
1. Implement BADI - BADI_FDCB_SUBBAS04.
2, Make sure activate all the screen, and hide it (as dummy).
3. There is example of implemetation in BADI - BADI_FDCB_SUBBAS01.
4. Put below code at GET_DATA_FROM_SCREEN_OBJECT method.
METHOD if_ex_badi_fdcb_subbas04~get_data_from_screen_object .
DATA: lt_doc TYPE STANDARD TABLE OF acc_doc,
l_xref3 TYPE bseg-xref3,
l_aworg TYPE acchd-aworg.
FIELD-SYMBOLS:
CHECK sy-tcode = 'MIR4'.
MOVE ex_invfo-gjahr TO l_aworg.
CHECK l_aworg IS NOT INITIAL.
*VALUE(I_AWSYS) LIKE ACCHD-AWSYS DEFAULT SPACE
CALL FUNCTION 'AC_DOCUMENT_RECORD'
EXPORTING
i_awtyp = 'RMRP'
i_awref = ex_invfo-belnr
i_aworg = l_aworg
* I_AWSYS =
* I_AWTYP_INCL = ' '
* I_AWTYP_EXCL = ' '
* I_BUKRS = ' '
I_VALUTYP = '0'
X_DIALOG = ' '
TABLES
t_documents = lt_doc
* EXCEPTIONS
* NO_REFERENCE = 1
* NO_DOCUMENT = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CHECK lt_doc[] IS NOT INITIAL.
READ TABLE lt_doc ASSIGNING
CHECK
SELECT SINGLE xref3 INTO l_xref3 FROM bseg
WHERE bukrs = ex_invfo-bukrs
AND gjahr = ex_invfo-gjahr
AND belnr =
AND bschl = '31' .
IF sy-subrc = 0.
me->if_ex_badi_fdcb_subbas04~invfo-xref3 = l_xref3.
ENDIF.
* fill export parameters from interface attributes
ex_invfo = me->if_ex_badi_fdcb_subbas04~invfo.
ENDMETHOD.