HCI SFTP后处理限制(带有移动文件选项)

2020-08-17 07:57发布

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

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


专家们,

我想与大家分享我在SFTP发送器连接器中发现的一个限制,这给我带来了一些麻烦。 我的要求是从目录中读取文件并将其存档在特定的文件夹中。 使用SCPI完全可以。 当iflow中间出现问题时,我需要将文件保留在源文件夹中时会出现问题。

为此,我想出了一个步骤,在异常子过程的末尾添加了一个步骤,该步骤将源目录中的文件重新写入:一般而言,这是可行的。

重点是SFTP发送方连接器的"后处理"选项。 如果您使用过SAP PI/PO,则请记住,归档步骤是在读取完一个文件之后执行的(读取归档过程)。 在SCPI中,这仅发生在流程结束时(read-process-archive)。 因此,如果我要在源目录中重写文件(具有完全相同的源名称)并且设置了Move-File选项,会发生什么情况? 该文件仍然被存档! 我敢肯定,因为如果在重写步骤中设置了一个恒定的文件名而不是原始文件名,那么我会看到原始文件已存档,并且使用我提供的consyant创建了副本。

任何想法如何克服此限制?

谢谢。

克里斯蒂安

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

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


专家们,

我想与大家分享我在SFTP发送器连接器中发现的一个限制,这给我带来了一些麻烦。 我的要求是从目录中读取文件并将其存档在特定的文件夹中。 使用SCPI完全可以。 当iflow中间出现问题时,我需要将文件保留在源文件夹中时会出现问题。

为此,我想出了一个步骤,在异常子过程的末尾添加了一个步骤,该步骤将源目录中的文件重新写入:一般而言,这是可行的。

重点是SFTP发送方连接器的"后处理"选项。 如果您使用过SAP PI/PO,则请记住,归档步骤是在读取完一个文件之后执行的(读取归档过程)。 在SCPI中,这仅发生在流程结束时(read-process-archive)。 因此,如果我要在源目录中重写文件(具有完全相同的源名称)并且设置了Move-File选项,会发生什么情况? 该文件仍然被存档! 我敢肯定,因为如果在重写步骤中设置了一个恒定的文件名而不是原始文件名,那么我会看到原始文件已存档,并且使用我提供的consyant创建了副本。

任何想法如何克服此限制?

谢谢。

克里斯蒂安

付费偷看设置
发送
9条回答
一只江湖小虾
1楼-- · 2020-08-17 08:42

克里斯蒂安,你好

您是否尝试过添加带有错误结束步骤的异常子流程? 它应该中断iflow处理,并且不应进行后处理。

如果它不起作用,我们将不得不与开发团队进行讨论。

此致

Robson

compass1988
2楼-- · 2020-08-17 08:23

尊敬的Robson,

我已经完成了这项测试,恐怕它不能像您所说的那样工作。 简而言之,为处理这种情况,我添加了一个异常子进程,该子进程包含重写步骤(SFTP接收器连接器)。 在第一个测试中,我将接收器文件名设置为$ {header.CamelFileName},但随着过程结束,文件消失了。 然后,我用一个常量名更改了接收器文件名,然后看到原始文件消失了,而创建了带有常量名的文件名。 这证明了当您在异常子进程中以其原始名称(即$ {header.CamelFileName})重新写入文件时,该文件将由您在后处理选项(在本例中为"移动文件")中设置的内容处理。/p>

此外,如果您的建议可行,我可以添加一个没有重新编写步骤的异常子流程,因为如果该流程因异常而中断,则不应执行"后处理"选项并且源文件 应该保持不变。 对? 此选项对于处理此类情况会很好,但是如果我需要在异常情况下将文件移动到其他文件夹中,则不适合。 假设我必须存档由于流入中发生异常而未正确处理的文件。 如果您的解决方案有效,我可以在异常子进程中添加一个重写步骤,它可以正常工作,但原始源文件将保留在源文件夹中:因此,我将文件正确存档,但原始副本仍在 源文件夹,因为异常步骤阻止了后处理选项的执行。 还是不适合。

我认为,一种简单的标准方法是允许按SAP PI/PO中的说明在读取源文件后立即按需要处理源文件。

问候。

克里斯蒂安

当学会了学习
3楼-- · 2020-08-17 08:29

你好克里斯蒂安,

也许你可以在下面尝试一下,这样就可以了。

此致

Sriprasad Shivaram Bhat

闻人可可
4楼-- · 2020-08-17 08:33

尊敬的Sriprasad,

谢谢你的回答。 问题在于异常子过程步骤。 iflow执行的最后一个操作是在设置发送方连接器时选择的后处理选项。 如果选择"删除",则"发生故障时发送回"的文件将被删除(至少您不使用前缀/后缀重命名该文件,但是下次阅读该文件时,必须考虑到其中可能包含一些元素) 此过程添加的名称,这是一种解决方法,但不是很干净)。

问候。

克里斯蒂安

SAP小菜
5楼-- · 2020-08-17 08:29

亲爱的克里斯蒂安,

我不清楚您在说什么元素。 我建议您实施上面并尝试一下。 由于您要在第一步本身将传入文件存储在属性中。 将其发送回源文件(如果发生错误)或成功将其发送到存档时,不会添加任何内容。 您也可以通过读取骆驼文件名来保留原始文件名。

问候,

Sriprasad shivaram Bhat

compass1988
6楼-- · 2020-08-17 08:27

嗨,Sirprasad,

今天,我已经按照您说的做了,但结果确实与我之前的评论中所描述的一样。

我注意到后处理选项的另一件事是大文件处理:如果该过程花费30分钟处理一个文件(我说的是非常大的文件),则我无法设置1分钟的轮询,因为如果 该文件仅在处理结束(30分钟)时被删除,同时轮询将读取该文件,依此类推。

问候。

克里斯蒂安

一周热门 更多>