367 lines
13 KiB
XML
367 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Package>
|
|
<Function name="ReplaceVarByCorg">
|
|
<!-- 根据商户号,渠道标志,业务类型找到默认的场景名称 -->
|
|
<DynSentence name="QRY_CAPMERCDEF">
|
|
<Sentence>
|
|
SELECT * FROM CAPMERCDEF WHERE MERC_ID=? AND TXN_CNL=? AND
|
|
CAP_TYP=? AND LIC_NAME IS NOT NULL
|
|
</Sentence>
|
|
<Fields>MERC_ID|TXN_CNL|CAP_TYP|</Fields>
|
|
</DynSentence>
|
|
<!-- 判断默认场景是否生效 -->
|
|
<DynSentence name="QRY_CAPLICDATA">
|
|
<Sentence>
|
|
SELECT * FROM CAPLICDATA WHERE CAP_TYP=? AND LIC_NAME=? AND IS_USED='Y'
|
|
</Sentence>
|
|
<Fields>CAP_TYP|LIC_NAME|</Fields>
|
|
</DynSentence>
|
|
<!-- 根据业务类型机构编码找到机构的默认场景名称 -->
|
|
<DynSentence name="QRY_CAPLICTOL1">
|
|
<Sentence>
|
|
SELECT * FROM CAPLICTOL WHERE CAP_TYP=? AND CORG_NO=? AND IS_DEFAULT='Y'
|
|
</Sentence>
|
|
<Fields>CAP_TYP|CORG_NO|</Fields>
|
|
</DynSentence>
|
|
<!-- 判断该业务类型该场景名称下是否支持支持该合作机构 -->
|
|
<DynSentence name="QRY_CAPLICTOL">
|
|
<Sentence>
|
|
SELECT * FROM CAPLICTOL WHERE CAP_TYP=? AND LIC_NAME=? AND CORG_NO=?
|
|
</Sentence>
|
|
<Fields>CAP_TYP|LIC_NAME|CORG_NO|</Fields>
|
|
</DynSentence>
|
|
<!--通过上面找到的汇总表里的序号找到所有需要替换并且生效的参数-->
|
|
<DynSentence name="QRY_CAPLICINFO">
|
|
<Sentence>
|
|
SELECT A.LIC_VAR, A.VAR_NUM, A.FORCE_COVER, B.LIC_LOC_NAM
|
|
FROM (SELECT *
|
|
FROM CAPLICINFO
|
|
WHERE IS_USED = 'Y'
|
|
AND LIC_NO = ?) A,
|
|
CAPBANKCOL B
|
|
WHERE A.CORG_NO = B.CORG_NO
|
|
AND A.CAP_TYP = B.CAP_TYP
|
|
AND A.LIC_VAR = B.LIC_VAR
|
|
</Sentence>
|
|
<Fields>LIC_NO|</Fields>
|
|
</DynSentence>
|
|
<!--通过合作机构跟业务类型找到全部需要替换的参数-->
|
|
<DynSentence name="QRY_CAPBANKCOL">
|
|
<Sentence>
|
|
SELECT LIC_LOC_NAM,LIC_VALUE FROM CAPBANKCOL WHERE CORG_NO=? AND CAP_TYP=?
|
|
</Sentence>
|
|
<Fields>CORG_NO|CAP_TYP|</Fields>
|
|
</DynSentence>
|
|
<Process>
|
|
<Exec func="PUB:DumpETF" />
|
|
<Set>V=0</Set>
|
|
<!-- 根据商户号,渠道标志,业务类型判断是否有默认场景 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPMERCDEF" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=0"><!-- 找到 -->
|
|
<!-- 根据场景名称,业务类型判断是否支持该合作机构-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPLICTOL" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2"><!-- 不支持 -->
|
|
<!-- 根据业务类型机构编码找到机构的默认场景名称 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPLICTOL1" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2"><!-- 没找到 -->
|
|
<Set>v=1</Set>
|
|
</If>
|
|
</If>
|
|
<Else><!-- 找到 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE"><!-- 判断场景名称是否生效 -->
|
|
<Arg name="SqlCmd" value="QRY_CAPLICDATA" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2"><!-- 不生效 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPLICTOL1" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2"><!-- 没找到 -->
|
|
<Set>v=1</Set>
|
|
</If>
|
|
</If>
|
|
</Else>
|
|
</If>
|
|
<Else><!-- 没找到 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPLICTOL1" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2">
|
|
<Set>v=1</Set>
|
|
</If>
|
|
</Else>
|
|
<If condition="IS_EQUAL_STRING($V,0)">
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPLICDATA" />
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP99999" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<If condition="~RetCod=2">
|
|
<Set>V=1</Set>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:OpenCursor" error="IGNORE"> <!-- 开启游标 -->
|
|
<Arg name="SqlCmd" value="QRY_CAPLICINFO" />
|
|
<Arg name="CursorName" value="CURSOR_1" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<!-- @msg 查询充值对账明细表,开启游标失败 -->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="PWM22150" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<While>
|
|
<Exec func="PUB:FetchCursor"> <!-- 读取下一条记录 -->
|
|
<Arg name="CursorName" value="CURSOR_1" />
|
|
</Exec>
|
|
<If condition="~RetCod=2"> <!-- 查无数据 -->
|
|
<Break />
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<!-- @msg 获取游标失败 -->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="PWM25806" />
|
|
</Exec>
|
|
<Return />
|
|
</ElseIf>
|
|
<!-- @msg LIC_LOC_NAM里面含有_.就是循环节点 -->
|
|
<If condition="INTCMP(GETSTRPOS($LIC_LOC_NAM,_.),6,0)">
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="REC_NUM" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<Set>N=1</Set>
|
|
<Set>LEN=STRLEN($LIC_LOC_NAM)</Set>
|
|
<Set>LEN1=GETSTRPOS($LIC_LOC_NAM,_.)
|
|
</Set>
|
|
<While condition="INTCMP($N,2,$REC_NUM)">
|
|
<Set>
|
|
LIC_LOC_NAM1=STRCAT(SUBSTR($LIC_LOC_NAM,1,$LEN1),$N,.,SUBSTR($LIC_LOC_NAM,ADD($LEN1,2),SUB($LEN,ADD($LEN1,1))))
|
|
</Set>
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM1" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<If condition="IS_EQUAL_STRING($FORCE_COVER,Y)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($VAR_NUM,1,1),^)">
|
|
<Set>
|
|
VAR_NUM1=SUBSTR($VAR_NUM,ADD(STRLEN($VAR_NUM),2),SUB(STRLEN($VAR_NUM),ADD(GETSTRPOS($VAR_NUM,_.),1)))
|
|
</Set>
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="$VAR_NUM1" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM1" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM1" />
|
|
<Arg name="FieldValue" value="$VAR_NUM" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
<Else>
|
|
<If condition="ISNULL($LIC_LOC_NAM1)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($VAR_NUM,1,1),^)">
|
|
<Set>
|
|
VAR_NUM1=SUBSTR($VAR_NUM,ADD(STRLEN($VAR_NUM),2),SUB(STRLEN($VAR_NUM),ADD(GETSTRPOS($VAR_NUM,_.),1)))
|
|
</Set>
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="$VAR_NUM1" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM1" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM1" />
|
|
<Arg name="FieldValue" value="$VAR_NUM" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
</Else>
|
|
</If>
|
|
<Set>N=ADD($N,1)</Set>
|
|
</While>
|
|
</If>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<If condition="IS_EQUAL_STRING($FORCE_COVER,Y)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($VAR_NUM,1,1),^)">
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="SUBSTR($VAR_NUM,2,SUB(STRLEN($VAR_NUM),1))" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM" />
|
|
<Arg name="FieldValue" value="$VAR_NUM" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
<Else>
|
|
<If condition="ISNULL($LIC_LOC_NAM)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($VAR_NUM,1,1),^)">
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="SUBSTR($VAR_NUM,2,SUB(STRLEN($VAR_NUM),1))" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM" />
|
|
<Arg name="FieldValue" value="$VAR_NUM" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
</Else>
|
|
</If>
|
|
</Else>
|
|
</While>
|
|
</Else>
|
|
</If>
|
|
<If condition="IS_EQUAL_STRING($V,1)">
|
|
<Exec func="PUB:OpenCursor" error="IGNORE"> <!-- 开启游标 -->
|
|
<Arg name="SqlCmd" value="QRY_CAPBANKCOL" />
|
|
<Arg name="CursorName" value="CURSOR_1" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<!-- @msg 查询充值对账明细表,开启游标失败 -->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="PWM22150" />
|
|
</Exec>
|
|
<Return />
|
|
</If>
|
|
<While>
|
|
<Exec func="PUB:FetchCursor"> <!-- 读取下一条记录 -->
|
|
<Arg name="CursorName" value="CURSOR_1" />
|
|
</Exec>
|
|
<If condition="~RetCod=2"> <!-- 查无数据 -->
|
|
<Break />
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<!-- @msg 获取游标失败 -->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="PWM25806" />
|
|
</Exec>
|
|
<Return />
|
|
</ElseIf>
|
|
<If condition="INTCMP(GETSTRPOS($LIC_LOC_NAM,_.),6,0)">
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="REC_NUM" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<Set>N=1</Set>
|
|
<Set>LEN=STRLEN($LIC_LOC_NAM)</Set>
|
|
<Set>LEN1=GETSTRPOS($LIC_LOC_NAM,_.)
|
|
</Set>
|
|
<While condition="INTCMP($N,2,$REC_NUM)">
|
|
<Set>
|
|
LIC_LOC_NAM1=STRCAT(SUBSTR($LIC_LOC_NAM,1,$LEN1),$N,.,SUBSTR($LIC_LOC_NAM,ADD($LEN1,2),SUB($LEN,ADD($LEN1,1))))
|
|
</Set>
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM1" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<If condition="ISNULL($LIC_LOC_NAM1)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($LIC_VALUE,1,1),^)">
|
|
<Set>
|
|
LIC_VALUE1=SUBSTR($LIC_VALUE,ADD(STRLEN($LIC_VALUE),2),SUB(STRLEN($LIC_VALUE),ADD(GETSTRPOS($LIC_VALUE,_.),1)))
|
|
</Set>
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="$LIC_VALUE1" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM1" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM1" />
|
|
<Arg name="FieldValue" value="$LIC_VALUE" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
</If>
|
|
<Set>N=ADD($N,1)</Set>
|
|
</While>
|
|
</If>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:IsExistNode">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM" />
|
|
</Exec>
|
|
<If condition="~RetCod=1">
|
|
<If condition="ISNULL($LIC_LOC_NAM)">
|
|
<If condition="IS_EQUAL_STRING(SUBSTR($LIC_VALUE,1,1),^)">
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="SUBSTR($LIC_VALUE,2,SUB(STRLEN($LIC_VALUE),1))" />
|
|
<Arg name="DestName" value="$LIC_LOC_NAM" />
|
|
</Exec>
|
|
</If>
|
|
<Else>
|
|
<Exec func="PUB:SetValue" error="IGNORE">
|
|
<Arg name="FieldName" value="$LIC_LOC_NAM" />
|
|
<Arg name="FieldValue" value="$LIC_VALUE" />
|
|
</Exec>
|
|
</Else>
|
|
</If>
|
|
</If>
|
|
</Else>
|
|
</While>
|
|
</If>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="RRC00000" />
|
|
</Exec>
|
|
|
|
</Process>
|
|
</Function>
|
|
</Package>
|