SAP Script表单开发调用ABAP preform方法

缘由:当使用标准T-code打印Script表单需要增加或调整内容时(如F.62抓取供应商ADRC对应版本名称),标准T-code抓取的供应商一般资料LFA1的资料,而调整标准做隐式增强比较不方便。

        此时可以在Script调用Program进行数据的处理,传入和传出的参数需要使用Structure承接。以下示例说明。

1.SE71调用Program之Perform。

固定格式

/:            PERFORM GET_VAL IN PROGRAM Z_GRUSE_SE71TEST

/:            USING &BSEG-LIFNR&

/:            CHANGING &L_NAME&

/:            ENDPERFORM

/                                                                                     

/             &L_NAME&

2.ABAP Program:Z_GRUSE_SE71TEST。

传入参数和传出参数要用Structure承接

REPORT Z_GRUSE_SE71TEST.

FORM GET_VAL TABLES IN_TAB STRUCTURE ITCSY
OUT_TAB STRUCTURE ITCSY.
  DATAL_NAME(255TYPE C.
  DATAGT_ADRC LIKE ADRC OCCURS WITH HEADER LINE.
  CLEAR:L_NAME,GT_ADRC[],GT_ADRC.
  READ TABLE IN_TAB INDEX 1.

*  READ TABLE OUT_TAB INDEX 1.
*  L_NAME = 'TEST1223'.
*  MOVE L_NAME TO OUT_TAB-VALUE.
  
    SELECT SINGLE ADRNR
    INTO L_ADRNR
    FROM LFA1
   WHERE LIFNR IN_TAB-VALUE.

  CALL FUNCTION 'ADDR_LANGUAGE_MAP_TO_VERSION'
    EXPORTING
      IV_LANGUAGE              SY-LANGU
      IV_APPLICATION_COMPONENT 'MM_PUR_VENDOR'
    IMPORTING
      EV_NATION                L_EV_NATION
* EXCEPTIONS
*     PARAMETER_ERROR          = 1
*     INTERNAL_ERROR           = 2
*     OTHERS                   = 3
    .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

*取得ADRC
  SELECT *
    FROM ADRC
    INTO TABLE GT_ADRC
   WHERE ADDRNUMBER L_ADRNR
     AND NATION  L_EV_NATION.
  READ TABLE GT_ADRC INDEX 1.

  IF SY-SUBRC EQ 0.
    DATAL_STR(255TYPE C.
    CLEAR:L_STR.
    READ TABLE OUT_TAB WITH KEY NAME 'L_NAME'.
    CONCATENATE GT_ADRC-NAME1 GT_ADRC-NAME2 GT_ADRC-NAME3 GT_ADRC-NAME4
         INTO L_STR.
    OUT_TAB-VALUE L_STR.

    MODIFY OUT_TAB INDEX SY-TABIX.
  ELSE.

  ENDIF.

ENDFORM.

传入参数:

值Value:

 传出参数Value:

 

3. SE71  SAPScript的debug方法

打开SE71,Form空白,点击“Utilities--Activate Debugger”,下方提示“SAPscript form debugger was activated”。

到标准T-code执行表单,出现下图点OK即可进行SAPscript Debug过程。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值