与RFC SAPFTPA一起使用时FTP_SERVER_TO_R3挂起

2020-09-10 17:46发布

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

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


大师们,

我正在研究一个程序,该程序将从FTP服务器读取指定的文本文件到数据表中。 FM FTP_SERVER_TO_R3 似乎非常适合我的情况。

我使用RFC SAPFTPA 作为目标。 FTP_CONNECT 始终可以正常工作,但是当涉及 FTP_SERVER_TO_R3 时,程序有时会挂起。

有时在多次调用FM FTP_SERVER_TO_R3 的循环中,第一个和第二个间隔是好的,然后在下一个间隔中,它被挂起。

有时甚至是第一次挂起。

我的问题:谁能告诉我为什么使用 SAPFTPA 时会发生此错误?

如果有人能给我一个提示,那将很棒。

非常感谢!

我的代码如下:

"连接到FTP服务器
 ******************************************************  ******************
 通话功能'HTTP_SCRAMBLE'
   出口
     源= FTP_SERVERINFO-PWD
     SOURCELEN = LW_SRCLEN
     钥匙= 26101957
   输入
     目的地= SCRAMBLED_PW。
 CONCATENATE FTP_SERVERINFO-FTP_SERVER_NAME FTP_SERVERINFO-FTP_SERVER_PORT
 由空格分隔的INTO LW_HOST。
 通话功能'FTP_CONNECT'
     出口
       USER = FTP_SERVERINFO-USER_NAME
       密码= SCRAMBLED_PW"密码
       HOST = LW_HOST" FTP服务器
       RFC_DESTINATION = DEST" RFC目标
     输入
       手柄=手柄
     例外情况
       NOT_CONNECTED = 1
       其他= 2。
   如果SY-SUBRC <> 0。
     消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
       与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
   万一。
 遍历READ_FILES ASSIGNING FIELD-SYMBOL()。
   "向IT读取文件**************************************************  ********************
   通话功能'FTP_SERVER_TO_R3'
     出口
       手柄=手柄
       FNAME =  -FILE_NAME
       CHARACTER_MODE ='X'
     桌子
       TEXT = IT_TEXT []
     例外情况
       TCPIP_ERROR = 1
       COMMAND_ERROR = 2
       DATA_ERROR = 3"内部错误
       其他= 4。
   如果SY-SUBRC <> 0。
     出口。
   万一。
   "读完IT知识后,加载到透明表中并记录事务。***************************************  ****************
   数据:FILE_NAME(200)C型。
   FILE_NAME =  -FILE_NAME。
   使用FILE_NAME执行MAP_DATA表格IT_TEXT。
   刷新IT_TEXT []。
 结局。
   "断开FTP连接************************************************  ******************************************************  *****
   通话功能'FTP_DISCONNECT'
     出口
       处理程序=处理程序。
 "关闭RFC连接
 通话功能'RFC_CONNECTION_CLOSE'
   出口
     DESTINATION = DEST" RFC目标的名称
   例外情况
     DESTINATION_NOT_OPEN = 1"指定的目标未打开。
     其他= 2。
 如果SY-SUBRC <> 0。
   出口。
 万一。
 
如果有人可以给我提示的话,那会很棒。

非常感谢!

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

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


大师们,

我正在研究一个程序,该程序将从FTP服务器读取指定的文本文件到数据表中。 FM FTP_SERVER_TO_R3 似乎非常适合我的情况。

我使用RFC SAPFTPA 作为目标。 FTP_CONNECT 始终可以正常工作,但是当涉及 FTP_SERVER_TO_R3 时,程序有时会挂起。

有时在多次调用FM FTP_SERVER_TO_R3 的循环中,第一个和第二个间隔是好的,然后在下一个间隔中,它被挂起。

有时甚至是第一次挂起。

我的问题:谁能告诉我为什么使用 SAPFTPA 时会发生此错误?

如果有人能给我一个提示,那将很棒。

非常感谢!

我的代码如下:

"连接到FTP服务器
 ******************************************************  ******************
 通话功能'HTTP_SCRAMBLE'
   出口
     源= FTP_SERVERINFO-PWD
     SOURCELEN = LW_SRCLEN
     钥匙= 26101957
   输入
     目的地= SCRAMBLED_PW。
 CONCATENATE FTP_SERVERINFO-FTP_SERVER_NAME FTP_SERVERINFO-FTP_SERVER_PORT
 由空格分隔的INTO LW_HOST。
 通话功能'FTP_CONNECT'
     出口
       USER = FTP_SERVERINFO-USER_NAME
       密码= SCRAMBLED_PW"密码
       HOST = LW_HOST" FTP服务器
       RFC_DESTINATION = DEST" RFC目标
     输入
       手柄=手柄
     例外情况
       NOT_CONNECTED = 1
       其他= 2。
   如果SY-SUBRC <> 0。
     消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
       与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
   万一。
 遍历READ_FILES ASSIGNING FIELD-SYMBOL()。
   "向IT读取文件**************************************************  ********************
   通话功能'FTP_SERVER_TO_R3'
     出口
       手柄=手柄
       FNAME =  -FILE_NAME
       CHARACTER_MODE ='X'
     桌子
       TEXT = IT_TEXT []
     例外情况
       TCPIP_ERROR = 1
       COMMAND_ERROR = 2
       DATA_ERROR = 3"内部错误
       其他= 4。
   如果SY-SUBRC <> 0。
     出口。
   万一。
   "读完IT知识后,加载到透明表中并记录事务。***************************************  ****************
   数据:FILE_NAME(200)C型。
   FILE_NAME =  -FILE_NAME。
   使用FILE_NAME执行MAP_DATA表格IT_TEXT。
   刷新IT_TEXT []。
 结局。
   "断开FTP连接************************************************  ******************************************************  *****
   通话功能'FTP_DISCONNECT'
     出口
       处理程序=处理程序。
 "关闭RFC连接
 通话功能'RFC_CONNECTION_CLOSE'
   出口
     DESTINATION = DEST" RFC目标的名称
   例外情况
     DESTINATION_NOT_OPEN = 1"指定的目标未打开。
     其他= 2。
 如果SY-SUBRC <> 0。
   出口。
 万一。
 
如果有人可以给我提示的话,那会很棒。

非常感谢!
付费偷看设置
发送
9条回答
微wx笑
1楼 · 2020-09-10 18:20.采纳回答

大家好,

抱歉,迟到了。

由于其影响是巨大的,因此我必须制定一种解决方案,以保持连接和断开连接,并减少超时(非常糟糕的方法)。

经过日复一日的斗争,我想出了一个适合我的情况的解决方案。

通过在调用FM'FTP_CONNECT'时添加参数'PASSIVE_MODE ='X',它解决了挂起问题。 现在,我可以打电话给多个FM'FTP_SERVER_TO_R3',而不必关闭和重新打开连接或遇到任何挂起的问题。

请注意。

最诚挚的问候,

TuanNQ

compass1988
2楼-- · 2020-09-10 18:37
SKY徐
3楼-- · 2020-09-10 18:26

谢谢〜Monalisa Biswal Sandra Rossi
我再次尝试了您的建议,但我不知道我的错误。
我检查了SAPFTP/SAPFTPA上的"设置RFC跟踪"。 >现在我可以在程序RSFTP001中看到日志。
日志为...
.........................

路径可执行文件:
版本:753

当前工作目录:/usr/sap/AEP/D00/work

RFC路径:
RFC版本:7 ##

....(第一个〜第7个案例成功日志)

[Thr 140735442674080] [27103] tmpfile:/tmp/ftptmpfile8JRp9V已删除
[Thr 140735442674080] [27103]>端口10,33,136,96,76,194
[Thr 140735442674080] [27103] FTP服务器:200 PORT命令成功。
[Thr 140735442674080] [27103]> RETR 2019_1000000180_01_others.pdf
[Thr 140735442674080] [27103] FTP服务器:125数据连接已打开; 开始传输。
[Thr 140735442674080] 2019年1月8日星期二20:25:13
[Thr 140735442674080] [27103] FTP服务器:226传输完成。
[Thr 140735442674080] [27103] FTP断开连接-NI 句柄:1
[Thr 140735442674080] [27103]> QUIT
[Thr 140735442674080] [27103] FTP服务器:221再见。
[Thr 140735442674080] [27103] RfcError-键:RFC_COMMUNICATION_FAILURE
[ Thr 140735442674080]消息:连接已关闭,没有消息(CM_NO_DATA_RECEIVED)
[Thr 140735442674080] [27103] FTP Stop

....(第8种情况下的HANG ERROR LOG)

[Thr 140735926133152] [28021] tmpfile:/tmp/ftptmpfileZJNpwn已删除
[Thr 140735926133152] [28021] --->端口10,33,136,96,35,42
[Thr 140735926133152] [28021 ] FTP服务器:200 PORT命令成功。
[Thr 140735926133152] [28021] ---> RETR 2019_1000000180_01_others。 pdf
[Thr 140735926133152] [28021] FTP服务器:150打开BINARY模式数据连接。

~~~(长时间后)

***错误=> [28021]在数据通道上接受失败:NIETIMEOUT超时720000ms [ftpnw.c 412]




如果您再帮我,我将很高兴。
非常感谢!


一周热门 更多>