如何合理的动态设置流程并行处理人
本帖最后由 WarrenPY 于 2023-10-17 15:09 编辑我在调试一个用章流程的需求,特别的地方在于,用章流程表单里,包含了业务条章、合同章、法人章、公章,这个是一个多选项,因为持章的是不同的员工,所以在盖章流程的时候,会根据这个多选项的值给不同的持章员工生成不同的代办。
我直接通过配置没有直接配出来,我打算通过脚本来实现,但是在官网文档没有没找到一个可以参考的sample,我想知道有没有类似的脚本或者文档可以读一下?
您可以通过群组来做,组织管理里做几个群组,群组名称就是您章的名称,然后配置对应的成员就是印章的管理员
再通过您表单选择的什么章来查找对应的管理员作为处理人 嗯,用群组看起来是一个可行的方案,因为我之前用的是职位来做的,但是因为相同的职位会跨越部门甚至是公司(因为我的组织结构里公司上面还有个集团),能选择的人又只能是自己所在公司里的,所以配置流程的时候,每次配处理人就有点头痛。
在什么地方能找到这种类型的js sample呢,我想这个会有点帮助。
本帖最后由 WarrenPY 于 2023-10-23 15:47 编辑
var goodsManageMembers = this.org.getGroup('物资管理').personList;
// --
var creatorUnitLevelName = this.workContext.getWork().creatorUnitLevelName;
var _bGroupLevelName = creatorUnitLevelName.substr(0, creatorUnitLevelName.indexOf('/'));
var _bCompanyLevelName = creatorUnitLevelName.substr(0, creatorUnitLevelName.indexOf('/', _bGroupLevelName.length + 1));
var levelOneMatchedGoodsManager = null;
var levelTwoMatchedGoodsManager = null;
var levelThreeMatchedGoodsManager = null;
for (var i = 0; i < goodsManageMembers.length; i++) {
var personId = goodsManageMembers;
var personAllUnits = this.org.listAllSupUnitWithPerson(personId);
for (var j = 0; j < goodsManageMembers.length; j++) {
var personUnit = personAllUnits;
if (!personUnit) {
continue;
}
if (personUnit.level === 1 && personUnit.levelName === _bGroupLevelName) {
levelOneMatchedGoodsManager = personId;
}
if (personUnit.level === 2 && personUnit.levelName === _bCompanyLevelName) {
levelTwoMatchedGoodsManager = personId;
}
if (personUnit.level === 3 && personUnit.levelName === creatorUnitLevelName) {
levelThreeMatchedGoodsManager = personId;
}
}
}
if (levelThreeMatchedGoodsManager) {
var targetGoodsManagerIdentityList = this.org.listIdentityWithPerson(levelThreeMatchedGoodsManager);
for (var k = 0; k < targetGoodsManagerIdentityList.length; k++) {
var targetGoodsManagerIdentity = targetGoodsManagerIdentityList;
if (targetGoodsManagerIdentity) {
if (targetGoodsManagerIdentity.unitLevelName === creatorUnitLevelName
|| targetGoodsManagerIdentity.unitLevelName.indexOf(_bCompanyLevelName) >= 0
) {
return ;
}
}
}
}
return [];
乱写一通,看起来可以,就是需要一直print去调试,有点脑壳痛。而且ES6的写法也是不支持的
页:
[1]