销售退货单Python干预退货校验逻辑试例

在金蝶云星空版本 PT-146906 [8.0.0.202203] 之前,销售退货单中的 ReturnStockEdit 单据插件(此插件在程序集文件 Kingdee.K3.SCM.Sal.Business.PlugIn.dll中)会拒绝录入退货检验的物料,退货检验的物料必须先走完校验流程后从退货通知单下推过来,相关逻辑是在方法 BeforeF7Select 和 BeforeSetItemValueByNumber (这两个方法都调用了另一个方法GetFieldFilter)中控制的,反编译截图如下图1-1所示:

图1-1
上图1-1中是星空新版本(PT-146906 [8.0.0.202203])之后的插件反编译截图,其中添加了对WebApi操作的兼容逻辑。如果是WebApi,则允许赋值成功(在之前的版本中,if语句中是没有 base.View.ClientType != ClientType.WebApi),并且在保存操作上挂载了一个校验器,相关截图如下图1-2所示:

图1-2
针对客户通过WebApi生成销售退货单(物料为退货检验的),则只需要升级到PT-146906 [8.0.0.202203]版本并将保存操作上的校验 '需退货检验物料不能直接退货,请走检验线路!' 禁用即可。如果想在销售退货单新增界面上也能选择到退货检验物料,则可以扩展销售退货单,在表单插件列表的最后位置注册一个Python插件,如下图1-3所示:
图1-3
上图中的Python代码如下(请使用附件中的代码,不要直接在论坛中复制下文):
# -*- coding: utf-8 -*-
#销售退货单表单插件
import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from System import *
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
global checkMaterialFilter;
checkMaterialFilter = "AND FCHECKRETURN <> '1'";
def BeforeF7Select(e):
if销售退货单Python干预退货校验逻辑试例
在金蝶云星空版本 PT-146906 [8.0.0.202203] 之前,销售退货单中的 ReturnStockEdit 单据插件(此插件在程序集文件 Kingdee.K3.SCM.S...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



