在任职的多个公司都存在分子公司共用一套BOM情况,同时多公司生产相同的产品,对BOM的及时性和正确性要求很高。
为了解决分子公司BOM的问题,实现BOM的自动同步,可以通过触发器或者数据库代理方式实现。
这次主要通过代理方式实现BOM同步,实现主要方式:
1、自动获取新增时间或修改时间或审核时间在当天发生的BOM信息,获取对应的产品编码。
2、增加事务代码(begin tran),获取对应产品在目标库中个数据表的主ID,删除对应表中信息。
3、删除对应信息后,获取来源库中对应BOM个表信息,进行写入。在这个过程中没有做ID的重新定义,因为目标表中的远程号与来源表不一致,不存在重复ID问题。
3、获取事务处理结果,存在错误进行rollback,正确执行commit。
4、为了方便跟踪,可以在事务中增加begin try....end try begin catch ...end catch 获取错误原因。
上述的实现说明:
1、BOM信息有一个公司维护(来源),分子公司不能独立维护BOM信息,做到信息只有一个入口。
2、平时需要多留意代理执行情况,可以做一个数据库代码自动发送失败代理的邮件。
3、如果企业存在多版本BOM问题,需要进行新旧版本验证,重写BOM的生效日期。
4、在代理执行中,可能会存在新物料不存在(bom和物料编码同步时间差问题),可以在BOM导入前验证一次物料编码情况,进行一次同步。