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

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

[已解决] Save 出错

[复制链接]
jqfang 发表于 2013-11-26 15:16:27 | 显示全部楼层 |阅读模式
本帖最后由 sophie 于 2013-11-27 15:41 编辑

IThelp.jpg

1. 出错原因?
2. HelpTicket for是userfield, 怎样default等于Name(这里是jack.fang), 如需要再选其他人。
3. 怎样取得user 的PersonalSetup里的mobile 数据
sophie 发表于 2013-11-26 15:32:21 | 显示全部楼层
您好,您的第一个问题是说怎么在文本框中默认显示当前用户名称吗?如果是您可用var user = getWebUser();获取当前登录用户名称。
第二个问题,您是想获取用户信息页面中的手机号吗,如果是,您可先获取用户id,得到用户对象,再通过用户对象获取用户手机号,您可参考如下代码:
  1. Var domainId =” 11e2-3e7b-cfc43d93-9629-cfc8e6087787”;
  2. var applicationId =getApplication();
  3. var title =getItemValueAsString("标题");
  4. var content=getItemValueAsString("内容");
  5. var datas=getItemValueAsString("接收者");  //用户Id
  6. println("datas------> "+datas);
  7. var usersid = splitText(datas,";");
  8. println("usersid--------->"+usersid+"---------------");
  9. var telephone="";
  10. for(var i=0;i<usersid.length;i++){
  11.     var user=getUserById(usersid[i])  //根据用户Id获取用户对象
  12. println("user--------> "+user);
  13. if(user!=null){
  14.    if(user.getTelephone()!="")
  15. telephone=user.getTelephone()+","; //获取用户电话
  16. }
  17. }
  18. telephone=telephone.substr(0,telephone.length-1);
  19. println("电话: "+telephone+"-------------");
  20. var isReply=getItemValueAsString("是否收到需回复");
  21. var rtn=false;
  22. if(isReply.equals("是")){
  23. rtn=true;
  24. }else{
  25.     rtn=false;       
  26. }
  27. var isMass=getItemValueAsString("是否群发");
  28. var rtn2=false;
  29. if(isMass.equals("是")){
  30.         rtn2=true;
  31. }else{
  32.         rtn2=false;
  33. }
复制代码
kimi 发表于 2013-11-26 15:39:16 | 显示全部楼层
1、不好意思,请问您现在当前记录有多少个审批人呢?这里提示的错误信息是指您现在表中的auditornames字段长度不够啊。这个字段存放的是当前记录的审批人,所以应该是您记录的审批人太多了引发的这个问题。
2、关于你的第二个问题可参考如下代码:

  1. var value=getItemValueAsString("用户选择框");
  2. if(value.trim().length()<=0){
  3.     value=getWebUser().getId();
  4. }value;
复制代码
3、还有您第三个文件是指什么呢?PersonalSetup是前台个人设置哦,个人设置中只有当前用户的手机号啊,您是想根据这个手机号获取前台手机短信的信息么?
 楼主| jqfang 发表于 2013-11-26 15:48:57 | 显示全部楼层
1. 审批人定义是role, 包含2个人
2. 我会试试再回复
3. 只是拿到手机号(Cell Phone)
sophie 发表于 2013-11-26 16:04:54 | 显示全部楼层
您好,第一点,该节点审批人只有两个,能不能截图看一下您的审批人呢?还有如果 是其他的流程,同样的只有两个人的情况下会不会也报这个错呢?
第二点,您先尝试,有结果跟进。
第三点,如果只是想要用户的手机号而已,您可参考2楼给您的解决方案,代码可简单简化如下:
var datas=getItemValueAsString("接收者");  //用户Id
println("datas------> "+datas);
var usersid = splitText(datas,";");
println("usersid--------->"+usersid+"---------------");
var telephone="";
for(var i=0;i<usersid.length;i++){
    var user=getUserById(usersid[i])  //根据用户Id获取用户对象
println("user--------> "+user);
if(user!=null){
   if(user.getTelephone()!="")
telephone=user.getTelephone()+","; //获取用户电话
}
}
 楼主| jqfang 发表于 2013-11-27 13:36:59 | 显示全部楼层
1. 还是出错,我把role换成只有一个人的也一样。
2. 3. 也没实现功能。
麻烦远程看看!先谢了。
sophie 发表于 2013-11-27 13:59:23 | 显示全部楼层
您好,您把您的代码帖出来,报了什么错?
sophie 发表于 2013-11-27 15:41:09 | 显示全部楼层
已远程帮客户解决问题了,客户的三个问题。
第一个报AUDITORNAMES太长的问题是,客户第一个节点绑定的角色,该角色下有150个,每个用户为8个字符,且客户使用的是mysql数据库,鉴于客户想在第一个节点的需求是,后台所有用户都能创建单据,建议客户使用getWebUser()方式解决,客户同意了。
第二个问题是,客户在用户选择框写代码时,getItemValueAsString("用户选择框");获取的字段名写错了。改过后达到效果了。
第三个问题,客户想要实现,文本框实时根据用户选择框所选的用户显示出该用户的手机号,还有另一文本框实时获取该用户的扩展字段Office Phone的座机号,所以给客户的解决的方案是,用户选择框勾选刷新,获取手机号、获取座机号的文本框勾选上重计算。获取手机号的代码使用5楼的代码能实现。
目前三个问题都帮客户远程解决了,客户同意关闭该帖子了。

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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