Files
ctg-app-ui/bui/etc/BUI_PUB_CTL.XML.bk
2021-01-12 22:04:24 +08:00

201 lines
10 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Root>
<!-- LibDeclare声明区 -->
<LibDeclare>
<Library name="WEB" value="hiwebatc.jar" />
<Library name="UBUI" value="hiubui.jar" />
<Library name="CPU" value="hicpuatc.jar" />
<Library name="GECINF" value="higeninf.jar" />
<Library name="CMM" value="hicmm.jar" />
<Library name="LOG" value="higeninf.jar" />
</LibDeclare>
<!-- PackageDeclare声明区 -->
<PackageDeclare>
<Package name="LPS_PUB" value="app/lps/etc/LPS_PUB_PKG.XML" />
<Package name="PURM" value="app/bui/etc/urm/URM_PKG.XML" />
</PackageDeclare>
<!-- ConfigDeclare声明区 -->
<!-- 公共前后处理声明区 -->
<GlobalFunction>
<!-- 公共前处理 -->
<Function name="_before">
<DynSentence name="GET_LOGNO">
<Sentence>
select S_LOG_NO.Nextval LOG_NO from dual
</Sentence>
</DynSentence>
<DynSentence name="QRY_CMMTTXIF">
<Sentence>
select * from CMMTTXIF where TXN_COD='%s'
</Sentence>
<Fields>TXN_CD</Fields>
</DynSentence>
<DynSentence name="QRY_CMMTRSTS">
<Sentence>
select * from CMMTRSTS where SYS_DT='%s' and STS='1'
</Sentence>
<Fields>SYS_DT</Fields>
</DynSentence>
<!-- 查询菜单交易码 -->
<DynSentence name="QRY_CMMTFUNC">
<Sentence>
SELECT COUNT(*) MENUROW FROM CMMTFUNC WHERE func_no='%s'
</Sentence>
<Fields>TXN_CD|</Fields>
</DynSentence>
<!-- 过滤交易码 -->
<DynSentence name="QRY_TXNROW">
<Sentence>
SELECT COUNT(*) TXNROW FROM CMMTFUNCROLE r,cmmtoperrole o
WHERE r.role_id = o.role_id AND o.oper_no='%s' AND r.FUNC_NO='%s'
</Sentence>
<Fields>CUR_OPER_NO|TXN_CD|</Fields>
</DynSentence>
<Process>
<Exec func="PUB:InitGWA" error="IGNORE" />
<If condition="~RetCod!=0">
<Exit />
</If>
<!--Exec func="PUB:ETF2XML" error="IGNORE"> <Arg name="DstFld" value="DATA_INF" /> </Exec -->
<Exec func="WEB:GetSession">
<Arg name="ObjNam" value="OPER_INF" />
<Arg name="CUR_OPER_NO" value="OPER_NO" /> <!--操作员 -->
<Arg name="CUR_OPER_PROV" value="OPER_PROV" /> <!--归属省 -->
<Arg name="CUR_OPER_CITY" value="OPER_CITY" /> <!--归属市 -->
<Arg name="CUR_OPER_DEPT" value="OPER_DEPT" /> <!--归部门 -->
<Arg name="CUR_OPER_PROV_LVL" value="OPER_PROV_LVL" /> <!--省公司级别 -->
<Arg name="CUR_ORG_CD" value="OPER_ORG_CD" /> <!--登陆机构号 -->
<Arg name="CUR_QRY_DAT_SCP" value="OPER_QRY_DAT_SCP" /> <!--登录级别 -->
</Exec>
<If condition="$TXN_CD!=4806280">
<If condition="IS_NOEQUAL_STRING($TXN_CD,0040260,0040280,4716015)">
<!-- 登录交易不判断 -->
<If condition="ISNULL($CUR_OPER_NO)">
<Set>SESSION_TMOUT=1</Set>
<Exec func="PUB:GWASetMsg">
<!--@msg Session超时 -->
<Arg name="MsgCd" value="CMM00001" />
</Exec>
<Exit />
</If>
</If>
</If>
<!-- 查询用户交易是否存在菜单树中 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CMMTFUNC" />
</Exec>
<If condition="INTCMP($MENUROW,6,0)">
<!-- 判断用户是否有当前交易的权限 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_TXNROW" />
</Exec>
<If condition="INTCMP($TXNROW,3,0)">
<!--@msg 用户没有交易权限 -->
<Set>GWA.MSG_CD=SCM00001</Set>
<Exit />
</If>
</If>
<Set>UPD_OPER=$CUR_OPER_NO</Set>
<Set>CUR_OPR_ID=$CUR_OPER_NO</Set>
<Set>SYS_DT=GETDATE()</Set>
<!-- 查询交易属性,如果Log_LOG_FLG=1,则会插入交易日志 -->
<!--Exec func="PUB:ReadRecord" error="IGNORE"> <Arg name="SqlCmd" value="QRY_CMMTTXIF" /> <Arg name="GrpNam" value="TX_ATTR" /> </Exec -->
<!-- 获得流水日志号 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="GET_LOGNO" />
</Exec>
<If condition="~RetCod!=0">
<Exit />
</If>
<Set>LOG_NO=STRCAT($SYS_DT,PAD($LOG_NO,1,9,0))</Set>
<!-- 判断用户查询范围 -->
<!-- 如果不为总中心级别,设置查询极别 -->
<If condition="IS_EQUAL_STRING($CUR_OPER_PROV_LVL,1)">
<!-- 如果当前操作员所属城市为000,则为直属省部门,查询省范围 -->
<If condition="OR(ISNULL($CUR_OPER_CITY),IS_EQUAL_STRING($CUR_OPER_CITY,000))">
<Set>SCOP_SQL=STRCAT(DEPT.PROV_CD=',$CUR_OPER_PROV,')</Set>
</If>
<!--属于市属部门的操作员 -->
<Else>
<Set>SCOP_SQL=STRCAT(DEPT.CITY_CD=',$CUR_OPER_CITY,')</Set>
</Else>
</If>
<Else>
<Set>SCOP_SQL=STRCAT(1=,1)</Set>
</Else>
<Set>AC_DT=$SYS_DT</Set>
<Set>BUS_TYP=$TX_ATTR.BUS_TYP</Set>
<Set>TXN_TYP=$TX_ATTR.TXN_TYP</Set>
<!--Set>BUS_CNL=BUI</Set -->
<Set>GWA.BUS_CNL=BUI</Set>
<!--Set>SYS_CNL=BUI</Set -->
<Set>GWA.SYS_CNL=CAP</Set>
<Set>GWA.MSG_CD=SCM00000</Set>
<Set>IP_ADDR=@MSG.SIP</Set>
</Process>
</Function>
<!-- 公共后处理 -->
<Function name="_after">
<Process>
<Set>OPER_PWD=BLANK(2)</Set><!-- 删除密码 -->
<If condition="~RetCod=-1">
<Set>GWA.MSG_CD=SCM60001</Set>
</If>
<!-- #SysRet 系统异常错误标志 -->
<If condition="#SysRet=0">
<!--@msg 系统正忙,请稍后提交 -->
<Set>GWA.MSG_CD=SCM60002</Set>
</If>
<If condition="ISNULL($GWA.MSG_CD)">
<!--@msg 系统正忙,请稍后提交 -->
<Set>GWA.MSG_CD=SCM60003</Set>
</If>
<If condition="IS_SUCC($GWA.MSG_CD)">
<Set>GWA.MSG_TYP=N</Set>
</If>
<Else>
<Set>GWA.MSG_TYP=E</Set>
<Exec func="PUB:UIProcMsgCod" error="IGNORE" />
<If condition="~RetCod!=0">
<Set>GWA.MSG_INF=系统正忙,请稍后提交</Set>
</If>
</Else>
<If condition="OR(IS_EQUAL_STRING($GWA.MSG_TYP,N),IS_EQUAL_STRING($GWA.MSG_TYP,W))">
<!-- 若消息类型正常或警告则提交数据库事务 -->
<Exec func="PUB:CommitWork" error="IGNORE" />
</If>
<Else>
<!-- 否则回滚数据库事务 -->
<Exec func="PUB:RollbackWork" error="IGNORE" />
</Else>
<!--FLG_LOG值为0:代表此交易不用写入操作日志 ;其他情况则写入操作日志中 -->
<If condition="IS_NOEQUAL_STRING($FLG_LOG,0)">
<!-- 取出SESSION中相关的字段值 -->
<Exec func="WEB:GetSession">
<Arg name="ObjNam" value="OPER_INF" />
<Arg name="CUR_OPER_NO" value="OPER_NO" /> <!--操作员 -->
<Arg name="CUR_OPER_PROV" value="OPER_PROV" /> <!--归属省 -->
<Arg name="CUR_OPER_CITY" value="OPER_CITY" /> <!--归属市 -->
<Arg name="CUR_OPER_DEPT" value="OPER_DEPT" /> <!--归部门 -->
<Arg name="CUR_OPER_PROV_LVL" value="OPER_PROV_LVL" /> <!--省公司级别 -->
<Arg name="CUR_ORG_CD" value="OPER_ORG_CD" /> <!--登陆机构号 -->
<Arg name="CUR_QRY_DAT_SCP" value="OPER_QRY_DAT_SCP" /> <!--登录级别 -->
</Exec>
<If condition="NOT(ISNULL($CUR_OPER_NO))">
<!-- 登记操作员操作历史,登录操作员相关日志信息 -->
<Set>AREA1.OPR_PROV=$CUR_OPER_PROV</Set> <!-- 操作员归属省 -->
<Set>AREA1.OPR_CITY=$CUR_OPER_CITY</Set> <!-- 操作员归属市 -->
<Set>AREA1.OPR_DEPT=$CUR_OPER_DEPT</Set> <!-- 操作员归属机构编号 -->
<Set>AREA1.OPR_ID=$CUR_OPER_NO</Set> <!-- 操作员ID -->
<Exec func="LOG:GenOperOprHisDetail" error="IGNORE">
<Arg name="DAT_AREA" value="AREA1" /> <!-- 数据区 -->
<Arg name="DAT_FMT" value="FMT" /> <!-- 数据格式码 选输 -->
</Exec>
</If>
</If>
</Process>
</Function>
</GlobalFunction>
</Root>