2020-08-14 17:50发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我需要从Application Server获取文件。 如果在选择屏幕上给出了日期范围和路径,则基于此我需要从应用程序服务器文件中获取文件。 有谁能够帮我? 有SAP功能模块吗?
Hai Suresh,
只需检查此链接...。
应用程序服务器中的文件列表
此致
Srikanth。
您好,suresh,
1。 您可以尝试此程序(只需复制粘贴)
2。
a)路径
b)日期
,它将列出所有相关文件
3。
报告abc。
* ----
DATA
类型:name_of_dir(1024)TYPE c,
name_of_file(260)TYPE c,
name_of_path(1285)TYPE c。
数据:文件的开头,
dirname TYPE name_of_dir,"目录名。(可能
"被截断。)
name TYPE name_of_file,文件名,(可能被
"截断。)
type(10)TYPE c ,""条目类型。
len(8)TYPE p,"字节长度。
owner(8)TYPE c,"条目的所有者。
mode(9)TYPE c,",例如" rwx-rx--x":保护模式。
subrc(4)类型c,
errno(3)类型c,
errmsg(40)类型c,
mod_date类型d,
mod_time(8)类型c," hh:mm:ss
看到(1)类型c,
已更改(1)类型c,
文件的结尾。
数据:所有文件喜欢的文件使用标题行占用了0。
选择屏幕
参数:路径 (260)TYPE C DEFAULT'/usr/sap/trans'小写字母。
参数:mydate TYPE sy-datum缺省sy-datum。
* ---- p>
选择开始
开始选择 -选择。
使用路径执行getallfiles。
BREAK-POINT。
显示日期 文件
写:/'----
文件的日期',mydate。
在mod_date = mydate的所有文件中循环。 p>
如果是allfile-type CS'file'。
WRITE:/allfile-name。
ENDIF。
ENDLOOP。
显示所有文件
跳过。
WRITE:/'----
所有文件和目录"。
在allfile处循环。
FORM
刷新allfile。
CLEAR allfile。
调用'C_DIR_READ_FINISH'"以确保
ID'ERRNO'字段文件错误
ID'ERRMSG'字段文件错误
CALL'C_DIR_READ_START'ID'DIR'字段mypath
ID'FILE'FIELD a_generic_name
ID'ERRNO'FIELD file-errno
ID'ERRMSG'FIELD file-errmsg。
做。
清除文件。
调用'C_DIR_READ_NEXT'
ID'TYPE'字段文件类型
ID'NAME'字段文件名
ID'LEN'字段文件len
ID'OWNER'字段文件所有者
ID'MTIME' 场 D file-mtime
ID'MODE'FIELD文件模式
ID'ERRNO'FIELD文件-errno
如果sy-subrc = 1。
退出。
使用文件mtime执行p6_to_date_time_tz(rstr0400) p>
文件修改时间
文件修改日期。
allfile =文件。
APPEND全部文件。
ENDDO。
ENDFORM。 " GETALLFILES
*- -
使用gmtime
asc_time
asc_date格式p6_to_date_time_tz。
数据:操作码类型x,
时间戳类型i,
日期类型d,
时间类型t,
tz sy- zonlo,
timestring(10),
abapstamp(14),
abaptstamp TYPE时间戳。
timestamp = gmtime。
Benutzer hat keine Zeitzone gepflegt:nehme lokale des App。Srv。
调用功能'TZON_GET_OS_TIMEZONE'
导入
ef_timezone = tz
ef_not_unique =唯一
ef_not_found =未找到。> p>
IF唯一='X'或not_found ='X'。
tz = sy-tzone。
将'UTC +'tz合并为tz。
ELSE。
tz = sy-zonlo。
EN DIF。
以ABAP格式浪费时间时间戳,而以ABAP格式保存时间
操作码= 3。
CALL'RstrDateConv'
ID'OPCODE'字段操作码
ID'TIMESTAMP'字段时间戳
ID'ABAPSTAMP'字段abapstamp。
abaptstamp = abapstamp。
转换时间戳记abaptstamp时区tz到日期date
时间。
如果sy-subrc <> 0。
日期= abapstamp(8)。
时间= abapstamp + 8。
写:time(2)TO timestring(2),
':'TO timestring + 2(1),
time 2(2)TO timestring 3(2),
':'TO时间字符串+5(1),
时间 4(2)TO时间字符串 6(2)。
将时间字符串移动到asc_time。
将日期移动到asc_date。
ENDFORM。 " P6_TO_DATE_TIME_TZ
*
关于,
允许m。
数据:DLIST喜欢EPSFILI发生,0 标题行, DPATH之类的EPSF-EPSDIRNAM, MDATE SY-DATUM, MTIME SY-UZEIT, POINT_IN_TIME TYPEI。 数据:开始发生FATTR 0 FILE_NAME喜欢EPSF-EPSFILNAM, 像EPSF-EPSFILSIZ这样的FILE_SIZE, 像EPSF-EPSFILOWN这样的FILE_OWNER, 像EPSF-EPSFILMOD这样的FILE_MODE 像EPSF-EPSFILTYP这样的FILE_TYPE, FILE_MTIME(12), FATTR结束。 参数P_PATH(50)C型默认'/TMP'小写。 DPATH = P_PATH。 通话功能" EPS_GET_DIRECTORY_LISTING" 出口 DIR_NAME = DPATH"/img/tmp 桌子 DIR_LIST = DLIST 例外情况 INVALID_EPS_SUBDIR = 1 SAPGPARAM_FAILED = 2 BUILD_DIRECTORY_FAILED = 3 NO_AUTHORIZATION = 4 READ_DIRECTORY_FAILED = 5 TOO_MANY_READ_ERRORS = 6 EMPTY_DIRECTORY_LIST = 7 其他= 8。 如果SY-SUBRC EQ 0。 通话功能'EPS_GET_FILE_ATTRIBUTES' 出口 FILE_NAME = DLIST-NAME DIR_NAME = DPATH导入 FILE_SIZE = FATTR-FILE_SIZE FILE_OWNER = FATTR-FILE_OWNER FILE_MODE = FATTR-FILE_MODE FILE_TYPE = FATTR-FILE_TYPE FILE_MTIME = FATTR-FILE_MTIME。 万一。 *上述应用服务器文件的创建日期和时间 POINT_IN_TIME = FATTR-FILE_MTIME。 通话功能" POINT_IN_TIME_CONVERT" 出口 POINT_IN_TIME = POINT_IN_TIME 输入 DATE = MDATE 时间= MTIME 其他除外= 1。 *在SE37中测试上述FM时,与AL11中存在的确切文件名或目录名相同 *(区分大小写)应在调试模式下输入给FM。 否则我们得到 * READ_DIRECTORY_FAILED错误。
最多设置5个标签!
Hai Suresh,
只需检查此链接...。
此致
Srikanth。
您好,suresh,
1。 您可以尝试此程序(只需复制粘贴)
2。
a)路径
b)日期
,它将列出所有相关文件
3。
报告abc。
* ----
DATA
* ----
类型:name_of_dir(1024)TYPE c,
name_of_file(260)TYPE c,
name_of_path(1285)TYPE c。
数据:文件的开头,
dirname TYPE name_of_dir,"目录名。(可能
"被截断。)
name TYPE name_of_file,文件名,(可能被
"截断。)
type(10)TYPE c ,""条目类型。
len(8)TYPE p,"字节长度。
owner(8)TYPE c,"条目的所有者。
< p> mtime(6)TYPE p,"上次修改日期,自1970年以来的秒数mode(9)TYPE c,",例如" rwx-rx--x":保护模式。
< > useable(1)类型c,subrc(4)类型c,
errno(3)类型c,
errmsg(40)类型c,
mod_date类型d,
mod_time(8)类型c," hh:mm:ss
看到(1)类型c,
已更改(1)类型c,
文件的结尾。
数据:所有文件喜欢的文件使用标题行占用了0。
* ----
选择屏幕
* ----
参数:路径 (260)TYPE C DEFAULT'/usr/sap/trans'小写字母。
参数:mydate TYPE sy-datum缺省sy-datum。
* ---- p>
选择开始
* ----
开始选择 -选择。
使用路径执行getallfiles。
BREAK-POINT。
* ----
显示日期 文件
写:/'----
文件的日期',mydate。
在mod_date = mydate的所有文件中循环。 p>
如果是allfile-type CS'file'。
WRITE:/allfile-name。
ENDIF。
ENDLOOP。
* ----
显示所有文件
跳过。
跳过。
WRITE:/'----
所有文件和目录"。
在allfile处循环。
WRITE:/allfile-name。
ENDLOOP。
* ----
FORM
* ----
< p>使用mypath生成getallfiles。
刷新allfile。
CLEAR allfile。
调用'C_DIR_READ_FINISH'"以确保
ID'ERRNO'字段文件错误
ID'ERRMSG'字段文件错误
CALL'C_DIR_READ_START'ID'DIR'字段mypath
ID'FILE'FIELD a_generic_name
ID'ERRNO'FIELD file-errno
ID'ERRMSG'FIELD file-errmsg。
做。
清除文件。
调用'C_DIR_READ_NEXT'
ID'TYPE'字段文件类型
ID'NAME'字段文件名
ID'LEN'字段文件len
ID'OWNER'字段文件所有者
ID'MTIME' 场 D file-mtime
ID'MODE'FIELD文件模式
ID'ERRNO'FIELD文件-errno
ID'ERRMSG'FIELD file-errmsg。
如果sy-subrc = 1。
退出。
ENDIF。
使用文件mtime执行p6_to_date_time_tz(rstr0400) p>
文件修改时间
文件修改日期。
allfile =文件。
APPEND全部文件。
ENDDO。
ENDFORM。 " GETALLFILES
* ----
FORM
*- -
使用gmtime
asc_time
asc_date格式p6_to_date_time_tz。
数据:操作码类型x,
< p>唯一,未找到,时间戳类型i,
日期类型d,
时间类型t,
tz sy- zonlo,
timestring(10),
abapstamp(14),
abaptstamp TYPE时间戳。
timestamp = gmtime。
Benutzer hat keine Zeitzone gepflegt:nehme lokale des App。Srv。
调用功能'TZON_GET_OS_TIMEZONE'
导入
ef_timezone = tz
ef_not_unique =唯一
ef_not_found =未找到。> p>
IF唯一='X'或not_found ='X'。
tz = sy-tzone。
将'UTC +'tz合并为tz。
ENDIF。
ELSE。
tz = sy-zonlo。
EN DIF。
以ABAP格式浪费时间时间戳,而以ABAP格式保存时间
操作码= 3。
CALL'RstrDateConv'
ID'OPCODE'字段操作码
ID'TIMESTAMP'字段时间戳
ID'ABAPSTAMP'字段abapstamp。
abaptstamp = abapstamp。
转换时间戳记abaptstamp时区tz到日期date
时间。
如果sy-subrc <> 0。
日期= abapstamp(8)。
时间= abapstamp + 8。
ENDIF。
写:time(2)TO timestring(2),
':'TO timestring + 2(1),
time 2(2)TO timestring 3(2),
':'TO时间字符串+5(1),
时间 4(2)TO时间字符串 6(2)。
将时间字符串移动到asc_time。
将日期移动到asc_date。
ENDFORM。 " P6_TO_DATE_TIME_TZ
*
关于,
允许m。
一周热门 更多>