天天看点

ABAP调用事务方法

    经常需要在报表程序中调用其他事务,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。

ABAP调用事务方法