本文概述了A企业为处理特殊业务“定制茶”而在金蝶云星空中进行的一系列配置和二次开发。主要步骤包括增加针对“定制茶”的“采购入库单”和“采购退料单”单据类型,通过发布菜单时添加自定义参数控制列表过滤结果,实现不同列表菜单显示不同数据,并新增了子功能“定制茶出入库”以组织相关功能节点。最终效果是实现了对“定制茶”业务的独立管理和数据区分展示。
一、业务背景
A企业的有一项特殊业务,需要单独的进行处理,流程设计上使用“采购—暂估应付标准流程”,那么为了使用标准的这个系统流程,决定使用库存管理中“采购入库单”“采购退料单”单据,同时为了和其他采购业务区分,我增加了一个单据类型,使用了@林荫大道cc 提供给我的处理思路;
本来是想着走“其他入库单”推“应付单”然后核算的模式,但是想了下确实不如直接使用系统的标准采购业务流程单据;因此在@林荫大道cc 提供给我的处理思路基础上,我做了些小配置和小开发,以满足客户业务的需求;
具体见问答:“其他入库单”走暂估应付模式
业务场景说明:
A企业是某中型电商企业,主要销售成品茶叶,定制化从云南茶叶工厂进行要货,客户下单后广大销售员在金蝶云星空中做销售订单,然后物流根据下推的销售出库单进行发货和快递下单,在星空跟踪销售物流状态,签收后,下推应收单核销预收,或者应收单下推收款单核销代收;
特殊业务:由于企业有自己的发货仓,同时也从茶叶工厂(下述简称:茶厂)在销售后直接从茶厂仓发货,A企业为了管理茶厂的要货和库存,并管理对茶仓的往来账务,因此需要将这部分“定制茶”的业务进行单独处理;
流程简述:企业向茶厂定制一款产品,用于节日礼盒或者其他活动产品,设计部向供应商发了图纸,生产“盒子”,茶厂收到了企业的要货,要“内容物”(茶饼),企业模拟茶厂的生产,将“盒子+内容物”组装为“成品茶”,然后最终“成品茶”调拨到发货仓进行销售;
关键业务流程图:
流程图仅作为参考使用,可以自己定制流程,不一定要照搬套用;
本篇主要不是讲解业务流程的,而是订正说明“以下知识文档”相关配置和小二开内容
二开案例.列表插件.通过发布菜单时添加自定义参数控制列表过滤结果
二、关键步骤
(一)增加“采购入库单”“采购退料单”关于“定制茶”的单据类型
采购入库单:DZCRK 定制茶入库
1、复制“标准采购入库单”单据类型;
2、取消勾选“默认单据类型”;
3、编码、名称修改;
4、单据布局方案选择“标准入库单”的方案;
5、修改描述;
6、编码规则选择默认编码规则;
采购退料单:DZCTL 定制茶退料单
1、复制新增“标准退料单”单据类型;
2、取消勾选“默认单据类型”;
3、编码、名称修改;
4、单据布局方案选择“标准退料单”的方案;
5、修改描述;
6、编码规则选择默认编码规则;
(二)、将单据发布成两个列表菜单,实现不同的列表菜单使用不同的过滤条件来控制列表数据;
参考帖子:二开案例.列表插件.通过发布菜单时添加自定义参数控制列表过滤结果:
https://vip.kingdee.com/article/81119507636544000?productLineId=1&isKnowledge=2
1、新增发布菜单,设置自定义参数;
①设置“采购入库单”“采购退料单”的节点
操作节点:【发布】—【发布到主控台】
②修改原“采购入库单列表”“采购退料单列表”节点,设置自定义参数:
注意:这里的A是手动输入的。定义了一个单据类型的范围,后边的参数值代码是“定制茶入库”的单据类型代码;
这里的A后边的二开会有用处!
参数值为“定制茶入库单”的ID串
③新增“定制茶入库单”、“定制茶入库单列表”、“定制茶退料单”、“定制茶退料单列表”节点
4个节点都参考如下配置
注意的是:
单据的权限项是“新增”,发布类型是“维护”
列表的权限项是“查看”,发布类型是“列表”
2、二开列表插件过滤显示结果,使自定义参数生效
这里的二开不使用原文中的代码,因为有问题!
通过发布菜单时添加自定义参数控制列表过滤结果(入库单和退料单均需配置列表插件)
Python脚本:
def PrepareFilterParameter(e): billTypeId = this.View.OpenParameter.GetCustomParameter("BillTypeID") A = this.View.OpenParameter.GetCustomParameter("A") if (billTypeId == None or billTypeId == "" or A == None or A == ""): return elif (billTypeId == None or billTypeId == ""): if e.FilterString != None and e.FilterString.Length > 0: e.FilterString = e.FilterString + " and " e.FilterString = e.FilterString +("FBillTypeID != '" + A + "'") return else: if e.FilterString != None and e.FilterString.Length > 0: e.FilterString = e.FilterString + " and " e.FilterString = e.FilterString +("FBillTypeID = '" + billTypeId + "'")
原文中的插件并不能在原来的单据列表中真正的把“定制茶入库”新增的单据类型相关的单据剔除出去,因此用这个自定义参数“A”才可以真正的达到过滤的目的;
另外python脚本中需要对“A”进行判空处理,不然会影响“上下查”的列表界面的打开!
(三)新增子功能“定制茶出入库”,移动发布的节点
1、新增子功能“定制茶出入库”
2、移动新增的“定制茶相关功能明细(节点)”到“定制茶出入库”子功能下
三、最终效果
1、前台节点功能展示
2、列表数据展示
采购入库单列表,除了“定制茶入库”的单据类型外,其余均有单据;
定制茶入库单列表,只有“定制茶入库”的单据类型的单据
文末再次感谢@林荫大道cc 大佬的支持和指导!
毕竟思路决定出路
E N D