使用FTP将PDF发送到应用程序服务器

2020-09-22 14:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有这种情况。 我有一个通过FTP连接到URL的报告,那里有一些与销售发票相对应的文件(XML或pdf)。

对于PDF文件(对于XML,现在可以正常使用),我得到了文件,解析了结果,然后填写了一些自定义表格。 用户还需要将文件上传到应用程序服务器(我可以在AL11中检查它)。

上传到应用程序服务器时遇到问题。 这就是我的工作。例如使用XML文件:

HTTP_SCRAMBLE

FTP_CONNECT

[在这里我通过FTP_COMMAND设置被动关闭,ASCII,CD DIR,目录]

FTP_SERVER_TO_R3->我在表g_t_xml_tab中获取文件(g_t_xml_tab类型ty_xml初始大小为0)

我使用

转换文件

数据:g_xmldata TYPE xstring,

g_str TYPE字符串。

合并g_t_xml_tab的行
放入g_str,按空格分隔。

调用功能'SCMS_STRING_TO_XSTRING'
导出
文本= g_str
导入
缓冲区= g_xmldata
异常
失败= 1
其他= 2。

然后将文件移动到服务器:

数据:fichero_out类似于rlgrap文件名

resto TYPE i,
n_veces TYPE i,
size TYPE i。

数据:开始于tab_bin的位置为0。
导出
缓冲区= g_xmldata

导入
output_length =大小


Binary_tab = tab_bin。
清除手迹 'zfe_fracab-cif zfe_fracab-num_fra'.pdf'INTO fichero_out。
在二进制模式下输出数据集fichero_out。

如果sy-subrc = 0.
清除:n_veces,resto。
n_veces =大小DIV 1022.
resto =大小MOD 1022.
LOOP AT tab_bin。 tabix <= n_veces。
将tab_bin-line传输到fichero_out。
ELSE。
退出。
ENDIF。
ENDLOOP。
如果resto>0。
传输tab_bin-line (还原)到fichero_out。
ENDIF。
关闭数据集fichero_out。
ENDIF。

我现在可以在AL11中看到该文件,但是创建错误。 也许我想念什么?

提前谢谢!

玛丽亚

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有这种情况。 我有一个通过FTP连接到URL的报告,那里有一些与销售发票相对应的文件(XML或pdf)。

对于PDF文件(对于XML,现在可以正常使用),我得到了文件,解析了结果,然后填写了一些自定义表格。 用户还需要将文件上传到应用程序服务器(我可以在AL11中检查它)。

上传到应用程序服务器时遇到问题。 这就是我的工作。例如使用XML文件:

HTTP_SCRAMBLE

FTP_CONNECT

[在这里我通过FTP_COMMAND设置被动关闭,ASCII,CD DIR,目录]

FTP_SERVER_TO_R3->我在表g_t_xml_tab中获取文件(g_t_xml_tab类型ty_xml初始大小为0)

我使用

转换文件

数据:g_xmldata TYPE xstring,

g_str TYPE字符串。

合并g_t_xml_tab的行
放入g_str,按空格分隔。

调用功能'SCMS_STRING_TO_XSTRING'
导出
文本= g_str
导入
缓冲区= g_xmldata
异常
失败= 1
其他= 2。

然后将文件移动到服务器:

数据:fichero_out类似于rlgrap文件名

resto TYPE i,
n_veces TYPE i,
size TYPE i。

数据:开始于tab_bin的位置为0。
导出
缓冲区= g_xmldata

导入
output_length =大小


Binary_tab = tab_bin。
清除手迹 'zfe_fracab-cif zfe_fracab-num_fra'.pdf'INTO fichero_out。
在二进制模式下输出数据集fichero_out。

如果sy-subrc = 0.
清除:n_veces,resto。
n_veces =大小DIV 1022.
resto =大小MOD 1022.
LOOP AT tab_bin。 tabix <= n_veces。
将tab_bin-line传输到fichero_out。
ELSE。
退出。
ENDIF。
ENDLOOP。
如果resto>0。
传输tab_bin-line (还原)到fichero_out。
ENDIF。
关闭数据集fichero_out。
ENDIF。

我现在可以在AL11中看到该文件,但是创建错误。 也许我想念什么?

提前谢谢!

玛丽亚

付费偷看设置
发送
7条回答
天桥码农
1楼-- · 2020-09-22 14:53

您好, 玛丽亚·美利奴(Maria Merino)

我正面临与您相同的问题,请遵循 Sandra Rossi提供的步骤仍然出现以下错误:(

您解决了这个问题吗?

代码段:

以二进制模式输出的打开数据集过滤器。
将l_xstring转移到filnm长度blob_length。
关闭数据集过滤器。

错误消息:

一周热门 更多>