BizTalk 静态和动态 FTP 发送端口示例






4.20/5 (3投票s)
一个 BizTalk 静态和动态 FTP 发送端口示例。
目录
引言
本文写作时假设您已具备 BizTalk 的基本知识,并且已经使用过静态发送端口。即使您没有,我也会简要介绍 BizTalk 端口。在考虑 BizTalk 端口之前,请记住机场、海港等将我们连接到正确的信息源和目的地。BizTalk 端口非常相似,接收端口会从指定位置拾取所需文件,发送端口则将其放置在指定位置。
现在,当我们谈论静态和动态时,方法不同,但最终结果相同。当然,有利有弊,这在本文中并未涵盖。
静态端口:在 BizTalk Server 管理控制台中,为特定应用程序配置/设置目标文件夹详细信息的端口(下面将通过示例介绍)。
动态:我们将在编排表达式中指定配置/目标路径详细信息。
开发先决条件
- BizTalk Server 2010
- FTP 位置
- BizTalk 基本知识
开发
对于应用程序开发,我们将介绍一个非常简单的示例,该示例从指定位置拾取文件,通过编排进行处理,进行一些转换,然后将其放置在指定位置。现在,这个指定位置就是 FTP 位置。
FTP 测试
在开始应用程序开发之前,让我们测试一下我们的 FTP 连接是否正常工作。
为此,请转到 -> Windows 命令提示符 -> 测试 FTP 连接< 语法如下 >。
FTP <your ftp path>
User: <FTP user name to connect>
Password: <FTP user Password>
一旦您能够连接,我们将使用相同的凭据进行应用程序开发。
示例应用程序开发
您可以按照以下内容进行操作,也可以下载附件并运行示例。
要开始开发,请在Visual Studio -> File -> New Project -> BizTalk Projects -> 选择Empty BizTalk Server Project -> 添加应用程序名称,例如FTPDynamicSendPortSample 并指定位置。
第一步
添加具有以下结构的平面文件架构
第二步
添加映射文件
这里使用连接函数将源文件属性:street、city 和 country 组合到目标 address 属性。
第三步
添加 BizTalk 编排文件并拖动形状,如下所示,用于静态发送端口
在这里,当您拖动接收端口并右键单击时,选择“配置端口”,然后输入端口名称,并将通信模式设置为单向,保持端口方向和端口绑定不变,然后单击“下一步”按钮。现在,在“接收端口”属性的“请求对象”上单击,并将“消息类型”值设置为FTPDynamicSendPortSample.EmpScource_Schema
,这实际上就是源架构。
在静态 odx(下方屏幕)文件的编排视图中创建两个消息,例如,MsgStaticMsgReceive
,其消息类型为FTPDynamicSendPortSample.EmpScource_Schema
,这是一个源架构;另一个消息名称为MsgStaticMsgSend
,类型为FTPDynamicSendPortSample.EmpDestination_Schema
,这是一个目标架构。
在发送端口上,右键单击并选择“配置端口”,输入端口名称,并将通信模式设置为单向,将端口方向设置为“我将始终在此端口发送消息”,并保持端口绑定不变,然后单击“下一步”按钮。现在,在“接收端口”属性的“请求对象”上单击,并将“消息类型”值设置为FTPDynamicSendPortSample.EmpScource_Schema
,这实际上就是目标架构。
现在,在接收器形状上,将属性设置为如下所示。消息设置为MsgStaticMsgReceive
,操作设置为ReceivePort.Operation_1.Request
。
还将“激活”属性在“接收”对象类型中设置为true
。
现在,让我们在构造形状中配置转换形状,右键单击 -> 选择现有映射并按如下方式设置值
在这里,设置源和目标转换。在“源”中,变量必须是接收消息,即MsgStaticMsgReceive
,目标变量名称必须是MsgStaticMsgSend
。
现在,在发送形状上,将属性设置为:消息设置为MsgStaticMsgSend
,操作设置为SendPort.Operation_1.Request
。
第四步
添加 odx 文件并拖动形状,如下所示,用于动态发送端口
注意:静态端口和动态端口的区别仅在于消息赋值形状,该形状在动态端口中是必需的,用于指定 FTP 端口详细信息。如果您注意到上面的odx图像,我们还有两个表达式形状,分别带有StartEventLog
和EndEventLog
,它们实际上不是必需的。
请遵循我们在第四步中设置的属性。在需要时为对象类型提供唯一的名称。
现在,在消息赋值形状中,添加下面的代码
Msg_DynamicSend(FTP.CommandLogFileName) = "D:\\BiztalkLogs\\FTPLog\\DynamicFTPLog.txt";
Msg_DynamicSend(FTP.UserName) = "FTPUSER";
Msg_DynamicSend(FTP.Password) = "Pass1234";
Msg_DynamicSend(FTP.SpoolingFolder) = "/IN/";
Msg_DynamicSend(FTP.RepresentationType) = "ASCII";
DynSendPort(Microsoft.XLANGs.BaseTypes.Address)= "ftp://inhydeshrilata";
DynSendPort(Microsoft.XLANGs.BaseTypes.TransportType) = "FTP";
注意:Msg_DynamicSend
是为发送端口设置的消息名称,DynSendPort
是动态发送端口的端口名称。这里一个非常重要的注意事项是,我是在本地机器上创建的 FTP,并且设置非常有限,所以上面的配置设置对我来说已经足够了,但如果您为文件夹添加了 CCID,那么它应该放在 FTP 的“Put 前”属性中。其他根据 FTP 设置进行的类似设置必须更新并部署才能使应用程序正常工作。
优点:检查指定位置的日志文件以跟踪 FTP 错误(附带示例)。
部署
第一步
创建强名称并分配给应用程序
完成所有设置后,构建项目并创建强名称密钥,然后按如下方式将其分配给应用程序
转到应用程序属性 -> 签名 -> 更新新创建的强名称密钥。
第二步
在应用程序部署属性中设置应用程序名称
并在应用程序属性的部署属性中按如下方式添加应用程序名称
现在保存所有内容并构建应用程序,部署所需的所有设置就完成了。现在右键单击应用程序解决方案并选择“部署”。所有内容都将被部署到BizTalk Server 管理。
服务器管理配置
现在,要运行应用程序,我们必须有一个物理接收端口和发送端口。在 BizTalk Server 管理中,按如下方式进行配置
第一步
创建两个接收端口,一个用于静态测试,另一个用于动态测试
请按照下面的屏幕操作,右键单击应用程序的接收端口,在接收端口的“常规”属性中输入名称,然后选择“接收位置”,然后选择如下图所示的新链接
然后按如下方式设置属性
- 名称:指定接收位置名称
- 类型:文件
- 接收处理程序:BiztalkserverApplication
- 接收管道:XML Receiver
选择“配置”按钮并设置位置。对于一个位置,设置文件夹名称为SaticInFiles
;对于另一个位置,设置文件夹名称为DynamicInFiles
。
注意:您在这里为静态和动态测试在解决方案文件夹中创建了两个文件夹,但是您可以为两者使用相同的文件夹名称。
第二步
创建 FTP 静态发送端口
右键单击“发送端口” -> 新建 -> “静态单向发送端口” -> 您将看到下面的屏幕
- 名称:指定发送端口名称
- 类型:FTP
- 发送处理程序:BiztalkFTPHost
- 接收管道:XML Receiver
单击“配置”按钮后,您将找到传输属性
- 帐户:<FTP 用户名>
- Put 后:<根据您的 FTP 设置进行设置,我将其留空>
- 分配存储:<根据您的 FTP 设置进行设置,我将其留空>
- Put 前:<根据您的 FTP 设置进行设置,我将其留空> 例如:SITE NAMEFMT 1;TYPE C 218
- 注意:这里的 C 218 是 CCID,已根据 FTP 中的文件夹进行设置
- 文件夹:<指定文件夹名称(如果 FTP 中有特定的文件夹)>
- 日志:给出日志文件名。例如:D:\BiztalkLog\Logs.txt。
- 密码:<FTP 密码>
- 端口:21 <保留默认值>
- 表示:ASCII <保留默认值>
- 服务器:<FTP 服务器名称>
- SSO 关联:<根据您的 FTP 设置进行设置,我将其留空>
- 目标文件名:<指定您需要的确切文件名> 例如:POJobsOrder_%SourceFileName%_%datetime_bts2000%.txt
- 用户名:<FTP 用户名>
请注意:POJobsOrder
是常量,SourceFileName
是在架构中提升的名称,datetime_bts2000
是当前日期时间,所以示例文件名将是POJobsOrder_5000067354_201208310532506
。
第二步
在管理员控制台中配置应用程序
右键单击应用程序并选择“配置”,在您找到编排名称的地方进行如下设置。在动态 odx 中,您会找到预先生成的发送端口(如下面标记的),您必须将其分配给一个逻辑发送端口。在静态中,您必须选择合适的物理接收端口和发送端口。
完成配置后,启动应用程序,并将输入 XML 文件放在指定的接收位置,然后在 FTP 位置检查输出。
错误和修复
错误:对于非激活接收(在非自相关端口上),您必须至少指定一个已初始化的相关集。
解决方案:在 Orc 的接收形状中,将Activate
属性设置为true
。
致谢
非常感谢您阅读本文,您的意见对我非常有价值,并将鼓励我撰写更多高质量的文章。如果您有任何特定的 BizTalk 主题建议,我将非常高兴。我喜欢花时间做更有挑战性的事情。
参考文献
历史
- 2012 年 12 月 5 日:初版。