Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BizTalk NSoftware SFTP-仅在收到第二个文件时读取第一个文件_Biztalk_Sftp_Correlation_Sequential_Adaptor - Fatal编程技术网

BizTalk NSoftware SFTP-仅在收到第二个文件时读取第一个文件

BizTalk NSoftware SFTP-仅在收到第二个文件时读取第一个文件,biztalk,sftp,correlation,sequential,adaptor,Biztalk,Sftp,Correlation,Sequential,Adaptor,我有一个场景,客户机删除一个XML和一个.FINISHED文件。客户端在完成XML文件的编写后创建.FINISHED文件。两个文件都有相同的名称。如您所见,我无法在.FINISHED.created之前开始阅读.XML。将XML复制到目标后,我希望从客户端位置删除这两个文件 这看起来是一个非常典型的问题,但我认为SFTP和SSO使它变得不典型 我正在BizTalk 2009上开发,使用用于BizTalk的/n软件SFTP适配器和SSO进行身份验证 注: 我必须使用SFTP,因为我不能使用FTP协

我有一个场景,客户机删除一个XML和一个.FINISHED文件。客户端在完成XML文件的编写后创建.FINISHED文件。两个文件都有相同的名称。如您所见,我无法在.FINISHED.created之前开始阅读.XML。将XML复制到目标后,我希望从客户端位置删除这两个文件

这看起来是一个非常典型的问题,但我认为SFTP和SSO使它变得不典型

我正在BizTalk 2009上开发,使用用于BizTalk的/n软件SFTP适配器和SSO进行身份验证

注:

我必须使用SFTP,因为我不能使用FTP协议

我在谷歌上搜索并尝试了一些解决方案,但都是FTP 基于和/或使用相关性

我必须使用SSO来管理凭据

软件SFTP适配器提供了使用SSO的功能,它在正常情况下工作良好,在正常情况下,我必须读/写而不必等待.FINISHED文件

我采用了以下方法:

相关性–并行/顺序

花了一段时间后,我意识到我不能像以前那样使用相关性 在开始读取.XML之前,必须等待.FINISHED文件。客户 首先开始编写XML,然后完成

当我删除.XML接收位置时,将在不等待.FINISHED和编排的情况下拾取文件,具体取决于异常 视情况而定

对于这个解决方案,我从下面的博客中得到了帮助

如果我有错误的理解,请纠正我

使用.Net组件从SFTP位置获取XML文件一次。完成接收:

我将此视为解决方案,但从SFTP获取文件时遇到问题 地点我必须使用SSO进行身份验证,但找不到任何.NET 基于SSO的SFTP解决方案

对于此解决方案,我从以下站点获得了帮助:

另一种可能的解决方案是在运行时更改软件或任何其他SFTP适配器在编排中的接收位置或URI,即最初将其设置为.FINISHED,一旦接收,将其更改为.XML并获取它


不知道如何实现这一点,但在编排中是否可行???

为什么不将接收位置设置为仅在以.FINISHED结尾的文件上激活。然后编写业务流程以获取相应的XML文件-这样行吗?

为什么不将接收位置设置为仅在以.FINISHED结尾的文件上激活。然后编写您的业务流程,以转到并获取相应的XML文件-可以吗?

使用/nsoftware SFTP适配器的另一个选项是使用MonitorFileGrowth设置

这将记录轮询间隔之间的文件大小,并且在文件停止增加以便不再写入之前不会尝试下载该文件。您可以在适配器的其他属性中设置它,如:

MonitorFileGrowth=true

或者,如果您可以控制在服务器上创建文件的过程,该过程使用与您的文件掩码不匹配的文件的临时扩展名,以便接收位置不会尝试下载该文件,那么它也可以工作


或者,如果您想像Fabio所说的那样等待.FINISHED文件,您可以将接收位置配置为仅查找.FINISHED文件,并且在业务流程中接收后,使用发送适配器下载XML文件,如本文所述:

使用/nsoftware SFTP适配器的另一个选项是使用MonitorFileGrowth设置

这将记录轮询间隔之间的文件大小,并且在文件停止增加以便不再写入之前不会尝试下载该文件。您可以在适配器的其他属性中设置它,如:

MonitorFileGrowth=true

或者,如果您可以控制在服务器上创建文件的过程,该过程使用与您的文件掩码不匹配的文件的临时扩展名,以便接收位置不会尝试下载该文件,那么它也可以工作


或者,如果您想像Fabio所说的那样等待.FINISHED文件,您可以将接收位置配置为仅查找.FINISHED文件,并且在编排中接收到该文件后,使用发送适配器下载XML文件,如本文所述:

Fabio,这是我尝试并提到的第二个选项。为此,我需要使用SFTP协议和SSO编写.NET组件进行身份验证。你能指导我完成这件事吗?允许使用SSO下载SFTP文件的任何第三方组件或库。或周围有任何工作。谢谢你说你的SFTP适配器提供了使用SSO的功能,为什么你需要一个.NET组件?您只需为要下载的文件设置一个掩码,即*.FINISHED-您的适配器不支持吗?是的,它支持。让我重新表述一下我的设想。当客户端开始编写XML文件时,我无法读取。复制完成后,它会创建一个.FINISHED文件。我已为创建接收位置。已完成。在我的Orchstrtn中,我正在检查是否收到了.FINISHED文件,然后是ge
t保存.XML文件。但我不知道如何使用SFTP和SSO获取.XML。我应该通过自定义/第三方.Net compnt或SFTP Adptr获取它吗?我想我需要.Net cmpnt来读取.XML文件,因为Adptr只能通过接收端口读取。您说过“然后编写您的编排,去获取相应的XML文件”。这意味着什么?您是否可以拥有一个包含两个接收端口的编排,第一个用于.FINISHED文件,第二个用于XML?如果不确定这是否可行,则必须在运行时指定第二个端口的文件名,例如,使用升级属性。你试过了吗?就像斯宾塞说的,你可以使用发送适配器按需下载文件,而不是像我上面建议的那样接收。您需要指定nsoftware.BizTalk.SFTP.RemoteFile promoted属性,以指定与激活业务流程实例的.FINISHED文件相对应的文件名。希望一切都清楚,玩得开心!法比奥,这是我试过并提到的第二个选择。为此,我需要使用SFTP协议和SSO编写.NET组件进行身份验证。你能指导我完成这件事吗?允许使用SSO下载SFTP文件的任何第三方组件或库。或周围有任何工作。谢谢你说你的SFTP适配器提供了使用SSO的功能,为什么你需要一个.NET组件?您只需为要下载的文件设置一个掩码,即*.FINISHED-您的适配器不支持吗?是的,它支持。让我重新表述一下我的设想。当客户端开始编写XML文件时,我无法读取。复制完成后,它会创建一个.FINISHED文件。我已为创建接收位置。已完成。在我的Orchstrtn中,我检查是否接收到.FINISHED文件,然后获取.XML文件。但我不知道如何使用SFTP和SSO获取.XML。我应该通过自定义/第三方.Net compnt或SFTP Adptr获取它吗?我想我需要.Net cmpnt来读取.XML文件,因为Adptr只能通过接收端口读取。您说过“然后编写您的编排,去获取相应的XML文件”。这意味着什么?您是否可以拥有一个包含两个接收端口的编排,第一个用于.FINISHED文件,第二个用于XML?如果不确定这是否可行,则必须在运行时指定第二个端口的文件名,例如,使用升级属性。你试过了吗?就像斯宾塞说的,你可以使用发送适配器按需下载文件,而不是像我上面建议的那样接收。您需要指定nsoftware.BizTalk.SFTP.RemoteFile promoted属性,以指定与激活业务流程实例的.FINISHED文件相对应的文件名。希望一切都清楚,玩得开心!谢谢由于客户要求,我不能使用“MonitorFileGrowth”。你能详细解释一下我如何使用你们在本文中指定的方法吗:我的意思是,我应该创建两个接收端口,一个为.FINISHED活动,另一个为.XML非活动?何时何地设置以下属性?在构造消息形状中的第二个接收端口上接收.XML文件之前?:Message\u 2nsoftware.BizTalk.SFTP.RemoteFile=*.txt;详细的答复将不胜感激。谢谢。由于客户要求,我不能使用“MonitorFileGrowth”。你能详细解释一下我如何使用你们在本文中指定的方法吗:我的意思是,我应该创建两个接收端口,一个为.FINISHED活动,另一个为.XML非活动?何时何地设置以下属性?在构造消息形状中的第二个接收端口上接收.XML文件之前?:Message\u 2nsoftware.BizTalk.SFTP.RemoteFile=*.txt;详细答复将不胜感激。