业务规则 - 执行脚本操作

业务规则 - 执行脚本操作

通过业务规则中的执行脚本操作,可以验证请求并更新字段值,从而自动执行请求工作流。您可以使用脚本对涉及复杂条件的请求或使用第三方应用程序输入的请求进行验证。


您可以对通过浏览器、应用程序接口、手机和邮件接收的请求执行业务规则脚本。

用例

  • 根据不同模块或应用程序中的字段值更新请求字段。

用户记录了一个资产服务请求。


在这种情况下,可以编写一个脚本来自动检查资产的可用性,然后将其指派给请求,并更新资产模块中的资产状态。

  • 在任何时间点停止请求操作。

您可以简单地定义请求者或技术人员不允许进行的,无论是数据修改还是请求处理过程中任何给定阶段的动作本身。


用户记录了一个新笔记本电脑的服务请求。在请求处理过程中,可以在以下情况下使用业务规则脚本执行:

  • 审批人批准请求后,技术人员或请求者就不能变更请求的输入。
  • 除非请求已获批准,否则技术人员不得将请求状态为等待采购。
  • 当技术员将物品交付给请求者时,技术员只能将请求状态变更为已解决,而不能变更为已关闭。只有申购人在核实收到的物品后才可以关闭请求。

 

  • 停止创建请求。

当同一请求者对同一类别、子类别和项目提出请求时,为了防止重复请求。

 

在业务规则中添加命令

  • 转到动作,单击选择自定义动作>> 执行脚本。
  • 在显示的文本框中输入包含脚本的文件名,然后单击保存。

配置示例:

考虑从 ServiceDesk Plus 提出 Jira 工单的情况。 为该动作配置自定义脚本:

  1. 用下面的命令创建一个文本文件:

  py CreateJiraTicket.py $COMPLETE_V3_JSON_FILE
  1. 将文件保存为 create-jira-ticket.txt,并放在 [SDP_HOME]/integration/custom_scripts/executor_files 目录下。

  2. 配置自定义动作时,在执行器字段中输入文件名。

  3. 提供所有其他详细信息后单击保存。

 



在执行过程中,应用程序将从给定的文本文件中获取命令。

支持的参数-$COMPLETE_V3_JSON_FILE

$COMPLETE_V3_JSON_FILE 表示一个文件的路径,该文件包含完整的请求详细信息、JSON 格式的先前和更新字段值。该文件是临时文件,脚本执行后将自动删除。

临时 JSON 文件创建在 SDP_Home\integration\custom_scripts\request\ 目录中,文件名为 <requestid_timestamp>.json。

 

$COMPLETE_V3_JSON_FILE structure


 

{
  "request": {
    <all request properties in V3 format>
  },
  "diff": {
    "old": {
      "request": {
        "priority": {
          "id": "4",
          "name": "High"
        },
        "urgency": {
          "id": "3",
          "name": "Normal"
        },
        "impact_details": "High impact for servers"
      }
    },
    "new": {
      "request": {
        "priority": {
          "id": "1",
          "name": "Low"
        },
        "urgency": {
          "id": "4",
          "name": "Low"
        },
        "impact_details": "Low impact for servers"
      }
    }
  },
  "LOGIN_NAME": "administrator",
  "LOGGEDIN_USER_TYPE": "Technician",
  "LOGGEDIN_USER_NAME": "administrator",
  "OPERATION_TYPE": "add"
}
Copy to clipboardCopy to clipboardCopy to clipboard

 

提供给临时文件 $COMPLETE_V3_JSON_FILE 的输入信息

输入为 JSON 格式。 在这里,请求键包含用户提供的字段和系统以 V3 API 格式填写的字段。

 

输入文件中提供的其他信息

  1. LOGIN_NAME 
  2. LOGGEDIN_USER_NAME 
  3. LOGIN_USER_ID 
  4. LOGGEDIN_USER_TYPE
  5. OPERATION_TYPE

 

为自定义脚本输出 JSON 格式

请求文件的脚本应返回一个 JSON 文件,其中包含成功/失败状态和一条信息,该信息将显示在请求的历史选项卡中。


常规格式:

{

  "result": "success",

  "message": "Message"

}Copy to clipboardCopy to clipboardCopy to clipboard
  • 结果表示动作的成功/失败状态。
  • 信息是将显示在请求历史选项卡中的信息。

 

服务器脚本必须将输出 JSON(如有)写入提供给脚本的同一临时文件。不得调用外部 API 调用来更新同一请求,因为这样做将无法把更新后的值转入级联业务规则。

 

支持的业务

您可以使用 JSON 返回值执行更新和否定操作。

所有可通过请求 API 更新的字段也可使用自定义脚本进行更新。

更新操作示例     

{
  "result": "success",
  "message": "Sample Python script",
  "operation": [
    {
      "OPERATION_NAME": "UPDATE",
      "INPUT_DATA": [
        {
          "request": {
            "urgency": {
              "name": "High"
            },
            "group": {
              "name": "Network"
            },
            "priority": {
              "name": "High"
            }
          }
        }
      ]
    }
  ]
}

 

否定动作示例

{
  "result": "success",
  "operation": [
    {
      "OPERATION_NAME": "NEGATE",
      "REASON": "Negate Reason"
    }
  ]
}

 

点击此处 查看以下用例的示例脚本:

除非请求获得批准,否则技术人员不得将请求状态变更为等待购买。

 

 

 

要了解有关编写自定义脚本的更多信息,请单击此处