函数使用六:ABAP4_CALL_TRANSACTION

此函数是在程序中调用一个事物代码,跳转或者执行事物代码的程序。

参数说明:

Import

TCODE                            执行的事物代码

SKIP_SCREEN                  跳转事务代码的初始屏幕,只在跳转时用

MODE_VAL                      BDC时使用,对应 默认A:前台,显示屏幕    E:遇到错误停止并显示    N:后台模式      

UPDATE_VAL                   BDC时使用,对应 默认A:异步   S:同步     L:本地模式,LOCAL UPDATE

Export

SUBRC                            SY-SUBRC     返回值

Table

USING_TAB                      DBC DATA TABLE   如果调用BDC事务,BDC DATA的内容通过此表传值

SPAGPA_TAB                    Parameter   一般做跳转的参数设置 SET PARAMETER ID

MESS_TAB                       Message Table BDC 返回消息内表

 

EX.

"
REPORT ZABAP4_CALL_TRANSACTION.
"事务界面跳转
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'SE11'
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2
    OTHERS                  = 3.
IF SY-SUBRC <> 0.
ENDIF.

"功能跳转
DATA:GT_RFC_SPAGPA TYPE TABLE OF RFC_SPAGPA,
     GW_RFC_SPAGPA LIKE LINE OF GT_RFC_SPAGPA.
GW_RFC_SPAGPA-PARID = 'AUN'.
GW_RFC_SPAGPA-PARVAL = '10000140'.
APPEND GW_RFC_SPAGPA TO GT_RFC_SPAGPA.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    SKIP_SCREEN             = 'X' "SKIP FIRST SCREEN
  TABLES
    SPAGPA_TAB              = GT_RFC_SPAGPA
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2
    OTHERS                  = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

"BDC
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
DATA:MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'VBAK-VBELN'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                              '10000141'.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    MODE_VAL                = 'A'
    UPDATE_VAL              = 'S'
  TABLES
    USING_TAB               = BDCDATA
    MESS_TAB                = MESSTAB
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2.



*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
  APPEND BDCDATA.
ENDFORM.

 

转载于:https://www.cnblogs.com/sapSB/p/6970743.html

<think>嗯,用户想了解ABAP函数ME_DISPLAY_PURCHASE_DOCUMENT的详细说明和用法,包括参数说明。首先,我需要确认这个函数的功能是什么。根据名字来看,应该是显示采购单据的,比如采购订单或合同。接下来,我需要回忆一下这个函数的具体参数。通常SAP的函数模块会有输入参数,比如文档号、文档类型、年份等。可能还有控制显示的参数,比如是否弹出模式窗口。 我记得在SAP的采购模块中,ME_DISPLAY_PURCHASE_DOCUMENT常用于在程序里直接显示采购单据,类似于事务代码ME23N的功能。用户可能希望在自己的ABAP报表或增强中调用这个函数,而不是直接跳转到事务代码。这时候需要正确传递参数,比如采购订单号、采购订单类型等。 然后,关于参数说明,可能需要查找SAP的官方文档或函数模块的接口。例如,IV_DOCUMENT_TYPE对应采购文档类型,如'NB'表示标准采购订单;IV_DOCUMENT_NUMBER是采购订单号;IV_DOCUMENT_YEAR是年份。另外,IV_MODE可能控制显示模式,比如是否允许编辑,但根据经验,这个函数可能只是显示,不允许修改,所以IV_MODE可能用来控制是否以弹出窗口形式显示。 用户可能还关心示例代码,如何正确调用这个函数。需要确保参数正确传递,比如从数据库表中获取采购订单的信息,或者从用户输入中获取。还要注意可能的异常处理,比如文档不存在时的处理。 此外,用户可能想知道这个函数使用场景,比如在自定义报表中快速查看采购订单详情,或者在增强中自动显示相关单据。还需要提醒用户注意权限问题,是否有权限访问相关采购数据。 可能的相关问题包括如何获取采购订单的数据,或者如何创建采购订单,这时候可以提到BAPI如BAPI_PO_CREATE1,但当前问题主要是显示。另外,用户可能会问到如何处理调用后的屏幕跳转,或者如何集成到事务代码中,这可能需要参考SAP的CALL TRANSACTION用法或增强技术。 最后,确保回答结构清晰,分步骤说明函数的用途、参数、示例和注意事项,并生成相关问题帮助用户进一步探索。</think>### ABAP函数ME_DISPLAY_PURCHASE_DOCUMENT详解 #### 1. 函数功能 `ME_DISPLAY_PURCHASE_DOCUMENT`是SAP MM模块中用于**显示采购凭证(如采购订单、框架协议等)**的标准函数模块。其作用类似于事务代码`ME23N`(显示采购订单)的底层实现,允许在ABAP程序中直接调用并显示采购凭证的详细信息[^3]。 #### 2. 核心参数说明 需通过`IMPORTING`参数传递采购凭证的关键信息: $$ \begin{aligned} &\text{IV\_DOCUMENT\_TYPE} \quad &&\text{采购凭证类型(如'NB'=标准采购订单)} \\ &\text{IV\_DOCUMENT\_NUMBER} \quad &&\text{采购凭证编号} \\ &\text{IV\_DOCUMENT\_YEAR} \quad &&\text{凭证年份} \\ &\text{IV\_MODE} \quad &&\text{显示模式('DISPLAY'=只读,'CHANGE'=编辑)} \\ &\text{IV\_POPUP} \quad &&\text{是否以弹窗形式显示(默认SPACE=全屏)} \end{aligned} $$ #### 3. 调用示例 ```abap DATA: lv_ebeln TYPE ekko-ebeln VALUE '4500000011', lv_bukrs TYPE ekko-bukrs VALUE '1000'. CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT' EXPORTING iv_document_type = 'NB' "采购订单类型 iv_document_number = lv_ebeln "采购订单号 iv_document_year = '2024' "订单年份 iv_mode = 'DISPLAY' "显示模式 iv_popup = 'X'. "弹窗显示 ``` #### 4. 注意事项 - **权限控制**:用户需具备`ME23N`事务代码的权限 - **数据来源**:通常与`EKKO`(采购凭证头表)/`EKPO`(采购凭证行表)联用获取凭证信息 - **增强场景**:可通过`EXIT_SAPMM06E_013`等增强点扩展功能[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值