9102年岁尾,41岁的我居然还在搞 BizTalk,感觉就是一种悲伤。

国内用户少之又少,能坚持一直在使用的“忠实”用户那就更少了。

不是它不好用,而是微软全线转向云服务,这个产品也已经快10年没有微信技术专家的支持了。哎~~

针对 WCF-SAP Adapter 的简单使用,网上已经有专家介绍过了。这里只是记录一下自己在多年相关开发过程中积累下来的一点点经验。

场景:

  • 需要定时从订单表(SQL Server)中抽取订单数据(如:每分钟)
  • 订单数据有 Header 信息,有 Item 信息
  • 抽取到的新订单要推送给 xxx 系统(这个不在讨论范围内)

技术分析

  • 需要用到 SQL Adapter,这里选用 WCF-SQL Adapter
  • 需要轮询,用 WCF-SQL 的 Polling 即可
  • Header : Item 是 1 对多关系,需要用到 left join 查询语句

难点

  • 这个可以体现 Header/Item 一对多的关系,怎么用一个SQL来实现?

我想到的,就是直接用 SQL 写一个可以输出 XML 的查询语句,期中,在XML中体现出 Header/Item 的父子关系即可。

(这个在5年前用过,但到今天,还真给忘了,搞了5个小时,终于还是弄出来了)

示例SQL可以这么写:

select *
from Header left join Item on Item.HeaderId = Header.Id
for xml auto
, element
, type
, root('Order')
, xmlschema

这样,一个类似如下结构的 XML 就生成了:

<Order>
<Header>
...
<Item>...</Item>
<Item>...</Item>
<Item>...</Item>
</Header>
</Order>

这样,就大大减小了在 orchestration 中频繁与 DB 进行交互的次数,并且一次查询,就可以把 header + item 数据一次性 Load 出来,方便很多!

避免遗忘,这里做了记录。 如果兄弟你也能用得上,请直接带走!

www.biztalkgroup.com

最新文章

  1. C++算法实源码分析
  2. 对IOC和DI以及AOP的理解
  3. 从DataReader中手动串行化JSON
  4. linux下缓存的查看/修改
  5. C++ c++初识
  6. I.MX6 默认打开 USB adb
  7. Online Schema Upgrade in MySQL Galera Cluster using TOI Method
  8. 属性文件Plist
  9. 完全步卸载oracle11g步骤
  10. Day05(fianl、抽象类、接口)
  11. MySQL中 and or 查询的优先级
  12. H5 id选择器
  13. opencv学习之路(17)、边缘检测
  14. 开始使用Chronograf(官方说明)
  15. 论坛:设计实体--&gt;分析功能--&gt;实现功能 之 《分析功能》
  16. maven-java包管理工具-01
  17. mfc 基类与子类
  18. 微信小程序对接串口摄像头
  19. Linux系统(X32)安装Oracle11g完整安装图文教程另附基本操作
  20. git 从远程git服务上拉代码 git服务器非默认端口

热门文章

  1. spring依赖注入时,什么时候会创建代理类
  2. 利用django 实现个人博客 全记录(二)
  3. 利用FastReport直接生成条码
  4. 【Distributed】CDN
  5. Delphi 构造和析构
  6. solr 中文分词相关(转载)
  7. run zabbix with docker
  8. mongodb的安装与使用(三)之 pymongo
  9. Codeforces Round #586 (Div. 1 + Div. 2) B. Multiplication Table
  10. HDU 6052 - To my boyfriend | 2017 Multi-University Training Contest 2