请求自定义函数

请求自定义函数可用于业务规则、请求自定义触发器、请求生命周期以及请求计时器操作。要创建请求自定义函数,请转到 管理 > 事件管理 > 请求自定义函数

 

自定义操作

自定义操作是可执行的自定义函数,允许用户在 ServiceDesk Plus 和其他外部application中处理数据。自定义函数基于 Deluge 构建,它是 Zoho 的专有脚本语言。

自定义操作可在业务规则、自定义触发器、请求生命周期和请求计时器操作中使用,以对请求、其他模块以及外部application执行操作。

使用以下说明可创建、启用、禁用和删除自定义操作。

  • 使用“新建”按钮创建自定义操作。
  • “操作”按钮允许您批量删除、禁用和启用自定义操作。要修改单个自定义操作,请使用显示在该自定义操作旁边的图标。请注意,只有处于活动状态的自定义操作才能在上述配置中使用。
  • 使用关键字在提供的字段中搜索自定义操作。使用顶部筛选器可显示用于特定功能的自定义操作。

 

添加新的自定义操作

  • 在自定义操作列表视图页面上单击 新建
  • 在显示的页面中,为您的自定义操作提供名称和说明。
  • 使用名为 Deluge Script Editor 的简单拖放界面来构建您的自定义操作。

如以下屏幕截图所示,'requestObj' 和 'context' 将作为参数传递给自定义函数:

 

您必须以 requestObj 作为参数来编写自定义函数。

执行自定义函数后,将按以下格式返回 Map 数据类型:

{
"message":"执行成功",
"status":"成功/失败"
}

 

您可以通过从自定义函数返回映射,来更新请求字段、添加注释以及为请求添加条件审批。这些自定义函数中使用的格式与 python 脚本和类相同。有关更多详细信息,请访问此页面

 

您可以在 requestObj 中更新以下默认请求字段:
subject、resolution、mode、group、item、level、impact、service_category、update_reason、priority、udf_fields、impact_details、subcategory、status、request_type、description、urgency、technician、category。您还可以更新 requestObj 中的其他附加字段。
您还可以更新 requestObj 中的其他附加字段。

 

新的字段值必须按照如下所示的特定格式从自定义函数中返回:

让我们来看一个示例脚本,将请求主题更新为 'Firewall Upgrade',并将优先级更新为 'High'。

 

returnjson = {
	"operation": [{
		"INPUT_DATA": [{
			"request": {
					"subject": "防火墙升级",
					"priority": {"name": "高"}
			}
		}],
		"OPERATIONNAME": "UPDATE",
		"FORMAT": "V3"
	}],
	"result": "success",
	"message": "请求已更新!!"
};

return returnjson;

 

假设您希望为来自 Network/Internet 类别的请求分配高优先级。您可以在业务规则操作/自定义触发器操作/请求生命周期中使用以下脚本来自动执行此操作:

returnjson = Map();
if(requestObj.containsKey("category"))
{
    if(requestObj.get("category").get("name") == "Internet" || requestObj.get("category").get("name") == "Network")
    {
        returnjson = {
			"operation": [{
				"INPUT_DATA": [{
					"request": {
							"priority": {"name": "High"}
					}
				}],
				"OPERATIONNAME": "UPDATE",
				"FORMAT": "V3"
			}],
			"result": "success",
			"message": "Request updated!!"
		};
    }
}
return returnjson;

 

在请求自定义函数中,您可以调用全局函数,以存储连接外部application、通用功能和配置所需的重要信息。
要查看 Deluge 用例,请访问此页面

 

脚本测试执行

编写自定义函数后,您可以按照以下步骤进行测试:

  • 单击 保存并测试
  • 从显示的请求列表中选择一个示例请求,然后单击 下一步
  • 将传递给自定义函数的数据会显示在参数 requestObj 下。
  • 单击 执行
如果您在测试自定义函数时使用 invokeurl 发起任何 API 调用,则该 API 将被实际调用。请确保不要调用可能导致意外后果的 API。

 

调试提示

测试自定义函数时,您可以使用名为 info 的语句来调试代码并打印输出。例如,为了了解 requestObj 和 context 的结构,您只需运行以下脚本并查看响应。

info
requestObj;
info context;
return true;

 

有关 Deluge 的更多详细信息,请访问 Deluge 帮助指南