• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

SAP ABAP/4学习---BDC批量输入写成内表程序

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 29次 | 进入软件测试论坛讨论

领测软件测试网
*-----------------------------------------------------------------------
* Program ID    :ZTEST904_BDC
* Program Name  :ZTEST904_BDC
*-----------------------------------------------------------------------
* CREATED DATE  :2004/09/04
* CREATED BY    :LiuGang
* DESCRIPTION   :这个程序是学习如何通过程序来调用
*                BDC自动导入数据的。
*-----------------------------------------------------------------------
* MODIFICATION  :
* DATE MODIFIED       MODIFIED BY     TRANSPORT REQUEST    DESCRIPTION
* 2004/09/04          LiuGang         VERSION:01/01            学习
*-----------------------------------------------------------------------
REPORT ZTEST904_BDC.


* 定义个BDC格式的内表
**************************************************
DATA : BEGIN OF I_BDCDATA OCCURS 0,
*BDC的程序名字,比如事物码MM01的程序名字为SAPLMGMM(sap标准程序)
         PROGRAM LIKE BDCDATA-PROGRAM,
*BDC Dynpro 号码
         DYNPRO LIKE BDCDATA-DYNPRO,
*BDC BDC Dynpro 開始
         DYNBEGIN LIKE BDCDATA-DYNBEGIN,
*BDC 项目名字
         FNAM LIKE BDCDATA-FNAM,
*BDC 项目名字的附加值
         FVAL LIKE BDCDATA-FVAL,
       END OF I_BDCDATA.

DATA: BEGIN OF ITAB OCCURS 0,
         A(9),
      END   OF ITAB.

ITAB-A = @#A0010@#.
APPEND ITAB.
ITAB-A = @#A0011@#.
APPEND ITAB.

 


* START-OF-SELECTION
START-OF-SELECTION.
LOOP AT ITAB.
   PERFORM APPEND_MM01 USING ITAB-A.
   PERFORM RUN_BDC.
ENDLOOP.


*---------------------------------------------------------------------*
*       FORM APPEND_DATA_MM01                                         *
*---------------------------------------------------------------------*
*       定义一个子程序里面,用来存放操作的各个步骤                     *
*---------------------------------------------------------------------*
FORM APPEND_MM01 USING FVAL LIKE ITAB-A.

  CLEAR I_BDCDATA.
  CLEAR I_BDCDATA[].


*开始新的画面事件
*0173画面
*把程序名字和 BDC DYnpro号码,开始标志 写入内表表头,
  I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
  I_BDCDATA-DYNPRO = @#0060@#.
  I_BDCDATA-DYNBEGIN = @#X@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_CURSOR@#.
  I_BDCDATA-FVAL = @#RMMG1-MATNR@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_OKCODE@#.
  I_BDCDATA-FVAL = @#/00@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#RMMG1-MATNR@#.
*新建立的物料凭证号码
* I_BDCDATA-FVAL = @#A004@#.
  I_BDCDATA-FVAL = FVAL.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#RMMG1-MBRSH@#.
  I_BDCDATA-FVAL = @#C@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#RMMG1-MTART@#.
  I_BDCDATA-FVAL = @#WERB@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.


*开始新的画面事件
  I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
  I_BDCDATA-DYNPRO = @#0070@#.
  I_BDCDATA-DYNBEGIN = @#X@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_CURSOR@#.
  I_BDCDATA-FVAL = @#MSICHTAUSW-DYTXT(01)@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_OKCODE@#.
  I_BDCDATA-FVAL = @#=ENTR@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#MSICHTAUSW-KZSEL(01)@#.
  I_BDCDATA-FVAL = @#X@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

*开始新的画面事件
  I_BDCDATA-PROGRAM = @#SAPLMGMM@#.
  I_BDCDATA-DYNPRO = @#4004@#.
  I_BDCDATA-DYNBEGIN = @#X@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_OKCODE@#.
  I_BDCDATA-FVAL = @#=BU@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#BDC_CURSOR@#.
  I_BDCDATA-FVAL = @#MAKT-MAKTX@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#MAKT-MAKTX@#.
  I_BDCDATA-FVAL = @#测试BDC导入数据@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#MARA-MEINS@#.
  I_BDCDATA-FVAL = @#000@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.

  I_BDCDATA-FNAM = @#MARA-MTPOS_MARA@#.
  I_BDCDATA-FVAL = @#NORM@#.
  APPEND I_BDCDATA.
  CLEAR I_BDCDATA.


ENDFORM.


*---------------------------------------------------------------------*
*       FORM RUN_BDC                                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM RUN_BDC.
*开始调用事务MM01,把做好的bdc对象传递过去,然后把模式设置为A,
*就是说所有窗口,均可以看见.
* N 表示不看见吧
  CALL TRANSACTION @#MM01@# USING I_BDCDATA MODE @#N@#.

ENDFORM.

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网