低代码脚本扩展-七巧低代码开发FAQ

七巧低代码开发FAQ集合
 

一、  全局

1、低代码支持什么语法?

答:低代码使用JavaScript语言,支持ECMAScript 5版本语法;也可以在低代码中声明Java对象,调用Java API。

 

2、在低代码中,可使用哪个版本的JDK?

答:1.8

 

3、如何通过低代码实例化一个Java对象呢?

答:new Packages.对象完整类路径.类名();

示例:声明一个HashMap对象 new Packages.java.util.HashMap();

 

4、如果调用JDK中自带的静态方法?

答:Packages.java.lang.Integer.toString(i);

 

5、JAVA与JS对象允许混用吗?

答:原则上不允许,在低代码中,Java对象与JS类型对象不可混用操作方式

 

6、ELK如何查询低代码报错?

如下图所示:

l6O45mTP65fd3e1d41b07.png

 

7、低代码报错信息:"Access to Java class *** is prohibited"需怎么处理?

答:该异常代表低代码中使用的Java类被Plus内部禁用,需由产研评估是否开启Java类白名单或者使用别的实现方式

 

二、表单

1、subDoc.isDeleted()的作用

答:在低代码中操作子表单控件的数据时,需提前校验该数据是否已在页面上被删除,是则不需再对其进行操作;判断是否在页面上被删除,可通过subDoc.isDeleted()进行判断,true表示已被删除;注意:通过getElementByName方法获取"是否删除"属性时,子表单与多表关联控件,使用"__isDeleted"进行获取;子表关联控件,使用"__isUpdateDeleted"进行获取

 

2、表单各基础控件的赋值格式是什么?

单行文本

字符串

多行文本

字符串

富文本

字符串

数字控件

数字

单项选择

字符串("1","2","3")

多项选择

["1","2"]

日期

时间对象 类型:Date

时间

时间对象 类型:Date

日期时间

时间对象 类型:Date

人员单选

用户id 类型:String

人员多选

用户id集合 类型:List<String>

部门单选

部门id 类型:String

部门多选

部门id集合 类型:List<String> 

外键

对应外键表单实例数据的id

 

3、数字控件getIntValue(),getDoubleValue(),geFloatValue()方法的特性

答:对于数字控件,低代码专门提供了getIntValue(),getDoubleValue(),geFloatValue()三个方法给使用者,避免使用者在操作数字控件时,会因对象类型不一致导致代码执行异常,以上三个方法分别返回int,double,float三个基础类型的数据,当数字控件未赋值,为null时,以上三个方法皆返回0;

 

4、如何获取列表或表单实例数据中的当前节点、审批状态、当前处理人系统字段信息?

答:通过Document数据获取即可,获取方式如下:

a:当前节点:document.getProcessState();

b:审批状态:document.getProcessStatus();

c:当前处理人:document.getProcessCurrentApprovers();

 

5、如果查询当前节点、审批状态、当前处理人等于某个值的表单实例数据呢?

答:使用$.form.getDocumentsByFilterParam(applicationId, formName, filterParamList)函数,filterParamList设置查询数据,设置方式:

当前节点:var filterParam = new Packages.cn.com.do1.do1cloud.runtime.dto.FilterParam("process_state", "eq", "人工任务1");

审批状态:var filterParam = new Packages.cn.com.do1.do1cloud.runtime.dto.FilterParam("process_status", "eq", "0");

当前处理人:var filterParam = new Packages.cn.com.do1.do1cloud.runtime.dto.FilterParam("process_current_approvers", "in", ["userId1","userId2"]);

 

6、processStatus的值代表什么含义?

答:0:审批中;1:已完成;2:已撤销;4:已回退;5:单步回收;6:已终止;

 

7、FilterParam对象的对比枚举清单

答:大于: gt;大于且等于: ge;小于: lt;小于并且等于: le;等于: eq;不等于: ne;在...之间: between;模糊匹配: like;为空: isNull;非空: isNotNull;包含:in;不包含:notIn

 

8、小数相加的精度丢失问题

低代码中,两个小数相加时,可能会出现精度丢失的问题,

比如:112914.96+33110=146024.96000000002

此时可以使用以下方式进行处理:Number(Number(112914.96+33110).toFixed(2)),toFixed方法的参数为小数位数,正常为2位小数

 

说明:

Number(112914.96+33110).toFixed(2):返回的是字符串:'146024.96'

Number(Number(112914.96+33110).toFixed(2)):前面再用Number类型包装,返回数字

qtKwzQhp65fd3e1d42371.png

 

 

二、  业务建模

1、自定义按钮设置的脚本为什么无法弹出友好提示?

答:业务建模中,只有按钮触发事件中的执行前执行后脚本支持弹出友好提示。

 

2、添加按钮的提交按钮执行后事件再次保存当前表单数据为什么会报错?

答:提交按钮本身的业务就是保存表单,Plus侧不允许在一次业务中连续保存同一张表单,建议将执行后的修改业务迁移至执行前(注意:执行前脚本仅需修改表单数据,不需保存表单;由提交按钮执行保存业务)。

 

三、  流程

1、流程连线上的脚本,需返回什么类型的数据

答:该脚本需返回true或者false,true表示允许流转,false表示不允许流转

 

五、JSON函数

1、  下述低代码的函数1执行后,string的值为:{\"num\": 1.0},数字1被转化为1.0,这是由于Plus使用的内置JSON库导致的,可以采用函数2解决该问题

//函数1:
(function () {
    var jsonObj = {"num": 1};
    var string = $.json.objectToJsonString(jsonObj);
})()

//函数2:
(function () {
    //将json内容定义为字符串 需转义
    var jsonStr = "{\"num\": 1}";
    var jsonObj = $.json.stringToJsonObject(jsonStr);
    var string = $.json.objectToJsonString(jsonObj);}
)() 
  • 发表于 2024-03-22 16:17
  • 阅读 ( 124 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
七小妹
七小妹

12 篇文章

作家榜 »

  1. 七小妹 12 文章
  2. 你是猴子派来的吧 3 文章
  3. 七巧低代码 2 文章
  4. 低代码小刘 2 文章
  5. 彭杏怡 0 文章
  6. 林友景 0 文章
  7. 0 文章
  8. 赵泽伟 0 文章