GS历史数据结转功能说明历史数据结转功能说明
1. 需求,参考《GS5.0需求规格说明书-库存存货部分》中的历史数据结转部分。
2. 简要说明,就是从系统性能方面考虑,将原有的库存、存货等模块的账本、单据信息导入到历史数据表中,提高当前数据库模块运行的效率。
3. 开发环境:Windows XP 、Visual Studio 2005 WinForm 、 Visual c# 、SqlServer数据库(2000、2005)
4. SMO 是一种 Microsoft? .NET Framework 对象库,可以方便管理一个或多个数据库服务器。它能够使...
历史数据结转功能说明
1. 需求,参考《GS5.0需求规格说明书-库存存货部分》中的历史数据结转部分。
2. 简要说明,就是从系统性能方面考虑,将原有的库存、存货等模块的账本、单据信息导入到历史数据
中,提高当前数据库模块运行的效率。
3. 开发环境:Windows XP 、Visual Studio 2005 WinForm 、 Visual c# 、SqlServer数据库(2000、2005)
4. SMO 是一种 Microsoft? .NET Framework 对象库,可以方便管理一个或多个数据库服务器。它能够使用 SQL Server 2005 引入的新功能,同时还支持 SQL Server 2000 数据库。使用该对象需要引入两个类库。
a) Microsoft.SqlServer.Smo.dll 核心SMO类(如数据库、服务器、备份和恢复、sql、存储过程执行等)
b) Microsoft.SqlServer.ConnectionInfo.dll 有助于管理与 SQL Server 对象之间连接的类库
5. 界面
a) 功能界面
b) 界面说明:
? 数据库服务器:ERP GS产品工程数据库所在的服务器名称或者IP地址
? Windows 身份验证:使用本机操作系统的权限登录数据库服务器
? 用户名:数据库管理员分配的登录数据库的用户名
? 密 码:登录数据库的用户密码
? 【连接】:根据数据库服务器地址、用户名、密码登录数据库,如果连接成功会在下面列示出数据库上所有的数据库名称;如果登录失败会提示登录失败。
? 【选择】:数据库连接上以后,选择要进行历史数据操作的数据库,点击该按钮,会绑定下方的公司编号、名称及右侧上方的账本起始、终止期间。
? 公司获取规则是:ERP GS所启用的所有公司,并且做过收发业务
? 期间:满足条件的所有公司的最小的已经进行了库存、存货月结的年度、期间列表
? 全部选择:所有公司签名的checkbox为选中状态;再次点击,默认不选择状态。
? 单据日期范围:用的是2个DateTimePicker控件。
? 账本:
? 库存余额账、辅助账、序列号账(InvBalanceAccount、InvBalanceAssAccount、InvBalRealSN)
? 库存实时账、辅助账(InvBalRealAccount、InvBalRealAssAccount)
? 存货余额账、辅助账(InvValBalAccount、InvValBalAssAccount)
? 暂估余额账(GRIRAccount)
? 差异余额账(VarBalAccount)
? 特殊库存往来账(ConsignDebtAccount)
? 数据表:
? 入库通知单(GRReqBills、GRReqBillItems)
? 移库申请单(GMReqBillsInit、GMReqBillItemsInit)
? 移库通知单(GMReqBills、GMReqBillItems)
? 采购申请单(PRBills、PRBillItems)
? 发货申请单(GIReqBills、GIReqBillItems)
? 库存盘点表(CheckBills、CheckBillItems)
? 差异计算单(VarComBill、VarComBillItem)
? 批次表(Batches)
? 可用库存量表(EstQuantity)
? 区分移动类型
? 库存入库单(所有的入库单据,库存、存货都记账)
? 库存出库单(所有的出库单据,库存、存货都记账)
? 库存移动单(公司间、组织间的所有移库单据)
? 货位移动单(GoodsMovement,MoveTypeID=333)
? 物料移动单(GoodsMovement,MoveTypeID = 403、421)
? 金额调整单(GoodsMovemnt,MoveTypeID like ‘9%’)
? 【导出】:根据选择条件,将对应条件的数据导出到历史数据表中
? 【导入】:根据选择条件,将对应条件的历史数据表中的数据恢复到工作表中。
? 【关闭】:退出当前功能页面。
? 【创建历史数据表】:对应创建所有历史表,减少导入、导出操作,且能同时建立对应的聚集索引。
? 【数据备份】:只备份选择的数据表的工作表和对应的历史数据表。
? 【备份数据删除】:在进行导出、导入操作都提示成功后,将备份的数据表删除,减少数据库空间,当然这可以不删除,以验证数据。
? 【数据还原】:在进行导出、导入、bcp导出、bcp导入过程中,出现错误,执行该步骤,将选择操作的表的工作表、历史数据表全部还原,如果在还原过程中出现错误,那么可以重新执行数据恢复。
? 【BCP 导出】:采用bcp工具的导出
? 【BCP 导入】:采用BCP工具的导入
6. 其他说明:
a) 历史数据表:工作表+HistoryBackup
b) 导出:利用数据库工具BCP来实现的。
? 账本:
? 数据表:
? 区分移动类型:
c) 导入:利用数据库工具BCP实现
d) 利用bcp工具批量处理的时候,对于杀毒软件可能会有不安全操作提示。
e) 备份表名格式:工作表名或者历史数据表名+年月日+”9999”
7. 需要考虑问题:
a) 滚动条:考虑加上个什么样的滚动条处理,本来想通过ProgressBar实现,但是在database对象中事件不太好处理。
b) 关联表是否需要导出,以及导出的时机。
8. 存货过程简单说明:
导出(导入原理同导出)数据大概经历了以下几个实现过程。
1) 在存储过程中建立历史数据表、中间表,建立对应的索引,将数据表中的数据先导入到中间表,然后在从中间表将数据导入到历史数据表中,如果成功,那么将数据表中的对应数据删除。
2) 在第一步的基础上,不在采用中间表,直接在数据库中根据工作表的主键建立临时表,将满足条件的数据的主键字段值保存到临时表中,然后通过临时表关联将数据导入到历史数据表中,在根据临时表关联删除工作数据表中的对应数据。
3) 在第二步的基础上考虑,将历史数据库表等外围的工作,完全可以单独拿出来,减少导入导出的性能开销,同时在程序中启用线程。但是效果仍旧不理想。
4) 在前面的基础上考虑到,基于数据的处理这样,性能太差。所以现在选用BCP工具,先根据条件将满足条件的数据导入到一个txt文件中,然后在读取txt文件导入历史数据表中,成功后,在根据对应条件删除工作表中的记录。只有在具有分录的单据表处理的时候,将单据ID放入了临时表进行处理。
5) 导入是导出的逆向操作。
6) 开始的时候,所有的备份都在一个存储过程中实现的,后来考虑安全、性能问题,拆分成一个数据表(包括相关联的数据表)单独执行;采用了BCP工具后,貌似现在又可以合并在一个存储过程中一起导出处理了。不过,现在还没有合并。
7) 综合考虑现在保存了导入导出及bcp工具操作的2种实现方式。
9. 权限设置
对于使用BCP导出、导入需要进行如下设置:
1) 登录用户
2) 登录用户对master数据库的访问权限
3) 打开SQLSERVER的企业管理器,进入“管理”,右键点击“Sql Server代理”点击属性;要“允许非SysAdmin权限的用户执行CmdExec.....”,然后指定一个账号。这样设置会有安全风险,所以执行完后要设置回来。
4) 如果bcp导入、导出一直都有问题,那么可能需要配置数据库的odbc连接,但是我测试没有配置也没有问题。
本文档为【GS历史数据结转功能说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。