业务规则-执行脚本操作

业务规则-执行脚本操作

在业务规则下使用执行脚本操作,您可以验证请求并更新字段值来自动化请求工作流。您可以使用脚本验证涉及复杂条件的请求、使用第三方应用程序输入的请求,以及基于服务模板资源的验证。 

您可以对通过浏览器、API、移动和邮件传入的请求执行业务规则脚本。

使用案例:

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

用户记录资产的服务请求。

在本例中,您可以编写一个脚本来自动检查资产可用性,然后将其指派给请求,并更新资产模块。

  • 随时停止请求操作。

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

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

  • 在审批者批准请求后,技术人员或请求者不应变更请求的输入。
  • 不应该允许技术人员将请求状态更改为等待采购除非请求被批准。
  • 当技术员将项目交付给请求人时,应该只允许技术员将请求状态变更为已解决和未关闭。应该只允许请求者在验证接收到的项之后关闭请求。
  • 停止创建请求本身。 

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

在业务规则中添加命令

  • 转到动作, 选择执行脚本然后点击选择。
  • 在显示的页面上,输入执行脚本文件的命令并单击保存

指令示例:
 


在上面截图中, update.py是一个脚本文件(验证和更新字段值),pythonupdate.py $COMPLETE_V3_JSON_FILE 是配置来执行脚本的命令。

支持参数—$COMPLETE_V3_JSON_FILE

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

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

$COMPLETE_V3_JSON_FILE结构


 

{   "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" } 

输入提供给$COMPLETE_V3_JSON_FILE temp file

输入时JSON格式。这里请求键包含除了解析、首次响应逾期时间、逾期使劲按和sla之外的所有V3 API格式的请求字段。

输入文件中给出的附加信息

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

输入文件中给出的附加信息Output JSON format for custom scripts

请求文件的脚本应该返回一个JSON,该JSON具有成功/失败状态,并在请求的历史选项卡中显示一条消息。

通用格式:

{    "Result": "success",    "message": "message"  }
  • Result表示动作的成功/失败状态。
  • Message是要显示在请求的历史选项卡中的信息。

服务器脚本必须将输出JSON(如果有的话)写入提供给脚本的相同临时文件。您必须不调用外部API来更新相同的请求,因为这将不允许将更新后的值传递到级联业务规则。

操作支持

您可以进行更新否定使用JSON返回的操作。

更新操作示例           

  

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


          

字段更新

email_ids用于通知

created_time

资产

udf_fields

service_category

分类

子分类

条目

状态

优先级

模式

级别

影响

紧急度

impact_details

request_type

技术员

 

资源

is_fcr

反操作的例子

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

技术人员不得将请求状态变更为等待采购除非请求被批准。