单据导入导出

 

    系统提供了单据的导入和导出功能,利用此功能可以实现如下应用需求:

导出

     在单据导出操作中,系统提供了三种导出方式:

  1. 导出新录入或修改过的单据

    在每个单据的主表中,系统将自动维护一个名为needexport字段的数据。当新增加单据,或者将单据打开做修改并保存后,该字段的值被自动设置成1,当选择“导出新录入或修改过的单据”就是将单据主记录中 needexport=1的单据进行导出。 当成功导出后,所有needexport都将被强制设置成0

  2. 导出当前列表中选中的单据

    将单据列表中选中(按住Ctrl或Shift 可以进行多选)的单据进行导出,该导出操作并不修改单据的needexport字段

  3. 导出所有单据

    将该单据的所有数据导出。该导出操作并不修改单据的needexport字段

    每次执行导出操作,都将在知识库中的“单据导出”目录出新建相应的目录,并把导出结果存放其中,便于下载。同时也记录下了操作日志。

    有一点需要特别注意,如果执行了删除操作,那么被删除的单据的ID将被记录在oa_billdeleted表中,在每次做单据导出时,该单据被删除的单据ID也导出到数据包中,便于导入时同步删除相同ID的单据

 

导入

    导出操作首先需要选择一个数据包(通常是一个zip压缩文件)文件,系统会将该文件上传,并存放在当前操作员的知识库中,然后将其中的数据进行导入。

    导入过程是这样的,先按单据的数据库结构创建相应的临时表,并将数据包中的数据导入到临时表中,如果临时表中的数据与当前单据表的数据的ID相同,则先删除单据中的重复数据,最后再将临时表中的数据全部插入到单据表中。这样就完成了新数据的导入和旧数据的更新 。

    最后再检查数据包中的删除单据ID清单,将清单上的单据删除。 所有操作都记录在知识库中的日志文件中

 

 

注意

  1. 所有导出及上传的数据包文件都放在当前操作员的“单据导出”和"单据导入" 目录中,具体的子目录是<单据主表>/<当前操作日期>
  2. 由于系统采用UUID来做单据的ID,因此保证了ID的唯一性,不用担心不同系统中录入单据的ID会发生冲突。
  3. 导入操作是无法撤销的,所以为了以及万一,可以在做导入前,先做一个“导出全部单据”。