IT运维流程库历史主题 · 只读
← 返回目录

二次开发-调整工单-排除非工作时间


排除非工作时间将工作时段引入账号
先决条件:您必须熟悉教程中使用的语法 并且已经创建了一个扩展.

学习:显示在工单上花费的时间

水平:[ ttps://]初学者

域:[ ttps://]XML, [ ttps://]Stopwatch

最低版本:2.1.0

在此教程中,我们假设您正在使用账号工作时段来计算TTO和TTR基于工作时段的SLA 扩展,您想显示在​​TTR中花费的时间,但忽略非工作时间。

在秒表中,我们有4个内部子项目:

代码标签含义
timespent

Elapsed

在与秒表相关的状态下花费的总时间-如果秒表正在运行,则不准确!
startedstarted秒表第一次启动时
LaststartLastStart当秒表最后一次启动时-如果秒表已停止,则为空
stoppedstopped秒表最后一次停止的时间-如果秒表正在运行,则为空

排除非工作时间将为您提供这两个内部之间的时间:ttr_started和ttr_stopped。但这可能不是您想要的,因为此延迟是这两个事件之间的总时间。账号并没有考虑到TTR在此期间已停止的事实,它忽略了工作时段。

如果您想要的是支持团队到解决和工单花费的实时时间,请使用耗时的SubItem。为此,您必须在XML中将其声明为UserRequest类的字段。

[ ttps://]itop_design / classes / class@UserRequest
<fields> <field id="tto_timespent" xsi:type="AttributeSubItem" _delta="define"> <target_attcode>tto</target_attcode> <item_code>timespent</item_code> </field> </fields>

子项目必须在XML中明确声明为字段,才能在OQL中使用并显示在屏幕上。

您可以在UserRequest的详细信息屏幕中显示它,也可以不显示它,无论如何它都可以在“自定义此列表”视图中,小表格和OQL查询中使用。

这是一个耗时显示与秒表显示的示例:


  • 秒表已多次启动和停止,因此,“经过”与“已启动”和“已停止”之间的差异不符
  • 7 * 60s + 49s = 469s:提供者花费的时间只是“经过”子项的漂亮展示
  • 这是此教程的摘录:标记等待第三次聚会的工单