
#################
DynamicFieldValue
#################


****
NAME
****


Kernel::System::DynamicFieldValue


***********
DESCRIPTION
***********


DynamicField values backend


****************
PUBLIC INTERFACE
****************


new()
=====


create a DynamicFieldValue object. Do not use it directly, instead use:


.. code-block:: perl

     my $DynamicFieldValueObject = $Kernel::OM->Get('Kernel::System::DynamicFieldValue');



ValueSet()
==========


sets a dynamic field value. This is represented by one or more rows in the dynamic_field_value
table, each storing one text, date and int field. Please see how they will be returned by
`ValueGet()`_.


.. code-block:: perl

     my $Success = $DynamicFieldValueObject->ValueSet(
         FieldID  => $FieldID,                 # ID of the dynamic field
         ObjectID => $ObjectID,                # ID of the current object that the field
                                               #   must be linked to, e. g. TicketID
         Value    => [
             {
                 ValueText     => 'some text',            # optional, one of these fields must be provided
                 ValueDateTime => '1977-12-12 12:00:00',  # optional
                 ValueInt      => 123,                    # optional
             },
             # ...
         ],
         UserID   => $UserID,
     );



ValueGet()
==========


get a dynamic field value. For each table row there will be one entry in the
result list.


.. code-block:: perl

     my $Value = $DynamicFieldValueObject->ValueGet(
         FieldID  => $FieldID,       # ID of the dynamic field
         ObjectID => $ObjectID,      # ID of the current object that the field
                                     #   is linked to, e. g. TicketID
     );
 
     Returns [
         {
             ID            => 437,
             ValueText     => 'some text',
             ValueDateTime => '1977-12-12 12:00:00',
             ValueInt      => 123,
         },
     ];



ValueDelete()
=============


delete a Dynamic field value entry. All associated rows will be deleted.


.. code-block:: perl

     my $Success = $DynamicFieldValueObject->ValueDelete(
         FieldID  => $FieldID,   # ID of the dynamic field
         ObjectID => $ObjectID,  # ID of the current object that the field
                                 #   is linked to, e. g. TicketID
         UserID   => 123,
     );
 
     Returns 1.



AllValuesDelete()
=================


delete all entries of a dynamic field .


.. code-block:: perl

     my $Success = $DynamicFieldValueObject->AllValuesDelete(
         FieldID => $FieldID,    # ID of the dynamic field
         UserID  => 123,
     );
 
     Returns 1.



ObjectValuesDelete()
====================


Delete all entries of a dynamic field values for object ID.


.. code-block:: perl

     my $Success = $DynamicFieldValueObject->ObjectValuesDelete(
         ObjectType => 'Ticket',    # Dynamic Field object type ( e. g. Ticket, Article, FAQ)
         ObjectID   => $ObjectID,   # ID of the current object that the field
                                    #   is linked to, e. g. TicketID
         UserID     => 123,
     );
 
     Returns 1.



ValueValidate()
===============


checks if the given value is valid for the value type.


.. code-block:: perl

     my $Success = $DynamicFieldValueObject->ValueValidate(
         Value  => {
             ValueText     => 'some text',            # optional, one of these fields must be provided
             ValueDateTime => '1977-12-12 12:00:00',  # optional
             ValueInt      => 123,                    # optional
         },
         UserID => $UserID,
     );



HistoricalValueGet()
====================


get all distinct values from a field stored on the database


.. code-block:: perl

     my $HistoricalValues = $DynamicFieldValueObject->HistoricalValueGet(
         FieldID   => $FieldID,                  # ID of the dynamic field
         ValueType => 'Text',                    # or 'DateTime' or 'Integer'. Default 'Text'
     );
 
     Returns:
 
     $HistoricalValues{
         ValueA => 'ValueA',
         ValueB => 'ValueB',
         ValueC => 'ValueC',
     };



ValueSearch()
=============


Searches/fetches dynamic field value.


.. code-block:: perl

     my $Value = $DynamicFieldValueObject->ValueSearch(
         FieldID   => 142,             # ID of dynamic field to search
         Search    => 'test',
         SearchSQL => "dynamic_field_value.value_text = 'test'",
     );
 
     Returns [
         {
             ID            => 437,
             FieldID       => 123,
             ObjectID      => 133,
             ValueText     => 'some text',
             ValueDateTime => '1977-12-12 12:00:00',
             ValueInt      => 123,
         },
         # ...
     ];





