
【场景】选单慢问题
【结论】通常为选单的sql查询过慢,检查下是否可以通过过滤条件减少查询数据范围从而提升性能(最好增加的过滤条件字段为索引字段)
【分析方案】
(0)根据APM抓取选单列表打开列表取数sql
[APM](https://vip.kingdee.com/article/145480274074763008?lang=zh-CN)
通常情况下生成的sql在数据库中执行就是慢的

(1)尝试利用单据转换规则的字段映射选单过滤
对应逻辑如果当前单据已经输入了这个值,则会使用这个值过滤选单列表,大幅减少可选数据范围从而提升查询速度

(2)部分客户的数据规模很大,可以通过操作校验+二开插件强制校验选单时字段已录入的逻辑
操作校验

二开插件调用选单的操作校验(C# 和 python,其中python的校验异常消息不支持,仅能在python中强指定)
C# 插件: [二开案例.单据插件.执行操作的校验器](https://vip.kingdee.com/article/238316028416101376?lang=zh-CN&productLineId=1&isKnowledge=2)
```python
import clr
clr.AddReference("mscorlib")
clr.AddReference("System.Data")
#增加引用自定义组件
clr.AddReference("Kingdee.BOS.ServiceHelper")
clr.AddReference("Kingdee.BOS.Core")
from System import *
from System.Collections.Generic import *
from System.Data import *
#导入组件的命名空间
from Kingdee.BOS.Ser