874 lines
40 KiB
XML
874 lines
40 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Tran>
|
|
|
|
<!--生成农行批次-->
|
|
<Transaction code="initBatch_ABC" log_switch='1' desc="生成农行批次">
|
|
<Quote name="SQL_RcvConfirm"/> <!--商户接入认证检查配套SQL语句-->
|
|
<DynSentence name="QryBatCnt"><!--查询该批次有多少记录 -->
|
|
<Sentence>
|
|
SELECT COUNT(*) BAT_CNT FROM CAPTXNJNL
|
|
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM <= ?
|
|
</Sentence>
|
|
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|MAX_CNT</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdDskNo">
|
|
<Sentence>
|
|
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?
|
|
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM <= ?
|
|
</Sentence>
|
|
<Fields>CORG_DSK_NO|DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|MAX_CNT</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QryBatAmt">
|
|
<Sentence>
|
|
SELECT COUNT(*) BAT_CNT,NVL(SUM(TXN_AMT),0) BAT_SUM FROM CAPTXNJNL
|
|
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ? AND DSK_NAM_STS='0' AND TXN_STS='U'
|
|
</Sentence>
|
|
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="InitTxnJnl"> <!--初始化流水信息(第三方交易码,批次号)-->
|
|
<Sentence>
|
|
UPDATE CAPTXNJNL SET TXN_CD = '204020', TTXN_CD = ?
|
|
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ? AND DSK_NAM_STS='0' AND TXN_STS='U'
|
|
</Sentence>
|
|
<Fields>TTXN_CD|DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
|
|
</DynSentence>
|
|
<FlowCtrl>
|
|
<!--清理数据-->
|
|
<Delete>RSP_CD</Delete>
|
|
<Delete>RSP_MSG</Delete>
|
|
<Exec func="PUB:DumpETF"/>
|
|
|
|
<!--读取参数配置-->
|
|
<Quote name="Batch_Cfg_ABC"/>
|
|
|
|
<Set>CORG_NO=ABC</Set>
|
|
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
|
|
|
|
<!--查询合作机构检查-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryBnkInf"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Set>Rsp_Cd=31</Set>
|
|
<Set>Rsp_Msg=该合作机构不存在</Set>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=查询数据库失败</Set>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
<Return/>
|
|
</ElseIf>
|
|
<If condition="INTCMP($ENB_FLG,4,1)">
|
|
<Set>Rsp_Cd=31</Set>
|
|
<Set>Rsp_Msg=该合作机构未启用</Set>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
<Return/>
|
|
</If>
|
|
|
|
<While>
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryBatCnt"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=查询数据库失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<Set>BAT_CNT=$BAT_CNT</Set>
|
|
<If condition="INTCMP($BAT_CNT,2,0)"> <!--无数据-->
|
|
<Break/>
|
|
</If>
|
|
|
|
<Set>BAT_TYP=$FIL_TYP</Set> <!-- 交易模式 01 批扣 02 批付 99 联机 -->
|
|
<Set>SND_DT=SUBSTR($TACC_TM,1,8)</Set>
|
|
<Set>SND_TM=SUBSTR($TACC_TM,9,6)</Set>
|
|
<Quote name="GET_CUP_BAT_NO"/> <!--取银联批次号-->
|
|
<Set>CORG_DSK_NO=STRCAT(GETDATE(),$CORG_DSK_NO)</Set>
|
|
|
|
<!--更新批次号-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdDskNo"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新批次号失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<!--查询金额笔数-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryBatAmt"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=查询数据库失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--如果是批扣,则实时发送给机构,如果代付,不发机构 -->
|
|
<If condition="IS_EQUAL_STRING($TXN_MOD,01)"> <!--代收-->
|
|
<Set>BAT_STS=0</Set>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($TXN_MOD,02)"> <!--代付-->
|
|
<Set>BAT_STS=U</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=文件名称不符合规则</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</Else>
|
|
|
|
<Set>BAT_ORN_AMT=$BAT_SUM</Set>
|
|
<Set>BAT_ORN_CNT=$BAT_CNT</Set>
|
|
|
|
<!--初始化流水(批次号,第三方交易码)-->
|
|
<Set>TTXN_CD=PL01</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="InitTxnJnl"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=初始化流水信息失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 获取序列号-->
|
|
<Exec func="PUB:GetUniqueNo">
|
|
<Arg name="Name" value="nextval" />
|
|
<Arg name="SeqNam" value="abc_sequence" />
|
|
<Arg name="Len" value="4" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=内部错误</Set>
|
|
<Return />
|
|
</If>
|
|
<Set>FileNum=$nextval</Set><!--文件序号-->
|
|
<Delete>nextval</Delete>
|
|
|
|
<Set>MercCode=$MercCode</Set> <!--商户号-->
|
|
<Set>ProNum=$ProNum</Set><!--项目号-->
|
|
|
|
<Set>CORG_FIL_NAM=STRCAT($MercCode,_,$ProNum,_,$TXN_MOD,_,GETDATETIME(YYMMDD),_,$FileNum)</Set>
|
|
|
|
<Set>Rsp_Cd=SPACE(1)</Set>
|
|
<Set>Rsp_Msg=SPACE(1)</Set>
|
|
|
|
<!--登记接出批量信息登记表-->
|
|
<Set>HLOG_NO=0</Set>
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="CAPBATINF"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=登记接出批量信息登记表失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod=1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=批次重复</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</ElseIf>
|
|
|
|
</While>
|
|
|
|
<!-- 交易成功 -->
|
|
<Set>RSP_CD=00</Set>
|
|
<Set>RSP_MSG=交易成功</Set>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
<Transaction code="sendBatch_ABC" log_switch='1' desc="发送农行批次">
|
|
<Quote name="SQL_RcvConfirm"/>
|
|
<DynSentence name="QRYBATINF"> <!--查询批次信息-->
|
|
<Sentence>
|
|
SELECT *
|
|
FROM CAPBATINF
|
|
WHERE CORG_DSK_NO=?
|
|
AND ORD_DT=?
|
|
AND PRO_JRL='1'
|
|
</Sentence>
|
|
<Fields>CORG_DSK_NO|ORD_DT|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdJnlSts"> <!--更新该批次记录-->
|
|
<Sentence>
|
|
UPDATE CAPTXNJNL SET DSK_NAM_STS='1'
|
|
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO = ? AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U'
|
|
</Sentence>
|
|
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO|TXN_MOD|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdBatInf"> <!--更新该批次记录-->
|
|
<Sentence>
|
|
UPDATE CAPBATINF
|
|
SET TCORG_DSK_NO = ?
|
|
WHERE DSK_NAM = ? AND
|
|
ORD_DT = ?
|
|
</Sentence>
|
|
<Fields>TCORG_DSK_NO|DSK_NAM|ORD_DT|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdBatSts"> <!--更新批次状态-->
|
|
<Sentence>
|
|
UPDATE CAPBATINF SET BAT_STS=?,RSP_CD = ?,RSP_MSG = ?
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND BAT_STS='0'
|
|
</Sentence>
|
|
<Fields>BAT_STS|RSP_CD|RSP_MSG|ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QryExport"> <!--查询需要打包的记录-->
|
|
<Sentence>
|
|
SELECT * FROM CAPTXNJNL
|
|
WHERE DSK_NAM='%s' AND CORG_NO = '%s' AND CORG_DSK_NO = '%s' AND ORD_DT='%s' AND TXN_MOD='%s' AND DSK_NAM_STS='0' AND TXN_STS='U'
|
|
</Sentence>
|
|
<Fields>DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
|
|
<Sentence>
|
|
UPDATE CAPBATINF SET PRO_JRL ='0'
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
|
|
</Sentence>
|
|
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT|</Fields>
|
|
</DynSentence>
|
|
<Function name="_before">
|
|
<Process>
|
|
<Exec func="PUB:DumpETF"/>
|
|
<Set>LockKey=STRCAT($CORG_NO,$CORG_DSK_NO)</Set>
|
|
<!-- 应用加锁,防止并发 -->
|
|
<Exec func="PUB:Lock">
|
|
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
|
|
<Arg name="TimOut" value="1800" />
|
|
<Arg name="AutoUnlock" value="no" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=加锁失败</Set>
|
|
<Exit/>
|
|
</If>
|
|
<Set>IS_LOCKED=TRUE</Set>
|
|
</Process>
|
|
</Function>
|
|
<Function name="_after">
|
|
<Process>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="InitPRO_JRL"/>
|
|
</Exec>
|
|
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
|
|
<!--解锁-->
|
|
<Exec func="PUB:UnLock">
|
|
<Arg name="RecKey" value="$LockKey" />
|
|
</Exec>
|
|
<Exec func="PUB:DumpETF"/>
|
|
</If>
|
|
</Process>
|
|
</Function>
|
|
<FlowCtrl>
|
|
<!--清理数据-->
|
|
<Delete>RSP_CD</Delete>
|
|
<Delete>RSP_MSG</Delete>
|
|
<Delete>SUM</Delete>
|
|
<Exec func="PUB:DumpETF"/>
|
|
<Quote name="Init_CAP01"/> <!--交易初始化-->
|
|
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRYBATINF"/>
|
|
</Exec>
|
|
<!--读取参数配置-->
|
|
<Quote name="Batch_Cfg_ABC"/>
|
|
<Set>TotilCnt=$BAT_ORN_CNT</Set>
|
|
<Set>TotilCnt=ADDCHAR($TotilCnt,10,0,1)</Set>
|
|
<Set>TotilAmt=AMTPOWER($BAT_ORN_AMT,2)</Set>
|
|
<Set>TotilAmt=ADDCHAR($TotilAmt,18,0,1)</Set>
|
|
<Set>FIL_NAM=STRCAT($CORG_FIL_NAM,.SRC)</Set>
|
|
<!--生成建行批量文件-->
|
|
<Exec func="PUB:ExportFromDB" error="IGNORE">
|
|
<Arg name="FormatName" value="BatABCReqFmt01"/>
|
|
<Arg name="FileName" value="STRCAT(GETENV(WORKDIR),/dat/cap/send/,$FIL_NAM)"/>
|
|
<Arg name="TableName" value="captxnjnl"/>
|
|
<Arg name="SqlName" value="QryExport"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=导出数据失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--判断文件是否存在,并且读取文件字节数-->
|
|
<Exec func="PUB:IsValidFile" error="IGNORE">
|
|
<Arg name="FileName" value="STRCAT(GETENV(WORKDIR),/dat/cap/send/,$FIL_NAM)"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=文件不存在</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--加签-->
|
|
<Exec func="ABC:EncryptMD5" error="IGNORE">
|
|
<Arg name="FilNam" value="STRCAT(GETENV(WORKDIR),/dat/cap/send/,$FIL_NAM)" />
|
|
<Arg name="MD5Key" value="$MD5KEY" />
|
|
</Exec>
|
|
|
|
<!--判断文件是否存在,并且读取文件字节数-->
|
|
<Exec func="PUB:IsValidFile" error="IGNORE">
|
|
<Arg name="FileName" value="STRCAT(GETENV(WORKDIR),/dat/cap/send/,$FIL_NAM)"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=文件不存在</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<!--文件字节数-->
|
|
<Set>Fil_Byt=$Fil_Byt</Set>
|
|
<!--SFTP发送给农行-->
|
|
<Set>LOCAL_USR=$PARA.LOCAL_USR</Set>
|
|
<Set>LOCAL_TYP=sftp</Set>
|
|
<Set>LOCAL_DIR=STRCAT(GETENV(WORKDIR),/dat/cap/send/)</Set>
|
|
|
|
<Set>REMOTE_IP=$PARA.REMOTE_IP</Set>
|
|
<Set>REMOTE_USR=$PARA.REMOTE_USR</Set>
|
|
<Set>REMOTE_PWD=$PARA.REMOTE_PWD</Set>
|
|
<Set>REMOTE_TYP=$PARA.REMOTE_TYP</Set>
|
|
<Set>REMOTE_DIR=$PARA.REMOTE_DIR</Set>
|
|
|
|
<Set>FTP_MOD=put</Set>
|
|
<Set>FIL_NAM=STRCAT($CORG_FIL_NAM,.SRC)</Set>
|
|
|
|
<Exec func="PUB:CallThirdOther" error="IGNORE">
|
|
<Arg name="HTxnCd" value="100006"/>
|
|
<Arg name="ObjSvr" value="S.FILSVR"/>
|
|
</Exec>
|
|
|
|
<!--第三方数据拼接 -->
|
|
<Set>TransCode=PL01</Set><!--交易代码-->
|
|
<Set>MercCode=$MercCode</Set><!--商户代码-->
|
|
<Set>ProNum=$ProNum</Set><!--项目号-->
|
|
<Set>PayFlg=$TXN_MOD</Set><!--支付标志,01:代收 02:代付-->
|
|
<Set>TxReqDate=GETDATE()</Set><!--交易请求日期-->
|
|
<Set>TxReqTime=GETDATETIME(HHMISS)</Set><!--交易请求时间-->
|
|
<Set>FileNum=SUBSTR($CORG_FIL_NAM,20,4)</Set><!--文件序号-->
|
|
<Set>FileSize=$Fil_Byt</Set><!--文件大小-->
|
|
<Set>TotilCnt=$TotilCnt</Set><!--总笔数-->
|
|
<Set>TotilAmt=$TotilAmt</Set><!--总金额-->
|
|
|
|
<!--通知农行接收批量文件-->
|
|
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
|
<Arg name="HTxnCd" value="PL01"/>
|
|
<Arg name="ObjSvr" value="STHDABC2"/>
|
|
</Exec>
|
|
<Switch expression="~RetCod">
|
|
<Case value="1">
|
|
<Set>BAT_STS=2</Set>
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=未成功发送第三方</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="-1">
|
|
<Set>BAT_STS=2</Set>
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=未成功发送第三方</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="2">
|
|
<Set>BAT_STS=2</Set>
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=未成功发送第三方</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="3">
|
|
<Set>BAT_STS=2</Set>
|
|
<Set>RSP_CD=$TrspCode</Set>
|
|
<Set>RSP_MSG=$TrspMsg</Set>
|
|
<!--更新流水状态-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdJnlSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新该批次为处理中</Set>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
<Break/>
|
|
</If>
|
|
<!-- 执行批付解冻 -->
|
|
<If condition="IS_EQUAL_STRING($BAT_TYP,02)">
|
|
<Set>CAP_TYP=CAP_PAY_BAT</Set>
|
|
<Set>TX_AMT=0</Set>
|
|
<Set>TX_JRN_NO=$CORG_DSK_NO</Set>
|
|
<Set>CORG_NO=$CORG_NO</Set>
|
|
<Set>BUS_CNL=BIS</Set>
|
|
<Call package="MERCACC" function="MERC_ACC_ALTER_CCRP10003">
|
|
<Input>MERC_ID|TXN_MOD_FLG|AC_DT|CAP_TYP|TX_AMT|TX_JRN_NO|CORG_NO|BUS_CNL|RMK|SYS_ID|TXN_CNL|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
</If>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="0"> <!--通讯成功-->
|
|
<Set>RSP_CD=$TrspCode</Set> <!--成功-->
|
|
<Set>RSP_MSG=$TrspMsg</Set> <!--成功-->
|
|
<Set>TCORG_DSK_NO=$BankJrnno</Set> <!--银行流水号-->
|
|
<Set>BAT_STS=1</Set> <!--发送成功-->
|
|
<!--更新流水状态-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdJnlSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=更新该批次为处理中失败</Set>
|
|
<Break/>
|
|
</If>
|
|
|
|
<!-- 更新批次中第三方返回的信息 -->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdBatInf"/>
|
|
</Exec>
|
|
<Break/>
|
|
</Case>
|
|
<Default>
|
|
<!--第三方返返回码不明-->
|
|
<Set>BAT_STS=2</Set> <!--发送失败-->
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=未成功发送第三方</Set>
|
|
<Break/>
|
|
</Default>
|
|
</Switch>
|
|
|
|
<!--更新批次状态-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdBatSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=更新该批次为发送处理状态失败</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--提交事务-->
|
|
<Exec func="PUB:CommitWork"/>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
<Transaction code="getBatch_ABC" log_switch='1' desc="获取农行批次回盘">
|
|
<DynSentence name="UpdCUPS_DSK_NO">
|
|
<Sentence>
|
|
UPDATE CAPBATINF
|
|
SET BAT_STS=? ,END_TM=? ,END_DT=?,BAT_SUC_AMT=?,BAT_SUC_CNT=?,BAT_FAL_AMT=?,
|
|
BAT_FAL_CNT=?,RSP_CD = ?,RSP_MSG = ?
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND BAT_STS=?
|
|
</Sentence>
|
|
<Fields>BAT_STS|END_TM|END_DT|BAT_SUC_AMT|BAT_SUC_CNT|BAT_FAL_AMT|BAT_FAL_CNT|RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|OBAT_STS|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdBatErrMsg"> <!--更新批次错误信息-->
|
|
<Sentence>
|
|
UPDATE CAPBATINF SET RSP_CD=? ,RSP_MSG=?
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=?
|
|
</Sentence>
|
|
<Fields>RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="DelABCTmp"> <!--删除临时表-->
|
|
<Sentence>
|
|
DELETE FROM CAPBATABC
|
|
</Sentence>
|
|
<Fields></Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdABCTxnJnl"> <!--更新农行批扣流水-->
|
|
<Sentence>
|
|
UPDATE CAPTXNJNL A SET (TTXN_ST,TXN_STS,DSK_NAM_STS,TACC_DT,TACC_TM,TRSP_CD,TRSP_MSG,RSP_MSG) =
|
|
(SELECT TTXN_ST TTXN_ST,TTXN_ST TXN_STS,'4',?,?,TRSP_CD,TRSP_MSG,TRSP_MSG
|
|
FROM CAPBATABC B WHERE B.CAP_ORD_NO = A.CAP_ORD_NO) WHERE A.ORD_DT = ? AND A.CORG_NO = 'ABC' AND A.CORG_DSK_NO = ? AND A.TTXN_ST = 'U'
|
|
</Sentence>
|
|
<Fields>TACC_DT|TACC_TM|OORD_DT|OCORG_DSK_NO</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="UpdDskInf">
|
|
<Sentence>
|
|
UPDATE CAPDSKINF SET
|
|
SUC_CNT=TO_NUMBER(NVL(TRIM(SUC_CNT),0)) + TO_NUMBER(NVL(TRIM(?),0)),SUC_AMT=TO_NUMBER(NVL(TRIM(SUC_AMT),0)) + TO_NUMBER(NVL(TRIM(?),0)),
|
|
FAL_CNT=TO_NUMBER(NVL(TRIM(FAL_CNT),0)) + TO_NUMBER(NVL(TRIM(?),0)),FAL_AMT=TO_NUMBER(NVL(TRIM(FAL_AMT),0)) + TO_NUMBER(NVL(TRIM(?),0))
|
|
WHERE DSK_NAM=?
|
|
</Sentence>
|
|
<Fields>BAT_SUC_CNT|BAT_SUC_AMT|BAT_FAL_CNT|BAT_FAL_AMT|ODSK_NAM</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="TotFai"> <!--统计失败笔数-->
|
|
<Sentence>
|
|
SELECT COUNT(*) BAT_FAL_CNT,NVL(SUM(TXN_AMT),0) BAT_FAL_AMT FROM CAPTXNJNL WHERE ORD_DT = ? AND CORG_NO = ? AND CORG_DSK_NO = ? AND TTXN_ST = 'F'
|
|
</Sentence>
|
|
<Fields>OORD_DT|CORG_NO|OCORG_DSK_NO</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="TotSuc"> <!--统计成功笔数-->
|
|
<Sentence>
|
|
SELECT COUNT(*) BAT_SUC_CNT,NVL(SUM(TXN_AMT),0) BAT_SUC_AMT FROM CAPTXNJNL WHERE ORD_DT = ? AND CORG_NO = ? AND CORG_DSK_NO = ? AND TTXN_ST = 'S'
|
|
</Sentence>
|
|
<Fields>OORD_DT|CORG_NO|OCORG_DSK_NO</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QryBatInf"> <!--查询批次信息-->
|
|
<Sentence>
|
|
SELECT TCORG_DSK_NO FROM CAPBATINF
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=?
|
|
</Sentence>
|
|
<Fields>OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
|
|
<Sentence>
|
|
UPDATE CAPBATINF SET PRO_JRL ='0'
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
|
|
</Sentence>
|
|
<Fields>OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
|
|
</DynSentence>
|
|
<Function name="_before">
|
|
<Process>
|
|
<Exec func="PUB:DumpETF"/>
|
|
<Set>LockKey=STRCAT($OCORG_NO,$OCORG_DSK_NO)</Set>
|
|
<!-- 应用加锁,防止并发 -->
|
|
<Exec func="PUB:Lock">
|
|
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
|
|
<Arg name="TimOut" value="1800" />
|
|
<Arg name="AutoUnlock" value="no" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=加锁失败</Set>
|
|
<Exit/>
|
|
</If>
|
|
<Set>IS_LOCKED=TRUE</Set>
|
|
</Process>
|
|
</Function>
|
|
<Function name="_after">
|
|
<Process>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="InitPRO_JRL"/>
|
|
</Exec>
|
|
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
|
|
<!--解锁-->
|
|
<Exec func="PUB:UnLock">
|
|
<Arg name="RecKey" value="$LockKey" />
|
|
</Exec>
|
|
<Exec func="PUB:DumpETF"/>
|
|
</If>
|
|
</Process>
|
|
</Function>
|
|
<FlowCtrl>
|
|
<!--清理数据-->
|
|
<Delete>RSP_CD</Delete>
|
|
<Delete>RSP_MSG</Delete>
|
|
|
|
<Exec func="PUB:DumpETF"/>
|
|
<!--建立事务-->
|
|
<Exec func="PUB:BeginWork"/>
|
|
<!--读取参数配置-->
|
|
<Quote name="Batch_Cfg_ABC"/>
|
|
|
|
<Quote name="GET_CAP_ORD_NO"/> <!--取银联订单号-->
|
|
<Set>TACC_DT=GETDATE()</Set> <!--交易日期-->
|
|
<Set>TACC_TM=GETDATETIME(HHMISS)</Set> <!--交易时间-->
|
|
<Set>OCORG_DSK_NO=$OCORG_DSK_NO</Set> <!--原批次号-->
|
|
|
|
<Set>END_TM=GETDATETIME()</Set>
|
|
<Set>END_DT=GETDATE()</Set>
|
|
<Set>BAT_SUC_AMT=0</Set>
|
|
<Set>BAT_SUC_CNT=0</Set>
|
|
<Set>BAT_FAL_CNT=0</Set>
|
|
<Set>BAT_FAL_AMT=0</Set>
|
|
<Set>RSP_CD=STRCAT( , )</Set>
|
|
<Set>RSP_MSG=STRCAT( , )</Set>
|
|
|
|
<Set>CORG_NO=$OCORG_NO</Set>
|
|
|
|
<Set>FilNam=STRCAT($OCORG_FIL_NAM,.RCV)</Set>
|
|
<Set>FIL_NAM=$FilNam</Set>
|
|
<Set>FilNam=STRCAT(GETENV(WORKDIR),/dat/cap/recv/,$FilNam)</Set> <!--建行回盘文件名-->
|
|
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryBatInf"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Msg=查询数据库失败</Set>
|
|
<Break />
|
|
</If>
|
|
<!--批量文件结果查询-->
|
|
<Set>TransCode=PL02</Set><!--交易代码-->
|
|
<Set>BankJrnno=$TCORG_DSK_NO</Set><!--银行流水号-->
|
|
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
|
<Arg name="HTxnCd" value="PL02"/>
|
|
<Arg name="ObjSvr" value="STHDABC2"/>
|
|
</Exec>
|
|
<Switch expression="~RetCod">
|
|
<Case value="1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=查询第三方失败</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=查询第三方失败</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="2">
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>Rsp_Msg=查询第三方失败</Set>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="3">
|
|
<Set>RSP_CD=$TrspCode</Set>
|
|
<Set>Rsp_Msg=$TrspMsg</Set>
|
|
<If condition="IS_EQUAL_STRING($TrspCode,ECDB)">
|
|
<Set>BAT_STS=3</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
|
|
<Break/>
|
|
</If>
|
|
</If>
|
|
<Else>
|
|
<Set>BAT_STS=5</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
|
|
<Break/>
|
|
</If>
|
|
<If condition="IS_EQUAL_STRING($OBAT_TYP,02)">
|
|
<Set>CAP_TYP=CAP_PAY_BAT</Set>
|
|
<Set>TX_AMT=0</Set>
|
|
<Set>TX_JRN_NO=$OCORG_DSK_NO</Set>
|
|
<Set>CORG_NO=$OCORG_NO</Set>
|
|
<Set>BUS_CNL=BIS</Set>
|
|
<Call package="MERCACC" function="MERC_ACC_ALTER_CCRP10003">
|
|
<Input>OMERC_ID|TXN_MOD_FLG|AC_DT|CAP_TYP|TX_AMT|TX_JRN_NO|CORG_NO|BUS_CNL|RMK|SYS_ID|TXN_CNL|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
</If>
|
|
</Else>
|
|
<Break/>
|
|
</Case>
|
|
<Case value="0"> <!--结果文件已生成-->
|
|
<!--SFTP去渠道服务器获取-->
|
|
<Set>LOCAL_USR=wls81</Set>
|
|
<Set>LOCAL_USR=$PARA.LOCAL_USR</Set>
|
|
<Set>LOCAL_DIR=STRCAT(GETENV(WORKDIR),/dat/cap/recv/)</Set>
|
|
<Set>REMOTE_IP=$PARA.REMOTE_IP</Set>
|
|
<Set>REMOTE_USR=$PARA.REMOTE_USR</Set>
|
|
<Set>REMOTE_PWD=$PARA.REMOTE_PWD</Set>
|
|
<Set>REMOTE_TYP=$PARA.REMOTE_TYP</Set>
|
|
<Set>REMOTE_DIR=$PARA.REMOTE_DIR</Set>
|
|
|
|
<Set>FTP_MOD=get</Set>
|
|
<Set>FIL_NAM=$FIL_NAM</Set>
|
|
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
|
<Arg name="HTxnCd" value="100005"/>
|
|
<Arg name="ObjSvr" value="S.FILSVR"/>
|
|
</Exec>
|
|
<!--检查文件是否存在-->
|
|
<Exec func="PUB:IsExistFile" error="IGNORE">
|
|
<Arg name="FileName" value="$FilNam"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=批量回盘文件不存在</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<!--文件验签名-->
|
|
<Exec func="ABC:VerifyMD5" error="IGNORE">
|
|
<Arg name="FilNam" value="$FilNam" />
|
|
<Arg name="MD5Key" value="$MD5KEY" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=验签失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<!--导入临时表数据之前删除临时表数据 -->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="DelABCTmp" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Msg=删除临时表数据失败</Set>
|
|
<Break />
|
|
</If>
|
|
<!--导数据库-->
|
|
<Exec func="PUB:ImportToDB" error="IGNORE">
|
|
<Arg name="FormatName" value="BatABCRspFmt01"/>
|
|
<Arg name="FileName" value="$FilNam"/>
|
|
<Arg name="TableName" value="CAPBATABC"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新接入批量信息登记表失败</Set>
|
|
<Exec func="PUB:RollbackWork"/>
|
|
<Return/>
|
|
</If>
|
|
<Exec func="PUB:DumpETF"/>
|
|
|
|
<!--更新流水状态-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdABCTxnJnl"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新流水交易状态失败</Set>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
<Break/>
|
|
</If>
|
|
|
|
<!--统计成功,失败笔数-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="TotSuc"/>
|
|
</Exec>
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="TotFai"/>
|
|
</Exec>
|
|
|
|
<Set>BAT_SUC_AMT=$BAT_SUC_AMT</Set>
|
|
<Set>BAT_SUC_CNT=$BAT_SUC_CNT</Set>
|
|
<Set>BAT_FAL_AMT=$BAT_FAL_AMT</Set>
|
|
<Set>BAT_FAL_CNT=$BAT_FAL_CNT</Set>
|
|
|
|
<!--更新文件信息-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdDskInf"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=累加更新接入批量信息表成功失败总笔数及总金额失败</Set>
|
|
<Break/>
|
|
</If>
|
|
<Set>Rsp_Cd=00</Set>
|
|
<Set>Rsp_Msg=交易成功</Set>
|
|
<Set>BAT_STS=4</Set> <!-- 接收处理完成 -->
|
|
<!--更新批次信息-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
|
|
<Break/>
|
|
<!--Exec func="PUB:RollbackWork"/-->
|
|
</If>
|
|
<Set>TXN_MOD_FLG=$OBAT_TYP</Set>
|
|
<If condition="IS_EQUAL_STRING($OBAT_TYP,01)">
|
|
<Set>CAP_TYP=CAP_RCV_BAT</Set>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($OBAT_TYP,02)">
|
|
<Set>CAP_TYP=CAP_PAY_BAT</Set>
|
|
</ElseIf>
|
|
<Set>TX_AMT=$BAT_SUC_AMT</Set>
|
|
<Set>TX_JRN_NO=$OCORG_DSK_NO</Set>
|
|
<Set>CORG_NO=$OCORG_NO</Set>
|
|
<Set>BUS_CNL=BIS</Set>
|
|
<Call package="MERCACC" function="MERC_ACC_ALTER_CCRP10003">
|
|
<Input>OMERC_ID|TXN_MOD_FLG|AC_DT|CAP_TYP|TX_AMT|TX_JRN_NO|CORG_NO|BUS_CNL|RMK|SYS_ID|TXN_CNL|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
|
|
<Set>RUL_TYP=BIS</Set><!-- 转码规则类型 -->
|
|
<Set>CAP_TYP=$CAP_TYP</Set><!-- 交易类型 -->
|
|
<Set>CORG_NO=$OCORG_NO</Set><!-- 合作机构号 -->
|
|
<Set>CSW_TYP=0</Set><!-- 匹配类型 -->
|
|
<Set>ORD_DT=$OORD_DT</Set>
|
|
<Set>CORG_DSK_NO=$OCORG_DSK_NO</Set>
|
|
<Call package="CSW" function="CAP_BAT_CSW">
|
|
<Input>RUL_TYP|CAP_TYP|CORG_NO|CSW_TYP|ORD_DT|CORG_DSK_NO|</Input>
|
|
<Output></Output>
|
|
</Call>
|
|
<Set>RSP_CD=00</Set>
|
|
<Set>RSP_MSG=交易成功</Set>
|
|
|
|
<Break/>
|
|
</Case>
|
|
<Default>
|
|
<Set>RSP_CD=80</Set>
|
|
<Set>RSP_MSG=未成功发送第三方</Set>
|
|
<Break/>
|
|
</Default>
|
|
</Switch>
|
|
|
|
<!--更新错误信息-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdBatErrMsg"/>
|
|
</Exec>
|
|
|
|
<!--提交事务-->
|
|
<Exec func="PUB:CommitWork"/>
|
|
<!-- 交易成功 -->
|
|
<Set>RSP_CD=00</Set>
|
|
<Set>RSP_MSG=交易成功</Set>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
<Transaction code="notify_ABC" log_switch='1' desc="通知农行交易">
|
|
<DynSentence name="QryABCBatInf"> <!--更新该批次记录-->
|
|
<Sentence>
|
|
SELECT BAT_TYP,CORG_FIL_NAM,BAT_ORN_CNT,BAT_ORN_AMT
|
|
FROM CAPBATINF
|
|
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO = ?
|
|
</Sentence>
|
|
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|</Fields>
|
|
</DynSentence>
|
|
<FlowCtrl>
|
|
<Set>ORD_DT=$ORD_DT</Set><!--交易日期-->
|
|
<Set>CORG_NO=ABC</Set><!--机构号-->
|
|
<Set>CORG_DSK_NO=$CORG_DSK_NO</Set><!--批次号-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryABCBatInf" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>RspMsg=查询数据库错误</Set>
|
|
<Return />
|
|
</If>
|
|
<Set>FIL_NAM=STRCAT($CORG_FIL_NAM,.SRC)</Set>
|
|
<!--判断文件是否存在,并且读取文件字节数-->
|
|
<Exec func="PUB:IsValidFile" error="IGNORE">
|
|
<Arg name="FileName" value="STRCAT(GETENV(WORKDIR),/dat/cap/send/,$FIL_NAM)"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=文件不存在</Set>
|
|
<Return/>
|
|
</If>
|
|
<!--第三方数据拼接 -->
|
|
<Quote name="Batch_Cfg_ABC"/>
|
|
<Set>TransCode=PL01</Set><!--交易代码-->
|
|
<Set>MercCode=$MercCode</Set><!--商户代码-->
|
|
<Set>ProNum=$ProNum</Set><!--项目号-->
|
|
<Set>PayFlg=$BAT_TYP</Set><!--支付标志,01:代收 02:代付-->
|
|
<Set>TxReqDate=GETDATE()</Set><!--交易请求日期-->
|
|
<Set>TxReqTime=GETDATETIME(HHMISS)</Set><!--交易请求时间-->
|
|
<Set>FileNum=SUBSTR($CORG_FIL_NAM,20,4)</Set><!--文件序号-->
|
|
<Set>FileSize=$Fil_Byt</Set><!--文件大小-->
|
|
<Set>TotilCnt=$BAT_ORN_CNT</Set>
|
|
<Set>TotilCnt=ADDCHAR($TotilCnt,10,0,1)</Set>
|
|
<Set>TotilAmt=AMTPOWER($BAT_ORN_AMT,2)</Set>
|
|
<Set>TotilAmt=ADDCHAR($TotilAmt,18,0,1)</Set>
|
|
|
|
<!--通知农行接收批量文件-->
|
|
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
|
<Arg name="HTxnCd" value="PL01"/>
|
|
<Arg name="ObjSvr" value="STHDABC2"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>RspMsg=通知农行接收批量文件失败</Set>
|
|
<Return />
|
|
</If>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Tran>
|