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]