DATA: L_FILENAME TYPE STRING.
L_FILENAME = P_FILE.
CLEAR G_ERR.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = L_FILENAME "上改枝载文件路径(C:\Documents and Settings\test.txt)
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X' ”这两个参数要求上载的文本文件内各字余歼胡段值(列)之间以Tab键分割
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = 'X'
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE=
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH=
* HEADER=
TABLES
DATA_TAB = I_DATA “上传到程序中的目标内表
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED= 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT= 16
OTHERS= 17.
IF SY-SUBRC <>0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM." F_FILE_UPLOAD
另外你说的另一种方法,是以竖拦EXCEL文件上载到SAP程序的吗,给你几个参考函数:
ALSM_EXCEL_TO_INTERNAL_TABLE
TEXT_CONVERT_XLS_TO_SAP
KCD_EXCEL_OLE_TO_INT_CONVERT
PS:其实GUI_UPLOAD对文本文件和EXCEL文件都是能够实现上载到SAP内表中的,
你把FILENAME = L_FILENAME 上载文件路径换成(C:\Documents and Settings\test.xls)就行啦!!
首先知道BDC是什么?SAP实施工作导数据给SAP系统。正常情况,例如新建悄启物料,就是MM01中一点点KEY值进去保存。那么如果大数据量,客户还不得累死,几百万条数据做到什么时候。所以使用BDC,upload数据到程序里,程序进行loop,每一次loop,就是模仿 *** 作一次MM01,最后call trancation,提交一次。成功或者失败抛出消息。BDC原理就是这样。知道了原因,如何 *** 作录屏,SHDB,选择下需要使用什么事物代码,然后开始录屏,进到MM01添加该添加字段值,保存,则运派回退到SHDB中,再次保存。这里SHDB就是录屏 *** 作步骤,网上相关录屏 *** 作截图有很多。可以百度查查。
最后生成程序,在程序中把固定孙贺值变成变量,这样就可以每次loop时候,填充字段。
这就是BDC相关 *** 作。
定义数据类型用关键字 TYPES.定义数据对象用关键字 DATA.
在abap程序中用abap基本数据类型(预定义类型)定义局部数据类型,还可以定义包含多个abap基本数据类型的结构体类型。
参考现有的数据对象(LIKE)
DATA A2 LIKE A1."A1对象
参考现有的旁斗数据类型(TYPE)
DATA A2 LIKE A1."A1类型
VALUE关键字来指定数据对象的初始值。
DATA NUM1 TYPE I VALUE 10. "NUM1初始值为10
LENGHT关键字指变量长度。
DATA NUM2 TYPE C LENGHT8.
DATA NUM2(8) TYPE C.
DATA语句没有指定 TYPE则默认长度为1的C类型。
SY-SUBRC:系统执行某命令后,表示执行成功与否的变量,'0'表示成功
SY-UNAME:当前使用者的name
SY-DATUM:当前系统日期
SY-UZEIT:当前系统时间
SY-TCODE:当前执行程序的Tcode
数值文字不加单引号
123,-123
字符文字加单引号
'HELLO','123.4','123E4'
CONSTANTS语句用来定义常数,必须有VALUE值
CONSTANTS a1 TYPE TNAME VALUE8.
一个汉字弯启裤占两个长度
赋值
MOVE 对象/对象字段 TO 对象/对象字段.
对象/对象字段 = 对象/对象字段.
所有的符号都要用空格隔开,圆括号和 *** 作符都是关键字需要跟 *** 作数之间至少用一个空格隔开。
例:( 20 + 10) *10 + 10 / 2.
用'/'去大值 用DIV取小值
ABS(n):取绝对值
SIGN(n):判断数值符号
n为正,返回1;n为0,返回0;n为负,返回-1;
CEIL(n):取大于数值n的最小整数.
例:WRITE CEIL(1.23). 输出2
WRITE CEIL(-2.23). 输出-2
FLOOR(n):取小于数值n的最小整数
例:WRITE FLOOR(1.23). 输出1
WRITE FLOOR(-2.23). 输出-3
TRUNC(n):去埋简数值的整数部分
例:WRITE TRUNC(1.23). 输出1
WRITE TRUNC(-2.23). 输出-2
FRAC(n):去数值的小数部分
例:WRITE FRAC(1.23). 输出0.23
具体用法:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)