第1章采集模板XML结构.docx
《第1章采集模板XML结构.docx》由会员分享,可在线阅读,更多相关《第1章采集模板XML结构.docx(13页珍藏版)》请在课桌文档上搜索。
1、第1章采集模板XML结构1.l变量VariableTyPe=sqlVarName=Q年度Value=/)VariableTyPe=sqlVarName=单彳立名称Value=/VariableType=wSqlVarwName=龟子数搪编号Value=/VariableTyPe=sqlVar“Name=电子数据卷称Value=/VariableTyPe=sqlVarName=临时龟子数据编号Value=/Variables这六个变量是每个模板都必须要有的,可直接CoPy。第一个变量DbSoUrCeFilePath表示的是数据源路径。由用户选择数据源时赋值。若对源数据进行了预处理,则在预处理代码
2、中需要对该变量进行重新赋值。变量年度、单位名称、电子数据编号、电子数据名称表示的是会计数据的基本信息。由AO2011建立会计数据时赋值。变量临时电子数据编号,用于多套会计数据从AOExtract数据库采集到AoFinanCe数据库时,用于标识具体的每套会计数据。1.2数据库连接SourceDbConnection表示源数据的连接。如果源数据是SQLServer,那么ConnectionType就是SqlConnection;如果源数据是Access或者是TXt文本,那么ConnectionType就是OleDbConnectionoAoExtractTempConnection表示AO采集模块
3、临时库的连接,也就是AOExtract数据库的连接。AOFinanceConnection表示AO财务数据库的连接,即AOFinance数据库的连接。PreProccessOaskName=*xsi:type=*yDllIportTask*DeSCriPtiOn=预处理数据.Taskskxxityp*三*SqlTsk*vConntc11onNm三*AOExtrtctTtmpCoxmtction*D”CriPtiOn=*11空临时除数据Ntnmcattable会计科自裘j;0SqlSqlDeSCriPtig=房空凭证库UsedVariable=truncatetable凭证库:SqlSqlDeS
4、CriPtiOn=碧空科目余额期初表UsedVariable=false4rXrxmcatetable科目余额期初表:truncatetable辅助信息表:SqlXCnPug=情至聊余额期初夷UWwablg-XnmCMtabk辆助余额初初表.truncatttable谑证次助旗初知:trmcatetable科目设置:如图所示,对源数据进行预处理,或者清空临时数据库等操作,放到PreProccesss该元素下。1.4 批量建账接口DllAccoutList表示批量建账的接口,其中,TypeName为反射的类名,FileName表示动态链接库DLL的名称。1.5 Tasks和UpdateTask1
5、.5.1 TasksTasks元素中主要是针对AOExtract数据库的操作,如数据从源数据中批量采集到AOExtract数据库。由于有多套会计数据采集的情况,AO是循环执行Tasks中的任务,所以BulkCopy中的SrcSql元素,SQL语句中都要有“电子数据编号as电子数据编号”这句,并且针对源数据的预处理操作不能够放在Tasks中,而要放到PreProccesss元素下。1.5.2 UpdateTaskUpdateTask元素主要是针对AOFinance数据库的操作,如数据从AOExtract数据库批量采集到AOFinance数据库,或数据从源数据中批量采集到AOFinance数据库。
6、由于有多套会计数据采集的情况,Ac)是循环执行UPdateTaSk中的任务,所以若是数据从AOExtract数据库批量采集到AOFinance数据库,BulkCopy中的SrCSql元素,SQL语句中都要增加一个Where条件where电子数据编号=临时电子数据编号”。另外,在UPdateTaSk元素的最后,要增加一个Task。用于将临时的电子数据编号,更新为创建会计数据时实际的电子数据编号。如下图所示:Update科目余额意初袤】“t电子数据名称=Q电子数据名称,单位名称”单位名称,年度二Q年度,电子数据牖号=Q电子数据漏号三RE电子数据编导=临时电子数据编号;UPdate凭证库set电子数
7、据名称或电子数据筋,单位名称=Q单位名称,年度二Q年度,电子数据编号=Q电子数据编号WHERE电子数据编号=Q临时电子数据编号;SqlDeSCriPtiOn=更新辅助信息表USedyariabIe=true)UPdate辅助信息表set电子数据名称/电子数据名称,单位名称/单位名称,年度一年度,电子数据编号/电子数据编号WHERE电子数据斓号=Q临B寸电子数据编号;6qlDrcription=更新辅助余额期初整UXedywble=trueUPdate辅助余额期初赛】set电子数据名称/电子数据名称,单位名称=Q单位名称,年度=Q年度,电子数据编号=Q电子数据编号WHERE电子数据编号临时电子数
8、据编号;Update凭证辅助明细表set电子额据名称=Q电子数据名称,单位名称W单位名称,年度=Q年度电子数据编号=电子数据编号WKERE电子数据编号=Q临时电子数据编号;&qlDeSCriPtiOn=更新科目设置UsedVariable=*trueUpdate科目设置set电子数据名称=色电子数据名称,单位名称=Q单位名称,年度=0年度,电子数据编号=?电子数据编号WHERE电子数据斓号=Q临时电子数据端号;&qlDeSCriPtion=即新会计期间定义USedyariabIe=trueUpdate会计期间定义】“t电子数据名称电子数据名称,单位名称单位名称,年度=Q年度,电子数据编号=电子
9、数据编号WHERE电子数据编号=Q临时电子数据编号;1.6 任务TaskTask元素包括三种类型,分别是SqlTask,SqlBulkCopyTask和DllImportTasko1.6.1 SqlTaskSqlTaSk用于执行SQL语句,例如InSert、UpdateDeleteTnmCate等。如下图所示:truncatetable会计科自表:GqlD”CriPtion=*4空凭证库”Us*dVariabl三*fls*trunctmncatetable科目余额期初表:truncattable辅助信息表:/SqlSSqlDeSCnPtIg=清空辅助余凝期初裹Usedvariableifals
10、JXrscatetable辅前余熬期初裹;tmncatetable凭i辎助丽细美;,SqlGqlD”CriPtion=*空科目设置UstdVtri*bl三*fls*truncttabi.科目设置;SqlSqlDeSCriPtiOn=碧空科目层级表“UsedVariable=*false-Xruncatetable科自层级表:1.6.2 SqlBuIkCopyTaskGUlkCoPyIsAutoCreateTable=*false*USedyariable=trueSrcSqlselecta,ccodeas科目编码,b.ccodeas第父级科目编码,Q电子数据编号as电子数据编号fromcode
11、asaleftjoincodeasbOna.ccodlikeb.ccode+%QeSTabIeName湘目层级表OOIMnMappingsOappingSrCColUmnName=科目编码DeSCOIUmnName=科目编码”COIumnMappingsTaskSqlBulkCopyTask用于批量拷贝数据。该元素下可以有多个BulkCopy元素。BulkCopy表示批量拷贝的SQL查询语句。其中,ColumnMappings中的字段要与查询语句中的字段数相对应,字段的顺序要一致。并且,SQL语句中的字段类型和目标字段类型要一致。如果SQL语句中的查询结果,与目标表完全一致,那么可以去掉COl
12、UmnMaPPingS元素。如下图所示:QuIkCoPyIsAutoCreateTable=*fal三e*UsedVariable=*true*select*from会计科目表where电子数据编号=Q临时电子数据编号;QeSTabIeNae治计科目表ilesfableNameGBUlkCopy若目标数据库中没有DesTableName元素中的表名,那么需要自动创建目标表,ISAUtOCreateTabIe属性变为TrUe,并增加DeSCreateTabIeSqI元素,XmI如下图所示:QUIkCoPyIsAutoCreateTable=*trueaUsedVriable=*true*sele
13、ctAccount.StrACCoimtCOdeas科目编码,sum(AccountDaily.dblPostedDebit)as借方期初,SWi(ccOuntDaily.(IblPostedCredit)as货方期初,Q电子数据编号as电子数据编号fromAccountDailyINNERJOINAccountONAccoimtDaily.IngAccouxitID=Account.IngAccountIDWHEREyear(AccountDaily.strdat)Alt;年度GROUPBYAccount.StrAccountCode,Account.StrAccountName;OSrCS
14、q1GesCreateTableSqDCREATETABLEdbo.科目余额期初袤JemP(科目编码varchar(255)COLLATEChineseePRCeCIeASNOTNULLzt借方朝jmoneyNULL,货方期初moneyNULL,电子敦博编号v=char(255)ONPRIMARYOaPPingSrCColUinnName=货方期初DeSCoIUmnName=货方期初/tappingSrCColWnnName=电子数据编号DeSCoIUmnName=龟字数据编号”/OColumnMappingsOBulkCopQ1.6.3DllImportTaskTaskName=xsi:ty
15、pe=DllImportTask“DeSCriPtion=子员处理数据“4ODllInportTyPeNwne=cnaoA02011Ufo8Sqlbak.DealVithUFOffFileName=*cnaoA02011Ufo8sqlbak,dll*DlllmPOrtTaSk表示通过DLL处理的任务。其中,TyPeName为反射的类名,FileName表示动态链接库DLL的名称。第2章数据采集转换2.1 财务表采集参照中TBConvertWay表,根据字段对应关系和数据存储方式,编写SQL语句。其中,年度、单位名称、电子数据编号和电子数据名称这四个字段是每张表都必填的。1 .1.1会计科目表会
16、计科目表必填的字段有科目编码、科目名称、科目级别以及四个变量字段,余额方向不为必填字段,原始数据中有则填,没有的话账表重建时会根据AO基础库中的标准会计科目表自动生成。若中,TBConvertWay表的ISACCOUrHBaIDireCtion字段为1,那么表示源数据中会计科目表里有余额方向的字段。ACCoUmBaIDebit和AccountBalCredit字段分别表示借方和贷方对应的值。例如,AccountBalDebit的值为LAccoumBalCredit的值为D,那么余额方向的SQL语句应为:CaSeWhen余额方向字段=JthenIwhen余额方向字段=D,then-1else0e
17、ndas余额方向。ACCeSS中为iif(余额方向字段=J,l,iif(余额方向字段=tD,-l,0)as余额方向。中,通过SourceFieldNameasCNTargetFieldName的方式,编写出SQL语句,AccountTableName表示会计科目表的表名。如果IsAccountFilter为1,则要加上AccountFilter中的过滤条件(where.)例如:selectccodeas科目编码,ccode_nameas科目名称,igradeas科目级别,casewhenbproperty=-1then1whenbproperty=Othen-1elseOendas余额方向,年
18、度as年度,单位名称as单位名称,电子数据编号as电子数据编号,电子数据名称as电子数据名称fromcode;若没有科目级别字段,则根据科目编码生成科目级别。例如:selectccodeas科目编码,ccode_nameas科目名称,(selectcount(*)fromcodebwherea.ccodelikeb.ccode+%)as科目级别,casewhenbproperty=-1then1whenbproperty=0then-1else0endas余额方向,年度as年度,单位名称as单位名称,电子数据编号as电子数据编号,电子数据名称as电子数据名称fromcodeasa;2 .L2科
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 采集 模板 XML 结构

链接地址:https://www.desk33.com/p-738420.html