天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2731|回复: 12

[已解决] 关于流程节点审批人

 关闭 [复制链接]
白沙烟草 发表于 2014-5-30 10:45:40 | 显示全部楼层 |阅读模式
本帖最后由 白沙烟草 于 2014-5-30 11:11 编辑

我设计了一个表单,其中有制表人、审批人两个字段,这两个字段对应到两个节点,我应该怎么样做才能实现自动填写当前节点办理人姓名到这两个字段呢?
david 发表于 2014-5-30 10:56:10 | 显示全部楼层
本帖最后由 david 于 2014-5-30 10:58 编辑

楼主可以对制表人字段通过脚本取值,类似如下:

var userName=getItemValueAsString("制表人");
if(userName==null || userName.trim().length()<=0)
{
     userName=getWebUser().getName();
}
userName;

当然也可以在路径执行脚本写脚本。具体可以参阅超群内公布的在线体验网址的OA相关的流程里的路径执行脚本。
 楼主| 白沙烟草 发表于 2014-5-30 11:10:57 | 显示全部楼层
好的,谢谢!
问题解决了~~~
我再去学习一下路径执行脚本!
 楼主| 白沙烟草 发表于 2014-6-3 11:33:27 | 显示全部楼层
在实践过程中遇到个问题,按照上述代码写了值脚本后,新建了流程保存并启动时,制表人、审批人都被自动填写了姓名,而且是同一个姓名。这显然是不对的,应该根据不同的流程环节,在不同的地方自动填写进当前环节的办理人姓名才对。我所想到的,是不是可以通过角色的判断来控制?但是我确实不知道应该具体怎样写。请解答,谢谢。
david 发表于 2014-6-3 11:35:29 | 显示全部楼层
楼主是不是都是从制表人那个字段取值的?审批人要从审批人对应的字段取值,有问题再沟通。
 楼主| 白沙烟草 发表于 2014-6-3 11:44:14 | 显示全部楼层
和那个没关系。
userName=getWebUser().getName();
这句话,我 的理解是,得到当前用户的名称,对于某一个环节,当前用户的名称肯定是一个固定的,所以,所有写上述值脚本的域都被赋给了当前用户名称,也就是说,是一样的。
我现在想通过路径执行脚本来解决,但是却报错,保存时出现了红色的提示条,保存不成功。是不是上述语句不能直接写到路径执行脚本里?
david 发表于 2014-6-3 13:33:31 | 显示全部楼层
审批人的取值就要根据一定的逻辑,比如根据制表人的上级、角色等,不能直接根据当前登录用户取值。
 楼主| 白沙烟草 发表于 2014-6-3 13:37:23 | 显示全部楼层
呃,说的就是这个判断语句不会写,有相关的例子吗?PS:有的用户可能属于多个角色,这种情况怎么判断?
 楼主| 白沙烟草 发表于 2014-6-3 13:41:27 | 显示全部楼层
本帖最后由 白沙烟草 于 2014-6-3 13:42 编辑

var roles = getWebUser().getRoles();
var rtn="";
var userName=getItemValueAsString("Tabulator");
for(var it = roles.iterator();roles!=null && it.hasNext();){
   var role = it.next();
   rtn+=role.getName();
}
if(userName==null || userName.trim().length()<=0)
{
        if(rtn = '培训管理员')
            {
                userName=getWebUser().getName();
            }
}
userName;

可以这样写吗?如果可以,那个rtn = '培训管理员'如果想改成模糊查询怎么改?不好意思,JAVA语法零基础。
 楼主| 白沙烟草 发表于 2014-6-3 14:08:41 | 显示全部楼层
以上,我试了下,那个判断角色的语句根本没起作用啊,照样还是所有的文本域都是一个人的名字。请教一下,我哪里写的不对吗?

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 15:25

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表