65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (3投票s)

2012年12月5日

CPOL

8分钟阅读

viewsIcon

42327

downloadIcon

650

一个 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>

图 1:FTP 测试

一旦您能够连接,我们将使用相同的凭据进行应用程序开发。

示例应用程序开发

您可以按照以下内容进行操作,也可以下载附件并运行示例。

要开始开发,请在Visual Studio -> File -> New Project -> BizTalk Projects -> 选择Empty BizTalk Server Project -> 添加应用程序名称,例如FTPDynamicSendPortSample 并指定位置。

第一步

添加具有以下结构的平面文件架构

图 2:源架构

图 3:目标架构

第二步

添加映射文件

图 4:映射文件

这里使用连接函数将源文件属性:street、city 和 country 组合到目标 address 属性。

第三步

添加 BizTalk 编排文件并拖动形状,如下所示,用于静态发送端口

图 5:静态发送端口 odx 文件 [名称:FTPStaicPortSample_Orc.odx]

在这里,当您拖动接收端口并右键单击时,选择“配置端口”,然后输入端口名称,并将通信模式设置为单向,保持端口方向和端口绑定不变,然后单击“下一步”按钮。现在,在“接收端口”属性的“请求对象”上单击,并将“消息类型”值设置为FTPDynamicSendPortSample.EmpScource_Schema,这实际上就是源架构。

在静态 odx(下方屏幕)文件的编排视图中创建两个消息,例如,MsgStaticMsgReceive,其消息类型为FTPDynamicSendPortSample.EmpScource_Schema,这是一个源架构;另一个消息名称为MsgStaticMsgSend,类型为FTPDynamicSendPortSample.EmpDestination_Schema,这是一个目标架构。

在发送端口上,右键单击并选择“配置端口”,输入端口名称,并将通信模式设置为单向,将端口方向设置为“我将始终在此端口发送消息”,并保持端口绑定不变,然后单击“下一步”按钮。现在,在“接收端口”属性的“请求对象”上单击,并将“消息类型”值设置为FTPDynamicSendPortSample.EmpScource_Schema,这实际上就是目标架构。

图 6:静态 odx 文件的编排视图

现在,在接收器形状上,将属性设置为如下所示。消息设置为MsgStaticMsgReceive,操作设置为ReceivePort.Operation_1.Request

还将“激活”属性在“接收”对象类型中设置为true

现在,让我们在构造形状中配置转换形状,右键单击 -> 选择现有映射并按如下方式设置值

图 7:转换配置

在这里,设置源和目标转换。在“源”中,变量必须是接收消息,即MsgStaticMsgReceive,目标变量名称必须是MsgStaticMsgSend

现在,在发送形状上,将属性设置为:消息设置为MsgStaticMsgSend,操作设置为SendPort.Operation_1.Request

第四步

添加 odx 文件并拖动形状,如下所示,用于动态发送端口

图 8:动态发送端口 odx 文件 [名称:FTPDynamicPortSample.odx]

注意:静态端口和动态端口的区别仅在于消息赋值形状,该形状在动态端口中是必需的,用于指定 FTP 端口详细信息。如果您注意到上面的odx图像,我们还有两个表达式形状,分别带有StartEventLogEndEventLog,它们实际上不是必需的。

请遵循我们在第四步中设置的属性。在需要时为对象类型提供唯一的名称。

现在,在消息赋值形状中,添加下面的代码

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 错误(附带示例)。

部署

第一步

创建强名称并分配给应用程序

完成所有设置后,构建项目并创建强名称密钥,然后按如下方式将其分配给应用程序

图 9:强名称创建

转到应用程序属性 -> 签名 -> 更新新创建的强名称密钥。

第二步

在应用程序部署属性中设置应用程序名称

并在应用程序属性的部署属性中按如下方式添加应用程序名称

图 10:应用程序部署配置

现在保存所有内容并构建应用程序,部署所需的所有设置就完成了。现在右键单击应用程序解决方案并选择“部署”。所有内容都将被部署到BizTalk Server 管理

服务器管理配置

现在,要运行应用程序,我们必须有一个物理接收端口和发送端口。在 BizTalk Server 管理中,按如下方式进行配置

第一步

创建两个接收端口,一个用于静态测试,另一个用于动态测试

请按照下面的屏幕操作,右键单击应用程序的接收端口,在接收端口的“常规”属性中输入名称,然后选择“接收位置”,然后选择如下图所示的新链接

图 11:创建接收端口

然后按如下方式设置属性

图 12:创建接收位置
  • 名称:指定接收位置名称
  • 类型:文件
  • 接收处理程序:BiztalkserverApplication
  • 接收管道:XML Receiver

选择“配置”按钮并设置位置。对于一个位置,设置文件夹名称为SaticInFiles;对于另一个位置,设置文件夹名称为DynamicInFiles

注意:您在这里为静态和动态测试在解决方案文件夹中创建了两个文件夹,但是您可以为两者使用相同的文件夹名称。

第二步

创建 FTP 静态发送端口

右键单击“发送端口” -> 新建 -> “静态单向发送端口” -> 您将看到下面的屏幕

图 13:创建静态发送端口
  • 名称:指定发送端口名称
  • 类型: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
  • 请注意:POJobsOrder是常量,SourceFileName是在架构中提升的名称,datetime_bts2000是当前日期时间,所以示例文件名将是POJobsOrder_5000067354_201208310532506

  • 用户名:<FTP 用户名>

第二步

在管理员控制台中配置应用程序

右键单击应用程序并选择“配置”,在您找到编排名称的地方进行如下设置。在动态 odx 中,您会找到预先生成的发送端口(如下面标记的),您必须将其分配给一个逻辑发送端口。在静态中,您必须选择合适的物理接收端口和发送端口。

图 14:Biztalk AC 中的应用程序配置

完成配置后,启动应用程序,并将输入 XML 文件放在指定的接收位置,然后在 FTP 位置检查输出。

错误和修复

错误:对于非激活接收(在非自相关端口上),您必须至少指定一个已初始化的相关集。

解决方案:在 Orc 的接收形状中,将Activate属性设置为true

致谢

非常感谢您阅读本文,您的意见对我非常有价值,并将鼓励我撰写更多高质量的文章。如果您有任何特定的 BizTalk 主题建议,我将非常高兴。我喜欢花时间做更有挑战性的事情。

参考文献

历史

  • 2012 年 12 月 5 日:初版。
© . All rights reserved.