数据导入工具BDC使用例子.docx

上传人:b****5 文档编号:7781240 上传时间:2023-01-26 格式:DOCX 页数:33 大小:1.21MB
下载 相关 举报
数据导入工具BDC使用例子.docx_第1页
第1页 / 共33页
数据导入工具BDC使用例子.docx_第2页
第2页 / 共33页
数据导入工具BDC使用例子.docx_第3页
第3页 / 共33页
数据导入工具BDC使用例子.docx_第4页
第4页 / 共33页
数据导入工具BDC使用例子.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数据导入工具BDC使用例子.docx

《数据导入工具BDC使用例子.docx》由会员分享,可在线阅读,更多相关《数据导入工具BDC使用例子.docx(33页珍藏版)》请在冰豆网上搜索。

数据导入工具BDC使用例子.docx

数据导入工具BDC使用例子

 

目录

1.BDC的基本知识2

1.1BDC概述2

1.2BDC的处理步骤2

2.录制BDC模板3

2.1录制BDC模板3

2.2BDC模板的编辑4

2.3制作数据收集文件(数据原文件)7

2.4数据转换及上载(方法一)8

2.5数据转换及上载(方法二)20

2.6数据转换及上载(方法三)23

2.7数据转换及上载(方法四)27

2.8几种方法的比较30

3.BDC的执行及出错处理31

3.1BDC的执行31

3.2BDC的日志查看32

3.3BDC的出错分析34

3.4BDC运行时,常用的OKCODE35

 

1.BDC的基本知识

1.1BDC概述

BDC(BatchInputCommunication)有时也称为批输入(BatchInput),是SAP系统数据传输的主要技术之一,主要用于把数据大量大批输入到SAP系统。

 

1.2BDC的处理步骤

 

第一步:

录制BDC标准命令(BDC模板)

第二步:

制作数据收集的EXCEL文件(数据原文件)

第三步:

数据转换,并上载到SAP系统中

常用以下方法:

1.WORD邮件合并

2.SAPTOOL

3.EXCEL宏

4.ABAP程序

第四步:

到批处画面进行执行处理

注意:

做好的模板,要在测试系统反复测试后,才到生产机进行批量导入执行,否则容易出现大量错误。

主数据还好,没用使用前大部分能删除,但业务数据就不行了,只能冲销了。

 

2.录制BDC模板

2.1录制BDC模板

事务码:

SHDB

进入画面后,点击按钮“Newrecording”

输入以下数据后,回车

Recording(记录名):

XXXXXX(由自己指定)

Transactioncode:

PSPO(需要调用的TCODE,这里以创建科目表层科目为例)

 

进入画面后,如同平常创建创建科目表层科目一样处理(注意:

尽量不要有多余动作)

点击保存后,将自动回到以下画面。

 

如上图点击保存按钮,然后点击

按扭下载BDC模板到本地电脑中(一般作为文本文件来保存)。

 

2.2BDC模板的编辑

 

打开BDC模板文件(可以用记事本、EXCEL、WORD来打开),以EXCEL为例,先打开一个新的EXCEL表,把所有单元格设置为文本格式,然后用记事本打开BDC模板,全部选择后复制后把数据全部粘贴到EXCEL中。

仔细分析检查一下确认有无需要添加或删除的行。

对于“Fieldname”这列中出现BDC_SUBSCR或BDC_CURSOR这样的数据(如图片中黄颜色行),你可以按行来删除这样的多余命令(注意要按整行来删除)。

 

BDC命令行的解读:

0000TFSP0:

表示调用TCODEPSP0

BDC_OKCODE=ACC_CRE:

表示点了创建科目按钮

BDC_OKCODE/00:

表示回车

BDC_OKCODEXXXX:

一般表示为点击XXXX按扭

SAPLGL_ACCOUNT_MASTER_MAINTAIN2001X:

表示调用程序的2001画面

GLACCOUNT_SCREEN_KEY-SAKNR160001:

表示给字段赋值16001

(通常表、字段的表示格式为:

XXXXXX-ZZZZZ,XXXXXX为表名,ZZZZ为字段名)

 

若原录制的BDC字段不够,需要添加字段,则可在先在SAP前台画面选择中该字段然后点击F1,然后点击“Technicalinformation”,如下图:

 

 

(例:

添加创建科目表层“损益科目类型”字段,从上图我们可以看到这个字段所属的表为:

GLACCOUNT_SCREEN_COA,字段名为:

XPLACCT,则在BDC模板中加入以下行:

0000GLACCOUNT_SCREEN_COA-XPLACCT

对于插入行应该放在哪个屏幕哪一行,你应该找一下附近相关的字段,相近的字段为:

“资产负债表类型”(字段名为:

GLACCOUNT_SCREEN_COA-XBILK),则这一行可以放到这一行的前面或后面一行。

进一步用图来说明:

修改前:

 

修改后:

(修改部分为黄颜色行)

 

检查确认后把EXCEL中的BDC模板保存为文本文件。

 

2.3制作数据收集文件(数据原文件)

 

充分考虑业务需要及BDC的字段需要,来整理一张EXCEL表来收集数据,如下图为创建科目表层科目所需要的数据。

 

 

数据收集表做好以后,交相关业务人员收集填写。

交相关人员填写前,最好把数据收集表的填写格式要求做充分说明,比如:

科目组只能填写:

GL、PL…,科目号只能填写10位数以内。

 

2.4数据转换及上载(方法一)

本方法使用WORD邮件合并功能来实现,把每一条数据循环按BDC模板执行。

1.用WORD打开文本文件的BDC模板

打开WORD后,点击打开文件按钮,选择路径,注意:

指定文件类型为*.*

 

如上图,选择好指定的文件

 

如上图,选择Windows默认,

 

点击菜单:

工具->信函与邮件->邮件合并

 

 

点击右下角的:

“下一步”

 

继续点击:

“下一步”

 

 

继续点击:

“下一步”

 

出现上图“选择数据源”的对话框时,选择你的数据收集模板文件,然后点击打开。

 

出现上图时,注意选择EXCEL表中你的数据在哪个sheet表中

出现上图时,点击确认

 

出现上图时,点击“下一步”

出现右图中的“其他项目”时,就需要对每一个需要替换的字段进行指定。

 

用鼠标选择中要替换的第一个字段值,(如上图中的科目号,注意要全部选择上),然后点击右边的“其他项目”

 

出现上图时,点击“插入”按钮,然后再点击“关闭”按钮

 

如上图,一个一个地把要替代的字段全部指定好,并检查确认后,点击“下一步”

 

如上图,点击“下一步”

 

如上图,直到找不到点击“下一步”时,则选择“编辑个人信函”

出现上图对话框时,如上图选择“确定”

 

出现前页WORD画面时,注意翻页查看一下,是不是所有的记录都有了。

确认后选择另存为:

如上图,输入文件名,并选择好文件类型(一定要为纯文本)

(呵呵,不好意思,手误写错误了文件名,本应该为FSP0_UPLOAD.txt)

出现上图时,选择“确定”

2.上载文件

事务码:

SHDB

如上图选中一个Recording,点击修改按钮

点击上载按扭

,并选择相应的上载文件

 

点击打开按钮,上载文件。

 

如上图,上载后点击保存按钮

,然后点击

回到前一画面

 

如上图,到这一画面后,选择中你的Recording,点击

当弹出对话窗口时,选择“keepsession”,然后点击按扭

,这样你的BDC就送入BATCHINPUT等待处理了。

 

2.5数据转换及上载(方法二)

本方法使用一个名叫“saptool完全版+().exe”的工具来实现,把每一条数据循环按BDC模板执行。

1.数据文件按一定格式整理

 

如上图,

(1).在第一列之前增加一列;

(2).在第一行之前增加九行;

(3).第一行输入的是相应的SAP字段名;

(4).第二行是字段名说明;

(5).第三行是字段类型;

(6).第四行是字段长度;

(7).第五行至第七行,可以不填写;

(8).第八行是说明数据是否为必填写,还是可选。

(9).第九行第一单元格输入“STARTDATA”

(10).在全部数据输入后,再下一行的第一单元格输入“ENDDATA”

 

数据有效行:

有效的数据应该放在“STARTDATA”的下一行开始,并且应该在“ENDDATA”之前的上行止;

数据有效列:

从有字段名的第一列开始,到有字段名的最后一列。

当然,你也可以以这种EXCEL的数据表作为数据收集模板。

 

2.数据文件另存为文本文件

方法一:

将1中的EXCEL文件另存为以制表符分隔的文本文件

方法二:

将1中的EXCEL有数据的这一个表页全部选中并复制,再打开一个空记事本,将数据粘贴到记事本中,然后保存为文本文件。

 

3.使用SAPTOOL.exe将数据全部套用模板

找到“saptool完全版+().exe”文件,双击打开。

(1)第一行:

选择你的BDC模板

(2)第二行:

选择你的数据源,也就是你将EXCEL另存为文本文件的那个文件

(3)第三行:

选择生成的上载文件放在哪个文本文件里

(4)第四行:

选择运行日志放到哪里(运行出错时注意查看此日志)

全部选择好后,点击

 

4.使用SAP专门的程序来上载文件

事务码:

SE38

输入程序名:

ZSBDC010然后执行

如上图,选择你要上载的文件,并输入你的session名,然后点击执行按钮

这样你的BDC就送入BATCHINPUT等待处理了。

 

2.6数据转换及上载(方法三)

本方法使用excel宏实现,把每一条数据循环按BDC模板执行。

1.打开写有宏的EXCEL表,启用宏。

(你若没有这样的文件,可以上网找一找,应该很容易找到的)

 

2.将数据收集表放到“BDCRawData”表页

注意:

“STARTDATA”应放在第一单元格“ENDDATA”应该放在最后一行数据的下一行的第一个单元格。

 

3.将BDC模板放到到写有EXCEL宏的文件的“BDCTemplate”表页

注意:

(1)将原BDC文件中的第一行删除(即有TCODE的那一行)

(2)将原来的程序屏幕号与“X”合并到一个单元格

(3)将TCODE写为:

TCDE+XXXX(事务码)写到BDC模板数据最后一行的下一行

(4)在TCODE的下一行写入结束标志“ENDTCDE”

(5)模板的行有效范围:

第三行至TCODE的前

(5)模板的列有效范围:

BDC放在A到D的四列中

(6)从E列开始的列:

为注释列,放一些注释说明

把D列的格式设置为自定义格式:

0;0;

对于需要替换的字段,如上图中的D9列,对应的应该是会计科目组,你可进入表页“BDCRawData”查看一下会计科目组在哪一列,若在D列,则此处写入公式:

$D$1

这样一个字段一个字段对核对,并指定公式。

 

4.进入“BDCMenu”表页,执行数据转换

 

点击按钮“StartBDCUtility”

 

 

第一行第一个选择框:

指定你的BDC数据收集文件在哪个EXCEL文件

第一行第二个选择框:

指定你的BDC数据收集文件在哪个表页

第二行第一个选择框:

指定你的BDC模板在哪个EXCEL文件

第二行第二个选择框:

指定你的BDC模板在哪个表页

如上图选择后,点击按钮:

OK,

 

指定生成的上载文件存放的路径及文件名。

 

5.使用SAP专门的程序来上载文件

事务码:

SE38

输入程序名:

ZSBDC010然后执行

如上图,选择你要上载的文件,并输入你的session名,然后点击执行按钮

这样你的BDC就送入BATCHINPUT等待处理了。

2.7数据转换及上载(方法四)

本方法使用ABAP/4程序宏实现,把每一条数据循环按BDC模板执行。

1.定义一个内表包含

data:

beginofrecordoccurs0,

anlkl(8),"资产分类

bukrs(4),"公司代码

txt50(50),"资产描述1

txa50(50),"资产描述2

anlhtxt(50),"资产主号说明

sernr(18),"序列号

...

endofrecord.

2.定义屏幕选项

*atselection-screen

atselection-screenonvalue-requestforp_file.

callfunction'KD_GET_FILENAME_ON_F4'

exporting

static='X'

mask=',*.*,*.*.'

changing

file_name=p_file.

3.文件上载

callfunction'WS_UPLOAD'

exporting

filename=p_file

filetype='DAT'

tables

data_tab=record

exceptions

conversion_error=1

file_open_error=2

file_read_error=3

invalid_type=4

no_batch=5

unknown_error=6

invalid_table_width=7

gui_refuse_filetransfer=8

customer_error=9

others=10.

ifsy-subrc<>0.

messages023with'上传文件有误。

'.

leavelist-processing.

endif.

 

5.BDC命令套用

 

loopatrecord.

performdynprousing:

'SAPLAIST''0105''X',

'''ANLA-ANLKL'record-anlkl,"资产分类

'''ANLA-BUKRS''1000',"公司代码

'''BDC_OKCODE''=MAST',

'SAPLAIST''1000''X',

'''ANLA-ANLN2''0',

'''ANLA-TXT50'record-txt50,"资产描述1

'''ANLA-TXA50'record-txa50.

endloop.

6.BDC命令

clearbdcdata.

ifanespace.

move:

atobdcdata-program,

btobdcdata-dynpro,

ctobdcdata-dynbegin.

else.

move:

btobdcdata-fnam,

ctobdcdata-fval.

endif.

appendbdcdata.

 

7.直接送入批处理

calltransaction'AS91'

usingbdcdata

modep_tmode.

callfunction'TB_MESSAGE_BUILD_TEXT'

exporting

langu=sy-langu

msgid=sy-msgid

msgno=sy-msgno

msgv1=sy-msgv1

msgv2=sy-msgv2

msgv3=sy-msgv3

msgv4=sy-msgv4

importing

text=message-text.

moverecord-txt50tomessage-mark.

movetabixtomessage-tabix.

appendmessage.

clearmessage.

 

2.8几种方法的比较

方法一(Word邮件合并):

优点:

1.容易为用户理解及接受,

2.涉及字段较少时,速度快。

缺点:

1.Word邮件合并处理10000以上记录时,速度非常慢

2.字段较多时,替换字段比较麻烦

3.对于SAP4.6及以下版本的SAPBDC文件下载打开时用WORD编辑没什么问题,但对于SAP4.7以上版本,则WORD编辑时,版式比较难看,且不整齐,容易编辑出错

4.不能进行逻辑判断

 

方法二(SAPTOOL):

优点:

1.源文件套用BDC模板速度快

2.可按字段长度检查是否有字段超出长度

缺点:

1.不允许有不同表但有相同字段,否则出错(导入固定资产就有这样的现象)

2.不能进行逻辑判断

 

方法三(EXCEL宏):

优点:

1.源文件套用BDC模板速度快

2.BDC模板可根据需要添加及修改

3.可以进行逻辑判断

缺点:

1.需要对VB有一定了解

2.不能修改EXCEL中的格式

 

方法四(ABAP/4程序):

优点:

1.源文件套用BDC模板速度快

2.BDC模板可根据需要添加及修改

3.可以进行逻辑判断

缺点:

1.需要ABAP/4人员支持

2.添加字段时,需要修改程序

 

3.BDC的执行及出错处理

3.1BDC的执行

事务码:

SM35

选择你的Session,然后点击

我的建议是:

选择后台运行Background

选择扩展日志Extendedlog

然后点击

3.2BDC的日志查看

事务码:

SM35

如上图,选择你的Session,点击

再选择是哪次执行的,然后点击

 

 

查看

1.总记录有多少,(如:

30transactionsread)

2.共有多少条执行成功,(如:

0transactionsprocessed)

3.多少条记录出错,(如:

30transactionswitherrors)

4.出错记录是第几条记录(注意查看Index列)

5.出错的消息是什么(注意查看Message列)

3.3BDC的出错分析

1.查看LOG中的消息

2.通过再次执Session(注意:

再次执行只是针对出错部分执行,已执行成功的不再执行),这次选择前台处理Process/foreground,通过前台看看是什么错误

 

3.4BDC运行时,常用的OKCODE

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1