[BTS] BizTalk WCF-SQL Adapter 高级应用
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 出来,方便很多!
避免遗忘,这里做了记录。 如果兄弟你也能用得上,请直接带走!
[BTS] BizTalk WCF-SQL Adapter 高级应用的更多相关文章
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- BizTalk Server 2016配置 WCF SAP Adapter
BizTalk Server 2016配置 WCF SAP Adapter 最近公司内部需要使用BizTalk与SAP 系统进行对接,虽然SAP/PI可以以发布WebService 的方式实现与外部系 ...
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载
223本电子书籍,囊括了.NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Shell/A ...
- JAVA-Unit04: SQL(高级查询)
Unit04: SQL(高级查询) 查看SMITH的上司在那个城市工作? SELECT e.ename,m.ename,d.loc FROM emp e,emp m,dept d WHERE e.mg ...
- [BTS] SQL Adapter. New transaction cannot enlist in the specified transaction coordinator
The adapter "SQL" raised an error message. Details "New transaction cannot enlist in ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
- SQL Server高级查询
简介 关于数据库,我们经常会听说"增查删改"之类的词语,听起来很简单,但是如果想要准确的获取到需要的数据的话,还是要花点功夫的.下面由我来和大家谈谈高级查询的用法以及和普通查询的区 ...
- SQL Server(高级) 关键字的使用 二
二, 高级 关键字 -- 使用介绍 8,Top 的使用(Top子句返回记录的数目) select top number|percent column_name(s) from table_name 或 ...
- SQL Server 高级sql总结
----------------------------------------------------------------------Select------------------------ ...
随机推荐
- c# datatable 如何转CSV文件
public void DataTableToCSV(DataTable dtCSV, string csvFileFullName, bool writeHeader, string delimet ...
- Spring源码解析 - springMVC核心代码
一.首先来讲解下springMVC的底层工作流程 1.首先我们重点放在前端控制器(DispatcherServlet) 其类图: 因为从流程图看,用户的请求最先到达就是DispatcherServle ...
- java——springmvc——注册中央调度器
在WEB-INF下的web.xml中配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...
- HashMap 和 Hashtable 有什么区别?(未完成)
HashMap 和 Hashtable 有什么区别?(未完成)
- git的安装和简单使用
目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的. 下载地址: http://code.google.com/p/msysgit/downloads/ ...
- centos7 nginx设置开启启动
添加系统服务 在 /usr/lib/systemd/system 目录中添加 nginx.service,根据实际情况进行修改,详细解析可查看下方参考资料中的文章.内容如下 ? [Unit] ...
- mysql基础_数据类型
1.数字 (1)tinyint(小整数值) 范围:有符号(-128,127) 无符号(0.255) (2)int(大整数值) 范围:有符号 (-2 147 483 648,2 147 483 647 ...
- ubuntu 完全干净的卸载docker
1. 删除某软件,及其安装时自动安装的所有包 sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd r ...
- Bootstrap-轮播图-No.3
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- Android App常用控件