关于FLEXBOMLINK的计算小结

来源:互联网 发布:php 依赖注入 编辑:程序博客网 时间:2024/06/07 00:36

在整个FlexPLM中间,以BOM的逻辑最为复杂。其间涉及到若干维度的变形,比如色系,尺码,等等。在报表统计和成本单计算极易搞错,比较典型的错误是

  1. 通过SQL语句只找到了SKU, SIZE 或是SKU:SIZE1的LINK
  2. 单纯以1中的LINK去取数量,价格
  3. 通过SQL语句去创建一个视图,把变形的和没变形的LINK都放在一起,之后再从这个视图中去数据

其实这三种方式都是错误的,都错在同一地方,即忽略了FLEXPLM是一个System Contextable的系统,存在着overrides的情况:做了变形的LINK,比如红色,75A的材料用量是80,其他的色系和尺码的用量很有可能是继承自TOPLevel LINK,如果只是找到了变形的LINK,就会混略没有变形的数据,就会遗漏,其实这些没有变形的数据,其实是有真实的业务含义的,那就是从TOPLEVEL link上继承下来的,是有数据的,就不能遗漏,也不为0.

 

所以,正确的做法是

  • 首先找到该BOMPART下面的所有TOPLEVEL LINK 即这个BOM(所有的主LINK)
  • 再根据这个TOPLEVEL LINK找到其关联的所有变形的LINK
  • 把TOPLEVEL的link和变形的LINK,根据一定的定制需求的规则进行比对,获得最为正确的数据

综上,凡是涉及到BOMLINK的数据获取和计算,简单的使用一个SQL语句,或是一个视图,都是不恰当的,而是要用存储过程或是JAVA逻辑才是正解,否则只能是走了很远的弯路,结果还不对