赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 5817|回复: 34

[P3J8]ABAP之BatchInput实现

  [复制链接]
发表于 2010-11-26 10:31:14 | 显示全部楼层 |阅读模式
BatchInput是一个批处理工具。跟我们前面学过的LSMWSECTT。是差不多的。其实现方法是先通过SM35录制事务代码执行的每一步。然后系统自动生成一段程序代码。执行这个程序代码的时候就会跟我们前面操作事务代码画面一样。把这一段代码放在我们的ABAP程序里,在ABAP程序里我们再通过函数把数据上传至内部表,通过循环内部表把数据一一的赋值给录制的程序,这样就可以一次性的通过程序把数据全部登陆到我们的SAP系统里了。下面我们来看看是如何实现BDC的。
一,定义BDCDATA内部表
首先我们要定义BDCDATA内部表,定义这个表有什么用呢,因为我们在用SM35录制屏幕时,生成的程序代码里有字段和值。这些值到时我们把它替换成我们的登陆的值,然后放在BDCDATA内部表里,通过CALL TRANSACTION传给SAP系统的,下面我是录的FB03的画面。请看

其中的Field value里的值就是我们将来替换(根据需要)。
定义BDCDATA表语法如下:
DATA: IT_BDCDATA    TYPE TABLE OF BDCDATA.      "BDCDATA
其结构如下


二,
游客,如果您要查看本帖隐藏内容请回复


三,替换数据
可以按照下面的格式,把数据替换
FORM MAKE_BDCDATA.
  PERFORM BDC_DYNPRO USING 'SAPMV45A'    '0101'.
  PERFORM BDC_FIELD: USING C_BDC_OK      '/00',

  PERFORM BDC_DYNPRO USING 'SAPMV45A'    '4001'.
  PERFORM BDC_FIELD: USING C_BDC_OK      '=SICH',
  .
  .
  .
ENDFORM.   

四,替换完后,进行CALL TRANSACTION
FORM EXEC_BATCHINPUT.
  CALL TRANSACTION 'VA01'   USING    IT_BDCDATA
                                              MODE     'N'
                                              UPDATE   'S'
                                              MESSAGES INTO IT_BDCMSG.
ENDFORM.
把BDCDATA作为参数传进来,并把消息放到表IT_BDCMSG内。这里有两个参数MODE和UPDATE,解释如下
MODE:N(画面不表示),A(画面表示)
UPDATE:S(同期更新),A(非同期更新)

五,补充
第三步用到了BDC_DYNPRO和BDC_FIELD,其实现方法如下
FORM BDC_DYNPRO USING VALUE(V_PROGRAM) TYPE ANY
                                           VALUE(V_DYNPRO)    TYPE ANY.
  CLEAR: WA_BDCDATA.
  WA_BDCDATA-PROGRAM  = V_PROGRAM.
  WA_BDCDATA-DYNPRO    = V_DYNPRO.
  WA_BDCDATA-DYNBEGIN = 'X'.
  APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

FORM BDC_FIELD USING VALUE(V_FNAM) TYPE ANY
                                       VALUE(V_FVAL) TYPE ANY.
  CLEAR: WA_BDCDATA.
  WA_BDCDATA-FNAM = V_FNAM.
  WA_BDCDATA-FVAL = V_FVAL.
  SHIFT WA_BDCDATA-FVAL LEFT DELETING LEADING SPACE.
  APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

其实BDC就是这么简单,下面附上一个我曾经写过的资产登陆的BDC,事务代码为AS91,供大家参考一下。06年在东京写的作品,有些语法现在看来真是怀具,呵呵,有不明白的可以联系我。http://www.91sap.com/thread-395-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

最近访客

  • wx_75910
    2022-10-21
  • austin
    2022-03-23
  • chenc880
    2021-07-03
  • 秃尾巴草
    2021-02-04




上一篇:[P3J7]ABAP之SECATT实现
下一篇:[P3J9]ABAP之锁机制实现
本楼点评(0) 收起
发表于 2011-4-18 12:04:02 | 显示全部楼层
学习了,谢谢哈。
本楼点评(0) 收起
发表于 2011-5-17 13:09:42 | 显示全部楼层
先看一下!支持
本楼点评(0) 收起
发表于 2011-7-21 15:46:20 | 显示全部楼层
学习了,谢谢哈。
本楼点评(0) 收起
发表于 2011-8-4 15:43:16 | 显示全部楼层
看隐藏内容
本楼点评(0) 收起
发表于 2011-8-4 16:08:40 | 显示全部楼层
学习一下SAP
本楼点评(0) 收起
发表于 2012-1-19 08:08:14 来自手机 | 显示全部楼层
继续学习
本楼点评(0) 收起
发表于 2012-3-7 16:38:46 | 显示全部楼层
正好要弄录屏的程序 先学习了
本楼点评(0) 收起
发表于 2012-4-25 16:37:57 | 显示全部楼层
满眼都是代码,想哭了
本楼点评(0) 收起
发表于 2012-6-29 13:35:58 | 显示全部楼层
这个就比较高深的东西了。。。
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-26 14:24 , Processed in 0.209721 second(s), 61 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表