数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SAP ABAP/4学习---BDC批量输入写成内表程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

*-----------------------------------------------------------------------
* 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.




相关文章

相关软件