技术人员可在 Zia 的开发人员控制台中定义特定于其组织的 [Zia] 操作。技术人员可以定义 Zia 支持的所有三类操作,包括直接问题、数据获取问题和操作。
所有 ServiceDesk Plus Cloud 技术人员都可以在 Zia 的开发人员控制台中配置动作。但是,技术人员只能修改或删除他们创建的动作。只有管理员才能完全控制所有动作。
预配置完成后,这些操作将出现在 ServiceDesk Plus Cloud 中 Ask Zia 内的汉堡图标下。
以下是配置任何类型操作的常用初始步骤:
点击 Zia 集成页面上显示的链接,打开 Zia 的开发人员控制台。
点击 "添加动作"并选择 "编写自己的动作"。
比方说,您想定义一个提供系统管理员分机号码的操作。
在新操作表单中,为操作提供一个名称。(名称仅供开发人员控制台内部参考)。
选择回答问题,然后选择 "直接回答"。
说明此操作必须如何在 "Ask Zia "中显示给用户。给操作起一个简短但有意义的名称。
提供问题答案,然后单击 "下一步"。
输入所有可能的问题或句子,以便在 Ask Zia 中调用相同的操作。这些问题将推荐给用户选择。
将问题按顺序显示在 Ask Zia 中。使用每个问题右侧显示的指针重新定位问题。
点击保存。
选择是否只让 Zoho 用户或网络上的所有用户访问该操作。
点击保存。
点击 "添加后续操作"可定义顺序操作。
从可用的问题中进行选择,然后点击 "更新"。
然后,点击左侧窗格中显示的 ServiceDesk Plus Cloud,再点击页面上半部分的 "更新"。
比方说,您想定义一个按主题搜索请求的操作。
在新操作表单中,为您的操作提供一个名称。(名称仅供开发人员控制台参考)。
选择 "回答问题",然后选择 "通过获取数据构建答案"。
说明此操作必须如何在 "Ask Zia "中显示给用户。给操作起一个简短但有意义的名称。
使用添加图标并输入所有可能的问题或句子,以便在 Ask Zia 中调用相同的操作。这些问题将作为建议显示,供用户选择。
将问题排序显示在 Ask Zia 中。使用每个问题右侧显示的指针调整问题的位置。第一个问题将列在 Ask Zia 的汉堡菜单下。
然后,您必须提供参数。
点击添加参数并填写字段。
使用添加图标,输入操作所需的所有参数。
组织参数,以便在调用操作时按顺序显示在 Ask Zia 中。使用每个参数左侧显示的指针调整参数的位置。
选择只有 Zoho 用户还是网络上的所有用户可以访问此操作,然后点击 "完成"。
点击显示页面上的编辑执行功能。
在编辑器中插入脚本,然后点击保存脚本。(下面是示例操作的格式化脚本)。
您可以在页面右侧提供的实时控制台中与 Zia 进行交互,立即测试脚本的执行情况,如下图所示:
点击 "完成"。
然后,点击左侧窗格中显示的 ServiceDesk Plus Cloud,并点击页面上半部分的 "发布"。
假设您想定义一个添加提醒的操作。
在新操作表单中,为您的操作提供一个名称。(名称仅供开发人员控制台参考)。
选择执行操作。
说明此操作必须如何在 "Ask Zia "中显示给用户。给操作取一个简短但有意义的名称。例如,添加提醒可以代表任务 "Zia,您能为请求添加提醒吗?
使用添加图标并输入所有可能的问题或句子,以便在 Ask Zia 中调用相同的操作。这些问题将推荐给用户选择。
将问题按顺序显示在 Ask Zia 中。使用每个问题右侧显示的指针调整问题的位置。第一个问题将列在 Ask Zia 的汉堡菜单下。
点击下一步并提供参数。
点击添加参数按钮并填写详细信息。
使用添加图标,输入操作所需的所有参数。
组织参数,以便在调用操作时按顺序显示在 Ask Zia 中。使用显示在每个参数左侧的指针重新定位参数。
选择只有 Zoho 用户还是网络上的所有用户可以访问此操作,然后单击 "完成"。
点击完成。
点击显示页面上的编辑执行功能。
在编辑器中插入脚本,然后单击保存脚本。(以下是示例操作的格式化脚本)。
您可以在页面右侧提供的实时控制台中与 Zia 进行交互,立即测试脚本的执行情况,如下图所示:
点击完成。
然后,点击左侧窗格中显示的 ServiceDesk Plus Cloud,并点击页面上半部分的更新。
在 ServiceDesk Plus Cloud 下,选择过滤器以查看相应的操作。
点击要修改或停用的操作。
要修改,请使用页面右上角显示的 "编辑 "图标。在数据获取问题和操作中,可以通过单击 "编辑 "下拉菜单中的 "编辑代码 "来修改脚本。
要停用,请单击垂直椭圆按钮并单击停用。停用的操作将显示在非活动 [操作] 过滤器下。
参数是为完成操作而必须从用户处接收的输入数据。
参数类型 -为您的参数选择合适的数据类型。Zia 支持以下数据类型:
数组类型参数 - 如果使用数组类型参数,可能需要输入以下附加信息:
当您在 ServiceDesk Plus Cloud 中与 Zia 交互时,Zia 会通过显示提示来获取操作中配置的参数输入。
result = Map();
/*
Criteria to search by subject
*/
criteria = Map();
criteria.put("condition","like");
criteria.put("field","subject");
criteria.put("value",searchsubject);
list_info_param = Map();
list_info_param.put("search_criteria",criteria);
paramMap = Map();
paramMap.put("list_info",list_info_param);
apiUrl = "/api/v3/requests";
client_data = sessionData.get("client_data");
if(client_data != null)
{
appName = client_data.get("appname");
if(appName != null)
{
apiUrl = "/app/" + appName + apiUrl;
}
}
response = invokeurl
[
url :"http://sdpondemand.manageengine.com"+apiUrl
type :GET
parameters:{"input_data":paramMap}
connection:"sdpondemand3"
];
info response;
// Display the api result in table format
requestArr = response.get("requests");
card = list();
item = Map();
item.put("type","table");
item.put("heading","Requests");
columns = {"Request Id","Request Subject","Requester name","Assigned To ","Status","Due Date","Link"};
item.put("columns",columns);
rows = {};
for each request in requestArr
{
row = {};
row.add(request.get("display_id"));
row.add(request.get("subject"));
requestername = request.get("requester").get("name");
row.add(requestername);
technician = request.get("technician");
technicianName = "-";
if(technician != null)
{
technicianName = technician.get("name");
}
row.add(technicianName);
row.add(request.get("status").get("name"));
dueByTime = request.get("due_by_time");
if(dueByTime != null)
{
dueByTimeLabel = dueByTime.get("display_value");
}
if(dueByTimeLabel == null)
{
dueByTimeLabel = "-";
}
row.add("" + dueByTimeLabel);
row.add("https://sdpondemand.manageengine.com/app/" + appName + "/WorkOrder.do?woMode=viewWO&woID=" + request.get("id"));
rows.add(row);
}
item.put("rows",rows);
card.add(item);
//info "card data in this actions======>" + card;
if(requestArr.size() > 0)
{
result.put("card",card);
}
else
{
result.put("message","No results found.");
}
return result;
apiUrl = "/api/v3/reminders";
client_data = sessionData.get("client_data");
if(client_data != null)
{
appName = client_data.get("appname");
if(appName != null)
{
apiUrl = "/app/" + appName + apiUrl;
}
}
reminder_base = Map();
if(summaryparam != null && reminderdateparam != null && remindertimeparam != null)
{
reminder_base.put("summary",summaryparam);
datemap = Map();
reminderdateparam = reminderdateparam.toTime().addHour(remindertimeparam.toTime().getHour());
reminderdateparam = reminderdateparam.toTime().addMinutes(remindertimeparam.toTime().getMinutes());
datemap.put("value",reminderdateparam.toTime().toLong());
reminder_base.put("date",datemap);
paramMap = Map();
paramMap.put("reminder",reminder_base);
response = invokeurl
[
url :"http://sdpondemand.manageengine.com"+apiUrl
type :POST
parameters:{"input_data":paramMap}
connection:"sdpondemand3"
];
responseStatusObject = response.get("response_status");
result = Map();
if(responseStatusObject != null)
{
responseStatusMessage = responseStatusObject.get("status");
resultString = "Error while adding reminder.";
if(responseStatusMessage == "success")
{
resultString = "Reminder added successfully.";
}
else
{
responseMessages = responseStatusObject.get("messages").toJSONList().get(0);
resultString = resultString + " Please repeat the process with a valid " + responseMessages.get("field") + ".";
}
result.put("message",resultString);
}
}
return result;