Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

how to write this fun. module 'MRM_IVHEAD_MANY_READ' in a subroutine

Former Member
0 Kudos

i want to write this function within a subroutine. i don't know how to pass the parameter for I_TAB_IVTYP etc. Can u show me the coding that has uses the subroutine that has something like this.

perform ........

LOOP AT I_TAB_RBKPV_A INTO WA_TAB_RBKPV_A.

WRITE: / WA_TAB_RBKPV_A-BELNR .

ENDLOOP.

form .........

CALL FUNCTION 'MRM_INVHEAD_MANY_READ'

EXPORTING

T_IVTYP = I_TAB_IVTYP

TABLES

T_BLART = S_BLART

T_XBLNR = S_XBLNR

T_BKTXT = S_BKTXT

T_USNAM = S_USNAM

  • T_ERFNAM =

T_GJAHR = S_GJAHR

T_LIFNR = S_LIFNR

T_BUKRS = S_BUKRS

T_BELNR = S_BELNR

T_BLDAT = S_BLDAT

T_BUDAT = S_BUDAT

  • T_REPART =

  • T_RBSTAT = L_RG_RBSTAT

T_RBKPV = I_TAB_RBKPV_A

  • EXCEPTIONS

  • ENTRY_NOT_FOUND = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform.

promise to reward points.

Regards,

anitha

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,


REPORT ZSRITEST.

TYPE-POOLS: mrm.

DATA: lt_ivtyp TYPE mrm_tab_ivtyp,
      lt_rbkpv TYPE mrm_tab_rbkpv,
****Optional if you dont have them as select options already
*      lt_blart TYPE MRM_TAB_SOBLART,
*      lt_xblnr TYPE MRM_TAB_SOXBLNR,
*      lt_bktxt TYPE MRM_TAB_SOBKTXT,
*      lt_usnam TYPE MRM_TAB_SOUSNAM,
*      lt_gjahr TYPE  MRM_TAB_SOGJAHR,
*      lt_lifnr TYPE  MRM_TAB_SOLIFNR,
*      lt_bukrs TYPE  MRM_TAB_SOBUKRS,
*      lt_belnr TYPE  MRM_TAB_SOBELNR,
*      lt_bldat TYPE  MRM_TAB_SOBLDAT,
*      lT_BUDAT TYPE  MRM_TAB_SOBUDAT,
      lwa_ivtyp LIKE LINE OF lt_ivtyp,
      lwa_rbkpv LIKE LINE OF lt_rbkpv.

****Option if you want to fill some thing in T_IVTYP just uncomment the
****following code normally it is SPACE so no need to fill
*lwa_ivtyp = ''. "<your value here>.
*APPEND lwa_ivtyp TO lt_ivtyp.

PERFORM read_invhead TABLES lt_ivtyp
****NOTE from S_BLART to S_BUDAT if they are declared as select options
****then there is no need to pass them here as they will be already
****accessible inside subroutine otherwise uncomment the above ****delcarations and use lt tables after OR
                            s_blart    "OR lt_blart
                            s_xblnr    "OR lt_xblnr
                            s_bktxt    "OR lt_bktxt
                            s_usnam    "OR lt_usnam
                            s_gjahr    "OR lt_gjahr
                            s_lifnr    "OR lt_lifnr
                            s_bukrs    "OR lt_bukrs
                            s_belnr    "OR lt_belnr
                            s_bldat    "OR lt_bldat
                            s_budat    "OR lt_budat
                            s_rbkpv.

LOOP AT lt_rbkpv INTO lwa_rbkpv.
****Do your processing here if that is your requirement

ENDLOOP.

*&---------------------------------------------------------------------*
*&      Form  read_invhead
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LT_IVTYP  text
*      -->P_LT_BLART  text
*      -->P_LT_XBLNR  text
*      -->P_LT_BKTXT  text
*      -->P_LT_USNAM  text
*      -->P_LT_GJAHR  text
*      -->P_LT_LIFNR  text
*      -->P_LT_BUKRS  text
*      -->P_LT_BELNR  text
*      -->P_LT_BLDAT  text
*      -->P_LT_BUDAT  text
*      -->P_LT_RBKPV  text
*----------------------------------------------------------------------*
FORM read_invhead TABLES lt_ivtyp TYPE  mrm_tab_ivtyp
                         lt_blart TYPE  mrm_tab_soblart
                         lt_xblnr TYPE  mrm_tab_soxblnr
                         lt_bktxt TYPE  mrm_tab_sobktxt
                         lt_usnam TYPE  mrm_tab_sousnam
                         lt_gjahr TYPE  mrm_tab_sogjahr
                         lt_lifnr TYPE  mrm_tab_solifnr
                         lt_bukrs TYPE  mrm_tab_sobukrs
                         lt_belnr TYPE  mrm_tab_sobelnr
                         lt_bldat TYPE  mrm_tab_sobldat
                         lt_budat TYPE  mrm_tab_sobudat
                         lt_rbkpv TYPE  mrm_tab_rbkpv.


  DATA: lt_rbstat TYPE mrm_tab_sorbstat,
        lwa_rbstat LIKE LINE OF lt_rbstat.

  lwa_rbstat-sign = 'I'.
  lwa_rbstat-option = 'EQ'.
  lwa_rbstat-low = '2'.
  APPEND lwa_rbstat TO lt_rbstat.

  CALL FUNCTION 'MRM_INVHEAD_MANY_READ'
    EXPORTING
      t_ivtyp               = lt_ivtyp
    TABLES
     t_blart               = lt_blart  
     t_xblnr               = lt_xblnr  
     t_bktxt               = lt_bktxt  
     t_usnam               = lt_usnam  
*   T_ERFNAM              =
     t_gjahr               = lt_gjahr  
     t_lifnr               = lt_lifnr  
     t_bukrs               = lt_bukrs
     t_belnr               = lt_belnr
     t_bldat               = lt_bldat
     t_budat               = lt_budat
*   T_REPART              =
      t_rbstat              = lt_rbstat
      t_rbkpv               = lt_rbkpv
   EXCEPTIONS
     entry_not_found       = 1
     OTHERS                = 2.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " read_invhead

2 REPLIES 2

Former Member
0 Kudos

Hi,


REPORT ZSRITEST.

TYPE-POOLS: mrm.

DATA: lt_ivtyp TYPE mrm_tab_ivtyp,
      lt_rbkpv TYPE mrm_tab_rbkpv,
****Optional if you dont have them as select options already
*      lt_blart TYPE MRM_TAB_SOBLART,
*      lt_xblnr TYPE MRM_TAB_SOXBLNR,
*      lt_bktxt TYPE MRM_TAB_SOBKTXT,
*      lt_usnam TYPE MRM_TAB_SOUSNAM,
*      lt_gjahr TYPE  MRM_TAB_SOGJAHR,
*      lt_lifnr TYPE  MRM_TAB_SOLIFNR,
*      lt_bukrs TYPE  MRM_TAB_SOBUKRS,
*      lt_belnr TYPE  MRM_TAB_SOBELNR,
*      lt_bldat TYPE  MRM_TAB_SOBLDAT,
*      lT_BUDAT TYPE  MRM_TAB_SOBUDAT,
      lwa_ivtyp LIKE LINE OF lt_ivtyp,
      lwa_rbkpv LIKE LINE OF lt_rbkpv.

****Option if you want to fill some thing in T_IVTYP just uncomment the
****following code normally it is SPACE so no need to fill
*lwa_ivtyp = ''. "<your value here>.
*APPEND lwa_ivtyp TO lt_ivtyp.

PERFORM read_invhead TABLES lt_ivtyp
****NOTE from S_BLART to S_BUDAT if they are declared as select options
****then there is no need to pass them here as they will be already
****accessible inside subroutine otherwise uncomment the above ****delcarations and use lt tables after OR
                            s_blart    "OR lt_blart
                            s_xblnr    "OR lt_xblnr
                            s_bktxt    "OR lt_bktxt
                            s_usnam    "OR lt_usnam
                            s_gjahr    "OR lt_gjahr
                            s_lifnr    "OR lt_lifnr
                            s_bukrs    "OR lt_bukrs
                            s_belnr    "OR lt_belnr
                            s_bldat    "OR lt_bldat
                            s_budat    "OR lt_budat
                            s_rbkpv.

LOOP AT lt_rbkpv INTO lwa_rbkpv.
****Do your processing here if that is your requirement

ENDLOOP.

*&---------------------------------------------------------------------*
*&      Form  read_invhead
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LT_IVTYP  text
*      -->P_LT_BLART  text
*      -->P_LT_XBLNR  text
*      -->P_LT_BKTXT  text
*      -->P_LT_USNAM  text
*      -->P_LT_GJAHR  text
*      -->P_LT_LIFNR  text
*      -->P_LT_BUKRS  text
*      -->P_LT_BELNR  text
*      -->P_LT_BLDAT  text
*      -->P_LT_BUDAT  text
*      -->P_LT_RBKPV  text
*----------------------------------------------------------------------*
FORM read_invhead TABLES lt_ivtyp TYPE  mrm_tab_ivtyp
                         lt_blart TYPE  mrm_tab_soblart
                         lt_xblnr TYPE  mrm_tab_soxblnr
                         lt_bktxt TYPE  mrm_tab_sobktxt
                         lt_usnam TYPE  mrm_tab_sousnam
                         lt_gjahr TYPE  mrm_tab_sogjahr
                         lt_lifnr TYPE  mrm_tab_solifnr
                         lt_bukrs TYPE  mrm_tab_sobukrs
                         lt_belnr TYPE  mrm_tab_sobelnr
                         lt_bldat TYPE  mrm_tab_sobldat
                         lt_budat TYPE  mrm_tab_sobudat
                         lt_rbkpv TYPE  mrm_tab_rbkpv.


  DATA: lt_rbstat TYPE mrm_tab_sorbstat,
        lwa_rbstat LIKE LINE OF lt_rbstat.

  lwa_rbstat-sign = 'I'.
  lwa_rbstat-option = 'EQ'.
  lwa_rbstat-low = '2'.
  APPEND lwa_rbstat TO lt_rbstat.

  CALL FUNCTION 'MRM_INVHEAD_MANY_READ'
    EXPORTING
      t_ivtyp               = lt_ivtyp
    TABLES
     t_blart               = lt_blart  
     t_xblnr               = lt_xblnr  
     t_bktxt               = lt_bktxt  
     t_usnam               = lt_usnam  
*   T_ERFNAM              =
     t_gjahr               = lt_gjahr  
     t_lifnr               = lt_lifnr  
     t_bukrs               = lt_bukrs
     t_belnr               = lt_belnr
     t_bldat               = lt_bldat
     t_budat               = lt_budat
*   T_REPART              =
      t_rbstat              = lt_rbstat
      t_rbkpv               = lt_rbkpv
   EXCEPTIONS
     entry_not_found       = 1
     OTHERS                = 2.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " read_invhead

Former Member
0 Kudos

Hi Anitha,

1 TYPE-POOLS mrm.

write this statement in ur program at top.

then declare :

DATA : t TYPE mrm_tab_ivtyp.

2. MRM contains the definition

for T_IVTYP.

regards,

amit m.

Message was edited by: Amit Mittal