第1章采集模板XML结构.docx
第1章采集模板XML结构1.l变量<Variables><VariableTyPe="BackFiIePath"Name=WDbSourceFileFath"VaIUe="7><VariableTyPe="sqlVar"Name="Q年度"Value=""/)<VariableTyPe="sqlVar"Name="©单彳立名称"Value="''"/<VariableType=wSqlVarwName="龟子数搪编号"Value="'"/<VariableTyPe="sqlVar“Name=电子数据卷称"Value="''"/<VariableTyPe="sqlVar"Name=临时龟子数据编号"Value="''"/<Variables这六个变量是每个模板都必须要有的,可直接CoPy。第一个变量DbSoUrCeFilePath表示的是数据源路径。由用户选择数据源时赋值。若对源数据进行了预处理,则在预处理代码中需要对该变量进行重新赋值。变量年度、单位名称、电子数据编号、电子数据名称表示的是会计数据的基本信息。由AO2011建立会计数据时赋值。变量临时电子数据编号,用于多套会计数据从AOExtract数据库采集到AoFinanCe数据库时,用于标识具体的每套会计数据。1.2数据库连接<Connections><Conn«ction乂刖="AOExtnCtTQePConn“tion"Connieti11Typ¢=*SqlConnction*ConnQctionString=""Dexription="AO柔簇临时乐连接"ConnectionHMhe="AOFinanceConnection“ConnectionType=4rSqlCoxmectionrCoanectionString=*Description三*ConnectionName=arSourceDbConnection*COnneCtlOnTyPW="OleDbComiection*ConnectionStrng三*rDeSCriPtiOn="源数据连挎"></Connections>SourceDbConnection表示源数据的连接。如果源数据是SQLServer,那么ConnectionType就是SqlConnection;如果源数据是Access或者是TXt文本,那么ConnectionType就是OleDbConnectionoAoExtractTempConnection表示AO采集模块临时库的连接,也就是AOExtract数据库的连接。AOFinanceConnection表示AO财务数据库的连接,即AOFinance数据库的连接。PreProccess>O'askName=*xsi:type=*yDllIportTask*DeSCriPtiOn="预处理数据.><DllImportTyPeName="cnajA02011_u£o_8_sql_bakDealWithUFO"FileName="cnao_A02011_u£o_8_sql_bak.dll*>Task<skxxityp*三*SqlTsk*vConntc11onNm三*AOExtrtctTtmpCoxmtction*D”CriPtiOn=*11空临时除数据"N<三*rcrtDb*><SqlDescription="清空会计科目裘"UsedVariable三*felse*>tnmcattable会计科自裘j;0Sql><SqlDeSCriPtig="房空凭证库"UsedVariable=<false*>truncatetable凭证库:Sql><SqlDeSCriPtiOn="碧空科目余额期初表"UsedVariable=false4rXrxmcatetable科目余额期初表:<Sql><SqlDeSCrIPtiOn="蒲空辅助信息去"UsedVariable=*false*v>truncatetable辅助信息表:<Sql><SqlXCnPug=情至聊余额期初夷"U"Wwablg-XnmCMtabk辆助余额初初表.<Sql><SqlD”CriPCion="清空凭证*鲂曲曲蓑"UsedVarable=*falst*>truncatttable谑证次助旗初知:<Sql><SqlDeSCriPtiOn="清空科目设置"UsedVariable=*false*>trmcatetable科目设置:<Sql><SqlDeSCriPtiOn="着空科目层级表“UsedVariable=*fal三e*vXruncatetable科目层级表;Sql><Task><PrProccss>如图所示,对源数据进行预处理,或者清空临时数据库等操作,放到PreProccesss该元素下。1.4 批量建账接口<AccoutListxsi:type=*DllAccoutList*Name=*DealfithAccount*TypeNjte三l*cnaoA02011ufo-8sqlbak.DealWxthccount*FileName=*cnaoA02011ufo8sql-bak.dll"DeSCribe="用友U8SqlSerger备份">DllAccoutList表示批量建账的接口,其中,TypeName为反射的类名,FileName表示动态链接库DLL的名称。1.5 Tasks和UpdateTask1.5.1 TasksTasks元素中主要是针对AOExtract数据库的操作,如数据从源数据中批量采集到AOExtract数据库。由于有多套会计数据采集的情况,AO是循环执行Tasks中的任务,所以BulkCopy中的SrcSql元素,SQL语句中都要有“电子数据编号as电子数据编号”这句,并且针对源数据的预处理操作不能够放在Tasks中,而要放到PreProccesss元素下。1.5.2 UpdateTaskUpdateTask元素主要是针对AOFinance数据库的操作,如数据从AOExtract数据库批量采集到AOFinance数据库,或数据从源数据中批量采集到AOFinance数据库。由于有多套会计数据采集的情况,Ac)是循环执行UPdateTaSk中的任务,所以若是数据从AOExtract数据库批量采集到AOFinance数据库,BulkCopy中的SrCSql元素,SQL语句中都要增加一个Where条件"where电子数据编号=临时电子数据编号”。另外,在UPdateTaSk元素的最后,要增加一个Task。用于将临时的电子数据编号,更新为创建会计数据时实际的电子数据编号。如下图所示:<?TaSkXSi:type="Sqask“ConrleCtionName="AOFinanceConnection“DeSCriPtiorI="更新目标数据表“Name=wUpdatetask*><SqlDeSCriPtion="更新会计科目表“USedVariabIe="true”Vpdate会计科目表set电子数据名称=0电子数据名称,单位名称一单位名称,年度=年度,电子数据编号电子数据编号WHERE电子数据编号=Q临时电子数据编号;Sql><SqlD”CriPtiOn="星斯科目余额期初表"U"dVnabl=*tru*>Update科目余额意初袤】“t电子数据名称=Q电子数据名称,单位名称”单位名称,年度二Q年度,电子数据牖号=Q电子数据漏号三RE电子数据编导=临时电子数据编号;<Sql><SqlDeSeriPtiOn=”更新凭证库”UsedVariable=*tme*>UPdate凭证库set电子数据名称或电子数据筋,单位名称=Q单位名称,年度二Q年度,电子数据编号=Q电子数据编号WHERE电子数据编号=Q临时电子数据编号;<Sql><SqlDeSCriPtiOn="更新辅助信息表"USedyariabIe="true")UPdate辅助信息表set电子数据名称/电子数据名称,单位名称/单位名称,年度一年度,电子数据编号/电子数据编号WHERE电子数据斓号=Q临B寸电子数据编号;<Sql>6qlDrcription="更新辅助余额期初整"UXedywble="true">UPdate辅助余额期初赛】set电子数据名称/电子数据名称,单位名称=Q单位名称,年度=Q年度,电子数据编号=Q电子数据编号WHERE电子数据编号临时电子数据编号;<Sql><SqlDeSCriPtiOn="更新凭证辅助明细表"UsedVariable="truew>Update凭证辅助明细表set电子额据名称=Q电子数据名称,单位名称W单位名称,年度=Q年度电子数据编号=电子数据编号WKERE电子数据编号=Q临时电子数据编号;<Sql>&qlDeSCriPtiOn="更新科目设置"UsedVariable=*trueUpdate科目设置set电子数据名称=色电子数据名称,单位名称=Q单位名称,年度=0年度,电子数据编号=«?电子数据编号WHERE电子数据斓号=Q临时电子数据端号;<Sql>&qlDeSCriPtion="即新会计期间定义"USedyariabIe="true">Update会计期间定义】“t电子数据名称电子数据名称,单位名称单位名称,年度=Q年度,电子数据编号=电子数据编号WHERE电子数据编号=Q临时电子数据编号;<Sql><Task>1.6 任务TaskTask元素包括三种类型,分别是SqlTask,SqlBulkCopyTask和DllImportTasko1.6.1 SqlTaskSqlTaSk用于执行SQL语句,例如InSert、Update>Delete>TnmCate等。如下图所示:<Taskxsi:type="SqlTask"ConnectionName三*OExtractTempConnection*DeSCriPtion="清空临时库数据“Name三*createDb*><SqlDeSCriPtion="r空会计科目表“UsedVariable=*false">truncatetable会计科自表:<Sql>GqlD”CriPtion=*4空凭证库”Us*dVariabl三*fls*>trunc<ttabi.凭证庵j;,Sql><SqlDeSCriPtiOn="清空科目余额期初表"USedVariabIe="false">tmncatetable科目余额期初表:<Sql><SqlDeSCriPtiQn=信空辅助信息表“VsedVariabl=wfalse*,>truncattable辅助信息表:</SqlS<SqlDeSCnPtIg="清空辅助余凝期初裹"UsedvariableifalsJXrscatetable辅前余熬期初裹;<Sql><SqlDeSCriPtiOn=信空凭在编处!由细夷“USedyariable="false">tmncatetable凭i辎助丽细美;,SqlGqlD”CriPtion=*空科目设置"UstdVtri*bl三*fls*>trunc<ttabi.科目设置;Sql<SqlDeSCriPtiOn="碧空科目层级表“UsedVariable=*false-Xruncatet