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

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>