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

BDC技术(一个例子)相关推荐

  1. 通过一个具体的例子,讲解 SAP BDC 技术的使用步骤

    BDC 是 Batch Data Communication,批处理数据交互的英文缩写. 这种技术的理念其实不复杂,而且不少游戏玩家想必都已经接触过和 BDC 类似的工具,那就是按键精灵. 比如我们玩 ...

  2. ReCap 360 photo照片建模技术的又一个例子

    这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...

  3. 什么是数据挖掘,给出一个你在生活中应用数据挖掘技术的例子,分析数据挖掘的意义。...

    数据挖掘是指从大量数据中自动或半自动地发现有用的信息.模式和知识的过程.数据挖掘通常包括预处理数据.选择适当的数据挖掘技术.应用算法和模型.评估结果和解释发现的知识. 一个我在生活中应用数据挖掘技术的 ...

  4. SAP BDC 技术的分类(转)

    首先, 解释BDC这三个英文的意思, 普遍都认同是(Batch Data Communication). 然后下面是一些相关的术语解释: Batch Input: 批输入, 用于大批量, 非实时性( ...

  5. [机器学习]一个例子完美解释朴素贝叶斯分类器

    何为"朴素":属性条件独立性假设 如果已知条件不止一个属性,二是多个呢,这个时候贝叶斯公式可以写作 上述公式假设特征属性 a1,a2⋯ 相互独立,这也是"朴素" ...

  6. SDN精华问答 | 使用SDN的一个例子

    SDN火热了好一阵子,无论运营商.政府企业.投资机构,一段时间,不知道SDN.不能甩几个SDN相关的名词术语,似乎都落后于时代了.今天,就来看看关于SDN的精华问答吧. 1 Q:为什么会出现SDN呢? ...

  7. 《游戏设计师修炼之道:数据驱动的游戏设计》一2.3 创建漏洞:一个例子

    2.3 创建漏洞:一个例子 现在,让我们使用上文提到的所有项目设计一个场景,通过实际演练来了解善意程序造成的恶劣后果.本章开始提到的电子邮件程序就是个好例子.稍后,我们将按照SDLC的所有步骤,来看看 ...

  8. SAP UI5 应用开发教程之八十一 - 采用 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  9. 从一个例子开始分析AIDL原理

    上一个项目(下载中心)使用到了AIDL相关的技术,趁现在项目不是特别繁忙,总结一下.首先第一个问题,AIDL是个啥东西?它的全称叫 Android Interface Definition Langu ...

最新文章

  1. 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器
  2. ClickHouse系列教程六:源码分析之Debug编译运行
  3. 如何访问“我的网站”
  4. ul li列表元素浮动导致border没有底边解决办法
  5. leetcode 290 Word Pattern
  6. freemark判断传过来的值为空和不为空及问号、感叹号用法
  7. 自动驾驶公司Momenta完成B2轮融资,凯辉领投GGV跟投
  8. 移除collection中元素的注意事项(应用collection.remove移除元素造成的错误)
  9. 用 GitHub 来部署静态网页 ꒰・◡・๑꒱
  10. ACM算法竞赛入门 概述
  11. Web视频播放总结,avi、swf、兼容IE6/7/8
  12. 新华三PRIMERA,开启存储新纪元
  13. 23种PHP开发工具集合
  14. Vue 登录验证之滑动拼图验证码
  15. 外贸邮箱能群发吗?用哪个外贸邮箱发开发信回复率高?
  16. Android学习之登陆界面设计(二)基本界面设计
  17. 农业灌溉水力驱动过滤器
  18. 断臂求生!捷信全线退出医美市场
  19. Mac使用终端命令合并分区
  20. 51nod1503 猪和回文

热门文章

  1. 伯颜的诗和“金佛”趣事
  2. 小米蓝牙左右互联_解决不同品牌智能家居的兼容问题,小米米家智能多模网关发布...
  3. jquery上传图片_文件上传三种方式
  4. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解
  5. 状态机 python_Python状态机设计
  6. mac定时执行python_Python脚本实现在Mac上DIY定时提醒功能
  7. appimage文件怎么安装_bauh:在一个界面中管理 Snap、Flatpak 和 AppImage | Linux 中国...
  8. 图形学教程Lecture 14: RayTracing1(Acceleration Radiometry)知识点总结
  9. GPU Gems2 - 13 动态环境光遮蔽与间接光照(Dynamic Ambient Occlusion and Indirect Lighting)
  10. 麻省理工学生发明 震惊世界