zoukankan      html  css  js  c++  java
  • [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 出来,方便很多!

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

    www.biztalkgroup.com 

  • 相关阅读:
    nginx之location、rewrite配置
    nio buffer
    分布式事务
    彻底剖析RMI底层源码 、手写轻量级RMI框架
    Java RMI详解
    Java提高篇——对象克隆(复制)
    序列化
    分布式通信-tcp/ip 广播
    分布式通信-tcp/ip 单播
    php 图像处理 抠图,生成背景透明png 图片
  • 原文地址:https://www.cnblogs.com/xuzhong/p/12084613.html
Copyright © 2011-2022 走看看