与第三方ERP系统同步数据总结

自己负责的固定资产、进销存系统,经历了与两家ERP同步数据的工作,目前进展顺利,与以前相比,用到了一些设计模式,开发效率、可读性、可维护性有了很大的提高,程序也很稳定


         我们的系统内部处理数据时,使用的数据自动生成的ID主键,这样数据的编码与名称客户可以修改,不受影响。从ERP过来的数据,我们将ERP的数据主键做为Code进行存储,系统处理继续使用主键ID进行处理。


         一、从第三方系统至本地

         a. 分基础档案数据与订单数据,如果是基础档案数据,则直接存储,在本地使用时,使用ID进行处理。 如果是订单数据,在本地表存储时,存储的是Code值,一是从ERP取过来时,不知道本地的ID是多少;二是有可能订单数据先来,档案后来,边样打开界面与操作不受影响;通迅正常后,再同步档案数据不迟

         二、从本地至第三方系统

              向第三方回写时,关键字段使用Code,对方ERP用了我们的ID


          三、设计

          a. 通迅层接口调用统一使用了一个方法:  返回字符串 Call(方法名,传入json串)。这样增删接口,不用修改通迅层

          b. 从第三至本地,与本地至第三方,根据特点分别定义了不同的接口,模板设计模式。增加新的同步数据,只需要实现接口即可

  c. 每次同步前,获取服务器的时间,同步之后,保存这个时间,下次再同步,查询此时间新增的单据,不要使用本机的时间,两台服务器时间可能不一致


          四、DAL层

          a. 建议方法分Add,Update方法,其中Add可以指定是否创建新的实例,或者包含修改例的功能

          b. 从ERP接口过来的,可以只有Code方法,调用Add即可;如果是数据导入的,有可能先有档案数据,再导入Code信息的Excel,所以有时ERP同步的先检查Code是否存在,存在则跳过,不存在添加Code,如果是手工Excel导入的,则要检查是否进行Update、

、    

         五、ERP取订单事项

  a. 数据清洗:  借用清洗两个字,ERP的数据,比如商品的条码字段或者其它属性误加了空格,本地取过来需要删除格式,取日期字段统一格式,ERP系统长期演变,数据可能有多种格式,取过来要进行处理,保证一致性。

          b. 从ERP取订单:库房系统做为执行端,ERP产生的订单取过来后,有可能ERP再取消,所以从ERP取订单考虑增加订单状态(0删除,1有效),增加创建时间字段,如果单据状态发生变生,更新时间字段,下次同步时,可以更新单据。 

          c. 本地存储: 考虑到ERP订单有变化的可能性,本地存储时,先检查是否存在,如果未存加,进行添加;存在时,检查单据的状态是否一致,不一致更新本地的状态,否则跳过



你可能感兴趣的:(SQL,SERVER)