状态延迟后通知
状态延迟后通知。
本文档介绍如何在工单在特定状态中停留超过指定时间后发送通知。更多详细内容请参考 iTop 官方文档。
概述
当工单在 assigned 状态中超过 2 小时和 6 小时时分别通知相关人员。需要:
- 定义实现
iMetricComputer的 PHP 类,计算固定延迟作为秒表目标 - 在 UserRequest 上添加秒表属性,在
assigned状态时计时,使用固定目标 - 设置工作时间计算方式
使用 ITSM Designer(Combodo 客户)
定义目标
需要 “Designer PHP developer” 配置文件。定义 6 小时延迟,在 2 小时(33%)和 6 小时(100%)时通知:
class FixedDelayMetric implements iMetricComputer
{
public static function GetDescription()
{
return "iTop configurable delay in hours, 6 by default";
}
public function ComputeMetric($oObject)
{
$iRes = 3600 * MetaModel::GetConfig()->GetModuleSetting('itop-tickets', 'pending_delay', '6');
return $iRes;
}
}
在 iTop 配置文件中添加:
$MyModuleSettings = array(
'itop-tickets' => array(
'pending_delay' => 36,
),
);
添加秒表
- 创建秒表,选择状态
assigned - 在 33% 处添加阈值
- 在 100% 处添加阈值
定义工作时间
- 使用
DefaultWorkingTimeComputer进行 24x7 计时 - 使用
SLAComputation考虑工作时段(通常仅适用于子工单类)
使用 iTop 扩展
定义目标
class FixedDelayMetric implements iMetricComputer
{
public static function GetDescription()
{
return "Fixed 6h delay";
}
public function ComputeMetric($oObject)
{
$iRes = 6 * 3600; // 目标以秒为单位
return $iRes;
}
}
添加秒表
<field id="fixdelay" xsi:type="AttributeStopWatch" _delta="define">
<states>
<state id="assigned">assigned</state>
</states>
<working_time>DefaultWorkingTimeComputer</working_time>
<thresholds/>
<goal>FixedDelayMetric</goal>
<always_load_in_tables>true</always_load_in_tables>
</field>
<entry id="Class:UserRequest/Attribute:fixdelay" _delta="define">
<![CDATA[6h Delay]]>
</entry>
配置通知
在 iTop 中定义基于阈值的触发器,并链接到通知动作。使用新创建的秒表 fixdelay,可用阈值为 33 和 100。
原文:https://www.itophub.io/wiki/page?id=3_2_0:customization:add-stopwatch
2024/09/10 10:25 by127.0.0.1
版本:3_2_0/customization/add-stopwatch.txt · Last modified: 2024/09/10 10:25 by 127.0.0.1