BeX5使用疑难总结

 

书写带有id的input无法用this.comp()进行值的设置,如<input component="$UI/system/components/justep/input/input" class="form-control" id="fID" xid="fID"></input>
 

无法this.comp获取不到值

 

1  eclipse 启动tomcat和 启动BeX5运行平台.bat 显示不一致

   

 

只需修改目录下conf中的server.xml中的版本号:

如:

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

<config>
  <version>4686</version>  
  <default-user>
    <name>admin</name>  
    <password>123456</password>
  </default-user>  
  <ui-server>http://localhost:8080/x5</ui-server>  
  <business-server>http://localhost:8080/BusinessServer</business-server>  
  <doc-server>http://localhost:8080/DocServer</doc-server>  
  <report-server>http://localhost:8080/ReportServer/reportservice</report-server>  
  <auth-server>http://localhost:8080/BusinessServer</auth-server>  
  <push-server>http://localhost:8080/PushServer</push-server> 
</config>
 

2 数据库表的限制

对于概念表的限制,可以通过  模型资源中的 BIZ 右键,

 

如需删除表,直接在 BIZ下删除对应的模块就行。

3 BeX5库表统计

概念数是ontology,库表数是统计的data下映射的,查看是否引用,通过model.config.xml,对于引用的system中的data,这些都不算在费用之内。

 

4 版本的升级

在V3.3版本的OA上进行了相应的修改,之后想把该版本添加到3.7上。过程如下:

把V33版本下model中BIZ和UI2模块中的OA,去替换V3.7下的OA,之后运行  启动MySQL数据库.bat  ,  (中间比较了一下发现V3.7数据库缺少justep_oa.sql数据库,该数据库justep_oa.sql是通过V3.3版本的navicate备份而来),添加数据库justep_oa.sql,并运行3.3版本的数据。  之后打开 启动BeX5开发工具.bat,在eclipse中打开-》窗口->首选项->Studio配置-》数据源->添加即可,如数据源名称oa,数据库名称为justep_oa.

 

 

 

5 添加成员出现提示重复

组织权限——回收站”中清除删除的数据

 

6 获取数据成员模型的行ID

,this.comp("mainData").getCurrentRowID()或者

this.comp("mainData").getRowID()

Java代码如下:

    public static BigDecimal my(String orderID){
        Map<String,Object> params=new HashMap<String,Object>();
        params.put("masterID", orderID);
        
        Table table=KSQL.select("select sum(a.fSL) as HJ from SA_CGDetail a where a.fMasterID=:masterID", params, "/Sale/CGGL/data", null);
        return table.iterator().next().getDecimal("HJ");
        
    }

 

整个js代码如下:

Model.prototype.button2Click = function(event){

      var biz = require("$UI/system/lib/biz");

     var me = this;
     var orderID=this.comp("mainData").getRowID();
      //alert(this.getIDByXID("mainData"));
     //  alert(this.comp("mainData").getCurrentRowID());

      biz.Request.sendBizRequest(
      
      {
          "context" : this.getContext(),
          "dataType" : "application/json",
          "action" : "myAction",
          "parameters" : {
              "orderID" : orderID
            
          },
          "callback" : function(result) {
              debugger;
              if(result.state){
                  alert(result.response)
                  /*
                  me.comp("output1").set({
                      "value" : result.response
                  })
                  */
              }else{
                  throw new Error("调用失败!"+ result.response.message);
              }
             
          }
      })
 
      
      /
    };

7 添加tabs组件,界面不显示

在最上的window上,class设置:  window x-full-screen

对于tabs下面的层,需要设置长和宽,才可以展示。

以前的view,对应现在的div

 

8 出现 Data truncation: Data too long for column 'fPicture' at row 1

在开发环境的概念模型上,设置字段fPicture从String到Text

 

9 BeX5导入项目,不显示

主要是视图显示不对,

新建项目->使用缺省位置去掉,浏览项目,引入即可,按照提示打开说明,即可显示 其他的项目。

10 grid获取其他列的值

    Model.prototype.mainGridCellRender = function(event){
 
        if (event.colName == "操作") {
            
            var OA_MT_Boardroom=event.row.val('OA_MT_Boardroom');//获取该列数据的ID值,即model的ID值

        }
    };

11 not in写法

 

String kSqlWhere ="SELECT  o1.*, o1.sCode AS sPCode, o1.sName AS sPName FROM SA_OPOrg o1  WHERE o1.sCode = 'JUSTEP' AND "+

            "NOT o1.sLevel IN(1, 2) ";

 

12 grid传递参数

向bizData中传递参数:

KSQL中为:   id=:ID

当渲染时会发生事件如下:

可定义全局变量

 var beginTime="2017-11-15 08:58:00";          // beginTime="  ' 2017-11-15 08:58:00  '  ";    //不可添加  '  号,,

   var endTime="2017-11-15 18:58:00";

 

    Model.prototype.mainDataRefreshCreateParam = function(event){
       //给queryAction中的参数赋值
      var mapParam = new biz.Request.MapParam();
      mapParam.put("beginTime", beginTime);
      mapParam.put("endTime", endTime);
      event.param.setMap("variables", mapParam);
    };

 

点击事件: click(){ //通过修改事件,来更改渲染的变化,之后模型 mainData.refreshData(); 即可

 beginTime="'2017-11-15 08:58:00'";
  endTime="'2017-11-15 18:58:00'";

}

 

13 重新清空编译

清空:BeX5_V3.7\studio\workspace下所有文件

或者BeX5_V3.7\apache-tomcat\work下的所有文件。

 

14 debuge调试

把java代码设为源码路径,之后把  不以调试模型运行的勾去掉即可。

断点调试,上面有:  跳过所有调试,如果点击后,则无法断点,再次点击,不要跳过后,即可。

之后把自动设置源文件目录前面的勾去掉,并把下面的BIZ添加上去。

 

15 sql引用

KSQL中引用mysql中函数,需要添加SQL,即如SQL.TIMESTAMPDIFF(XXX)

实例:

(select  (SQL.TIMESTAMPDIFF(SQL.MINUTE, OA_MT_RoomArrangeNewDate.fBeginTime, OA_MT_RoomArrangeNewDate.fEndTime)) as arrangeDate from OA_MT_RoomArrange OA_MT_RoomArrangeNewDate) as arrangeDate

 

对于KSQL中的可以以':'开头使用表达式函数,但是在select部分不能使用,表达式函数是在内存中计算的,先执行内存函数,然后执行sql。

 

16  20免用户证书获取

首先运行\license\bin下的key.bat,此会在\license生成key文件,之后在Bex5官网申请免费key,并上传生成的key文件,之后生成免费的注册码,之后运行register.bat,粘贴注册码,即可完成20用户免费

 

17 报表

如果是自己定义的 action,如果不是标准的KSQL,即选择的是ksqlQueryProcedure,则在reportData选择动作的时候action,不要选择KSQLAction,需要直接选择Action

 

18 运行缓存

运行   启动BeX5运行平台.bat  ,会采用缓存,解决方案:

 

  • 方案二:修改UI2下自己应用的config\ application.xml 中的版本号,然后重启tomcat服务
  • 方案三:修改model同级的config\server.xml文件中的version版本号,然后重启tomcat服务

 

19 java.lang.Error: 无法解析的编译问题:

无法解析类型 javax.servlet.http.HttpServletRequest。从必需的 .class 文件间接引用了它
        类型 RequestContext 中的方法 getRequest()引用缺少的类型 HttpServletRequest

 

system/logic/code/dsrc/TenantEngine.java报错,
这句话MyCatMultiTenant.setMyCatMultiTenantInfo(ContextHelper.getRequestContext().getRequest(), tenant);  出现问题

 

解决方案,首先,设置源码路径,之后 构建路径,从外面导入包 

E:\install\BeX5\BeX537\BeX5_V3.7\apache-tomcat\lib\servlet-api.jar

,即可。

 

20 BeX5用户登录问题

如果登录不校验密码,则需在BIZ/system/logic/code/dsrc中的OPMProcedure类中,在login方法中pwd为null,并且true改为false


    public static Object login(String name, Date loginDate, String pwd, String lang, String ip, Map<Object, Object> options) {
        return OPMProcedure.login(name, loginDate, pwd, lang, true, ip, options);
 

    }

修改为

    return OPMProcedure.login(name, loginDate, null, lang, false, ip, options);

 

22 单点登录

url可以直接调用.j文件,如

http://localhost:8080/x5/UI2/portal/base/loginCheck/login.j,此调用的是自定义的java文件,实际相当于servlet文件。

可以通过BeX5的.j文件,实现单点登录,参考为:

http://docs.wex5.com/bex5-ui-question-list-10258/

 

23 时间插件精确到时或者精确到分钟设置各页面相互不影响

在Input中如果设置为时,则在属性form-control 基础上添加属性hourTime。设置如下

$(".hourTime").click(function() {
            setTimeout(function() {
            //debugger;
                // 设置值
                //$("input[name='_calendar_hour_']").val("17");
                $("input[name='_calendar_min_']").val("00");
                $("input[name='_calendar_sec_']").val("00"); //秒最后的固定
                // 控制不可编辑
                $("input[name='_calendar_min_']").attr("disabled", "true");
                $("input[name='_calendar_sec_']").attr("disabled", "true");
            }, 50);
        });

在属性form-control基础上添加属性selfMinuteTime,之后设置为

        $(".selfMinuteTime").click(function() {
            setTimeout(function() {
                // 设置值
                // $("input[name='_calendar_hour_']").val("17");
                $("input[name='_calendar_sec_']").val("00"); // 秒最后的固定
                // 控制不可编辑
                $("input[name='_calendar_sec_']").attr("disabled", "true");
                try {
                    $("input[name='_calendar_min_']").removeAttr("disabled");  //重点
                } catch (err) {
                    console.log(err.name);
                    console.log(err.message);
                }

            }, 50);
        });

 

24 隐藏表单

只需css   visibility:hidden;

bind-visible="0>1"  ---这种方式不可取。会有延迟。

25 修改系统的功能

如需要修改系统自带的portal中的index.w文件,则只需额外在添加同样的文件portal_X,index.w也同样的位置,这样既可覆盖。

26 添加空格

在设计上,添加 中文的空格既可。

27 添加超链接

报表添加超链接,即右键,点击添加批注既可。

内容可以为:

html:<a model="dialog" href="$UI/OA/meeting/process/statisticalsAnalysis/staticActivityw.w?param1=$param1&amp;process='/OA/meeting/process/statisticalAnalysis/statisticalsAnalysisProcess'&amp;activity='staticActivityw'" title="详情" />

如果为多个参数,则为:
staticActivity1.w?
A1=$A1&amp;A2=$A2&amp;

此列必须显示,即传参的是必须是report中的,如果不需要显示可以设置列宽为0,把字体设置为白色

28 每天第一次登录抛出bug

在长时间没有访问tomcat后,数据库连接已经失效,连接池因为没有检测,所以认为连接有效,导致连接出错。避免这种错误的方法是设置连接有效查询sql语句。设置后,连接池会使用该sql语句测试连接是否有效,如果无效,会重新建立连接。

设置方法为:在%JUSTEP_HOME%\apache-tomcat\conf\context.xml中的节点中增加属性validationQuery
mysql数据库:

 

<Resourcename="jdbc/cloud"type="javax.sql.DataSource"maxActive="100"maxIdle="30"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/cloud"username="root"password="x5"validationQuery="select 1"/>

 

 

 

29 查看用户在线数

http://IP:端口/x5/UI2/SA/online/mainActivity.w

30 设置失效时间

1、BusinessServer的session设置
\runtime\BusinessServer\WEB-INF\web.xml
        <session-config>
                <session-timeout>30</session-timeout>
        </session-config>

31 linux下部署问题

1 启动mysql出现: mysqld: error while loading shared librarieshttp://mp.blog.csdn.net/postedit/78031359: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:apt-get install libaio1 libaio-dev

2 mysql出现 Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

添加系统mysql组和mysql用户:

执行命令:groupadd mysql和useradd -r -g mysql mysql

之后

 

chown -R mysql:mysql ./startMySQL.sh
chown -R mysql:mysql ./mysql

之后切换mysql  :   su  mysql   启动即可。
对于mysql的服务关闭,切换到mysql用户,之后去mysql/bin/下shutdown.sh,即可。

3 对于bex5的启动,去tomcat目录下,即/apache-tomcat/bin/下进行启动和停止即可。

4 证书申请流程

如果不是集群,则linux部署,只需BeX5_V3.7-ent-linux.tar.gz,不需要license-server_V3.7-linux.tar.gz(集群时证书)。

5 对于库表的统计,只按BIZ下面的进行统计,对于实际数据库的多少不算。

6 对于左侧导航栏有重复的现在,可以先恢复到初始的portal,它是不重复。 之后慢慢修改发现其中的变化。

7 BIZ和UI2下一直不生效,方法1,把windows下生效的BIZ和UI2都移过去。方法2,对于BIZ下的system等的修改,直接找到对应的class文件,直接删除,即可。 其他的修改Bex5解压下 conf文件中,server.xml中版本号。

8 lsc与mysql数据同步,lsc中必须使用root@%账号。中间可能产生乱码(由mysql中的存储函数 未指定编码方式导致的)。

需要:自己安装的Mysql下的/etc/my.cnf中,添加

character-set-server = utf8          //设置服务器用utf-8
init_connect='SET NAMES utf8'              //都采用UTF-8编码

9 模块权限设置

在UI2中config目录XXX.function.xml中,

可以设置无、solid、hide。其中,无为设置了权限才可以查看。设置solid不分配权限既可查看,但运行可能会提示没有权限。

设置hide分配功能权限也不显示,但是有权限运行,如流程。

10 左侧导航栏重复

目前好像是portal->pc3->index.w文件中,由于注释掉137-142行,导致的
    <ul class="sidebar-menu">   
            <li class="active">
              <a class="x-portal-showMain">
                <i class="x-functree-icon icon-home"/>  
                <span class="title">主页</span>  
              </a>
            </li>

      </ul>

11 测试环境向正式环境复制,特别是文档图片的复制,需要把data下doc下所有文件(除conf外,但我实际上都复制了),都复制到正式环境,同时把 x5doc和x5sys下有关的都复制到正式环境。

 

如果修改端口了,需要把 数据库x5sys下sa_docnamespace下的sUrl的http://localhost:8080/DocServer,改为:

http://localhost:8081/DocServer,sPort中8080修改为8081(实际上8080也正常显示)。

由于我把x5doc中某些数据删除了,导致移动到正式环境的图片不能显示,所以,慎重删除数据。

12 修改路由 localhost:8080/x5/  为 localhost:8080/boardroom

需要修改的地方为:

 

  • (1)、需要修改apache-tomcat\webapps\ROOT\index.html中的x5
  • (2)、修改apache-tomcat\conf\Catalina\localhost中x5.xml这个文件名
  • (3)、model同级的conf\server.xml中的配置地址

 

32 using password:yes
我在使用mysql批处理启动数据库之后,连接数据报  access denied for user 'rooot' @'localhost'(using password:yes)这个错误,这是因为什么?、

可能本地有mysql服务器在启动,需要关闭本地mysql服务器才可以。

 

 

http://docs.wex5.com/wex5-server-question-list-2004/

 

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值