二开案例.表达式.操作服务前置条件

【基础知识】
<1>操作服务前置条件执行时,始终传递的是表头级的数据包(上下层级关系完整,字段不一定完整)。
<2>表达式中,单据体字段属于集合中的元素,不能直接访问,如果要访问,只能采用遍历或聚合的方式访问。
【应用场景】
<1>编写表达式,判断采购订单明细中的总的采购数量超过100时,执行某个服务。
sum(FQty)>100

<2>针对采购订单保存操作的服务端服务,编写表达式,当采购订单明细中存在库存数量大于采购数量的数据行时(订单明细逐行比较),执行某个服务。
len(filter(lambda row: row.ActiveObject["FQty2"]>row.ActiveObject["Qty"], FPOOrderEntry ))>0

注意:
(1)表达式中的"FQty2"是对应字段的【绑定实体属性】设置的名称,FPOOrderEntry是对应单据体明细信息的标识。
(2)如果是提交、审核、反审核等操作,可能会提示报错信息:实体类型xxx中不存在名为yyy的属性,这是因为只有保存操作是全量数据包,而其它操作都是按需加载最简数据包(非全量数据包),因此参与表达式计算的数据包并未包含该字段,我们只需要在表达式前面加上任意一个含有该字段的恒等条件
二开案例.表达式.操作服务前置条件
【基础知识】<1>操作服务前置条件执行时,始终传递的是表头级的数据包(上下层级关系完整,字段不一定完整)。<2>表达式中,单据体字段属于...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



