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

Reply via email to