Python快速解决:操作的服务端服务中,lambda表达式报错:字段 is not defined。

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

Python快速解决:操作的服务端服务中,lambda表达式报错:字段 is not defined。

在表单操作中,添加服务端服务,设置自动下推时,为了配合单据转换规则的选单条件策略,通常需要同时将下推控制条件作为自动下推的前提条件,而对于单据体的条件,通常需要用到Lambda表达式,判断"单据体是否含有满足XXX条件的行),可以像这样设置:len(filter(lambda x : (x.F_CanPayAmt >x. F_GLBCFKSQJE ), F_CXMX))> 0

但是,通常会报错,类似于下图的错误,然后看表达式也没问题,就是不知道为啥。


image.webp

image.webp

解决方法:

   我猜想,由于服务端在执行前提条件校验规则时,应该是在标准的操作服务插件事务中进行处理,懂插件开发的同事就知道,服务插件中默认不会加载单据的全部字段,只会加载一些单据编号、内码等关键信息,如果需要添加其他字段,需要在

OnPreparePropertys事件方法中先进行添加声明。为了方便快捷的处理这个问题,通过简单的Python脚本是比较好的方式。在对应的操作中,设置服务插件,注册Python脚本即可。卡了很久才发现是这个原因,因此写下这篇文章记录一下。

如下图所示:

image.webp

Python示例如下:

import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS.Core")
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from System import *

def OnPreparePropertys(e):
    e.FieldKeys.Add("F_CanPayAmt");
    e.FieldKeys.Add("F_GLBCFKSQJE");
    e.FieldKeys.Add("F_CXMX");


整合自本人遗失的小号:https://wenku.my7c.com/article/182709?productLineId=1


Python快速解决:操作的服务端服务中,lambda表达式报错:字段 is not defined。

在表单操作中,添加服务端服务,设置自动下推时,为了配合单据转换规则的选单条件策略,通常需要同时将下推控制条件作为自动下推的前提条件...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息