电话 400-111-2626

# 使用教程

使用教程为教学如何初步针对脚本进行使用,涵盖脚本书写的全流程,从脚本编辑到脚本调试,再到日志查看,最后到脚本调优。

# 使用流程

  1. 完成业务梳理:需明确业务,确认业务细节及对应的表单结构,明确脚本位置:执行前or之前后,同步or异步等

如:用户点击“提交”按钮后,可同步考勤数据,关联表单:"考勤结果表"。

  1. 明确代码逻辑:脚本逻辑梳理,需输出针对业务实现的脚本逻辑如何处理

如:针对“同步考勤数据”,需区分步骤:

a. 获取考勤数据-构建API

b. 解析API返回数据--jason数据解析

c. 存入“考勤结果表”表单中--将数据写入表单中
  1. 脚本书写:根据脚本逻辑,书写脚本,针对逻辑,可逐步去低代码函数库及场景库中寻找对应的demo。使用标准函数库,可减少外部API请求等,降低脚本性能问题的出现。

  2. 脚本调试:目前脚本调试建议使用三种方式进行调试

a. 站内信输出调试

将每一步需要获取的数据可通过站内信的方式进行发送,验证逻辑是否正确。

//站内信标题    
var subject = "站内信的标题";   
//站内信正文   
var context = "站内信的正文内容";    
//接收用户id集合    
var receiveUserIds = $.context.getCurrentUserId();     
//发送站内信     
$.message.sendGeneralStationMessage(subject, context, receiveUserIds);

b. 脚本执行日志查看

通过管理端,查看脚本执行日志。

image.png

c. 通过管理端在线监控+日志函数进行调试。

image.png

image.png

(function(){      
  //日志字符串    
  var logger = "{}+{}={}";     
  //替换对象     
  var add1 = 1;   
  var add2 = 2;  
  var result = 3;  
  //获取异常日志内容
  var errorInfo = $.log.error(logger, add1, add2, result);    
  //获取提示日志内容     
  var info = $.log.info(logger, add1, add2, result);     
  //获取校验日志内容
  var debugInfo = $.log.debug(logger, add1, add2, result);
  //获取警告日志内容
  var warnInfo = $.log.warn(logger, add1, add2, result);
  //返回    
  return info;  
})()

# 入门案例

场景描述: 提交校验-报销金额字段必须小于1000元

分析:

1. 完成业务梳理:

业务:用户填写报销单后,每次填写的报销金额不得高于1000元 表单:报销单-报销总金额 脚本位置:报表单-提交按钮-执行前

2. 明确代码逻辑:

a. 获取当前提交数据“报销总金额”

b. 判断“报销总金额”是否小于1000

c. 若小于则通过,大于则提醒不得大于1000

3. 脚本书写:

(function(){
//获取当前提交表单
var doc = $.context.getCurrentDocument();
//获取总金额控件值
var count = doc.getElementByName("报销金额").getIntValue();
if(count > 1000){
//创建校验消息对象
var message = $.validate.create();
message.addError("金额大于1000,不允许提交;");
return message;
}
})()

4. 脚本调试:在运行端发起报销进行调试

# 入门语法说明

  1. 获取当前文档
(function(){      
//获取当前文档      
var currentDocument = $.context.getCurrentDocument();      
//返回文档      
return currentDocument; })()
  1. 获取当前文档某个字段值
(function(){
//获取当前提交表单
var doc = $.context.getCurrentDocument();
//获取总金额控件值,“报销金额”为字段名
var count = doc.getElementByName("报销金额").getIntValue();
})()
  1. 数据新增
(function(){
//获取当前应用ID
    var appId =$.context.getCurrentApplicationId();
//写入哪张表单中
    var doc = $.form.createEmptyDocument(appId,"学生表");
//针对每个字段进行赋值   “字段名”“赋值”
    doc.addElement("姓名","steven");
    doc.addElement("年龄",24);
//保存表单
    $.form.saveFormDocument(doc,appId);
})()
  1. 数据编辑/更新
(function(){
//获取当前提交文档
    var doc = $.context.getCurrentDocument();
//更新文档字段内容
    doc.addElement("姓名","steven");
    doc.addElement("手机号码","138****0000");
})()
  1. 数据删除(整表删除)
(function(){
//获取应用ID
    var appId = $.context.getCurrentApplicationId();
//删除表单信息
    $.form.deleteAllDocumentsByFormName(appId,"人力外勤信息");
})()
  1. 数据删除(指定数据)
(function(){
//获取应用ID
    var appId = $.context.getCurrentApplicationId();
//构建表单对象
    var fieldMap = new Packages.java.util.HashMap();
//构建筛选
    fieldMap.put("数量", 100);
//删除指定数据
    $.form.deleteFormDocumentsByFieldNameAndValue(appId, "采购材料", fieldMap );
})()
  1. 善用站内信, 验证/查看对象信息(用户对象、表单对象等)
(function(){
      //获取当前用户
     var user = $.context.getCurrentUser();
     //如果需要操作用户相关属性, 可以通过发送站内信,查看对象属性信息
     //站内信标题
     var subject = "user对象获取";
     //站内信正文
     var context = "user对象"+$.json.objectToJsonString(user);
     //接收用户id集合
     var receiveUserIds = $.context.getCurrentUserId();
     //发送站内信
     $.message.sendGeneralStationMessage(subject, context,receiveUserIds);
})()
  1. 在线调试,日志输出查看对象信息(用户对象、表单对象等)
(function(){
  //日志字符串
  var logger = "{}+{}={}";
  //获取当前用户
  var add1 = $.context.getCurrentUser();
  //获取当前文档
  var add2 = $.context.getCurrentDocument();
  //获取当前日期对象
  var result = $.date.getCurrentDate();
  //获取提示日志内容
  var info = $.log.info(logger, add1, add2, result);
})()
1 / 0