94 lines
3.9 KiB
XML
94 lines
3.9 KiB
XML
<?xml version="1.0" encoding='UTF-8'?>
|
|
<Package>
|
|
<!--设置订阅发布交易码-->
|
|
<Function name="QuerySubTxCd">
|
|
<Input>ISS_BUS_TYP|TX_CD|</Input>
|
|
<Output>MY_TX_CD|MSG_CD|</Output>
|
|
<!-- 检查交易码是否存在于业务类型表中 -->
|
|
<DynSentence name="QRY_MKMTBUSTYP_IN">
|
|
<Sentence>
|
|
SELECT 'Y' IS_EXISTS
|
|
FROM DUAL
|
|
WHERE EXISTS(SELECT * FROM MKMTBUSTYP WHERE BUS_TYP=? AND TX_CD=?)
|
|
</Sentence>
|
|
<Fields>ISS_BUS_TYP|TX_CD|</Fields>
|
|
</DynSentence>
|
|
<!--查询营销业务类型表中的交易码-->
|
|
<DynSentence name="QRY_MKMTBUSTYP">
|
|
<Sentence>
|
|
SELECT TX_CD FROM MKMTBUSTYP WHERE BUS_TYP=?
|
|
</Sentence>
|
|
<Fields>ISS_BUS_TYP|</Fields>
|
|
</DynSentence>
|
|
<Process>
|
|
<!-- 检查该交易码是否在订阅发布的范围内,不存在依然返回原交易码 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTBUSTYP_IN"/>
|
|
</Exec>
|
|
<If condition="IS_NOEQUAL_STRING($IS_EXISTS,Y)">
|
|
<Set>MY_TX_CD=STRCAT("('",$TX_CD,"')")</Set>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM00000"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!--订单直减、消费属于特例:同一业务类型具有不同的交易码且代表不同的类型-->
|
|
<If condition="IS_EQUAL_STRING($TX_CD,2011102,2011210,2015802)">
|
|
<If condition="IS_EQUAL_STRING($TX_CD,2011210)">
|
|
<Set>MY_TX_CD=STRCAT("('",$TX_CD,"')")</Set>
|
|
</If>
|
|
<Else>
|
|
<Set>MY_TX_CD=STRCAT("('",2011102,"')")</Set>
|
|
</Else>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM00000"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!--从营销业务类型表中查找该业务类型对应的交易码且生成sql中可用形式-->
|
|
<Else>
|
|
<Exec func="PUB:QueryInGroup">
|
|
<Arg name="SqlCmd" value="QRY_MKMTBUSTYP"/>
|
|
<Arg name="RecordName" value="BUSTYP.REC"/>
|
|
</Exec>
|
|
<!--业务类型表中不存在,依然返回原交易码-->
|
|
<If condition="~RetCod=2">
|
|
<Set>MY_TX_CD=STRCAT("('",$TX_CD,"')")</Set>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM00000"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!--业务类型表中存在,则进行拼接-->
|
|
<Set>INDEX=0</Set>
|
|
<Set>MY_TX_CD="("</Set>
|
|
<While condition="$INDEX < $REC_NUM">
|
|
<Set>INDEX=ADD($INDEX,1)</Set>
|
|
<Set>BUS_TX_CD=$BUSTYP.REC[$INDEX].TX_CD</Set>
|
|
<!-- 去掉订单立减的情况 -->
|
|
<If condition="IS_NOEQUAL_STRING($BUS_TX_CD,2011102)">
|
|
<Set>MY_TX_CD=STRCAT($MY_TX_CD,',$BUS_TX_CD,')</Set>
|
|
<!--如果后面还有值,则添加逗号-->
|
|
<If condition="INTCMP($INDEX,1,$REC_NUM)">
|
|
<Set>MY_TX_CD=STRCAT($MY_TX_CD,",")</Set>
|
|
</If>
|
|
</If>
|
|
</While>
|
|
<!--添加右括号-->
|
|
<Set>MY_TX_CD=STRCAT($MY_TX_CD,")")</Set>
|
|
</Else>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM00000"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
</Process>
|
|
</Function>
|
|
</Package> |