BDC技术(一个例子)

BDC技术

BDC(Batch Data Conversion):在SAP系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的,典型的情形就是切换系统的时候,旧系统的数据需要导入SAP),大致过程不外乎是这样: 输入一个t-code,
进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点执行或者确定按钮,
进入另一个屏幕,在某些字段输入值(也可能是标注checkbox选中或者不选中)或者修改这些字段里的值。
然后按“Eneter”……
最后按“SAVE”……,
一条记录完成了,继续下一条,如此循环。

上面所述的情形,如果让一个“人”来做的话,可能是真是受不了的。但是对于计算机来说,就很简单了。

SAP通过一个特殊的程序(T-code:SHDB)把用户的一次业务操作的所有过程记录下来。

从用户输入transaction code(事务代码),点下“Start Recording”开始,对于用户的来说是一次普通的业务操作,但是SAP却在记录:
1.光标放到哪个字段,(在程序中不用改变)
2.填入了什么值,(变量,循环中的Internal Table 某个字段)
3.点击了什么按钮(在程序中不用改变)

本次操作的作为一个“代表”,是一个“模板”,告诉SAP系统以怎样的方式来执行程序,也就是用计算机的语言来描述如果手工操作的话应该是怎样的一个过程。


用BDC技术编程时,有以下几个步骤:
1.把外部的数据源(Txt,Excel等)用读进internal table或者用do enddo循环。
2.在循环里,把用SHDB记录的步骤重复执行N次,(N = Dialog屏幕数量)这时实际上并没行完成数据的入,系统只是在“填表”,填一个叫做“BDCData”的Internal Table。
填完bdcdata以后,用call transaction ‘XXXX’ using bdc……这个命令来真正的commit动作或者call function 'BDC_Insert'在建立一个session。并把执行的结果返回给messtab这个Internal Table

现在假想一种情境,来做一个演示的BDC程序。
由于业务上的需要,某公司打算将某些物料的描述都在后面加上指定的文本Group X,所以需要修改已经存在的物料数据,用T-code:MM02,

外部数据是TXT文本,记录有N条,如下:

Material NO. Description
6000-00001 XXXXXXX(Group A)
2098-00001 fdfladsfladfl(Group B )
2059-00009 dfdsfreddfalfasfa(Group A)
2003-00003 iadfdafdf,adfasf(Group D)
……
……
下面是“录”操作的过程,在命令栏里输入T-code :SHDB,进入如下屏幕:

点New Recodring,出现如下屏幕:

其中Recording 的名字是任意给的。MM02是需要录的事务代码。

按下“Start Recording”,就会进入“Change Material”,这时,以下的操作对于用户来说是一次普通修改物料描述操作,尽管系统在记录所有的操作。

输入一个物料后,点击“Select View(s)”

假设我们只选“Basic Data 1”和“Basic Data 1”
然后点击绿色的小勾“Enter”

我们在该物料后面添加一个“Group A”,描述改为:
……

然后点“SAVE”,保存这次修改。

现在SAP回到了SHDB,

先点“SAVE”,保存Recording :Ztest,然后点”Back”,返回SHDB的第一屏。

选中“Ztest”,然后点击“Program”,由SAP自动生成一个程序。
在上面的对话框中输入程序的名字(注意SAP的命名规范,Y或者Z开头),确认输入

再输入一些程序的属性信息如下:

点击“Source Code”,指定“Develop Class”等后,就可以进入ABAP Editor,产生如下代码:

report ZBDCTEST
no standard page heading line-size 255.

include bdcrecx1.

parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
*
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*
*** Generated data section with specific formatting - DO NOT CHANGE ***
data: begin of record,
* data element: MATNR
MATNR_001(018),
* data element: XFELD
KZSEL_01_002(001),
* data element: XFELD
KZSEL_02_003(001),
* data element: MAKTX
MAKTX_004(040),
* data element: MEINS
MEINS_005(003),
* data element: MTPOS_MARA
MTPOS_MARA_006(004),
* data element: GEWEI
GEWEI_007(003),
end of record.

*** End generated data section ***

start-of-selection.

perform open_dataset using dataset.
perform open_group.

do.

read dataset dataset into record.
if sy-subrc <> 0. exit. endif.

perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=AUSW'.
perform

转载于:https://www.cnblogs.com/huggins/archive/2009/06/03/1495704.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为android怎样隐藏软件,华为怎么打开隐藏应用功能

隐藏应用是没有密码的&#xff0c;隐藏应用的方法&#xff1a;在主桌面两指分开&#xff0c;进入隐藏应用界面&#xff0c;点击(添加)&#xff0c;然后点击要隐藏的应用&#xff0c;再点击确定即可。应用锁有密码&#xff0c;是机主设定的&#xff0c;如果设置了指纹访问应用&a…

事务的传播性和隔离级别

事务的传播性&#xff1a;1、PROPOGATION_REQUIRES --需要在一个事务中执行2、PROPOGATION_SUPPOTS --不需要在一个事务中执行&#xff0c;如果有事务&#xff0c;也可以执行3 PROPOGATION_NOT_SUPPORTED --不支持在一个事务中执行&#xff0c;如果在…

Oracle建立表空间和用户

Oracle建立表空间和用户 建立表空间和用户的步骤&#xff1a; 用户 建立&#xff1a;create user username identified by "password"; 授权&#xff1a;grant create session to username;grant create table to username;grant create tablespace…

VC系统扫雷游戏外挂源代码程序下载(转帖

VC系统扫雷游戏外挂源代码程序下载&#xff08;转帖&#xff09;2008-03-04 10:25经过了多次测试写出了历史上第一个有点意义的MFC程序。效果差强人意。^_^ CODE:// CrackWinmineDlg.cpp : implementation file// #include "stdafx.h"#include "CrackWinmine.h&…

signature=54cb1c123491dc1a268a21f3502cccfc,Modelling information routing with noninterference

摘要&#xff1a;To achieve the highest levels of assurance, MILS architectures need to be formally analysed. A key challenge is to reason about the interaction between the software applications running on top of MILS core components, such as the separation…

JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案

面向对象&#xff08;上&#xff09; 1.名词解释&#xff1a;构造方法、抽象 构造方法一般是用来初始化数据成员的&#xff0c;与类名相同&#xff0c;无返回值。 分为有参和无参数&#xff0c;当一个类中没有定义构造函数时&#xff0c;系统会给该类中加一个默认的空参数的构造…

转:看问题的5个层次

转自&#xff1a;http://www.narrativecard.com/%E7%9C%8B%E9%97%AE%E9%A2%98%E7%9A%845%E4%B8%AA%E5%B1%82%E6%AC%A1/ 转自&#xff1a;《创业教我的50件事》 事件当然要处理&#xff0c;就像疼痛必须注意。但若整天只忙于事件&#xff0c;就像疼了一个月还在猛吞止痛药&#…

鸿蒙系统公测版发布,鸿蒙OS2.0系统公测版什么时候发布-适配机型

鸿蒙OS2.0手机开发者Beta版本于今日已正式发布&#xff0c;那么鸿蒙OS2.0系统的公测版本上市时间&#xff0c;适配手机名单有哪些&#xff0c;接下来小编就为大家带来了解答&#xff0c;一起看看吧&#xff01;一、公测版发布时间12月16日&#xff0c;发布了鸿蒙OS2.0手机开发者…

jQuery实现分页

参考网上的资源(必优博客 http://www.biuuu.com/) 注意&#xff1a;CSS样式使分页导航水平显示&#xff0c;如果没有的话将以普通列表方式呈现。 <html><head><script type"text/javascript" src"Library/jquery1.3.1/dist/jquery.js">&…

对acm icpc 的随笔——01

1&#xff0c;提高编程能力2&#xff0c;学习算法&#xff08;读书&#xff0c;读论文&#xff0c;包括一些题目的验证&#xff09;3&#xff0c;准备好面临的挑战&#xff08;熟悉体型&#xff0c;调整心态&#xff09;4&#xff0c;启发思维 <时刻保持镇定&#xff0c;用心…

oracle常用的工具软件

PL/SQL DevelopertoadOBJECT BROWSEREmbarcadero Rapidsql转载于:https://blog.51cto.com/lsg123/1561234

angular 加入原生html,Angular HTML绑定

收到一只叮咚Angular 2.0.0和Angular 4.0.0 final仅为了安全的内容constructor(private sanitizer:DomSanitizer){}transform(style) {return this.sanitizer.bypassSecurityTrustHtml(style);//return this.sanitizer.bypassSecurityTrustStyle(style);// return this.sanitiz…

foriegn web site

http://www.codeproject.com www.ddj.com http://www.guru.com/ 转载于:https://www.cnblogs.com/liulf/archive/2009/06/11/1501670.html

Unity游戏开发之C#快速入门

C#是微软团队在开发.NET框架时开发的&#xff0c;它的构想接近于C、C&#xff0c;也和JAVA十分相似&#xff0c;有许多强大的编程功能。 个人感受是C#吸收了众多编程语言的优点&#xff0c;从中可以看到C、C、Java、Javascript、python的影子&#xff0c;设计思想都是相通的(过…

通过PowerShell获取Windows系统密码Hash

当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢&#xff1f;作为白帽子&#xff0c;已经在对手防线上撕开一个口子&#xff0c;如果你需要进一步扩大战果&#xff0c;你首先需要做的就是潜伏下来&#xff0c;收集更多的信息便于你判断&#xff0c;便于有…

ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示

最近在写项目遇到了一个问题&#xff0c;我使用vue框架搭建了一个项目。我创建了一个 index.js文件&#xff0c;内容为&#xff1a;import { Icon } from ant-design-vue;const IconFont Icon.createFromIconfontCN({scriptUrl: //at.alicdn.com/t/font_2296540_wpxzi5ar76.js…

java filter

一、Filter简介 Filter也称之为过滤器&#xff0c;它是Servlet技术中最激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截&#xff0c;从而实现一些特殊的功…

visualstudio调试html,Visual Studio Code中调试JavaScript

一、安装Debugger for Chrome扩展插件二、配置运行环境最左侧菜单找到调试(一个虫子样图标)&#xff0c;点击下图中红色标注或者直接按F5&#xff1a;然后出现下图所示&#xff1a;选择Chrome&#xff0c;会生成Launch.json文件&#xff1a;{// 使用 IntelliSense 了解相关属性…

动态网页技术(二)

SSH整合的基本步骤1、 Spring向下整合Hibernate&#xff08;DAO层&#xff09;1.1使用Spring的IoC容器创建sessionFactory1.2使用Spring的IoC容器创建DAO2、 Spring中间管理业务层2.1使用Spring的IoC容器创建Biz Bean2.2使用Spring的AOP配置业务层事务3、 Spring向上整合Str…

IT人的真实写照

IT人的真实写照Ping MM&#xff1a;Request timed out&#xff1b; & C" i; j0 p }3 d4 I# {5 Y8 ZPing money&#xff1a;Destination unreachable&#xff1b; ! U6 W6 y& U4 N8 X7 X0 A& \- N2 zPing Love&#xff1a;Unkown host name&#xff1b; N E!…