So DynamicField_somename doesn't get updated but ValueSet updates something
and ValueGet shows the updated value.
Relevant debug messages:
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][237]
@@Escalation.pm DestinationSystemTime $VAR1 = \'2014-12-22 17:06:39';
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][288]
@@Escalation.pm DynamicField_somename after update $VAR1 = \'2014-12-04
16:54:00';
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][293]
!!@@Escalation.pm FieldID $VAR1 = \'7';
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][297]
!!@@Escalation.pm ObjectID $VAR1 = \'5';
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][301]
!!@@Escalation.pm UserID $VAR1 = \2;
[Wed Dec 24 18:47:28
2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][311]
!!@@Escalation.pm ValueGet $VAR1 = \[
{
'ValueDateTime' => '2014-12-22 17:06:39',
'ID' => '21',
'ValueInt' => undef,
'ValueText' => undef
}
];
Relevant code from sub new:
for (qw(ConfigObject DynamicFieldObject TicketObject LogObject
UserObject CustomerUserObject TimeObject SLAObject))
{
$Self->{$_} = $Param{$_} || die "Got no $_!";
}
$Self->{BackendObject} = Kernel::System::DynamicField::Backend->new(
EncodeObject => $Param{TicketObject}->{EncodeObject},
MainObject => $Param{TicketObject}->{MainObject},
DBObject => $Param{TicketObject}->{DBObject},
TimeObject => $Param{TicketObject}->{TimeObject},
%Param,
);
$Self->{DynamicFieldValueObject} =
Kernel::System::DynamicFieldValue->new(
ConfigObject => $Param{TicketObject}->{ConfigObject},
EncodeObject => $Param{TicketObject}->{EncodeObject},
LogObject => $Param{TicketObject}->{LogObject},
MainObject => $Param{TicketObject}->{MainObject},
DBObject => $Param{TicketObject}->{DBObject},
);
Relevant code from sub run:
# get dynamic field config
my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
Name => "somename",
);
my $Success = $Self->{DynamicFieldValueObject}->ValueSet(
#DynamicFieldConfig => $DynamicField,
FieldID => $DynamicField->{ID},
ObjectID => $Param{Data}->{TicketID},
Value => [
{
ValueDateTime => $DestinationSystemTime,
},
],
UserID => $Param{UserID},
);
if ( !$Success ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message =>
"Can not set value for dynamic field $DynamicField->{Name}!"
);
}
# print updated DynamicField_somename
$Self->{LogObject}->Log(
Priority=>'debug',
Message=> '@@Escalation.pm DynamicField_somename after update ' .
Dumper(\$Ticket{DynamicField_somename}),
);
$Self->{LogObject}->Log(
Priority=>'debug',
Message=> '!!@@Escalation.pm FieldID ' .
Dumper(\$DynamicField->{ID}),
);
$Self->{LogObject}->Log(
Priority=>'debug',
Message=> '!!@@Escalation.pm ObjectID ' .
Dumper(\$Param{Data}->{TicketID}),
);
$Self->{LogObject}->Log(
Priority=>'debug',
Message=> '!!@@Escalation.pm UserID ' . Dumper(\$Param{UserID}),
);
my $DynamicFieldValue = $Self->{DynamicFieldValueObject}->ValueGet(
FieldID => $DynamicField->{ID},
ObjectID => $Param{Data}->{TicketID},
);
$Self->{LogObject}->Log(
Priority=>'debug',
Message=> '!!@@Escalation.pm ValueGet ' .
Dumper(\$DynamicFieldValue),
);
On Wed, Dec 24, 2014 at 6:13 PM, Roald <[email protected]> wrote:
> It seems like I'm setting some value. ValueGet returns the updated value.
> But printing $Ticket{DynamicField_somename doesn't return the updated value.
>
> my $DynamicFieldValue = $Self->{DynamicFieldValueObject}->ValueGet(
> FieldID => $DynamicField->{ID},
> ObjectID => $Param{Data}->{TicketID},
> );
> $Self->{LogObject}->Log(
> Priority=>'debug',
> Message=> '@@Escalation.pm DynamicField_somename after update ' .
> Dumper(\$Ticket{DynamicField_somename}),
> );
>
> $Self->{LogObject}->Log(
> Priority=>'debug',
> Message=> '!!@@Escalation.pm ValueGet ' .
> Dumper(\$DynamicFieldValue),
> );
>
>
> [Wed Dec 24 18:07:41
> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][283]
> @@Escalation.pm DynamicField_TTRS after update $VAR1 = \'2014-12-04
> 16:54:00';
>
> [Wed Dec 24 18:07:41
> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][306]
> !!@@Escalation.pm ValueGet $VAR1 = \[
> {
> 'ValueText' => undef,
> 'ValueInt' => undef,
> 'ID' => '17',
> 'ValueDateTime' => '2014-12-22 17:06:39'
> }
> ];
>
>
> On Wed, Dec 24, 2014 at 5:16 PM, Roald <[email protected]> wrote:
>
>> I made some progress. I want to set the value of the DynamicField to
>> $DestinationSystemTime. I'm using ValueSet from DynamicFieldValueObject.
>> The value of the dynamic field is not changed by ValueSe but I'm getting no
>> more errors.
>>
>> The value of the DynamicField should be changed to '2014-12-22 17:06:39'
>> but remains at '\'2014-12-04 16:54:00'.
>>
>>
>> # get dynamic field config
>> my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
>> Name => "TTRS",
>> );
>>
>> my $Success = $Self->{DynamicFieldValueObject}->ValueSet(
>> FieldID => $DynamicField->{ID},
>> ObjectID => $Param{Data}->{TicketID},
>> Value => [
>> {
>> ValueDateTime => $DestinationSystemTime,
>> },
>> ],
>> UserID => $Param{UserID},
>> );
>> if ( !$Success ) {
>> $Self->{LogObject}->Log(
>> Priority => 'error',
>> Message =>
>> "Can not set value for dynamic field
>> $DynamicField->{Name}!"
>> );
>> }
>>
>>
>> debug log:
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][228]
>> @@Escalation.pm DestinationTime $VAR1 = \1419264399;
>>
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][232]
>> @@Escalation.pm DestinationSystemTime $VAR1 = \'2014-12-22 17:06:39';
>>
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][283]
>> @@Escalation.pm DynamicField_somename after update $VAR1 = \'2014-12-04
>> 16:54:00';
>>
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][288]
>> !!@@Escalation.pm FieldID $VAR1 = \'7';
>>
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][292]
>> !!@@Escalation.pm ObjectID $VAR1 = \'5';
>>
>> [Wed Dec 24 17:05:47
>> 2014][Debug][Kernel::System::Ticket::Event::ICTRoomEscalation::Run][296]
>> !!@@Escalation.pm UserID $VAR1 = \2;
>>
>>
>> On Wed, Dec 24, 2014 at 4:06 PM, Roald <[email protected]> wrote:
>>
>>> I made some progress. I used DynamicFieldListGet to figure out I had to
>>> drop "DynamicField_" from the fieldname.
>>>
>>> ValueSet still doesn't work.
>>>
>>> # get dynamic field config
>>> my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
>>> Name => "somename",
>>> );
>>>
>>> $Self->{LogObject}->Log(
>>> Priority=>'debug',
>>> Message=> '!!@@Escalation.pm DynamicField ' .
>>> Dumper(\$DynamicField),
>>> );
>>>
>>>
>>> my $Success = $Self->{BackendObject}->ValueSet(
>>> DynamicFieldConfig => $DynamicField,
>>> ObjectID => $Param{Data}->{TicketID},
>>> Value => [
>>> {
>>> $DestinationSystemTime,
>>> },
>>> ],
>>> UserID => $Param{UserID},
>>> );
>>> if ( !$Success ) {
>>> $Self->{LogObject}->Log(
>>> Priority => 'error',
>>> Message =>
>>> "Can not set value for dynamic field
>>> $DynamicField->{Name}!"
>>> );
>>> }
>>>
>>>
>>> debug messages otrs.log:
>>>
>>> [Wed Dec 24 15:54:13
>>> 2014][Debug][Kernel::System::Ticket::Event::Escalation::Run][233]
>>> !!@@Escalation.pm DynamicField $VAR1 = \{
>>> 'FieldType' => 'DateTime',
>>> 'ID' => '7',
>>> 'ValidID' => '1',
>>> 'FieldOrder' => '7',
>>> 'InternalField' => '0',
>>> 'Label' => 'some label',
>>> 'CreateTime' => '2014-12-22 16:17:25',
>>> 'Name' => 'somename',
>>> 'ChangeTime' => '2014-12-22 16:17:25',
>>> 'ObjectType' => 'Ticket',
>>> 'Config' => {
>>> 'YearsInFuture' => '5',
>>> 'YearsInPast' => '5',
>>> 'Link' => '',
>>> 'DefaultValue' => '0',
>>> 'YearsPeriod' => '0'
>>> }
>>> };
>>>
>>> [Wed Dec 24 15:54:13
>>> 2014][Error][Kernel::System::DynamicField::Backend::ValueSet][512] Could
>>> not update field somename for Ticket ID 5 !
>>> [Wed Dec 24 15:54:13
>>> 2014][Error][Kernel::System::Ticket::Event::Escalation::Run][254] Can not
>>> set value for dynamic field somename!
>>>
>>>
>>>
>>> error.log apache:
>>>
>>> [Wed Dec 24 15:54:13 2014] -e: Odd number of elements in anonymous hash
>>> at /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 243.
>>> ERROR: OTRS-CGI-66 Perl: 5.18.2 OS: linux Time: Wed Dec 24 15:54:13 2014
>>>
>>> Message: Could not update field somename for Ticket ID 5 !
>>>
>>> RemoteAddress: 192.168.2.1
>>> RequestURI: /otrs/index.pl
>>>
>>> Traceback (3992):
>>> Module: Kernel::System::DynamicField::Backend::ValueSet (OTRS 3.3.x
>>> git) Line: 512
>>> Module: Kernel::System::Ticket::Event::Escalation::Run (OTRS 3.3.x
>>> git) Line: 243
>>> Module: Kernel::System::EventHandler::EventHandler (OTRS 3.3.x git)
>>> Line: 255
>>> Module: Kernel::System::Ticket::TicketSLASet (OTRS 3.3.x git) Line:
>>> 3008
>>> Module: Kernel::Modules::AgentTicketActionCommon::Run (OTRS 3.3.x
>>> git) Line: 598
>>> Module: Kernel::System::Web::InterfaceAgent::Run (OTRS 3.3.x git)
>>> Line: 910
>>> Module:
>>> ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler
>>> (unknown version) Line: 41
>>> Module: (eval) (v1.99) Line: 206
>>> Module: ModPerl::RegistryCooker::run (v1.99) Line: 206
>>> Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 172
>>> Module: ModPerl::Registry::handler (v1.99) Line: 31
>>>
>>> ERROR: OTRS-CGI-66 Perl: 5.18.2 OS: linux Time: Wed Dec 24 15:54:13 2014
>>>
>>> Message: Can not set value for dynamic field somename!
>>>
>>> RemoteAddress: 192.168.2.1
>>> RequestURI: /otrs/index.pl
>>>
>>> Traceback (3992):
>>> Module: Kernel::System::Ticket::Event::Escalation::Run (OTRS 3.3.x
>>> git) Line: 254
>>> Module: Kernel::System::EventHandler::EventHandler (OTRS 3.3.x git)
>>> Line: 255
>>> Module: Kernel::System::Ticket::TicketSLASet (OTRS 3.3.x git) Line:
>>> 3008
>>> Module: Kernel::Modules::AgentTicketActionCommon::Run (OTRS 3.3.x
>>> git) Line: 598
>>> Module: Kernel::System::Web::InterfaceAgent::Run (OTRS 3.3.x git)
>>> Line: 910
>>> Module:
>>> ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler
>>> (unknown version) Line: 41
>>> Module: (eval) (v1.99) Line: 206
>>> Module: ModPerl::RegistryCooker::run (v1.99) Line: 206
>>> Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 172
>>> Module: ModPerl::Registry::handler (v1.99) Line: 31
>>>
>>> [Wed Dec 24 15:54:13 2014] Escalation.pm: Subroutine new redefined at
>>> /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 21.
>>> [Wed Dec 24 15:54:14 2014] Escalation.pm: Subroutine Run redefined at
>>> /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 79.
>>>
>>>
>>> On Wed, Dec 24, 2014 at 3:18 PM, Roald <[email protected]> wrote:
>>>
>>>> I get my DynamicFieldObject like this:
>>>> for (qw(ConfigObject DynamicFieldObject TicketObject LogObject
>>>> UserObject CustomerUserObject TimeObject SLAObject))
>>>> {
>>>> $Self->{$_} = $Param{$_} || die "Got no $_!";
>>>> }
>>>>
>>>> But for some reason I can't seem to retrieve the DynamicField and
>>>> corresponding DynamicFieldConfig using DynamicFieldGet.
>>>>
>>>> On Wed, Dec 24, 2014 at 3:16 PM, Roald <[email protected]> wrote:
>>>>
>>>>> relevant debug messages from otrs.log:
>>>>>
>>>>> [Wed Dec 24 15:11:42
>>>>> 2014][Debug][Kernel::System::Ticket::Event::Escalation::Run][225]
>>>>> @@Escalation.pm DynamicField $VAR1 = \{};
>>>>>
>>>>> [Wed Dec 24 15:11:42
>>>>> 2014][Debug][Kernel::System::Ticket::Event::Escalation::Run][230]
>>>>> @@Escalation.pm DynamicFieldConfig $VAR1 = \undef;
>>>>>
>>>>> [Wed Dec 24 15:11:42
>>>>> 2014][Error][Kernel::System::DynamicField::Backend::ValueSet][447] Need
>>>>> DynamicFieldConfig!
>>>>> [Wed Dec 24 15:11:42
>>>>> 2014][Error][Kernel::System::Ticket::Event::Escalation::Run][246] Can not
>>>>> set value for dynamic field!
>>>>>
>>>>>
>>>>> apache2 errorlog :
>>>>>
>>>>> root@otrs:/var/log/apache2# tail -f -n0 error.log
>>>>> [Wed Dec 24 15:11:38 2014] Escalation.pm: Subroutine new redefined at
>>>>> /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 21.
>>>>> [Wed Dec 24 15:11:38 2014] Escalation.pm: Subroutine Run redefined at
>>>>> /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 79.
>>>>> [Wed Dec 24 15:11:42 2014] -e: Odd number of elements in anonymous
>>>>> hash at /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 235.
>>>>> ERROR: OTRS-CGI-66 Perl: 5.18.2 OS: linux Time: Wed Dec 24 15:11:42
>>>>> 2014
>>>>>
>>>>> Message: Need DynamicFieldConfig!
>>>>>
>>>>> RemoteAddress: 192.168.2.1
>>>>> RequestURI: /otrs/index.pl
>>>>>
>>>>> Traceback (3448):
>>>>> Module: Kernel::System::DynamicField::Backend::ValueSet (OTRS 3.3.x
>>>>> git) Line: 447
>>>>> Module: Kernel::System::Ticket::Event::Escalation::Run (OTRS 3.3.x
>>>>> git) Line: 235
>>>>> Module: Kernel::System::EventHandler::EventHandler (OTRS 3.3.x git)
>>>>> Line: 255
>>>>> Module: Kernel::System::Ticket::TicketSLASet (OTRS 3.3.x git) Line:
>>>>> 3008
>>>>> Module: Kernel::Modules::AgentTicketActionCommon::Run (OTRS 3.3.x
>>>>> git) Line: 598
>>>>> Module: Kernel::System::Web::InterfaceAgent::Run (OTRS 3.3.x git)
>>>>> Line: 910
>>>>> Module:
>>>>> ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler
>>>>> (unknown version) Line: 41
>>>>> Module: (eval) (v1.99) Line: 206
>>>>> Module: ModPerl::RegistryCooker::run (v1.99) Line: 206
>>>>> Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 172
>>>>> Module: ModPerl::Registry::handler (v1.99) Line: 31
>>>>>
>>>>> [Wed Dec 24 15:11:42 2014] -e: Use of uninitialized value in
>>>>> concatenation (.) or string at
>>>>> /opt/otrs//Kernel/System/Ticket/Event/Escalation.pm line 247.
>>>>> ERROR: OTRS-CGI-66 Perl: 5.18.2 OS: linux Time: Wed Dec 24 15:11:42
>>>>> 2014
>>>>>
>>>>> Message: Can not set value for dynamic field!
>>>>>
>>>>> RemoteAddress: 192.168.2.1
>>>>> RequestURI: /otrs/index.pl
>>>>>
>>>>> Traceback (3448):
>>>>> Module: Kernel::System::Ticket::Event::Escalation::Run (OTRS 3.3.x
>>>>> git) Line: 246
>>>>> Module: Kernel::System::EventHandler::EventHandler (OTRS 3.3.x git)
>>>>> Line: 255
>>>>> Module: Kernel::System::Ticket::TicketSLASet (OTRS 3.3.x git) Line:
>>>>> 3008
>>>>> Module: Kernel::Modules::AgentTicketActionCommon::Run (OTRS 3.3.x
>>>>> git) Line: 598
>>>>> Module: Kernel::System::Web::InterfaceAgent::Run (OTRS 3.3.x git)
>>>>> Line: 910
>>>>> Module:
>>>>> ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler
>>>>> (unknown version) Line: 41
>>>>> Module: (eval) (v1.99) Line: 206
>>>>> Module: ModPerl::RegistryCooker::run (v1.99) Line: 206
>>>>> Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 172
>>>>> Module: ModPerl::Registry::handler (v1.99) Line: 31
>>>>>
>>>>>
>>>>> On Wed, Dec 24, 2014 at 3:00 PM, Roald <[email protected]> wrote:
>>>>>
>>>>>> Dear Martin,
>>>>>>
>>>>>> Thank you!
>>>>>>
>>>>>> I'm currently trying to save new a new value into a Dynamic Field. To
>>>>>> do this I use ValueSet from the BackendObject. ValueSet needs a
>>>>>> DynamicFieldConfig. I'm trying to get this from the DynamicFieldGet
>>>>>> method.
>>>>>>
>>>>>> It's not working yet. Any idea why ?
>>>>>>
>>>>>> This is how I created my BackendObject:
>>>>>>
>>>>>> $Self->{BackendObject} =
>>>>>> Kernel::System::DynamicField::Backend->new(
>>>>>> EncodeObject => $Param{TicketObject}->{EncodeObject},
>>>>>> MainObject => $Param{TicketObject}->{MainObject},
>>>>>> DBObject => $Param{TicketObject}->{DBObject},
>>>>>> TimeObject => $Param{TicketObject}->{TimeObject},
>>>>>> %Param,
>>>>>> );
>>>>>>
>>>>>> This is how I try to update a Dynamic Field (not working) :
>>>>>>
>>>>>> # get dynamic field config
>>>>>> my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
>>>>>> Name => "DynamicField_somename",
>>>>>> );
>>>>>> my $DynamicFieldConfig = $DynamicField->{Config};
>>>>>>
>>>>>> $Self->{LogObject}->Log(
>>>>>> Priority=>'debug',
>>>>>> Message=> 'DynamicField ' . Dumper(\$DynamicField),
>>>>>> );
>>>>>>
>>>>>> $Self->{LogObject}->Log(
>>>>>> Priority=>'debug',
>>>>>> Message=> 'DynamicFieldConfig ' .
>>>>>> Dumper(\$DynamicFieldConfig),
>>>>>> );
>>>>>>
>>>>>> my $Success = $Self->{BackendObject}->ValueSet(
>>>>>> DynamicFieldConfig => $DynamicFieldConfig,
>>>>>> ObjectID => $Param{Data}->{TicketID},
>>>>>> Value => [
>>>>>> {
>>>>>> $DestinationSystemTime,
>>>>>> },
>>>>>> ],
>>>>>> UserID => $Param{UserID},
>>>>>> );
>>>>>> if ( !$Success ) {
>>>>>> $Self->{LogObject}->Log(
>>>>>> Priority => 'error',
>>>>>> Message =>
>>>>>> "Can not set value to current time for dynamic
>>>>>> field$DynamicFieldConfig->{Name}!"
>>>>>> );
>>>>>> }
>>>>>>
>>>>>>
>>>>>> # print updated DynamicField_somename
>>>>>> $Self->{LogObject}->Log(
>>>>>> Priority=>'debug',
>>>>>> Message => 'DynamicField_somename ' .
>>>>>> Dumper(\$Ticket{DynamicField_somename}),
>>>>>> );
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Dec 16, 2014 at 2:02 PM, Martin Gruner <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Roald,
>>>>>>>
>>>>>>> yes this is possible. OTRS also uses a ticket event handler to
>>>>>>> caclulate
>>>>>>> and store the escalation times for the tickets. This (target) time
>>>>>>> calculation only happens when there are changes to the tickets. The
>>>>>>> escalation notifications etc. are independent of that.
>>>>>>> Of course you can also use a GA job to do this if the delay is ok.
>>>>>>>
>>>>>>> Regards, mg
>>>>>>>
>>>>>>> Am 12.12.14 um 16:43 schrieb Roald:
>>>>>>> > Dear Martijn,
>>>>>>> >
>>>>>>> > Thank you for your reply.
>>>>>>> >
>>>>>>> > I'm currently spending some time at this.
>>>>>>> >
>>>>>>> > It seems to me that a custom ticket event handler can't be used.
>>>>>>> > Suppose I have a field "Time To Intervention" and there needs to
>>>>>>> be a
>>>>>>> > time based escalation. Is it possible to do time based escalations
>>>>>>> on
>>>>>>> > dynamic fields using a custom ticket event handler ? I have to do
>>>>>>> some
>>>>>>> > calculations and look at the calendars.
>>>>>>> >
>>>>>>> > That's why I thought using a generic agent to run every few
>>>>>>> minutes and
>>>>>>> > look at all open tickets should be the way to go. Maybe do it a bit
>>>>>>> > smarter by only looking at open tickets which fullfull some
>>>>>>> criteria
>>>>>>> > such as not escalating yet.
>>>>>>> >
>>>>>>> > Thanks!,
>>>>>>> >
>>>>>>> > With kind regards,
>>>>>>> > Roald
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > On Fri, Nov 28, 2014 at 1:00 PM, <[email protected]
>>>>>>> > <mailto:[email protected]>> wrote:
>>>>>>> >
>>>>>>> > Send dev mailing list submissions to
>>>>>>> > [email protected] <mailto:[email protected]>
>>>>>>> >
>>>>>>> > To subscribe or unsubscribe via the World Wide Web, visit
>>>>>>> > http://lists.otrs.org/cgi-bin/listinfo/dev
>>>>>>> > or, via email, send a message with subject or body 'help' to
>>>>>>> > [email protected] <mailto:[email protected]>
>>>>>>> >
>>>>>>> > You can reach the person managing the list at
>>>>>>> > [email protected] <mailto:[email protected]>
>>>>>>> >
>>>>>>> > When replying, please edit your Subject line so it is more
>>>>>>> specific
>>>>>>> > than "Re: Contents of dev digest..."
>>>>>>> >
>>>>>>> >
>>>>>>> > Today's Topics:
>>>>>>> >
>>>>>>> > 1. Re: developing custom SLA/Service escalations and
>>>>>>> > notifications (Martin Gruner)
>>>>>>> > 2. OTRS 5 development (Martin Gruner)
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> ----------------------------------------------------------------------
>>>>>>> >
>>>>>>> > Message: 1
>>>>>>> > Date: Thu, 27 Nov 2014 13:24:24 +0100
>>>>>>> > From: Martin Gruner <[email protected]
>>>>>>> > <mailto:[email protected]>>
>>>>>>> > Subject: Re: [dev] developing custom SLA/Service escalations
>>>>>>> and
>>>>>>> > notifications
>>>>>>> > To: Development community of OTRS <[email protected] <mailto:
>>>>>>> [email protected]>>
>>>>>>> > Message-ID: <[email protected]
>>>>>>> > <mailto:[email protected]>>
>>>>>>> > Content-Type: text/plain; charset=windows-1252
>>>>>>> >
>>>>>>> > Hello Roald,
>>>>>>> >
>>>>>>> > Am 26.11.14 um 17:29 schrieb Roald:
>>>>>>> > > Hi,
>>>>>>> > >
>>>>>>> > > I'm new to OTRS development.
>>>>>>> > >
>>>>>>> > > Requirements in a nutshell:
>>>>>>> > > * set custom fields for SLA's
>>>>>>> > > * calculate whether a ticket escalates based on these custom
>>>>>>> fields (do
>>>>>>> > > some custom calculations)
>>>>>>> > > * send notifications to agents based on these escalations
>>>>>>> > > * there are also other requirements but most can be solved
>>>>>>> without
>>>>>>> > > development
>>>>>>> > >
>>>>>>> > > Idea on how to approach this:
>>>>>>> > > * xml file in /opt/otrs/Kernel/Config/Files which uses
>>>>>>> SLAPreferences
>>>>>>> > >
>>>>>>> > > <?xml version="1.0" encoding="utf-8" ?>
>>>>>>> > > <otrs_config version="1.0" init="Framework">
>>>>>>> > > <ConfigItem Name="SLAPreferences###010-TTI" Required="0"
>>>>>>> Valid="1">
>>>>>>> > > <Description Translatable="1">Time To
>>>>>>> Intervention.</Description>
>>>>>>> > > <Group>Ticket</Group>
>>>>>>> > > <SubGroup>Frontend::SLA::Preferences</SubGroup>
>>>>>>> > > <Setting>
>>>>>>> > > <Hash>
>>>>>>> > > <Item
>>>>>>> > >
>>>>>>> Key="Module">Kernel::Output::HTML::SLAPreferencesGeneric</Item>
>>>>>>> > > <Item Key="Label">label for dynamic
>>>>>>> field</Item>
>>>>>>> > > <Item Key="Desc">description.</Item>
>>>>>>> > > <Item Key="Block">Input</Item>
>>>>>>> > > <Item Key="PrefKey">dynamicfield</Item>
>>>>>>> > > </Hash>
>>>>>>> > > </Setting>
>>>>>>> > > </ConfigItem>
>>>>>>> > > ........
>>>>>>> > > </otrs_config>
>>>>>>> > >
>>>>>>> > > * write a custom module with a job that should be run by
>>>>>>> Generic Agent
>>>>>>> > > to do the rest. Maybe split it in two modules.
>>>>>>> > >
>>>>>>> > > Questions:
>>>>>>> > > * Is my approach the most straightforward and suitable one ?
>>>>>>> >
>>>>>>> > Sounds pretty straightforward. I think you might not need a GA
>>>>>>> job, but
>>>>>>> > could do with a custom ticket event handler like
>>>>>>> > Kernel::System::Ticket::Event::TicketEscalationIndex instead.
>>>>>>> >
>>>>>>> > > * How do I calculate using the calendars ? For example hours
>>>>>>> outside
>>>>>>> > > business hours don't count for one specific calendar. While
>>>>>>> there is
>>>>>>> > > also a 24/7 calendar.
>>>>>>> >
>>>>>>> > I'd recommend to tailor the calendars just as you need. For
>>>>>>> 24/7 you can
>>>>>>> > have a calendar that has everything marked, for the other one
>>>>>>> just
>>>>>>> > define all non-business hours as business hours.
>>>>>>> >
>>>>>>> > Regarding the question from your other mail: with the custom
>>>>>>> event
>>>>>>> > handler you can also set a dynamic field.
>>>>>>> >
>>>>>>> > Good luck!
>>>>>>> >
>>>>>>> > Best regards, mg
>>>>>>> >
>>>>>>> > --
>>>>>>> > Martin Gruner
>>>>>>> > Senior Developer R&D
>>>>>>> >
>>>>>>> > OTRS AG
>>>>>>> > Bahnhofplatz 1a
>>>>>>> > 94315 Straubing
>>>>>>> >
>>>>>>> > T: +49 (0)6172 681988 0
>>>>>>> > F: +49 (0)9421 56818 18
>>>>>>> > I: www.otrs.com/ <http://www.otrs.com/>
>>>>>>> >
>>>>>>> > Gesch?ftssitz: Bad Homburg, Amtsgericht: Bad Homburg, HRB
>>>>>>> 10751,
>>>>>>> > USt-Nr.: DE256610065
>>>>>>> > Aufsichtsratsvorsitzender: Burchard Steinbild, Vorstand: Andr?
>>>>>>> > Mindermann (Vorsitzender), Christopher Kuhn, Sabine Riedel
>>>>>>> >
>>>>>>> > Schlanker, schneller und flacher denn je - OTRS 4! Und f?r
>>>>>>> alle, die
>>>>>>> > MEHR wollen: Entdecken Sie hier die OTRS Business Solution?
>>>>>>> mit mehr
>>>>>>> > Business Features!
>>>>>>> >
>>>>>>> https://www.otrs.com/otrs-business-solution-fuer-besseren-kundenservice/?lang=de
>>>>>>> >
>>>>>>> >
>>>>>>> > ------------------------------
>>>>>>> >
>>>>>>> > Message: 2
>>>>>>> > Date: Thu, 27 Nov 2014 15:03:27 +0100
>>>>>>> > From: Martin Gruner <[email protected]
>>>>>>> > <mailto:[email protected]>>
>>>>>>> > Subject: [dev] OTRS 5 development
>>>>>>> > To: Development community of OTRS <[email protected] <mailto:
>>>>>>> [email protected]>>
>>>>>>> > Message-ID: <[email protected]
>>>>>>> > <mailto:[email protected]>>
>>>>>>> > Content-Type: text/plain; charset=utf-8
>>>>>>> >
>>>>>>> > Dear OTRS developers,
>>>>>>> >
>>>>>>> > as you might have heard, OTRS 4 is now released and
>>>>>>> development for OTRS
>>>>>>> > 5 will start soon.
>>>>>>> >
>>>>>>> > Do you plan to make substantial contributions to it? If that
>>>>>>> is the
>>>>>>> > case, I want to offer you to plan and coordinate this
>>>>>>> together, to make
>>>>>>> > sure right from the planning period that your contributions
>>>>>>> can find
>>>>>>> > their way into OTRS 5.
>>>>>>> >
>>>>>>> > Please just let me know via reply on this list.
>>>>>>> >
>>>>>>> > Thanks and best regards, Martin
>>>>>>> >
>>>>>>> > --
>>>>>>> > Martin Gruner
>>>>>>> > Senior Developer R&D
>>>>>>> >
>>>>>>> > OTRS AG
>>>>>>> > Bahnhofplatz 1a
>>>>>>> > 94315 Straubing
>>>>>>> >
>>>>>>> > T: +49 (0)6172 681988 0 <tel:%2B49%20%280%296172%20681988%200>
>>>>>>> > F: +49 (0)9421 56818 18 <tel:%2B49%20%280%299421%2056818%2018>
>>>>>>> > I: www.otrs.com/ <http://www.otrs.com/>
>>>>>>> >
>>>>>>> > Gesch?ftssitz: Bad Homburg, Amtsgericht: Bad Homburg, HRB
>>>>>>> 10751,
>>>>>>> > USt-Nr.: DE256610065
>>>>>>> > Aufsichtsratsvorsitzender: Burchard Steinbild, Vorstand: Andr?
>>>>>>> > Mindermann (Vorsitzender), Christopher Kuhn, Sabine Riedel
>>>>>>> >
>>>>>>> > Schlanker, schneller und flacher denn je - OTRS 4! Und f?r
>>>>>>> alle, die
>>>>>>> > MEHR wollen: Entdecken Sie hier die OTRS Business Solution?
>>>>>>> mit mehr
>>>>>>> > Business Features!
>>>>>>> >
>>>>>>> https://www.otrs.com/otrs-business-solution-fuer-besseren-kundenservice/?lang=de
>>>>>>> >
>>>>>>> >
>>>>>>> > ------------------------------
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > dev mailing list
>>>>>>> > [email protected] <mailto:[email protected]>
>>>>>>> > http://lists.otrs.org/cgi-bin/listinfo/dev
>>>>>>> >
>>>>>>> >
>>>>>>> > End of dev Digest, Vol 44, Issue 6
>>>>>>> > **********************************
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > OTRS mailing list: dev - Webpage: http://otrs.org/
>>>>>>> > Archive: http://lists.otrs.org/pipermail/dev
>>>>>>> > To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev
>>>>>>> >
>>>>>>>
>>>>>>> --
>>>>>>> Martin Gruner
>>>>>>> Senior Developer R&D
>>>>>>>
>>>>>>> OTRS AG
>>>>>>> Bahnhofplatz 1a
>>>>>>> 94315 Straubing
>>>>>>>
>>>>>>> T: +49 (0)6172 681988 0
>>>>>>> F: +49 (0)9421 56818 18
>>>>>>> I: www.otrs.com/
>>>>>>>
>>>>>>> Geschäftssitz: Bad Homburg, Amtsgericht: Bad Homburg, HRB 10751,
>>>>>>> USt-Nr.: DE256610065
>>>>>>> Aufsichtsratsvorsitzender: Burchard Steinbild, Vorstand: André
>>>>>>> Mindermann (Vorsitzender), Christopher Kuhn, Sabine Riedel
>>>>>>>
>>>>>>> Schlanker, schneller und flacher denn je - OTRS 4! Und für alle, die
>>>>>>> MEHR wollen: Entdecken Sie hier die OTRS Business Solution™ mit mehr
>>>>>>> Business Features!
>>>>>>>
>>>>>>> https://www.otrs.com/otrs-business-solution-fuer-besseren-kundenservice/?lang=de
>>>>>>> _______________________________________________
>>>>>>> OTRS mailing list: dev - Webpage: http://otrs.org/
>>>>>>> Archive: http://lists.otrs.org/pipermail/dev
>>>>>>> To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev