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

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

[已解决] Sp8中的getCurrentDocument().getIstmp()方法总是返回true【Bug #9781】

[复制链接]
上海普兰金融 发表于 2013-11-11 13:47:50 | 显示全部楼层 |阅读模式
本帖最后由 echochen 于 2013-11-13 17:55 编辑

之前看到如下这个帖子:
天翎myApps » 问题锦囊(精华) » 判断记录是新增还是已经存在的【表单-记录状态】
http://www.teemlink.com/bbs/view ... ;highlight=getIstmp
我在sp8上使用getIstmp这个方法发现,点击表单的保存后,即使是修改表单信息(即当前表单记录是在数据库中存在的),这个方法返回值还是true,导致如下只读的“部门标识”字段在每次保存后更新了!在sp9下验证,没此问题,目前要把开发环境做的东西放到测试环境,发现测试环境使用SP8就出问题了,有没有修改几个java文件的快速解决办法?
“部门标识”值脚本如下:
  1. var value = getItemValueAsString("部门标识");
  2.         if (getCurrentDocument().getIstmp())
  3.         {
  4.                 value = countNext2("BMBZ", true, true, false, 2);
  5.         }
  6.         value;
复制代码
echochen 发表于 2013-11-11 13:52:54 | 显示全部楼层
本地测试后给您答复。
echochen 发表于 2013-11-11 14:36:37 | 显示全部楼层
您好,本地重现了您的问题,稍后会作为一个bug提交给研发,给您带来不便了很抱歉。
 楼主| 上海普兰金融 发表于 2013-11-11 14:38:58 | 显示全部楼层
嗯,有没有个临时的快速的解决办法?我本地很多关键代码都是依赖这个方法的,这个bug会引发我这边较多测试问题的...
echochen 发表于 2013-11-11 14:53:28 | 显示全部楼层
您好,根据您的脚本,请问您是不是要在新建单据的时候给定您的部门标识一个默认值呢?
如果是这样,那么其实您不需要使用getCurrentDocument().getIstmp()这个方法来判断记录是新增还是已经存在的呀,
您只要把您的脚本修改成如下即可:
  1. var value = getItemValueAsString("部门标识");
  2.         if (value.trim().length()<=0)
  3.         {
  4.                 value = countNext2("BMBZ", true, true, false, 2);
  5.         }
  6.         value;
复制代码
 楼主| 上海普兰金融 发表于 2013-11-11 15:22:36 | 显示全部楼层
本帖最后由 上海普兰金融 于 2013-11-11 15:23 编辑

我代码中很多地方都先使用getCurrentDocument().getIstmp()这个方法来判断当前表单时是新建表单还是修改表单,然后再做一系列操作,包括值脚本、校验、动作执行前后脚本,值脚本还能根据字段值来弄弄,那么像动作执行前后脚本之类的,不能根据某个值是否为空来判断,咋办?
echochen 发表于 2013-11-11 15:47:08 | 显示全部楼层
您好,请您静待一下,因为目前已经提交到研发手中,研发正在修复中,就算今天修复了,也要明天测试后,再给您出补丁包呀。
 楼主| 上海普兰金融 发表于 2013-11-11 16:51:44 | 显示全部楼层
好吧,那我让我们这边的测试人员先等等
echochen 发表于 2013-11-11 16:58:25 | 显示全部楼层
嗯,感谢您的理解。
 楼主| 上海普兰金融 发表于 2013-11-12 10:44:29 | 显示全部楼层
修复了吗?

本版积分规则

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

GMT+8, 2026-8-13 08:56

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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