尊敬的SAP和DMS专家
我想知道如何在运行时检查在Application Server -AL11- 上上传的文件的大小。
我的问题如下:
当使用FM HTTP_GET_FILE
在应用程序服务器(T代码AL11)上上传DMS文件(原始物料图)时,我有时遇到以下问题:>
应用服务器中上载的文件被另一个报告(SAP后台作业)不完整地拾取。 这可能是由于两个报告重叠(第一个报告将文档上传到应用服务器,第二个报告(作业)读取并作为电子邮件发送)。
到目前为止,我解决该问题的尝试是: 在第二次报告期间,会将原始文件的大小与上载的文件进行比较。如果两个大小不相等,请等待1秒钟,然后再次比较直到两个大小相等。 不幸的是,由于无法在上传过程中访问文件大小,因此我无法实施此解决方案。
如果无法确定文件大小,是否还有其他想法可以避免此问题?
我希望我能对这个问题有个清晰的认识。
感谢所有帮助和信息。
Khaled
编辑(只是为了阐明HTTP_GET_FILE
的用法)
使用FM CVAPI_DOC_VIEW
然后,使用返回的pfx_url
将文件“上传”到sap应用程序服务器(AL11)
答案 0 :(得分:1)
要获取应用程序服务器上文件的大小,SAP并没有提出任何现成的建议。您必须使用:
SXPG_COMMAND_EXECUTE
调用它)C_DIR_READ_START
,C_DIR_READ_NEXT
,C_DIR_READ_FINISH
。您可能会在网上找到一些有关前两种可能性的示例。
以ABAP计算文件大小(大文件的性能较慢):
data read_buffer type x length 1000.
data(fullpath) = `/tmp/file`.
data(file_size) = 0.
open dataset fullpath for input in binary mode.
do.
read dataset fullpath into read_buffer ACTUAL LENGTH data(actual_length).
if actual_length = 0.
exit.
endif.
add actual_length to file_size.
enddo.
close dataset fullpath.