Monday, February 16, 2015

Activate MIRO Reference Key (Xref3) - Using Substitution and BADI Techniques



A. Below is the step to activate the Reference Key in the  MIRO - Details screen.

1.  Create Implicit Enhancement in program LMR1MF6Q .
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 .

  DATAl_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[]'.
  DATAfield_invfo TYPE char18 VALUE '(SAPLFDCB)INVFO'.
  FIELD-SYMBOLS  TYPE invfo.

*  ASSIGN (field_accit) TO .
*  CHECK sy-subrc EQ 0.

  ASSIGN (field_invfoTO .
  CHECK BSEG-MWSKZ '**' OR BSEG-MWSKZ 'IG' .
*  IF bseg-bschl = '31'. " Posting Key.
    xref3 -xref3.
*  ENDIF.


ENDFORM.   


B.2 Step to configure Substitution .

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.



3, Create new Substitution  and apply below configuration.



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 



C. Activate and Configure for Substitution - User Exit

1. Execute OBBH Tcode - To select the and activate the substitution based on company code.
2. Click new entries for each company code.


D. Display Reference Key(XREF3) in MIR4 transaction

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 .


  DATAlt_doc TYPE STANDARD TABLE OF acc_doc,
        l_xref3 TYPE bseg-xref3,
        l_aworg TYPE acchd-aworg.

  FIELD-SYMBOLS TYPE acc_doc.

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  WITH KEY awtyp 'BKPF'.

  CHECK  IS ASSIGNED.
  SELECT SINGLE xref3 INTO l_xref3 FROM bseg
          WHERE bukrs ex_invfo-bukrs
            AND gjahr ex_invfo-gjahr
            AND belnr -docnr
            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.