创建“生成工单”脚本及公共接口
“生成工单”功能对应电梯管理流程的第一个节点,客服人员在录入完成维修信息、提交维修单时将会调用“生成工单”脚本及公共接口。
创建“生成工单”脚本
- 在“我的应用”中,单击“设备维修管理系统”,进入应用。
- 在“WorkOrder”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。
- 在弹窗中,选中“创建一个新脚本”,在“名称”文本框中输入“createWorkOrder”,单击“添加”。
当编辑已有脚本时,为防止编辑时多人篡改,编辑前请单击进行锁定。
- 在代码编辑器中插入如下脚本代码。
脚本中红色内容请替换为实际的对象名、字段名。
//本脚本用于创建工单 import * as db from 'db';//导入处理object相关的标准库 import * as context from 'context';//导入上下文相关的标准库 import * as date from 'date'; //定义入参结构,入参包含1个参数:workOrder对象,为必填字段 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'Object', required: true, label: 'object' }) workOrderData: object; } //定义出参结构,出参包含1个参数,workOrder的记录id @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'String' }) id: string; } //使用数据对象HW__WorkOrder__CST @useObject(['HW__WorkOrder__CST']) @action.object({ type: "method" }) export class CreateWorkOrder { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public createWorkOrder(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { let workOrderData = input.workOrderData; //将入参赋值给workOrderData变量,方便后面使用 let s = db.object('HW__WorkOrder__CST'); //获取HW__WorkOrder__CST这个Object的操作实例 let userName = context.getUserName(); workOrderData['HW__status__CST'] = '待派单'; workOrderData['HW__assignedFme__CST'] = '派单员'; workOrderData['HW__createdBy__CST'] = userName; let id = s.insert(workOrderData); if (id) { out.id = id; } else { error.name = "WOERROR"; error.message = "无法创建工单!"; throw error; } } catch (error) { console.error(error.name, error.message); context.setError(error.name, error.message); } return out; } }
- 单击编辑器上方,保存脚本。
- 测试脚本能否正常执行。
- 单击编辑器上方的,执行脚本。
- 在界面底部输入测试数据,单击测试窗口右上角执行图标。
测试报文样例如下:
{ "workOrderData":{ "createdDate":"2020-09-30 12:00:00", "HW__recoveryTime__CST":"2020-09-30 12:00:00", "HW__arriveTime__CST":"2020-09-30 12:00:00", "HW__title__CST":"电梯无法关门", "HW__priority__CST":"高", "HW__workOrderId__CST":"WD0000123456", "HW__instanceId__CST":"" } }
执行成功,会在“输出”页签返回查询结果。
图1 输出工单ID号
- 测试成功,单击编辑器上方的,启用脚本。
创建“生成工单”公共接口
- 在APP视图下,单击“服务”,进入公共接口创建页面。
图2 创建公共接口入口
- 单击“新建”,创建“生成工单”脚本“HW__createWorkOrder”的公共接口。
设置接口参数信息:操作名称为“createWorkOrder”,版本为“1.0.0”,URL为“/createWorkOrder”,“类型”选择“脚本”,“资源”为“HW__createWorkOrder”,方法为“POST”,然后单击“保存”。
图3 新建createWorkOrder接口