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

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

[已解决] 5.1版本报内部错误

[复制链接]
北京智源普华 发表于 2024-3-12 14:03:16 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1
【浏览器类型】:Chrome/360极速
【联系方式-QQ】:991466514
【联系电话】:   
【问题描述】:
    在表单中加了个视图选择框,要实现把视图选择框中选中的数据,添加到表单的子表中去,结果无法添加进去,调试模式下报“InternalError: Can't find method cn.myapps.protection.util.WarpProcessFactory$WarpFormServiceImpl$$EnhancerByCGLIB$$8cb1ee0d.doView(string). (__m96iUrzNnAiQDGDaSUL).提取.OkScript#7)”  错误,使用的脚本在其他版本中都是可以使用的,无非是在脚本编辑器中提示“安全问题,从V5.1废除”,但咨询过这个并不影响的,下面是具体的代码,请看下如何解决:

  var lydhs = getParameter("_selects");   
   var pid = getItemValueAsString("主表单id");   
   if (isNotNull(lydhs)) {   
           try{   
                   var process = getDocumentProcess();        
                   var formProcess = getFormProcess();   
                   var subform = formProcess.doView("__fYA93tChBFc5h8Eg5cJ");   
                   var arrId = lydhs.split(";");   
                   for (var i=0; i<arrId.length; i++) {   
                           var jsdoc = findDocument(arrId[i]);   
                           println("选中doc=="+jsdoc);   
                           var doc = process.doNew(subform,getWebUser(),createParamsTable());      
                           doc.addStringItem("所属类型",jsdoc.getItemValueAsString("所属类型"));   
                           doc.addStringItem("排序号",jsdoc.getItemValueAsString("排序号"));   
                           doc.addStringItem("表号",jsdoc.getItemValueAsString("表号"));  
                        doc.addStringItem("表名",jsdoc.getItemValueAsString("表名"));
                        doc.addStringItem("类别",jsdoc.getItemValueAsString("类别"));
                        doc.addStringItem("序号",jsdoc.getItemValueAsString("序号"));
                        doc.addStringItem("检验项目1",jsdoc.getItemValueAsString("检验项目1"));
                        doc.addStringItem("检验项目2",jsdoc.getItemValueAsString("检验项目2"));
                        doc.addStringItem("检验项目3",jsdoc.getItemValueAsString("检验项目3"));
                        doc.addStringItem("检验项目4",jsdoc.getItemValueAsString("检验项目4"));
                        doc.addStringItem("检验项目5",jsdoc.getItemValueAsString("检验项目5"));
                        doc.addStringItem("质量标准",jsdoc.getItemValueAsString("质量标准"));
                        doc.addStringItem("单位",jsdoc.getItemValueAsString("单位"));
                           doc.addStringItem("来源记录id",arrId[i]);   
                           doc.setParent(pid);   
                           process.doCreate(doc);   
                   }   
           }catch(e){   
                   println("打印异常信息---->"+e);   
           }   
   }








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-3-13 10:25:00 | 显示全部楼层
这行改成下面的方法试试。
var subform = formProcess.doViewByFormName("子表表单名称",getApplication());
 楼主| 北京智源普华 发表于 2024-3-13 11:57:59 | 显示全部楼层
yaya 发表于 2024-3-13 10:25
这行改成下面的方法试试。
var subform = formProcess.doViewByFormName("子表表单名称",getApplication() ...

改了后还是不可以,无法执行“process.doCreate(doc);   ”,报“JavaException: java.lang.Exception: prepData Error!!!”,如图所示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-3-13 16:01:34 | 显示全部楼层
北京智源普华 发表于 2024-3-13 11:57
改了后还是不可以,无法执行“process.doCreate(doc);   ”,报“JavaException: java.lang.Exception: p ...

把try catch去掉,看具体是什么错。
 楼主| 北京智源普华 发表于 2024-3-13 16:45:07 | 显示全部楼层
本帖最后由 北京智源普华 于 2024-3-13 16:46 编辑
yaya 发表于 2024-3-13 16:01
把try catch去掉,看具体是什么错。


还是报的 process.doCreate(doc);    这一行,如图所示,括号里面的像id的那串也不是某表单的Id,不知指的是哪个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-3-13 17:51:23 | 显示全部楼层
北京智源普华 发表于 2024-3-13 16:45
还是报的 process.doCreate(doc);    这一行,如图所示,括号里面的像id的那串也不是某表单的Id,不知 ...

把完整的脚本贴出来看看,35行
 楼主| 北京智源普华 发表于 2024-3-13 20:03:10 | 显示全部楼层
yaya 发表于 2024-3-13 17:51
把完整的脚本贴出来看看,35行

var lydhs = getParameter("_selects");   
   var pid = getItemValueAsString("主表单id");   
   if (isNotNull(lydhs)) {   
        
                   var process = getDocumentProcess();   
                   println("输出process:::::::"+process)   
                   var formProcess = getFormProcess();   
                  // var subform = formProcess.doView("__fYA93tChBFc5h8Eg5cJ");   
                   var subform = formProcess.doViewByFormName("表533子表",getApplication());
                   var arrId = lydhs.split(";");   
                   for (var i=0; i<arrId.length; i++) {   
                        var jsdoc = findDocument(arrId);   
                           
                        var doc = process.doNew(subform,getWebUser(),createParamsTable());      
                        doc.addStringItem("所属类型",jsdoc.getItemValueAsString("所属类型"));   
                        doc.addStringItem("排序号",jsdoc.getItemValueAsString("排序号"));   
                        doc.addStringItem("表号",jsdoc.getItemValueAsString("表号"));  
                        doc.addStringItem("表名",jsdoc.getItemValueAsString("表名"));
                        doc.addStringItem("类别",jsdoc.getItemValueAsString("类别"));
                        doc.addStringItem("序号",jsdoc.getItemValueAsString("序号"));
                        doc.addStringItem("检验项目1",jsdoc.getItemValueAsString("检验项目1"));
                        doc.addStringItem("检验项目2",jsdoc.getItemValueAsString("检验项目2"));
                        doc.addStringItem("检验项目3",jsdoc.getItemValueAsString("检验项目3"));
                        doc.addStringItem("检验项目4",jsdoc.getItemValueAsString("检验项目4"));
                        doc.addStringItem("检验项目5",jsdoc.getItemValueAsString("检验项目5"));
                        doc.addStringItem("质量标准",jsdoc.getItemValueAsString("质量标准"));
                        doc.addStringItem("单位",jsdoc.getItemValueAsString("单位"));
                        println("输内容1=================="+jsdoc);
                        doc.addStringItem("来源记录id",arrId);   
                        println("输出内容2=================="+jsdoc);
                        doc.setParent(pid);   
                        println("输出内容3=================="+jsdoc);
                                           println("输出process:::::::"+process)   

                        process.doCreate(doc);   
                        println("输出内容4=================="+jsdoc);
                   }   
           }
         
   
yaya 发表于 2024-3-14 09:41:09 | 显示全部楼层
北京智源普华 发表于 2024-3-13 20:03
var lydhs = getParameter("_selects");   
   var pid = getItemValueAsString("主表单id");   
   i ...

改一下这个再试一下:var jsdoc = findDocument(arrId);
 楼主| 北京智源普华 发表于 2024-3-14 11:29:40 | 显示全部楼层
yaya 发表于 2024-3-14 09:41
改一下这个再试一下:var jsdoc = findDocument(arrId);

改了后获取数据为null 导致接下来报错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-3-14 13:49:37 | 显示全部楼层
北京智源普华 发表于 2024-3-14 11:29
改了后获取数据为null 导致接下来报错

不好意思,我的问题,复制过来忘记修改了。
试试这个。
var jsdoc = findDocument(arrId);  

本版积分规则

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

GMT+8, 2026-8-12 14:23

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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