2.2 将BOM关系写入SAP
.NET和SAP是两种不通的应用平台,不能直接地进行数据交互,需要使用第三方工具Softwise SAP Explorer Tool来帮助实现这一功能。在进行简单的配置后,就可以从SAP获取将BOM关系写入SAP的函数,这样以来就可以通过调用函数的方式来实现写入SAP这一目的了,相关代码如下:
3 后期优化
在流程正常运转之后,随着公司业务的发展,BOM流程会走得越来越频繁,并且BOM中包含的物料数量也会越来越多,这时你会发现,在硬件配置没有升级的情况下,BOM流程传送的速度会越来越慢,你不得不采取一些优化措施来提高流程的效率。
3.1 程序日志的优化
程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据,但过多的写日志操作也是很影响程序的运行速度的。对于该流程中日志的优化,我的做法是:
(1)删除一些不必要的写日志操作;
(2)避免for循环里面出现写日志操作;
(3)对日志的内容进行简化。
3.2 数据库的优化
在流程长时间的使用过程中,数据库中极易堆积大量数据,这时会导致流程传送时写入数据的操作越来越慢(尤其是针对大数据量的BOM),影响程序的性能。在保留历史数据的前提下,我的做法是:
(1)新建一个与现有的表A结构一摸一样的空表B;
(2)修改代码,把insert语句中的表A,改为表B,这样数据就会写进表B中;
(3)把查询逻辑改为“先查表B,如果表B没有数据,再查表A”;
(4)设置SQL Server代理,定时将表B中的数据挪到表A中,并将表B数据清空。
这样一来,就解决了数据库的写入速度慢问题。
3.3 物料判断的优化
通过远程查询SAP的数据库来判断物料的正确性和完整性是比较影响性能的,因为写入SAP的BOM中,每个物料都需要先几个检查,如果有1000个物料,就是好几千次检查。在保证这些判断必要的前提下,我的做法是:
(1)通过整合视图,让我一次查询就能够获取尽可能多的信息。
(2)尽量避免“select*”的查询。
(3)将部分判断放在SAP函数里面执行,这样就减少了两个系统因交互而花费的时间。
4 应用效果
目前该流程在公司范围内广泛使用,截止目前已经走过了16183,成功将1894599条BOM关系从PLM系统写入SAP系统。而相当简化的流程步骤也使得设计部门、物流部门和制造部门之前的沟通成本得到了最大限度的减少,大大提高了工作的效率。