220 lines
8.2 KiB
XML
220 lines
8.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
数据库表同步
|
|
日期 编号 修改人 修改原因
|
|
2010.04.23 huang_qx 创建
|
|
-->
|
|
<Application name="WPS" code="203" trace="yes">
|
|
<Define>
|
|
<Macro name="UpdSycSts" desc="更新同步信息表状态">
|
|
<Set>UpdDat=GETDATE()</Set>
|
|
<Set>UpdTim=SUBSTR(GETDATETIME(),9,6)</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSycSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>RspMsg=STRCAT(更新[,$TblNam,]同步状态失败)</Set>
|
|
</If>
|
|
<ElseIf condition="~RetCod=-2">
|
|
<Set>RspMsg=STRCAT(更新[,$TblNam,]同步状态失败)</Set>
|
|
</ElseIf>
|
|
</Macro>
|
|
</Define>
|
|
<!--同步数据库-->
|
|
<Transaction code="100000" desc="同步数据库" log_switch='1'>
|
|
<!--更新同步信息表-->
|
|
<DynSentence name="UpdSycSts">
|
|
<Sentence>
|
|
UPDATE PubTblSyc SET (UpdDat,UpdTim,UpdSts,Smr)=('%s','%s','%s','%s') WHERE TblNam = '%s'
|
|
</Sentence>
|
|
<Fields>UpdDat|UpdTim|UpdSts|Smr|TblNam</Fields>
|
|
</DynSentence>
|
|
<!--查询同步信息表-->
|
|
<DynSentence name="QryTblSyc">
|
|
<Sentence>
|
|
SELECT TblNam TTblNam,UpdDat TUpdDat, UpdTim TUpdTim, UpdSts TUpdSts, SycFlg TSycFlg
|
|
FROM PubTblSyc WHERE SycFlg = '0'
|
|
</Sentence>
|
|
<Fields></Fields>
|
|
</DynSentence>
|
|
<!--清空准备同步的表-->
|
|
<DynSentence name="DelTbl">
|
|
<Sentence>
|
|
DELETE FROM %s
|
|
</Sentence>
|
|
<Fields>TblNam|</Fields>
|
|
</DynSentence>
|
|
<FlowCtrl>
|
|
<!--查询数据库同步表-->
|
|
<Exec func="PUB:QueryInGroup" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QryTblSyc"/>
|
|
<Arg name="RecordName" value="RecIn"/>
|
|
</Exec>
|
|
|
|
<If condition="~RetCod=-1">
|
|
<Set>RspCod=329999</Set>
|
|
<Set>RspMsg=查询数据库同步表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod=-2">
|
|
<Set>RspCod=329999</Set>
|
|
<Set>RspMsg=数据库同步表无记录</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
|
|
|
|
<Set>Seq=1</Set>
|
|
|
|
<!--循环数据库,进行同步表操作-->
|
|
<While condition="INTCMP($Seq,2,$RecNum)">
|
|
<Exec func="PUB:BeginWork"/>
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="STRCAT(ROOT.RecIn_,$Seq,.TTblNam)"/>
|
|
<Arg name="DestName" value="ROOT.TblNam"/>
|
|
</Exec>
|
|
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="STRCAT(ROOT.RecIn_,$Seq,.TUpdDat)"/>
|
|
<Arg name="DestName" value="ROOT.TUpdDat"/>
|
|
</Exec>
|
|
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="STRCAT(ROOT.RecIn_,$Seq,.TUpdTim)"/>
|
|
<Arg name="DestName" value="ROOT.TUpdTim"/>
|
|
</Exec>
|
|
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="STRCAT(ROOT.RecIn_,$Seq,.TUpdSts)"/>
|
|
<Arg name="DestName" value="ROOT.TUpdSts"/>
|
|
</Exec>
|
|
|
|
<Exec func="PUB:GetValue">
|
|
<Arg name="SourName" value="STRCAT(ROOT.RecIn_,$Seq,.TSycFlg)"/>
|
|
<Arg name="DestName" value="ROOT.TSycFlg"/>
|
|
</Exec>
|
|
|
|
<Set>TmpDat=GETDATE()</Set>
|
|
<!--导表脚本路径-->
|
|
<Set>FilNam=STRCAT(/home/icsmid/dat/sync/,$TmpDat,_,$TblNam)</Set>
|
|
|
|
<Exec func="PUB:IsExistFile" error="IGNORE">
|
|
<Arg name="FileName" value="$FilNam"/>
|
|
</Exec>
|
|
|
|
<If condition="~RetCod!=0">
|
|
<Set>UpdSts=1</Set>
|
|
<Set>Smr=STRCAT(文件[,$FilNam,]不存在)</Set>
|
|
<Quote name="UpdSycSts"/>
|
|
<Set>Seq=ADD($Seq,1)</Set>
|
|
<Continue/>
|
|
</If>
|
|
|
|
<!--执行导表脚本-->
|
|
<System command="SyncPubTable.sh" error="IGNORE">
|
|
<Arg name="FilNam" value="$FilNam"/>
|
|
<Arg name="TblNam" value="$TblNam"/>
|
|
</System>
|
|
<If condition="~RetCod!=0">
|
|
<Set>UpdSts=1</Set>
|
|
<Set>Smr=STRCAT(脚本执行失败[,$TblNam,])</Set>
|
|
<Quote name="UpdSycSts"/>
|
|
<Set>Seq=ADD($Seq,1)</Set>
|
|
<Continue/>
|
|
</If>
|
|
<Else>
|
|
<Set>UpdSts=0</Set>
|
|
<Set>Smr=STRCAT(同步[,$TblNam,]成功)</Set>
|
|
<Quote name="UpdSycSts"/>
|
|
</Else>
|
|
<Exec func="PUB:CommitWork"/>
|
|
<Set>Seq=ADD($Seq,1)</Set>
|
|
</While>
|
|
|
|
<Set>RspMsg=交易成功</Set>
|
|
<Set>RspCod=000000</Set>
|
|
<Set>MsgTyp=N</Set>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
<!--会计日期切换-->
|
|
<Transaction code="100001" desc="会计日期切换" log_switch='1'>
|
|
<!--更新会计日期信息表-->
|
|
<DynSentence name="UpdSysSts">
|
|
<Sentence>
|
|
UPDATE pubpltinf SET (LogNo,BLogNo,ActDat)=('90000000','900000','%s') WHERE SysID = 'F0551'
|
|
</Sentence>
|
|
<Fields>ActDat|</Fields>
|
|
</DynSentence>
|
|
<!--更新会计日期信息表-->
|
|
<DynSentence name="QrySysSts">
|
|
<Sentence>
|
|
SELECT ActDat OldDat FROM pubpltinf WHERE SysID = 'F0551'
|
|
</Sentence>
|
|
<Fields></Fields>
|
|
</DynSentence>
|
|
<FlowCtrl>
|
|
<Exec func="PUB:InitTransaction"/>
|
|
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QrySysSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=查询无记录</Set>
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=数据库操作错误</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
<Set>TlrId=EEDIER1</Set>
|
|
<!--Exec func="AGT:GetLogNo"/-->
|
|
<Exec func="PUB:GetLogNo"/>
|
|
<Exec func="PUB:CallHostOther" error="IGNORE">
|
|
<Arg name="HTxnCd" value="458990" />
|
|
<Arg name="ObjSvr" value="SHSTPUB1" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=上主机查询会计日期错误</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<If condition="INTCMP($ActDat,6,$OldDat)">
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSysSts"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=更新[pubpltinf]会计日期失败</Set>
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod=-2">
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=无记录, 更新[pubpltinf]会计日期失败</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>MsgTyp=N</Set>
|
|
<Set>RspCod=000000</Set>
|
|
<Set>RspMsg=交易成功</Set>
|
|
<Return/>
|
|
</Else>
|
|
</If>
|
|
<Else>
|
|
<Set>MsgTyp=E</Set>
|
|
<Set>RspCod=999999</Set>
|
|
<Set>RspMsg=会计日期未切换</Set>
|
|
<Return/>
|
|
</Else>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|