Welcome! My friends!
BC420--ABAP数据传输(1)文件
上一篇 / 下一篇 2008-01-03 15:14:19 / 个人分类:SAP ABAP
第一辑 文件
:fz]#J+P:Mkh:Z(A)u01.顺序文件 Sequential FilesITPUB个人空间4~,Y;^4b`
数据传输中的一个重要介质;ITPUB个人空间,R7?c-tS!oV:iP-x
file transfer的两种方式:ITPUB个人空间(Q9ie Q5o{
本地-->SAP DB:GUI_UPLOAD(UPLOAD)/GUI_DOWNLOAD(DOWNLOAD)函数;
H1H'zb-z#[H Z0 应用服务器-->SAP DB:READ DATASET/TRANSFER自由ABAP语法;ITPUB个人空间/P7B }p7o[nA(qDv6qU
File Monitor(t-code:AL11):ITPUB个人空间-Ig4G&R'?A,je
查看应用层服务器的文件,与平台无关;ITPUB个人空间P4]9q6FQ6ddp9u
目录都是DIR开头的;ITPUB个人空间yo o*U^rE6uUZ-uW
ITPUB个人空间u[2Tz.{*O
当需要生成复杂的office报表,例如excel或者word文件时,可以在ABAP程序中调用ITPUB个人空间7}(G4r o9Et
excel或word的VBA宏,也可以将excel或word的模板放到应用层服务器上,然后ABAP
5NL&k+q4]y0~.F0 程序执行时调用模板填充数据,然后返回给用户;ITPUB个人空间I3|x:F/N$DOK*E%tl
ITPUB个人空间o,b(n^?%K S
处理文件(文件放在应用层服务器的情况)ITPUB个人空间f |_{wW*w
OPEN(OPEN DATASET) 路径ITPUB个人空间*qw6q8]FK
for output覆盖ITPUB个人空间P2_e6~:xl
for appending添加
~7_Jk,B0 for input读取ITPUB个人空间:~3k%`Qi(Jx] S'F
in text mode文本模式打开(默认是binary mode)ITPUB个人空间1e8`#m5Amgw
二进制输入时不会输换行符;ITPUB个人空间;Uo\2p*i$]x-w]
MESSAGE message打开时的消息ITPUB个人空间!rOZB!yM
PROCESS(READ DATASET/TRANSFER DATASET)
v_*F ZT?9n0 循环读取
D$i9P@p0 DO.ITPUB个人空间?#K!{ [o5Z)^6d8n m+u
READ DATESET xx INTO xx LENGTH xx.ITPUB个人空间(| vR4muwC?#N5r;D8l/X w
ENDDO.ITPUB个人空间1eCg3X2U&G
删除文件
!N+F Slm6\*M4a0 DELETE DATASET xx
,Ex6Z(u)n0w k0 获取文件属性ITPUB个人空间6N`pe/nkBQ
GET DATASET xx
t eWCl7S7e0y-c0 设置文件属性
(MZ d DVMT$\6eC0 SET DATASET xxITPUB个人空间,ret D1^m!T|\ m
CLOSE(CLOSE DATASET)ITPUB个人空间_V!^,rR{Y
*x`*wmK-gO-^02.ABAP转换程序ABAP Conversion Program
gOt$i,D!X*T]/H0r/~0 要使用SAP标准的batch input程序,就需要将文件转换成相应的格式;ITPUB个人空间CrRa4VVX
把客户(外部系统)的文件转换成符合应用服务器规格的文件;
D8O@Pu!j0 步骤:
VX ac0E?SQ/E0 读取文件
hz8B:yJ`R0 转换格式为标准格式ITPUB个人空间n_!?2\}:I4Mz
(0-session ,
E9h4u i,p?0 1-transaction,ITPUB个人空间1o.Df$V$A
2-screen)ITPUB个人空间 q(t*Z(a_J
传值ITPUB个人空间)k%N)d+^(j TV
写目标文件
E!fba \;@ ?0
_,_'Y%K|0 DX workbenchITPUB个人空间7^7Z;afPmE
t-code:sxda_tools
b`#~(Q*s8x0C)\ Bj0
t`5S Xg0H|t M03.本地顺序文件Local Sequential Files
^ YB0|-j)e.DG,E+R0 GUI_UPLOAD:本地--〉内表ITPUB个人空间)Qi*B/n2V(v;]
GUI_DOWNLOAD:内表--〉本地ITPUB个人空间2byUar.qj*xG
选择文件名和路径方法:
MY Q&pcb0 使用function:WS_FILFENAME_GET
@.~j6h5|/A0 调用类的方法
:fz]#J+P:Mkh:Z(A)u01.顺序文件 Sequential FilesITPUB个人空间4~,Y;^4b`
数据传输中的一个重要介质;ITPUB个人空间,R7?c-tS!oV:iP-x
file transfer的两种方式:ITPUB个人空间(Q9ie Q5o{
本地-->SAP DB:GUI_UPLOAD(UPLOAD)/GUI_DOWNLOAD(DOWNLOAD)函数;
H1H'zb-z#[H Z0 应用服务器-->SAP DB:READ DATASET/TRANSFER自由ABAP语法;ITPUB个人空间/P7B }p7o[nA(qDv6qU
File Monitor(t-code:AL11):ITPUB个人空间-Ig4G&R'?A,je
查看应用层服务器的文件,与平台无关;ITPUB个人空间P4]9q6FQ6ddp9u
目录都是DIR开头的;ITPUB个人空间yo o*U^rE6uUZ-uW
ITPUB个人空间u[2Tz.{*O
当需要生成复杂的office报表,例如excel或者word文件时,可以在ABAP程序中调用ITPUB个人空间7}(G4r o9Et
excel或word的VBA宏,也可以将excel或word的模板放到应用层服务器上,然后ABAP
5NL&k+q4]y0~.F0 程序执行时调用模板填充数据,然后返回给用户;ITPUB个人空间I3|x:F/N$DOK*E%tl
ITPUB个人空间o,b(n^?%K S
处理文件(文件放在应用层服务器的情况)ITPUB个人空间f |_{wW*w
OPEN(OPEN DATASET) 路径ITPUB个人空间*qw6q8]FK
for output覆盖ITPUB个人空间P2_e6~:xl
for appending添加
~7_Jk,B0 for input读取ITPUB个人空间:~3k%`Qi(Jx] S'F
in text mode文本模式打开(默认是binary mode)ITPUB个人空间1e8`#m5Amgw
二进制输入时不会输换行符;ITPUB个人空间;Uo\2p*i$]x-w]
MESSAGE message打开时的消息ITPUB个人空间!rOZB!yM
PROCESS(READ DATASET/TRANSFER DATASET)
v_*F ZT?9n0 循环读取
D$i9P@p0 DO.ITPUB个人空间?#K!{ [o5Z)^6d8n m+u
READ DATESET xx INTO xx LENGTH xx.ITPUB个人空间(| vR4muwC?#N5r;D8l/X w
ENDDO.ITPUB个人空间1eCg3X2U&G
删除文件
!N+F Slm6\*M4a0 DELETE DATASET xx
,Ex6Z(u)n0w k0 获取文件属性ITPUB个人空间6N`pe/nkBQ
GET DATASET xx
t eWCl7S7e0y-c0 设置文件属性
(MZ d DVMT$\6eC0 SET DATASET xxITPUB个人空间,ret D1^m!T|\ m
CLOSE(CLOSE DATASET)ITPUB个人空间_V!^,rR{Y
*x`*wmK-gO-^02.ABAP转换程序ABAP Conversion Program
gOt$i,D!X*T]/H0r/~0 要使用SAP标准的batch input程序,就需要将文件转换成相应的格式;ITPUB个人空间CrRa4VVX
把客户(外部系统)的文件转换成符合应用服务器规格的文件;
D8O@Pu!j0 步骤:
VX ac0E?SQ/E0 读取文件
hz8B:yJ`R0 转换格式为标准格式ITPUB个人空间n_!?2\}:I4Mz
(0-session ,
E9h4u i,p?0 1-transaction,ITPUB个人空间1o.Df$V$A
2-screen)ITPUB个人空间 q(t*Z(a_J
传值ITPUB个人空间)k%N)d+^(j TV
写目标文件
E!fba \;@ ?0
_,_'Y%K|0 DX workbenchITPUB个人空间7^7Z;afPmE
t-code:sxda_tools
b`#~(Q*s8x0C)\ Bj0
t`5S Xg0H|t M03.本地顺序文件Local Sequential Files
^ YB0|-j)e.DG,E+R0 GUI_UPLOAD:本地--〉内表ITPUB个人空间)Qi*B/n2V(v;]
GUI_DOWNLOAD:内表--〉本地ITPUB个人空间2byUar.qj*xG
选择文件名和路径方法:
MY Q&pcb0 使用function:WS_FILFENAME_GET
@.~j6h5|/A0 调用类的方法