## 其他 ### 创建唯一的 ID 编号 * 方法说明 创建唯一的 ID 编号。 ``` function createUuid(): string ``` * 输入参数 无。 * 输出参数 * 表示一个唯一 ID 编号的字符串。 * 异常 本方法会抛出异常。 ### 发送邮件 * 方法说明 向目标收件方发送简单邮件。 ``` function sendMail(param: string): void ``` * 输入参数 * param,string 类型,表示邮件的详情,反序列化后的示例如下: ``` { "to": "yy@yy.com", // 接收方,必填 "subject": "Daily Meeting", // 主题,必填 "text": "xxx", // 内容,必填 "cc": "xxx@xxx.com,yyy@yyy.com", // 抄送,选填 "bcc": "zzz@zzz.com" // 秘密抄送,选填 } ``` * 输出参数 无。 * 异常 本方法会抛出异常。 ### 发送用户消息 * 方法说明 发送用户消息,不仅可以弹窗提醒,还可以在RDS的消息管理界面进行查看。 ``` function sendUserMessage(level: string, messageTitle: string, messageBody: string): void ``` * 输入参数 * level,string 类型,表示消息提醒的等级,有ERROR,WARN,INFO三种等级。 * messageTitle,string 类型,表示用户消息的标题。 * messageBody,string 类型,表示用户消息的内容。 * 输出参数 无。 * 异常 本方法不会抛出异常。 ### JSON字符串转化为XML字符串 * 方法说明 将json字符串转化为xml字符串 ``` function jsonToXml(param: string): string ``` * 输入参数 * param,string 类型,表示传入的json字符串 * 输出参数 * xml字符串 * 异常 本方法会不抛出异常。 ### MD5字符串加密 * 方法说明 将字符串进行加密后返回 ``` function md5Encode(param: string): string ``` * 输入参数 * param,string 类型,表示传入的字符串 * 输出参数 * 32位小写字符串 * 异常 本方法会抛出异常。 ### Base64字符串重编码 * 方法说明 将字符串进行重编码后返回 ``` function base64Encode(param: string): string ``` * 输入参数 * param,string 类型,表示传入的字符串 * 输出参数 * UrlBase64 重编码后的字符串 * 异常 本方法会抛出异常。 ### 转换成分页对象 * 方法说明 根据给定的参数和数据,转换成分页对象并进行返回。 ``` function transToPageObj(totalCount: number, currentPage: number, pageSize: number, totalPage: number, pageList: string): string ``` * 输入参数 * totalCount, number 类型,表示分页数据的总条数 * currentPage, number 类型,表示当前是第几页 * pageSize, number 类型,表示每页显示的数量 * totalPage, number 类型,表示总页数 * pageList, string 类型,表示当前页的数据 * 输出参数 * 转换后的分页对象字符串 * 异常 本方法不会抛出异常。 * 请求示例 ``` function transToPageObj() { // 1. 提供分页相关参数和源数据 // 当前是第几页,最小值就是1! var currentPage = 2; // 每页的数据条数 var pageSize = 20; // 获取相关的数据,以实际情况为准进行修改 var data = jj.findSitesByCondition("{}","ASC"); // 打印查询到的数据 jj.scriptLog("INFO", "transToPageObj", data); // 转换成对象,方便截取当页的数据 var dataObj = JSON.parse(data); // 截取指定页的数据 var pageListObj = dataObj.slice((currentPage-1)*pageSize, currentPage*pageSize); // 将截取的数据转成字符串 var pageListStr = JSON.stringify(pageListObj); // 2. 调用脚本方法,转换成分页对象 // 将数据转换成分页对象 var res = jj.transToPageObj(dataObj.length, currentPage, pageSize, Math.ceil(dataObj.length/pageSize), pageListStr); // 打印转换后的结果 jj.scriptLog("INFO", "res=", res); // 3. 拿着分页对象进行返回或其他操作 // TODO } ``` ### 获取天风任务参数 * 方法说明 在脚本中直接获取到天风任务参数。 ``` function getScriptValue(key: string): string ``` * 输入参数 * key,变量表达式。 * 输出参数 天风任务中参数key的值的字符串。 * 异常 本方法不会抛出异常。该方法如果获取一个不存在的值时将会返回NULL。 * 请求示例 ``` function test() { //获取任务变量status jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("task.variables.status")) //获取b4块选出的库位 jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("blocks.b4.siteId")) //获取输入参数agvId jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("taskInputs.agvId")) } ``` ### 批量放行 * 方法说明 批量放行机器人,与等待放行块结合使用。 ``` function releaseWaitPass(agvIds: Array): boolean ``` * 输入参数 * agvIds,String 数组类型,需放行的机器人Id。 * 输出参数 * true,放行成功。 * false,放行失败 * 异常 本方法不会抛出异常。 * 请求示例 ``` function releaseWaitPass(){ let agvIds = []//注意参数是数组 agvIds.push("AMB-150J")//放行一个就只用push一个 agvIds.push("sim_01") jj.releaseWaitPass(agvIds) } ``` ### 脚本公平锁 * 方法说明 根据锁名称,获取不同的锁,并发情况下串行执行一段代码 ``` function withFairnessLock(lockName: string, fair: boolean, action: () => void): void; ``` * 输入参数 * lockName:String 锁的名称 * fair:true: 公平锁更具时间先后顺序获取,false: 非公平锁,随机获取锁 * action: 执行的代码块 * 输出参数 无 * 异常 本方法不会抛出异常。 * 请求示例 ``` jj.withFairnessLock("kk", true, () => { // 代码块 jj.scriptLog("INFO", "test", "test") }) ``` 进程已结束,退出代码为 0