Files
2021-01-12 22:04:24 +08:00

110 lines
4.0 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="SMS" code="403" trace="yes">
<!-- STK存储转发短信下发 -->
<Transaction code="2130003" log_switch="1" >
<!--DynSentence name="QRY_LPSTSFIF_INF">
<Sentence>
SELECT MBL_NO,CMD_CD,SUB_CMD_CD,TXN_DAT BK_TXN_DAT,SUB_AC
FROM LPSTSFIF
WHERE SF_STS='U'
AND RPT_CNT &lt; MAX_RPT_CNT
AND CAST(RPT_DLY_TM AS NUMBER(20)) &lt; (CAST(to_char(SYSDATE,'yyyymmddhhmiss') AS NUMBER(20))-CAST(TM_SMP AS NUMBER(20)))
</Sentence>
<Fields>|</Fields>
</DynSentence-->
<DynSentence name="QRY_LPSTSFIF_INF"> <!--筛选未处理的存储转发记录-->
<Sentence>
SELECT MBL_NO,CMD_CD,SUB_CMD_CD,TXN_DAT BK_TXN_DAT,SUB_AC,RPT_DLY_TM,TM_SMP
FROM LPSTSFIF
WHERE SF_STS='U'
AND RPT_CNT &lt; MAX_RPT_CNT
</Sentence>
<Fields>|</Fields>
</DynSentence>
<DynSentence name="UPD_LPSTSFIF_RPTCNT"> <!-- 更新记录处理次数 -->
<Sentence>
UPDATE LPSTSFIF
SET RPT_CNT=CAST(CAST(RPT_CNT as smallint)+1 as char(1)),LAST_UPD_DT=?,LAST_UPD_TM=?
WHERE MBL_NO=? AND CMD_CD=? AND SUB_CMD_CD=? AND SUB_AC=?
</Sentence>
<Fields>GWA.TX_DT|GWA.TX_TM|MBL_NO|CMD_CD|SUB_CMD_CD|SUB_AC|</Fields>
</DynSentence>
<FlowCtrl>
<Set>GWA.SYS_CNL=SYS</Set>
<Set>GWA.BUS_CNL=SYS</Set>
<!-- 取待处理的存储转发记录 -->
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QRY_LPSTSFIF_INF"/>
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作错误"/>
</Exec>
<Return/>
</If>
<While>
<Exec func="PUB:FetchCursor" error="IGNORE"/>
<If condition="~RetCod=2">
<Exec func="PUB:CloseCursor"/>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
<Arg name="MsgDat" value="无待处理的记录"/>
</Exec>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:CloseCursor"/>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作错误"/>
</Exec>
<Return/>
</ElseIf>
<Set>FTX_TM=GETDATETIME()</Set>
<If condition="INTCMP(SUB(GETSECOND($FTX_TM),GETSECOND($TM_SMP)),1,$RPT_DLY_TM)=1">
<Continue/>
</If>
<!-- 下发数字短信 -->
<Set>TTXN_COD=SMS4032050</Set>
<Set>SMS_CD=LPS800</Set>
<Set>SMS_CNL=LPS</Set>
<Set>MSG_CD=LPS00000</Set>
<!--异步发送短信-->
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="2130001"/>
<Arg name="ObjSvr" value="OLPSPUB1"/>
<Arg name="Mode" value="NOTIFY"/>
<Arg name="LogID" value="2130001"/>
</Exec>
<!--更新记录状态处理次数-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_LPSTSFIF_RPTCNT"/>
</Exec>
<If condition="~RetCod!=0">
<Continue/>
</If>
<Exec func="PUB:CommitWork"/>
</While>
<Exec func="PUB:CloseCursor"/>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
</Exec>
</FlowCtrl>
</Transaction>
</Application>