我们在<QuickLearn BizTalk系列之"Hello World">里讲到了如何快速的开发第一个BizTalk 应用程序。现在我们来讲一下如何把这个程序改成用于搬运文件的程序。

我们的设想是:不管文件的类型是什么,将文件从In 文件夹搬到 Out 文件夹。我们来看看应该怎么实现这个设想。

首先我们会发现"Hello World"程序在接收位置的文件名称是" *.XML ".也就是说它只接收XML文件类型的文件。既然它支持通配符的表达式那么我们就可能把这里改为:" * " 也就是说让它支持任何类型的文件。(在Windows系统中允许文件没有扩展名,所以我们就用*让它代表所有的文件)

我们的测试数据有三种类型的文件,分别是:XML, ZIP, Gif。现在我们将这三种类型的文件拷贝到In文件夹。再看看输出文件夹:

[输入文件]

[输出文件]

很显然,我们输入的文件都已经被输出到正确的目标下了。也就是说BizTalk成功的路由了消息。但是这跟我们设想的还有点差距。输出的文件中除了XML 类型的消息可以被正确访问之外。其他文件需要更改为相应的文件后缀才可以被访问。但我们希望的是输入的文件在输出的时候还能够保持原样(文件名,文件大 小,文件类型)。那么我们接下来就要在发送端口做一下改变了。做什么改变呢?我们要让BizTalk输出文件的时候保持原有的文件名和后缀。

打开发送端口的类型配置对话框。我们会发现在文件名的表达式里有一个特别的关键字“%MessageID%”。这个表达式其实是BizTalk的宏,它表示的是这个消息在BizTalk中的ID号 。也就是说在执行的时候它会被真实的值给替换。

现在我们将这个表达式改为: %SourceFileName% . 这个宏的意思是保留原文件名称。

OK,现在我们配置好了。我们来看一下执行的效果。我们发现文件按照原有文件名被输出出来,而且可以被正常访问。

注意事项:本文主要是为了讲如何实现这一需求。在生产环境中使用该方法要考虑更多的因素:

文件大小   对于消息的处理需要对服务器做进一步的调整,目前微软官方已经测试通过了 2G的单文件。

数据库的维护    BizTalk的所有消息都是保存在BizTalk数据库里的所以要做好BizTalk 数据库的管理

系统稳定性 如果处理的文件过大,过多会造成系统的不稳定。

系统性能 不同的适配器性能表现不一样。

BizTalk开发系列(二) "Hello World" 程序搬运文件的更多相关文章

  1. BizTalk开发系列(二十八) MSMQ 适配器

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...

  2. BizTalk开发系列(二十二) 开发自定义Map Functoid

    尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...

  3. BizTalk开发系列(二十五) SQL Adapter

    SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...

  4. BizTalk开发系列(二十六) 使用Web Service

    Web Service是在构建SOA平台中广泛使用的技术.在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求.业务流程可以发布为 Web Services 并使用外 ...

  5. BizTalk开发系列(二十九) 宏的使用

    在BizTalk中可以使用宏集合动态的让BizTalk发送处理程序使用单独的值来替换宏.常用的使用宏的发送程序有:文件发送适配器和SMTP发送适 配器.在表达式中可以使用同时使用多个宏.例如:在文件发 ...

  6. BizTalk开发系列(二十四) BizTalk项目框架建议

    Asp.NET有MVC框架,大部份的开发都是按照MVC进行的.BizTalk是面向消息的开发,不能完全采用分层的开发模式.而微软只提供了 BizTalk项目开发的基本策略,通过分析相关的Complex ...

  7. BizTalk开发系列(二十三) BizTalk性能指标参考

    BizTalk项目目前比较少,使用的客户也不多.大多只知道BizTalk是一个不错的产品,是Microsoft SOA平台的核心产品,不过还没有将其应用到生产环境.还有一些客户对BizTalk的性能不 ...

  8. BizTalk开发系列(二十一) Mapping 扩展开发

    BizTalk Map编辑器提供了常用的功能块,比如数据库,字符串,数字计算等功能.可在设计Map时直接使用这些功能块进行扩展.除此之外对于进行复杂的Map处 理,Map 编辑器提供了扩展XSLT,扩 ...

  9. BizTalk开发系列(二十) 类型作用域

    Orchestration中的Type概念跟.NET 里的Class一样,可以在Orchestration开过过程中将多个实例绑定到一种类型.Orchestration 视图里包括的类型有Port T ...

随机推荐

  1. java.util.List接口的方法subList()的使用注意事项

    JDK中,List接口有一个实例方法List<E> subList(int fromIndex, int toIndex), 其作用是返回一个以fromIndex为起始索引(包含),以to ...

  2. bpl 包的编写和引用

    转载:http://www.cnblogs.com/gxch/archive/2011/04/23/bpl.html 为什么要使用包? 答案很简单:因为包的功能强大.设计期包(design-time ...

  3. 静态局部变量(面向过程的static关键字)

    对于一个完整的程序,在内存中的分布情况如下图: 一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区.自动变量一般会随函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量) ...

  4. SpringBoot使用velocity模板引擎

    https://my.oschina.net/universsky/blog/704446

  5. JNDI 配置:JBoss + MySQL

    一.JNDI 名词解释 JNDI 是Java 命名和目录接口(Java Naming and Directory Interface,JNDI)的简称.从一开始就一直是 Java 2 平台企业版(JE ...

  6. BZOJ 2626 & KDtree

    题意: 二维平面n个点 每次给出一个点询问距离第k小的点. SOL: kdtree裸题,抄了一发别人的模板...二维割起来还是非常显然的.膜rzz的论文. 不多说了吧.... Code: /*==== ...

  7. Leetcode Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  8. 读取和写入 文件 (NSFIleManger 与 NSFileHandle)

    读取和写入 文件 //传递文件路径方法 -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath { self = [su ...

  9. ACM: Copying Data 线段树-成段更新-解题报告

    Copying Data Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description W ...

  10. 如何处理json字符转换为字典

    NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@?userName=%@&userPwd=%@& ...