Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    zhihuchenl
    @zhihuchenl
    代码是这样子的
    @baoxingjie
    huishu
    @linkqu
    如何对例表求和?
    列表
    如果context中的对象中包含对象能不能用 obj.xxx 方式获取?
    huishu
    @linkqu
    No people?
    ningyu
    @zhanlv
    android平台 怎么使用呢
    huishu
    @linkqu
    引入包就可以用啊
    Paul Chan
    @rongmin
    public static void main(String[] args) throws Exception {
    ExpressRunner runner = new ExpressRunner();
    runner.addOperatorWithAlias("和", "&&", "addOperatorWithAlias fail!");
    runner.addOperatorWithAlias("大于", ">", "addOperatorWithAlias fail!");
    runner.addOperatorWithAlias("减去", "-", "addOperatorWithAlias fail!");
    DefaultContext<String, Object> context = new DefaultContext<String, Object>();
    context.put("订单状态", "未审核");
    context.put("当前系统时间", new Date().getTime());
    context.put("订单最后修改时间", new Date().getTime());//2018-12-03 17:16:51
    context.put("三个小时", 36060*1000);//毫秒
    String express1 = "(订单状态 in (未审核, 待业务认领单据) 和 (当前系统时间 减去 订单最后修改时间) 大于 三个小时) 则 {return 1;} 否则 {return 0;}";
    Object object = runner.execute(express1, context, null, true, true);
    System.err.println(object);
    }
    Exception in thread "main" java.lang.Exception: 程序错误,不满足语法规范,没有匹配到合适的语法,最大匹配致[0:4]
    at com.ql.util.express.match.QLPattern.findMatchStatement(QLPattern.java:21)
    at com.ql.util.express.parse.ExpressParse.parse(ExpressParse.java:343)
    at com.ql.util.express.parse.ExpressParse.parse(ExpressParse.java:310)
    at com.ql.util.express.ExpressRunner.parseInstructionSet(ExpressRunner.java:656)
    at com.ql.util.express.ExpressRunner.execute(ExpressRunner.java:561)
    at com.ql.util.express.ExpressRunner.execute(ExpressRunner.java:538)
    at com.koyoo.monitor.service.nc.esoc.order.NCEsocOrderServiceImpl.main(NCEsocOrderServiceImpl.java:148)
    这个表达式报错如何排查?
    Paul Chan
    @rongmin
    抱歉 眼瞎 找到问题了
    Pauling
    @PaulingZhou
    @Test
    public void testFunction2() throws Exception {
        ExpressRunner runner = new ExpressRunner();
        String[] args = {"123","456"};
        String exp = "String a = args[0];";
        DefaultContext<String, Object> context = new DefaultContext<String, Object>();
        context.put("args", args);
        Object result = runner.execute(exp,context,null,false,true);
        System.out.println(result);
    }
    这段代码跑不通。。。
    1302岁的龙猫
    @ORACLE128G
    改成这样:\n
    @Test
        public void testFunction2() throws Exception {
            ExpressRunner runner = new ExpressRunner();
            String[] args = {"123","456"};
            String exp = "a = args[0];";
            DefaultContext<String, Object> context = new DefaultContext<String, Object>();
            context.put("args", args);
            Object result = runner.execute(exp,context,null,false,true);
            System.out.println(result);
        }
    @PaulingZhou
    Pauling
    @PaulingZhou
    这样的话其实是把a当成Object类型的对象吧?如果希望a是String类型的话该怎么处理呢? @ORACLE128G
    zhming-hub
    @zhming-hub
    请教下:如何在内存动态的删除之前定义好的全局宏
    @baoxingjie
    请教下:如何在内存动态的删除之前定义好的全局宏
    0x2c0d
    @0x2c0d
    各位好,性能benchmark方面有没有官方对比?
    Nthan
    @xingguang2013
    com.ql.util.express.ExpressRunner类线程安全么?
    winrunwang
    @winrunwang
    现在还有人关注这个规则引擎吗?
    小骏
    @jackytsu
    这是一个典型的假开源项目。开发组只是简单的将内网的一些内容,选择性的公布到外网而已。没有交流,没有反馈,对PR也不搭理。
    Hanyu Wang
    @bunnywhy
    感觉资料不多
    zgzhang
    @zgzhang
    @bunnywhy 用作者的话说,这个东西很简单,不需要什么过多的说明,我使用这个项目搭建了一套规则引擎,性能OK,但是支持的操作相比groovy还是有差距,但是胜在简单。复杂操作在另外系统使用动态编译java代码反射执行来保证。
    sky18Dragon
    @sky18Dragon
    各位好,请问大家要做复杂的规则的时候,如何进行规则的编写和测试,我个人现在用visual写规则,然后运行测试,感觉开发成本好高]
    Hanyu Wang
    @bunnywhy
    @zgzhang 好的,谢谢!
    winrunwang
    @winrunwang
    @sky18Dragon 复杂规则个人觉得就是拆解,多条简单规则等于复杂。根据自身业务来的。
    sky18Dragon
    @sky18Dragon
    @winrunwang 好的,谢谢!!
    jz-Leung
    @jz-Leung
    各位大佬好,应该要怎么验证操作符的语法?
    比如String express = "Object a = 10 == 10 ; Object b = 2 == 3 ; return !a||!b"; return后面的 要怎么验证语法,用正则表达式吗?
    Gukey
    @GuGuKit
    大佬们好,QL表达式对计算结果保留指定位数的小数位该怎么表示呢??比如 想对 a * b 的结果进行四舍五入并保留两位小数该怎么写呢??江湖救急,多谢!
    Gukey
    @GuGuKit
    查到了 rand(a*b,2)即可四舍五入保留两位小数
    Gukey
    @GuGuKit
    round(a*b,2)
    zengjianfei
    @zengjianfei
    ?
    zengjianfei
    @zengjianfei
    舍五入保留两
    warning5
    @warning5
    qlExpress本身定位是不是就是表达式求值引擎,而规则引擎可以基于ql,实现when-then这样的方式,实现业务代码和业务规则分离
    zhulc0914
    @zhulc0914
    为啥不能翻页
    JasonLee
    @jasonlee529
    请问,qlexpress有没有规则编辑器?Js做的。
    lxm798
    @lxm798
    meiyou
    ld844870209
    @ld844870209

    import com.ql.util.express.test.OrderQuery;
    //系统自动会import java.lang.,import java.util.;

    query = new OrderQuery();//创建class实例,会根据classLoader信息,自动补全类路径
    query.setCreateDate(new Date());//设置属性
    query.buyer = "张三";//调用属性,默认会转化为setBuyer("张三")
    result = bizOrderDAO.query(query);//调用bean对象的方法
    System.out.println(result.getId());//静态方法

    下载的jar为什么tesr路径
    maven下载的包路径中没有test路径,按着这个写报错了
    klaus881
    @klaus881
    这个项目还在维护吗 ,我看好久没更新了
    DQYuan
    @DQinYuan
    qlexpress 的自定义函数要如何获得当前行列号呢?
    PanLiang1991
    @PanLiang1991
    怎么注册外部的自定义函数?难道都需要封装一下才行吗?
    angel8899421110
    @angel8899421110
    bingo平台啥时候能开源吗 能否提供点bingo平台的资料
    哈哈颠颠
    @fanlingyin
    有人在吗