经常需要在报表程序中调用其他事务,SAP提供了一些Function直接调用,也可以通过call transaction的语句来实现。
一、系统Function Module
SAP系统提供的Function Group有:
V06A: SD Document Flow and Status Display
MEEXT: External Function for Purchasing
MESHOW:Display Purchasing Document
CK50: Explanation Facilities
EDI5: EDI: display data, status, ctrl record
Function group: V06A (SD Document Flow and Status Display) 中包含了SD模块中SO、DN和Billing相关事务的调用Function。如下:
"直接调用显示SO的Tcode:VA03, 参数vbtyp可以参看Table:VBUK的VBTYP字段,这里值C表示order
CALL FUNCTION 'RV_CALL_DISPLAY_TRANSACTION'
EXPORTING
* bukrs = wa_bseg-gjahr
* fcode = 'VA03'
* gjahr = '2012'
* LGNUM = ' '
posnr = wa_bseg-buzei
vbeln = wa_bseg-belnr
* AUFNR =
vbtyp = 'C'
* FI_APPLI = ' '
.
Function group: MESHOW (Display Purchasing Document) 中包含了MM模块中PO相关事务的调用Function。如下:
"直接调用显示PO的Tcode:ME23N
CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
EXPORTING
i_ebeln = itab-ebeln
i_ebelp = itab-ebelp
EXCEPTIONS
not_found = 1
no_authority = 2
invalid_call = 3
preview_not_possible = 4
OTHERS = 5.
Function group: MEEXT (External Function for Purchasing) 中包含了MM模块中Material、Info record、REQUISITION、Vendor等相关事务的调用Function。如下:
"调用Tcode:MM03
CALL FUNCTION 'MMPUR_MATERIAL_DISPLAY'
EXPORTING
im_matnr = itab-matnr
im_werks = itab-werks
im_lgort = itab-lgort.
二、Call Transaction
Call Transaction的方法也很简单,其界面上的参数可以通过SET PARAMETER ID 来设置,如下:
"调用FB03,显示FI Document
SET PARAMETER ID 'BLN' FIELD wa_bseg-belnr.
SET PARAMETER ID 'GJR' FIELD wa_bseg-gjahr.
SET PARAMETER ID 'BUK' FIELD wa_bseg-bukrs.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
至于PARAMETER ID的获取,直接通过 F1帮助 =》 Technical Information =》 PARAMETER ID。
