File: time.xml

package info (click to toggle)
otrs2-doc 20060818-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 10,396 kB
  • ctags: 1
  • sloc: xml: 14,981; sh: 126; makefile: 8
file content (346 lines) | stat: -rwxr-xr-x 9,844 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<!-- $Id: time.xml,v 1.4 2006/04/20 16:09:31 cs Exp $ -->

<chapter id="time">
<title>Time related functions in OTRS</title>

<sect1 id="time-settings">
<title>Specifying the relevant times for OTRS</title>

<para>
Some actions in OTRS are dependent on, and initiated in, relation to the actual system time.
The escalation of tickets and the calculation of the escalation time for
tickets depend on a proper set up of the relevant times
for the ticket system. The sending of notifications for escalated
tickets and for tickets that have reached the pending time is triggered in
dependency to the time settings. The automatic unlock mechanism is
influenced by a proper time set up too.
</para>

<para>
With the configuration parameters

<link linkend="Framework:Core::Time:TimeWorkingHours">
TimeWorkingHours
</link>,

<link linkend="Framework:Core::Time:TimeVacationDays">
TimeVacationDays
</link>

and

<link linkend="Framework:Core::Time:TimeVacationDaysOneTime">
TimeVacationDaysOneTime
</link>

the relevant time settings for the system can be specified either via the

<link linkend="sysconfig">
SysConfig interface
</link>

or directly in the <filename>Kernel/Config.pm</filename> file.
</para>

<sect2 id="TimeWorkingHours">
<title>TimeWorkingHours</title>

<para>
Set up the relevant working hours for your system in
<filename>Kernel/Config.pm</filename> file the following way:

</para>

<example id='specifying-workinghours'>
<title>Specifying the relevant working hours for the system</title>

<para>
<programlisting>
    $Self->{'TimeWorkingHours'} = {
        Mon => [ 8,9,10,11,12,13,14,15,16,17,18,19,20 ],
        Tue => [ 8,9,10,11,12,13,14,15,16,17,18,19,20 ],
        Wed => [ 8,9,10,11,12,13,14,15,16,17,18,19,20 ],
        Thu => [ 8,9,10,11,12,13,14,15,16,17,18,19,20 ],
        Fri => [ 8,9,10,11,12,13,14,15,16,17,18,19,20 ],
        Sat => [  ],
        Sun => [  ],
    };
</programlisting>
</para>

</example>

<para>
Only during the specified working hours tickets can escalate, notifications
for escalated and pending tickets will be send and tickets will be unlocked
automatically. Furthermore only these hours influence the calculation of
the escalation time and the point of time for automatic unlock.
</para>
</sect2>

<sect2 id="TimeVacationDays">
<title>TimeVacationDays</title>

<para>
General holidays with the same date every year can be specified for the
system in the <filename>Kernel/Config.pm</filename> file the following way:
</para>

<example id='specifying-vacation-days'>
<title>Specifying regular holidays in the system</title>

<para>
<programlisting>
    $Self->{'TimeVacationDays'} = {
        1 => {
            1 => 'New Year\'s Day!',
        },
        5 => {
            1 => '1st. May',
        },
        12 => {
            24 => 'Christmas Eve',
            25 => 'Christmas Day',
            26 => 'Boxing Day',
            31 => 'New Year\'s Eve',
        },
    };
</programlisting>
</para>

</example>

<para>
No time related calculations or actions are done by the
system On such days.
</para>
</sect2>

<sect2 id="TimeVacationDaysOneTime">
<title>TimeVacationDaysOneTime</title>

<para>
Free days or holidays that vary every year can be specified in
the <filename>Kernel/Config.pm</filename> file the following way.
</para>

<example id='specifying-sometime-vacation-days'>
<title>Specifying irregular holidays in the system</title>

<para>
<programlisting>
    $Self->{'TimeVacationDaysOneTime'} = {
        2005 => {
            12 => {
                27 => 'Annual closing',
                28 => 'Annual closing',
                29 => 'Annual closing',
                30 => 'Annual closing',
            },
        },
        2006 => {
            6 => {
                12 => 'Annual works outing',
            },
        },
    };
</programlisting>
</para>

</example>

<para>
No time related calculations or actions are done by the
system On such days.
</para>

</sect2>
</sect1>

<sect1 id="unlock-tickets">
<title>Automated unlocking of tickets</title>

<para>
Locked tickets can be unlocked automatically by the system. This feature might
be useful if an agent has locked tickets that need to be processed, but the
agent can't work on this tickets because the agent is on holiday, for example. The
automated unlock feature unlocks tickets after a given time to ensure that
no locked tickets will be forgotten and other agents can process these
tickets.
</para>

<para>
The unlock time for tickets can be specified in the

<link linkend="adminarea-queue">
settings
</link>

for every queue. The module <filename>bin/UnlockTickets.pl</filename>,
which should be executed periodically via a cron job, performs the
automated unlocking of tickets. Tickets are unlocked only during the
hours set by the

<link linkend="TimeWorkingHours">
TimeWorkingHours
</link>

configuration parameter. During days specified in

<link linkend='TimeVacationDays'>
TimeVacationDays
</link>

and

<link linkend='TimeVacationDaysOneTime'>
TimeVacationDaysOneTime
</link>

no tickets are unlocked automaticlaly.
</para>

<para>
Notifications on unlocked tickets are send out only to those agents that
have the queue with the unlocked tickets set in "My queues" and that have
activated the notification on unlocked tickets in their personal

<link linkend="user-preferences">
preferences
</link>
.
</para>

</sect1>

<sect1 id="pending-tickets">
<title>Pending tickets</title>

<para>
With OTRS you can create pending tickets. The system can send out a
notification at a given time and remind an agent of a locked
ticket. This feature might be useful to get reminded about contacting a customer
sometimein the future as the customer is not reachable at the moment, for
example.
</para>

<para>
Reminders on pending tickets are only send out during hours specified
with the

<link linkend="TimeWorkingHours">
TimeWorkingHours
</link>

configuration parameter. The <filename>bin/PendingJobs.pl</filename> module,
which should be executed periodicaly via a cron job, triggers the delivery
of the pending reminders.
</para>

</sect1>

<sect1 id="escalate-tickets">
<title>Ticket escalation</title>

<para>
With OTRS it is possible to let tickets escalate. If a ticket is
escalated, no other tickets are displayed for the queue containing the escalated
ticket. The escalated ticket has to be locked
first. The escalation of tickets ensures that tickets must be
considered after they have reached a given age.
</para>

<para>
The age after which a ticket escalates can be specified in the

<link linkend="adminarea-queue">
settings
</link>

for every queue. With a job for the

<link linkend="adminarea-genericagent">
GenericAgent
</link>

notifications on escalated tickets can be delivered to agents that have
the queue with the escalated ticket in "My queues" enabled and that have
activated notifications on escalated tickets in their personal

<link linkend="user-preferences">
preferences
</link>
.
</para>

<example id='genericagent-job-for-escalated-tickets'>
<title>GenericAgent job to send notification on escalated tickets</title>

<para>
The file <filename>Kernel/Config/GenericAgent.pm</filename> already
contains a example job for notification delivery to agents on escalated
tickets. The jobs in this file are processed by the GenericAgent, which is
executed periodicaly by a cron job. Just open the file and remove the
comments ("#"") for the following lines:
</para>

<para>
<programlisting>
%Jobs = (
   # --
   # [name of job] -> send escalation notifications
   # --
   'send escalation notifications' => {
       Escalation => 1,
       # new ticket properties
       New => {
           Module => 'Kernel::System::GenericAgent::NotifyAgentGroupOfCustomQueue',
       },
   },
   # insert your jobs (see Kernel/Config/GenericAgent.pm.examples)
);
</programlisting>
</para>

</example>

<para>
If a new ticket is stored in a queue that has set a value for escalation
time, the positive value for the set escalation time is shown first. The
displayed value for the escalation time does not change if the system time is
not in the hours specified for TimeWorkingHours or if today is a day
specified in TimeVacationDays or TimeVacationDaysOneTime.
</para>

<para>
If the system is in a time window which is relevant for the calculation for
time specific events, the escalation time is counted down. If the value 0
is reached then the ticket escalates. When the value for the escalation
time becomes negative, the ticket has exceeded the point of time for the
escalation. During the next run of the GenericAgent the job for the
notification about escalated tickets is executed and the messages will be
send out to the agents. The escalated ticket blocks the view of all other
tickets in the queue and must be processed. Even if the escalated ticket is
locked and processed the displayed value for the escalation time stays in
the negative range. This behaviour does not change as long as the ticket
is in an open state (open, new, pending, etc.). The value for the escalation
time only gets reset if the state changes to closed. If the same ticket is
reopened, for example, by a follow up ticket, the count down for the escalation
time starts again with the positive value set for the queue in which the
ticket is stored.
</para>

<para>
Thus a ticket only can escalate if it is not locked and is in an open
state. If the ticket is locked and not yet closed, the escalation time is
counted down and the ticket escalates if the time value is zero. If the
state was changed to closed and if the ticket is reopened by a follow-up
request, the escalation process described above restarts.
</para>

</sect1>

</chapter>