起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3983|回复: 7

[结贴] 手机端首页新建待办类型的企业版报错

[复制链接]

62

主题

239

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
发表于 2017-11-8 09:58:39 | 显示全部楼层 |阅读模式
按照论坛提供的方法在开发版里边实现了功能,但是复制到企业版里边功能没有出现,修改版本号不起作用,清缓存也无效,是不是跟这个错误有关
2017-11-08 09:49:07 编码: JUSTEP150108; 提示: "invokeProcedure procedure"不能为

com.justep.exception.BusinessException: 编码: JUSTEP150108; 提示: "invokeProcedu
re procedure"不能为空
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.util.Utils.checkNotNull(Unknown Source)
        at com.justep.system.action.Engine.invokeAction(Native Method)
        at com.justep.system.action.Engine.invokeAction(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Sour
ce)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Sour
ce)
        at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
        at Portal.queryMessage(Portal.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown
Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Sour
ce)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)
        at java.lang.Thread.run(Thread.java:745),开发版是没有报这个错误的,同样的代码,是什么原因呢

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-11-8 10:42:51 | 显示全部楼层
确认action的procedure设置的正确吗?
Portal.queryMessage(Portal.java:41)
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

62

主题

239

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-11-8 13:01:19 | 显示全部楼层
jishuang 发表于 2017-11-8 10:42
确认action的procedure设置的正确吗?
Portal.queryMessage(Portal.java:41)

开发版那边同样的代码是没有问题的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-11-8 14:21:49 | 显示全部楼层
确认所有的代码都同步了?这错误就是action的相关设置不正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

62

主题

239

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-11-9 09:44:06 | 显示全部楼层
jishuang 发表于 2017-11-8 14:21
确认所有的代码都同步了?这错误就是action的相关设置不正确

都是系统自带的代码,没有动过,
回复 支持 反对

使用道具 举报

62

主题

239

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-11-9 09:48:38 | 显示全部楼层
jishuang 发表于 2017-11-8 14:21
确认所有的代码都同步了?这错误就是action的相关设置不正确

action:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<model xmlns="http://www.justep.com/model">
        <action name="queryMessageAction" procedure="queryMessageProcedure">
                <permission name="range" type="List" />
                <private name="concept" type="String" value="Portal_Message" />
                <private name="select" type="String" value="Portal_Message.*" />
                <private name="from" type="String" value="Portal_Message Portal_Message" />
                <private name="aggregate" type="String" />
                <private name="dataModel" type="String" value="/portal/data" />
                <private name="fnModel" type="String" />
                <protected name="condition" type="String" />
                <public name="distinct" type="Boolean" value="false" />
                <public name="idColumn" type="String" value="Portal_Message" />
                <public name="filter" type="String" />
                <public name="limit" type="Integer" />
                <public name="offset" type="Integer" />
                <public name="columns" type="String" />
                <public name="orderBy" type="String" />
                <public name="aggregateColumns" type="String" />
                <public name="variables" type="Map" />
        </action>
        <action name="queryWaitMessageAction" procedure="queryWaitMessageProcedure">
                <permission name="range" type="List" />
                <private name="concept" type="String" value="Portal_Message" />
                <private name="select" type="String" value="Portal_Message.*" />
                <private name="from" type="String" value="Portal_Message Portal_Message" />
                <private name="aggregate" type="String" />
                <private name="dataModel" type="String" value="/portal/data" />
                <private name="fnModel" type="String" />
                <protected name="condition" type="String" />
                <public name="distinct" type="Boolean" value="false" />
                <public name="idColumn" type="String" value="Portal_Message" />
                <public name="filter" type="String" />
                <public name="limit" type="Integer" />
                <public name="offset" type="Integer" />
                <public name="columns" type="String" />
                <public name="orderBy" type="String" />
                <public name="aggregateColumns" type="String" />
                <public name="variables" type="Map" />
        </action>
</model>




base.procedure.m:



<?xml version="1.0" encoding="utf-8"?>

<model xmlns="http://www.justep.com/model" xmlns:m="http://www.justep.com/model">  
  <procedure name="queryWaitMessageProcedure" code-model="/portal/logic/code" code="Portal.queryWaitMessage">
    <parameter name="range" type="List"/>  
    <parameter name="concept" type="String"/>  
    <parameter name="select" type="String"/>  
    <parameter name="from" type="String"/>  
    <parameter name="aggregate" type="String"/>  
    <parameter name="dataModel" type="String"/>  
    <parameter name="fnModel" type="String"/>  
    <parameter name="condition" type="String"/>  
    <parameter name="distinct" type="Boolean"/>  
    <parameter name="idColumn" type="String"/>  
    <parameter name="filter" type="String"/>  
    <parameter name="limit" type="Integer"/>  
    <parameter name="offset" type="Integer"/>  
    <parameter name="columns" type="String"/>  
    <parameter name="orderBy" type="String"/>  
    <parameter name="aggregateColumns" type="String"/>  
    <parameter name="variables" type="Map"/>
  </procedure>  
  <procedure name="queryMessageProcedure" code-model="/portal/logic/code" code="Portal.queryMessage">
    <parameter name="range" type="List"/>
    <parameter name="concept" type="String"/>
    <parameter name="select" type="String"/>
    <parameter name="from" type="String"/>
    <parameter name="aggregate" type="String"/>
    <parameter name="dataModel" type="String"/>
    <parameter name="fnModel" type="String"/>
    <parameter name="condition" type="String"/>
    <parameter name="distinct" type="Boolean"/>
    <parameter name="idColumn" type="String"/>
    <parameter name="filter" type="String"/>
    <parameter name="limit" type="Integer"/>
    <parameter name="offset" type="Integer"/>
    <parameter name="columns" type="String"/>
    <parameter name="orderBy" type="String"/>
    <parameter name="aggregateColumns" type="String"/>
    <parameter name="variables" type="Map"/>
  </procedure>
</model>



Port.java



import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.justep.model.Config;
import com.justep.model.ConfigItem;
import com.justep.model.Model;
import com.justep.model.ModelUtils;
import com.justep.system.action.ActionUtils;
import com.justep.system.context.ContextHelper;
import com.justep.system.data.Row;
import com.justep.system.data.Table;
import com.justep.system.data.TableUtils;
import com.justep.system.opm.Operator;
import com.justep.util.Utils;

public class Portal {

        public static Table queryMessage(List range,String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){

                Model m = ModelUtils.getModel("/portal/logic/action");
                Config cfg = m.getUseableConfig("messageConfig");
                ConfigItem items = cfg.getItem("items");
               
                Table result = TableUtils.createTable(concept, dataModel);
               
                try{
                        for (String name : items.getNames()){
                                ConfigItem item = items.getChildren(name);
                                String process = item.getChildren("process").getValue();
                                String activity = item.getChildren("activity").getValue();
                                String action = item.getChildren("action").getValue();
                                String executor = ActionUtils.getRequestContext().getActionContext().getExecutor();
                                if(Utils.isEmptyString(executor)) executor = "*";
                               
                                        if(canAccess(process, activity)){
                                                        @SuppressWarnings("unchecked")
                                                        Map<String, Object> data = (Map<String, Object>)ActionUtils.invokeAction(process, activity, action, executor, new HashMap<String, Object>());
                                                        if(data != null){
                                                                Row row = result.appendRow();
                                                                row.setString("fLabel", (String)data.get("fLabel"));
                                                                row.setString("fSubLabel", (String)data.get("fSubLabel"));
                                                                row.setString("fContent", (String)data.get("fContent"));
                                                                row.setString("fTag", (String)data.get("fTag"));
                                                                row.setDateTime("fDate", (Timestamp)data.get("fDate"));
                                                                row.setInt("fCount", (Integer)data.get("fCount"));
                                                                row.setString("fProcess", (String)data.get("fProcess"));
                                                                row.setString("fActivity", (String)data.get("fActivity"));
                                                                row.setString("fUrl", (String)data.get("fUrl"));
                                                        }
                                        }
                        }
                }catch(Exception e){
                        Logger.getLogger(Portal.class).error(e.getMessage() + "", e);
                }
               
                return result;
        }
        public static Table queryWaitMessage(List range,String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){

                Model m = ModelUtils.getModel("/portal/logic/action");
                Config cfg = m.getUseableConfig("messageConfig");
                ConfigItem items = cfg.getItem("items");
               
                Table result = TableUtils.createTable(concept, dataModel);
               
                try{
                        ConfigItem item = items.getChildren("wait");
                        if(null!=item){
                                String process = item.getChildren("process").getValue();
                                String activity = item.getChildren("activity").getValue();
                                String action = item.getChildren("action").getValue();
                                String executor = ActionUtils.getRequestContext().getActionContext().getExecutor();
                                if(Utils.isEmptyString(executor)) executor = "*";
                               
                                if(canAccess(process, activity)){
                                        @SuppressWarnings("unchecked")
                                        Map<String, Object> data = (Map<String, Object>)ActionUtils.invokeAction(process, activity, action, executor, new HashMap<String, Object>());//这一行是提示的错误位置
                                        if(data != null){
                                                Row row = result.appendRow();
                                                row.setString("fLabel", (String)data.get("fLabel"));
                                                row.setString("fSubLabel", (String)data.get("fSubLabel"));
                                                row.setString("fContent", (String)data.get("fContent"));
                                                row.setString("fTag", (String)data.get("fTag"));
                                                row.setDateTime("fDate", (Timestamp)data.get("fDate"));
                                                row.setInt("fCount", (Integer)data.get("fCount"));
                                                row.setString("fProcess", (String)data.get("fProcess"));
                                                row.setString("fActivity", (String)data.get("fActivity"));
                                                row.setString("fUrl", (String)data.get("fUrl"));
                                        }
                                }
                        }
                }catch(Exception e){
                        Logger.getLogger(Portal.class).error(e.getMessage() + "", e);
                }
               
                return result;
        }
        private static boolean canAccess(String process, String activity){
                try{
                        Operator op = ContextHelper.getOperator();
                        return op.hasActivityPermission(process, activity, "*");
                }catch (Exception e){
                        return false;
                }
        }
}

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-11-9 11:15:57 | 显示全部楼层
/BIZ/portal/logic/code/dsrc/Portal.java中如下的地方加System.out.println(action);
把action输出看看具体是哪个action
java.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

62

主题

239

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-11-9 16:54:01 | 显示全部楼层
jishuang 发表于 2017-11-9 11:15
/BIZ/portal/logic/code/dsrc/Portal.java中如下的地方加System.out.println(action);
把action输出看看具 ...

搞定,请结帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-26 18:51 , Processed in 0.056196 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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