none
外部系统触发BizTalk业务流程执行 RRS feed

  • 问题

  • 鉴于BizTalk有轮询功能,可以每隔一段时间轮询一次,检测目录或者数据库是否有需要其处理的数据或消息,但考虑到在实际的使用中由于种种原因可能设置的轮询时间会很长,比如一个小时轮询一次,所以这就可能导致BizTalk不能及时的处理数据或消息,所以我想外部系统是否可以触发BizTalk去处理数据或者消息呢?
    比如BizTalk监视A系统数据库中某个表的记录,我们设置BizTalk每隔10分钟轮询一次,去检测数据库有没有新的记录,当表中有新记录时,BizTalk对新纪录做处理。但是实际使用中我想在A系统往表中插入新纪录之后就要求BizTalk对新纪录进行处理,但是此时可能还没有到BizTalk的轮询期间,所以这样BizTalk就不能及时的处理数据表中的新纪录,所以我想请教BizTalk开发的前辈们,外部系统可不可以在提交了新数据之后马上触发BizTalk去处理新数据?比如在外部系统点击按钮提交数据时触发BizTalk处理新数据。
    2013年7月5日 1:55

全部回复

  • 目前我的方案不是很完善,但是可以给你一些启发。

    因为外部系统无法确定是否为.NET开发,所以建议创建一个WEB SERVICE ,用这个创建的WEB SERVICE来触发流程。在流程中通过接收端口来读取表中新增加的数据,然后进行相关的业务逻辑处理。这样有一个弊端,如果你有很多这样的需求你就需要创建多个WEB SERVICE。

    或者你也可以在WEB SERVICE中调用BIZTALK API 设置Receive Locations 的Disable 和 Enable 来触发接口端口。(这个方法我也没实践过,只是理论上觉得可行)。

    2013年7月17日 9:48