华为云ASTRO轻应用-创建“生成工单”脚本及公共接口:创建“生成工单”脚本
时间:2025-03-03 11:34:58
创建“生成工单”脚本
- 在“我的应用”中,单击“设备维修管理系统”,进入应用。
- 在“WorkOrder”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。
- 在弹窗中,选中“创建一个新脚本”,在“名称”文本框中输入“createWorkOrder”,单击“添加”。
当编辑已有脚本时,为防止编辑时多人篡改,编辑前请单击
进行锁定。
- 在代码编辑器中插入如下脚本代码。
脚本代码中,“HW”为命名空间的名称,请根据实际需求进行替换。
//本脚本用于创建工单 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__ CS T @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号
- 单击编辑器上方的
- 测试成功,单击编辑器上方的
,启用脚本。
support.huaweicloud.com/bestpractice-astrozero/astrozero_07_1046.html