Welcome! My friends!
BC420--ABAP数据传输(1)文件
上一篇 /
下一篇 2008-01-03 15:14:19
/ 个人分类:SAP ABAP
第一辑 文件
ITPUB个人空间(h(Z0iQ?&r(snC1.顺序文件 Sequential Files
j%J w!H+v+K(s0 数据传输中的一个重要介质;
%Z4VF)DG/DjX0 file transfer的两种方式:
#v-B[:Y V^l0 本地-->SAP DB:GUI_UPLOAD(UPLOAD)/GUI_DOWNLOAD(DOWNLOAD)函数;
2@
hyQ'|&A{0 应用服务器-->SAP DB:READ DATASET/TRANSFER自由ABAP语法;
0nSkU
vP6]0 File Monitor(t-code:AL11):
$J/h'e x2^0 查看应用层服务器的文件,与平台无关;
ITPUB个人空间k+Rd,nwW!P 目录都是DIR开头的;
ITPUB个人空间#m3kEWfp e)o0D5jaRT0 当需要生成复杂的office报表,例如excel或者word文件时,可以在ABAP程序中调用
ITPUB个人空间\cRta"N7En~,F excel或word的VBA宏,也可以将excel或word的模板放到应用层服务器上,然后ABAP
pQ{~.t0 程序执行时调用模板填充数据,然后返回给用户;
ITPUB个人空间H0tN
{9J,@_U h\zKh7XITPUB个人空间%t:j2kd"b 处理文件(文件放在应用层服务器的情况)
Bn3O m'o*i,Ry0 OPEN(OPEN DATASET) 路径
Y `.k%AfIW
Km?W0 for output覆盖
ITPUB个人空间
`b;Ba!sf,q for appending添加
x _irwyaY0 for input读取
as.b+?'zcxX\,Y7j0 in text mode文本模式打开(默认是binary mode)
&K0[]+Ho~Ua0 二进制输入时不会输换行符;
ITPUB个人空间`zB2?q MESSAGE message打开时的消息
ITPUB个人空间F/S
B*L\;l4G*v&z PROCESS(READ DATASET/TRANSFER DATASET)
-p8f-ftH(?,CA0 循环读取
%}qZ9Y:T3XCY#V
P0 DO.
BR&i['q+m$Q+]0 READ DATESET xx INTO xx LENGTH xx.
}mbeL5e7?0 ENDDO.
ITPUB个人空间B{z$a@ GY4_2q-I;K 删除文件
ITPUB个人空间.qwc5Qiy2R DELETE DATASET xx
!Sz^6p8u-d3t,yk0 获取文件属性
,ZC0t k
~/Rh
E2B0 GET DATASET xx
lC
YpF0 设置文件属性
ITPUB个人空间hlr3gW SET DATASET xx
ITPUB个人空间6g
oIWZa7J4I*i CLOSE(CLOSE DATASET)
nmhN3?9TXi0 *[
edIP}x:x
h02.ABAP转换程序ABAP Conversion Program
ITPUB个人空间7{2@6Ou'{*H8W 要使用SAP标准的batch input程序,就需要将文件转换成相应的格式;
,SaKH
R't&XnP0 把客户(外部系统)的文件转换成符合应用服务器规格的文件;
ITPUB个人空间p}|},F 步骤:
ITPUB个人空间8Z4l*yL
V 读取文件
ITPUB个人空间9G
DG
`p 转换格式为标准格式
ITPUB个人空间(Y M#H(}4?)x*y (0-session ,
ITPUB个人空间3\C9uw+J7S2| Y ~ 1-transaction,
x p[PA@yl4_0 2-screen)
+n^#hw?Au0 传值
7CtwPR5eW3~0 写目标文件
ITPUB个人空间L;~G nD f(X*^2{hF5sw2ll6\k1X-O!Hn0 DX workbench
ITPUB个人空间 t5j zH%xL,S t-code:sxda_tools
6?w#z.I&E"r @lM6G0
g],KO4J/L
n%{4LAL03.本地顺序文件Local Sequential Files
V1_K'r0]GL"q:L0 GUI_UPLOAD:本地--〉内表
kQ+jA(@R3B"T0 GUI_DOWNLOAD:内表--〉本地
+h8lFz*Eh;B0 选择文件名和路径方法:
;R)s'e3x/`x0 使用function:WS_FILFENAME_GET
ITPUB个人空间
n;bZ%D O W.p 调用类的方法
2V'G0U aY)Wi
ij0 CALL METHOD cl_gui_frontend_services=>file_open_diaog
"YE@
Ff
u0 EXPORTING
ITPUB个人空间2Hw-RK4UBFJ window_title = ''
ITPUB个人空间6HZpU6e]u multiselection = ''
`_~WAH0 default_filename = '.'
ITPUB个人空间ge&};\,R&Gh)l%{ initial_directory = ' '
VC)v4~U+W(Y-L0 CHANGING
xLgi&~)Q"O/~3N!x~0 file_table = filetable
ku,k^k0 rc = rc.
ITPUB个人空间9p%^zm'gv H~0T mU CAll METHOD cl_gui_cfw=>flush.
#?"m4GN SX&|&^0 LOOP AT filetable.
5E'm4zc'jDq`1Z0 ....
ITPUB个人空间|*x b!y},a ENDLOOP.
%I6k4_
J/kE-C(V0ITPUB个人空间Gk)]L!p$?lWNd4.逻辑文件Logical File Names
ITPUB个人空间@&^HMuM*d 可移植性:程序中使用逻辑文件,逻辑文件和物理文件映射,当物理文件变化时,
+sN lG0TC0 不需要更改程序,只需要更改物理文件和逻辑文件的对应关系;
ITPUB个人空间P s
bO1mm t-code:file
ITPUB个人空间f9R$`
s6GIgd\ a>.定义逻辑路径;
ITPUB个人空间o9k8IY!J
vY[ b>.关联逻辑路径和物理路径;eg: D:\<filename> 必须以<filename>结束;
ITPUB个人空间9O"f6UH'? c>.定义逻辑文件;
ITPUB个人空间?)|3d^^ 在程序中要使用逻辑文件时,使用function:file_get_name;
ITPUB个人空间2hTa,BCc
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: