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 <depja...@gmail.com> 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 <depja...@gmail.com> 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 <depja...@gmail.com> 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 <depja...@gmail.com> 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 <depja...@gmail.com> 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 <depja...@gmail.com> 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 < >>>>>> martin.gru...@otrs.com> 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, <dev-requ...@otrs.org >>>>>>> > <mailto:dev-requ...@otrs.org>> wrote: >>>>>>> > >>>>>>> > Send dev mailing list submissions to >>>>>>> > dev@otrs.org <mailto:dev@otrs.org> >>>>>>> > >>>>>>> > 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 >>>>>>> > dev-requ...@otrs.org <mailto:dev-requ...@otrs.org> >>>>>>> > >>>>>>> > You can reach the person managing the list at >>>>>>> > dev-ow...@otrs.org <mailto:dev-ow...@otrs.org> >>>>>>> > >>>>>>> > 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 <martin.gru...@otrs.com >>>>>>> > <mailto:martin.gru...@otrs.com>> >>>>>>> > Subject: Re: [dev] developing custom SLA/Service escalations >>>>>>> and >>>>>>> > notifications >>>>>>> > To: Development community of OTRS <dev@otrs.org <mailto: >>>>>>> dev@otrs.org>> >>>>>>> > Message-ID: <547717f8.7000...@otrs.com >>>>>>> > <mailto:547717f8.7000...@otrs.com>> >>>>>>> > 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 <martin.gru...@otrs.com >>>>>>> > <mailto:martin.gru...@otrs.com>> >>>>>>> > Subject: [dev] OTRS 5 development >>>>>>> > To: Development community of OTRS <dev@otrs.org <mailto: >>>>>>> dev@otrs.org>> >>>>>>> > Message-ID: <54772f2f.1020...@otrs.com >>>>>>> > <mailto:54772f2f.1020...@otrs.com>> >>>>>>> > 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 >>>>>>> > dev@otrs.org <mailto:dev@otrs.org> >>>>>>> > 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