六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 166|回复: 0

SSIS 脚本任务(Script Task)实战

[复制链接]

升级  4%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
56
 楼主| 发表于 2012-12-10 14:47:45 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">最近在忙一个酒店预订系统项目,已集成API XML,但是提交酒店订单到API之后,订单的状态要实行与API同步。因为可能下一分钟,API的订单状态可能已经确认,但本地订单状态还是 处理当中的。


当客人打开某个订单详细信息的时候,再去Call 一次API的状态。这是既传统,又笨的方法。
但是问题 接踵而至
1. 订单处理既然不及时,又不准时。
2. API提供商不给单条记录去同步状态。
等等。

详细解决方案:
用SSIS 设计 脚本任务, 再部署SSIS包任务,每2分钟Call一次API。

步骤:
1.生成Post XML代码
T-SQL CODE
<div class="cnblogs_code">ALTER proc [dbo].[BookingXML]asdeclare @XmlOutput xmldeclare @a nvarchar(max)set @XmlOutput = (select distinct a.APICode as hmcref from dbo.HotelBooking a left join dbo.sys_Procduct b on a.FID=b.FID where isnull(a.APICode,'')<>'' and isnull(a.APIStatus,'') in ('IC','CA','OR')--and a.BDT>=Getdate() and b.Del=0FOR XML Path(''), ROOT('hmcreflist'), ELEMENTS)if cast(@XmlOutput as nvarchar(max))<>''begin    set @a = '<request><company>aa</company><id>bb</id><pass>cc</pass><lang>SIM</lang>{@Str}</request>'    select cast(replace(@a, '{@Str}', cast(@XmlOutput as nvarchar(max))) as xml)endelsebegin    select ''end
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表