142 lines
5.6 KiB
XML
142 lines
5.6 KiB
XML
<?xml version='1.0' encoding='GB2312'?>
|
|
<Application name="PWM" trace="yes">
|
|
<Transaction code="2028510" log_switch="1" desc="上海银行卡通充值对账主交易">
|
|
<!--查询对账总控表 -->
|
|
<DynSentence name="QRY_PWMTCKCT_BOS">
|
|
<Sentence>
|
|
SELECT
|
|
CHK_FIL_STS,CHK_FIL_DT,RUT_CORG,COP_BUS_TYP,CHK_FIL_NM,FIL_DT_SEQ
|
|
FROM PWMTCKCT
|
|
WHERE
|
|
CHK_BAT_NO=?
|
|
</Sentence>
|
|
<Fields>CHK_BAT_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<Set>GWA.TX_TYP=36</Set> <!-- 交易类型(对账) -->
|
|
<Set>GWA.BUS_TYP=1601</Set> <!-- 业务类型(充值对账) -->
|
|
|
|
<!-- 应用加锁,防止并发 -->
|
|
<Exec func="PUB:Lock">
|
|
<Arg name="RecKey" value="BOS_KTPAY_CK_LOCK" />
|
|
<Arg name="AutoUnlock" value="no" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 对账加锁失败 -->
|
|
<Arg name="MsgCd" value="PWM90000" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
|
|
<Set>PWM_LOCK_NM=BOS_KTPAY_CK_LOCK</Set> <!-- 加锁名 -->
|
|
<!-- 查询对账总控表相关信息 -->
|
|
<Exec func="PUB:ReadRecord" >
|
|
<Arg name="SqlCmd" value="QRY_PWMTCKCT_BOS" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 对账批次不存在 -->
|
|
<Arg name="MsgCd" value="PWM90001" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
|
|
<Set>FN_PREFIX=CCF</Set> <!-- 对账文件名前缀 -->
|
|
<Set>TBL_NAM=PPDTCTBOS</Set> <!-- 对账表名 -->
|
|
<Set>FMT_NAM=BOSCTCHK2</Set> <!-- 格式名 -->
|
|
<Set>FIL_DT_SEQ=ADDCHAR($FIL_DT_SEQ,2,0,1)</Set>
|
|
<Set>RECV_FILPATH=#BOS.PPD.RECV.FILPATH</Set> <!-- 接收文件路径 -->
|
|
|
|
<!-- 根据对账状态做相关处理 -->
|
|
<Switch expression="$CHK_FIL_STS">
|
|
<!-- 对账状态为0:待获取文件 -->
|
|
<Case value="0">
|
|
<Call package="PWM" function="BOS_GETFILE">
|
|
<Output>MSG_CD</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
</Case>
|
|
|
|
<!-- 对账状态为1:文件待入库 -->
|
|
<Case value="1">
|
|
<Call package="PWM" function="BOS_IMPORT">
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<Exec func="PUB:CommitWork" /> <!-- 提交事务 -->
|
|
</Case>
|
|
|
|
<!-- 对账状态为2:文件已入库,待对账 -->
|
|
<Case value="2">
|
|
<!-- 检查上日是否存在未对账的批次 -->
|
|
<Call package="PWM" function="CHK_LAST_BAT_STS">
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
|
|
<!-- 开始本批次对账 -->
|
|
<Set>INT_DAT.PPD_TJN_NM=PPDTJTBOS</Set> <!-- 网关流水表名 -->
|
|
<Set>INT_DAT.PPD_TCK_NM=PPDTCTBOS</Set> <!-- 充值对账表名 -->
|
|
<Set>INT_DAT.CHK_BAT_NO=$CHK_BAT_NO</Set> <!-- 充值对账表:对账批次 -->
|
|
<Set>INT_DAT.RUT_CORG=KT-BOS</Set> <!-- 路径合作机构号 -->
|
|
<Call package="PWM" function="PPD_BANK_CK">
|
|
<Input>INT_DAT|GWA|</Input>
|
|
<Output>OUT_DAT|MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
|
|
<Exec func="PUB:CommitWork" />
|
|
</Case>
|
|
|
|
<!-- 对账状态3:已对账 -->
|
|
<Case value="3">
|
|
</Case>
|
|
|
|
<!-- 对账状态为4:对账结束 -->
|
|
<Case value="4">
|
|
<Break />
|
|
</Case>
|
|
|
|
<!-- 其他 -->
|
|
<Default>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 对账状态错误 -->
|
|
<Arg name="MsgCd" value="PWM90002" />
|
|
</Exec>
|
|
<Return />
|
|
</Default>
|
|
</Switch>
|
|
|
|
<!-- 正常结束 -->
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="PWM00000" />
|
|
</Exec>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
</Application>
|
|
|
|
|