Enhancement FB60

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Adding Custom Field in MIRO & FB60

https://sapyard.com/add-custom-fields-in-standard-miro-header-screen-through-
badi_fdcb_subbas01/

https://wiki.scn.sap.com/wiki/display/Snippets/Display+customer+fields+in+header+of+logistics+inv
oice+verification+transactions

Note:

Instead of using BADI_FDCB_SUBBAS01 use BADI_FDCB_SUBBAS05.


PROCESS BEFORE OUTPUT.
MODULE STATUS_6666.
MODULE CHECK_TCODE.

*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_6666.
MODULE RECEIVE_ACTUAL_DATA.

PROCESS ON VALUE-REQUEST .
FIELD INVFO-ZREGION MODULE F4_HELP .

*&---------------------------------------------------------------------*
*& Module Pool ZFI_FB60_REGION_FIELD
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

PROGRAM ZFI_FB60_REGION_FIELD.

***********************************************************************
* T A B L E S *
************************************************************************
TABLES INVFO.
************************************************************************
* D A T A D E F I N I T I O N *
************************************************************************
DATA: LO_BAD TYPE REF TO IF_EX_BADI_FDCB_SUBBAS05.

*----------------------------------------------------------------------*
* MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE STATUS_6666 OUTPUT.
* BREAK INF_AMS.
CALL METHOD CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS
CHANGING
INSTANCE = LO_BAD
EXCEPTIONS
NO_REFERENCE = 1
NO_INTERFACE_REFERENCE = 2
NO_EXIT_INTERFACE = 3
DATA_INCONS_IN_EXIT_MANAGEM = 4
CLASS_NOT_IMPLEMENT_INTERFACE = 5
OTHERS = 6.
IF SY-SUBRC EQ 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* object created ?
CHECK NOT LO_BAD IS INITIAL.
* get data from main screen
CALL METHOD LO_BAD->GET_DATA_FROM_SCREEN_OBJECT
IMPORTING
EX_INVFO = INVFO.

IF NOT INVFO-LIFNR IS INITIAL


AND INVFO-ZREGION IS INITIAL.
SELECT SINGLE REGIO
FROM LFA1
INTO INVFO-ZREGION
WHERE LIFNR = INVFO-LIFNR.
ENDIF.
CALL METHOD LO_BAD->PUT_DATA_TO_SCREEN_OBJECT
EXPORTING
IM_INVFO = INVFO.
ENDMODULE. " STATUS_9200 OUTPUT
*----------------------------------------------------------------------*
* MODULE user_command_6666
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_6666
INPUT.
CHECK NOT LO_BAD IS INITIAL.
* put data to main screen
CALL METHOD LO_BAD->PUT_DATA_TO_SCREEN_OBJECT
EXPORTING
IM_INVFO = INVFO.
ENDMODULE. "user_command_9200 INPUT
*&---------------------------------------------------------------------
*
*& Module RECEIVE_ACTUAL_DATA INPUT
*&---------------------------------------------------------------------
*
* Get data from screen
*----------------------------------------------------------------------*
MODULE RECEIVE_ACTUAL_DATA INPUT.
* object created ?
CHECK NOT LO_BAD IS INITIAL.
* get data from main screen
CALL METHOD LO_BAD->GET_DATA_FROM_SCREEN_OBJECT
IMPORTING
EX_INVFO = INVFO.
ENDMODULE. " RECEIVE_ACTUAL_DATA INPUT
*&---------------------------------------------------------------------
*
*& Module CHECK_TCODE INPUT
*&---------------------------------------------------------------------
*
* check the t-code – We want it to show up for FB60 and FV60, but

* hide it for any other screen that hits this enhancement


*----------------------------------------------------------------------*
MODULE CHECK_TCODE OUTPUT.
IF SY-TCODE NE 'FB60'.
"AND SY-TCODE NE 'MIRO'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'INVFO-ZREGION'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE. " CHECK_TCODE INPUT
*----------------------------------------------------------------------*
* MODULE F4_HELP INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE F4_HELP INPUT.

DATA: LT_GSTNO TYPE TABLE OF ZGSTNO,


LT_RETAB TYPE TABLE OF DDSHRETVAL,
LS_RETAB TYPE DDSHRETVAL.

SELECT * FROM ZGSTNO INTO TABLE LT_GSTNO.


IF SY-SUBRC EQ 0.
SORT LT_GSTNO BY VENDOR_NO.
ENDIF.
IF NOT INVFO-LIFNR IS INITIAL.
DELETE LT_GSTNO WHERE VENDOR_NO NE INVFO-LIFNR.
ENDIF.

IF NOT LT_GSTNO IS INITIAL.


CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
RETFIELD = 'REGION'
* PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'INVFO-ZREGION'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LT_GSTNO
RETURN_TAB = LT_RETAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF NOT LT_RETAB IS INITIAL.
READ TABLE LT_RETAB INTO LS_RETAB INDEX 1.
IF SY-SUBRC EQ 0.
INVFO-ZREGION = LS_RETAB-FIELDVAL.
ENDIF .
ENDIF.
ENDIF.
ENDMODULE. "F4_HELP INPUT

You might also like