一、业务背景
在企业每个部门的组织层级不一致情况下存在
某一个单子需求设置统一审批流程:申请人----一级审批(直接上级)---二级审批(一级部门负责人)----三级审批(副总)
二、业务痛点
1、因为组织层级不一致情况下 通用一个审批流程,在流程设计的时候简单配置判断不到一级部门负责人
三、解决方案
1、在表单上面增加字段 【一级部门】,怎么加字段社区搜索!!!
2、通过Python携带出申请部门的一级部门,Python参考如下:
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
def getYJBM():
billObj = this.Model.DataObject;
depID=str(billObj["PURCHASEDEPTID_Id"]);#触发部门实体属性标识_Id
if(depID=="0"):
this.Model.SetItemValueByID("F_YJBMLC", "", 0); #一级部门字段标识
this.View.UpdateView("F_YJBMLC");#一级部门字段标识
sql = ("""/*dialect*/WITH deps AS
(SELECT FNUMBER,FDEPTID,FPARENTID,a.F_YSBM,a.F_GZQXBM,num=1
FROM T_BD_DEPARTMENT a where FDEPTID={0}
UNION ALL
SELECT pDep.FNUMBER,pDep.FDEPTID,pDep.FPARENTID,pDep.F_YSBM,pDep.F_GZQXBM,num=deps.num+1
FROM deps
inner join T_BD_DEPARTMENT pDep on pDep.FDEPTID=deps.FPARENTID)
SELECT a.*
FROM deps a
where a.FPARENTID in (102814,102815)""").format(depID);
#this.View.ShowMessage(key+"SQL:"+sql);
ds = DBServiceHelper.ExecuteDataSet(this.Context,sql);
tab = ds.Tables[0];
ysBMId=tab.Rows[0]["FDEPTID"] if tab.Rows.Count>0 else 0;
this.Model.SetItemValueByID("F_YJBMLC", ysBMId, 0);#一级部门字段标识
this.View.UpdateView("F_YJBMLC"); #一级部门字段标识
#重载cloud插件模型的值更新事件
def DataChanged(e):
key=e.Field.Key.ToUpperInvariant();
if(str(key)=="FPURCHASEDEPTID"):#触发部门字段标识大写
getYJBM();
def AfterCreateNewData(e):
getYJBM();
3、在审批流程节点部门设置变量【一级部门】字段判断负责人
一级部门.rar(1.08KB)
推荐阅读