
# 创建"查询维修人员"脚本
当派单员选择派单的下一步接单人时，需要先查询出，维修人员的列表，然后才能将流程走到维修人员的名下，因此需要创建一个"查询维修人员"的脚本逻辑。
#### 操作步骤
1. 在"我的应用"中，单击"设备维修管理系统"，进入应用。
2. 在"WorkOrder"目录中，将鼠标放在"Script"上，单击界面上出现的"+"，在弹出菜单中选择"脚本"。
3. 在弹窗中，选中"创建一个新脚本"，在"名称"文本框中输入"queryWorker"，单击"添加"。 
   当编辑已有脚本时，为防止编辑时多人篡改，编辑前请单击![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483231177.png)进行锁定。
   
   
4. 在代码编辑器中插入如下脚本代码。 
   ```
   import * as context from 'context';
   import * as db from 'db';
    
   //使用数据对象PortalUser(业务用户)
   @useObject(['PortalUser'])
    
   @action.object({ type: "param" })
   export class ActionInput {
   }
    
   @action.object({ type: "param" })
   export class ActionOutput {
       @action.param({ type: 'Any', label: 'object', isCollection: true })
       userList: object[];
   }
    
   @action.object({ type: "method" })
   export class QueryWorker {
       @action.method({ input: 'ActionInput', output: 'ActionOutput' })
       public queryWorker(input: ActionInput): ActionOutput {
           let out = new ActionOutput();
           let portalUserObject = db.object('PortalUser');
    
           //查询用户类型为ms（维修人员）的用户。（注册用户的脚本中设置了用户类型）
           let portalUsers = portalUserObject.queryByCondition({
               "conjunction": "AND",
               "conditions": [{
                   "field": "userType",
                   "operator": "eq",
                   "value": "ms"
               }]
           });
    
           //将查询结果转换为选项列表的形式（id和name）。
           let selectValue = portalUsers.map(function (v, i, a) {
               return {
                   'value': {
                       "id": v['id'],
                       "name": v['usrName']
                   },
                   'display': v['usrName']
               }
           });
    
           //当前登录的用户为平台用户（非业务用户），则加入到维修人员列表中，用于测试。
           if (context.getUserType() == context.UserType.User) {
               selectValue.push({
                   'value': {
                       "id": context.getUserId(),
                       "name": context.getUserName()
                   },
                   'display': context.getUserName()
               });
           }
    
           out.userList = selectValue;
    
           return out;
       }
   }
   ```
   
   
5. 单击编辑器上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001482991125.png)，保存脚本。
6. 测试脚本能否正常执行。 
   1. 单击编辑器上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483071685.png)，执行脚本。
   
   2. 在界面底部，单击测试窗口右上角![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432834882.png)执行图标。
      执行成功，会在"输出"页签返回查询结果，请记录"name"值，此参数在[创建"派单功能"脚本](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_07_1059.html)会作为输入参数使用。
      图1输出查询出的维修人员信息   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001433151774.png) 
   
   
   
   
7. 测试成功，单击编辑器上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432834886.png)，启用发布脚本。
 
