请求自定义函数可用于业务规则、请求自定义触发器、请求生命周期以及请求计时器操作。要创建请求自定义函数,请转到 管理 > 事件管理 > 请求自定义函数。
自定义操作是可执行的自定义函数,允许用户在 ServiceDesk Plus 和其他外部application中处理数据。自定义函数基于 Deluge 构建,它是 Zoho 的专有脚本语言。
自定义操作可在业务规则、自定义触发器、请求生命周期和请求计时器操作中使用,以对请求、其他模块以及外部application执行操作。
使用以下说明可创建、启用、禁用和删除自定义操作。
如以下屏幕截图所示,'requestObj' 和 'context' 将作为参数传递给自定义函数:

您必须以 requestObj 作为参数来编写自定义函数。
执行自定义函数后,将按以下格式返回 Map 数据类型:
您可以通过从自定义函数返回映射,来更新请求字段、添加注释以及为请求添加条件审批。这些自定义函数中使用的格式与 python 脚本和类相同。有关更多详细信息,请访问此页面。
新的字段值必须按照如下所示的特定格式从自定义函数中返回:
让我们来看一个示例脚本,将请求主题更新为 '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;
编写自定义函数后,您可以按照以下步骤进行测试:
测试自定义函数时,您可以使用名为 info 的语句来调试代码并打印输出。例如,为了了解 requestObj 和 context 的结构,您只需运行以下脚本并查看响应。
inforequestObj;