通过如下公式,检验等级(FF100005)必录但未录(其他各维度,参照此公式单独配置):
FMaterialID !=null and len(filter(lambda x: (x.AuxPropertyId_Id == 100009 and x.IsEnable1==true), FMaterialID.MaterialAuxPty))>0 and (FAuxPropId.ActiveObject = @null or FAuxPropId.ActiveObject['F100009'] = 0)
公式说明:1. FMaterialID !=null 物料已经录入
2. len(filter(lambda x: (x.AuxPropertyId_Id == 100009 and x.IsEnable1==true), FMaterialID.MaterialAuxPty))>0 对物料的MaterialAuxPty单据体进行循环,找到内码为100009的辅助属性,判断其是否启用,如果启用,则满足条件
3. (FAuxPropId.ActiveObject = @null or FAuxPropId.ActiveObject['F100009'] = 0)辅助属性未录入,或者是辅助属性维度F100009未录入
特别说明:上述公式,并不是通用的公式,因为其中使用辅助属性维度F100009,在其他数据中心,可能根本不存在,或者代表的含义不同。请勿照搬,必须在理解了公式之后,在本地数据中心进行适当调整,以适用于本数据中心。
应用案例:物料启用EPE宽度的辅助属性,在销售订单EPE宽度字段必录
---1.查找物料辅助属性对应标示
select p.* from T_BD_MATERIAL m
left join t_BD_MaterialAuxPty p on p.FMATERIALID=m.FMATERIALID
where m.FNUMBER=' 16254100A01701' and m.FUSEORGID=276234
--100005 EPE长度(mm)
--100006 EPE厚度(mm)
--100007 EPE宽度(mm)
--100002 纸度(英寸)
--100003 纸度
--100004 纸长(英寸)
2.在销售订单保存操作添加校验
FMaterialID !=null and len(filter(lambda x: (x.AuxPropertyId_Id == 100005 and x.IsEnable1==true), FMaterialID.MaterialAuxPty))>0 and (FAuxPropId.ActiveObject = @null or FAuxPropId.ActiveObject['F100005'] = 0)
3:利用辅助属性进行计算
FSecCountQty = FCountQty * (float(str( FAuxPropId.ActiveObject['F100002']))) * (float(str( FAuxPropId.ActiveObject['F100004']))) * 25.4*25.4 / 1000000