更改自定义函数可用于更改自定义触发器。您可以将更改自定义函数作为自定义操作和全局函数来执行。自定义操作可以在更改自定义触发器中直接调用,而全局操作可以在更改自定义操作中调用。
要创建更改自定义函数,请转到管理 > 问题/变更管理 > 变更自定义函数。
自定义操作是可执行的自定义函数,允许用户在 ServiceDesk Plus 和其他外部application中操作数据。自定义函数基于 Deluge(Zoho 的专有脚本语言)构建。
自定义操作可用于“更改自定义触发器”,以对变更、其他模块以及外部application执行操作。
请使用以下说明来创建、启用、禁用和删除自定义操作。
在自定义操作列表视图页面中,单击 新建。
在显示的页面中,为您的自定义操作提供名称和说明。
使用名为 Deluge 脚本编辑器的简单拖放界面来构建您的自定义操作。
如下图所示,'changeObj' 和 'context' 将作为参数传递给自定义函数:

您必须以 changeObj 作为参数来编写自定义函数。
执行自定义函数后,将按以下格式返回 Map 数据类型:
您可以通过从自定义函数返回 map 来更新变更字段、添加注释以及更新变更角色。这些自定义函数中使用的格式与 Python 脚本和类相同。有关更多详细信息,请访问此页面。
新的字段值必须按照如下所示的特定格式从自定义函数返回:
让我们考虑一个示例函数,将变更主题更新为“Firewall Upgrade”,并将优先级更新为“High”。
returnJson = Collection();
changeID = changeObj.get("id");
instanceJson = context.get("instance");
helpdeskID = instanceJson.get("id");
inputData = {"change": {"title":"Firewall Upgrade","priority":{"name":"High"}}};
resp = invokeurl
[
url: "https://servername:portnumber/api/v3/changes/" + changeID
type: PUT
parameters: {"input_data": inputData,"TECHNICIAN_KEY":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","PORTALID":helpdeskID}
];
response_status = resp.get("response_status");
if("success".equals(response_status.get("status"))) {
returnJson.insert("result":"success");
}
else {
returnJson.insert("result":"failure");
}
return returnJson;
在变更自定义函数中,您可以调用全局函数,以存储连接外部application、通用功能和配置所需的重要信息。
编写自定义函数后,您可以按照以下步骤进行测试:
测试自定义函数时,您可以使用名为 info 的语句来调试代码并输出结果。例如,为了了解 changeObj 和 context 的结构,您只需运行以下脚本并查看响应。
info
;
info context;
return true;