科学怪人 发表于 2013-1-4 01:24:50

SSIS 脚本任务(Script Task)实战

<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
页: [1]
查看完整版本: SSIS 脚本任务(Script Task)实战