01-13-2006 6:18 AM
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
01-13-2006 7:59 AM
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
01-13-2006 7:59 AM
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
01-13-2006 8:09 AM
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