Webservice#

NAME#

Kernel::System::DynamicField::Webservice - Dynamic field web service lib

PUBLIC INTERFACE#

new()#

Don't use the constructor directly, use the ObjectManager instead:

my $DynamicFieldWebserviceObject = $Kernel::OM->Get('Kernel::System::DynamicField::Webservice');

Test()#

Tests given web-service configuration by connecting and querying the web-service.

my $Result = $DynamicFieldWebserviceObject->Test(
    Config   => {
        Webservice               => $Param{Webservice},
        InvokerSearch            => $Param{InvokerSearch},
        InvokerGet               => $Param{InvokerGet},
        Backend                  => $Param{Backend},
        StoredValue              => $Param{StoredValue},
        DisplayedValues          => $Param{DisplayedValues},
        DisplayedValuesSeparator => $Param{DisplayedValuesSeparator},
        Limit                    => $Param{Limit},
        SearchTerms              => $Param{SearchTerms},
    },
    DynamicFieldName => 'DFName1',      # optional
    FieldType        => 'WebserviceDropdown',
    TicketID         => 65, # optional
    UserID           => 1,
    UserType         => 'Agent',                                        # optional 'Agent' or 'Customer'
);

Autocomplete()#

Retrieves data for auto-complete list of given dynamic field config.

my $Results = $DynamicFieldWebserviceObject->Autocomplete(
    DynamicFieldConfig => {},
    SearchTerms        => 'my search',
    TicketID           => 65, # optional
    UserID             => 1,
    UserType           => 'Agent',                # optional 'Agent' or 'Customer'
);

$Results is an (empty) array ref or undef on failure.

AutoFill()#

Retrieves data for auto-fill list of given dynamic field config.

my $Results = $DynamicFieldWebserviceObject->AutoFill(
    DynamicFieldConfig => {},
    SearchTerms        => 'my search',
    TicketID           => 65, # optional
    UserID             => 1,
    UserType           => 'Agent',                # optional 'Agent' or 'Customer'
);

$Results is an (empty) array ref or undef on failure.

AdditionalRequestDataGet()#

Returns additional data for request. Agent (User) or Customer (CustomerUser) data.

my %Data = $DynamicFieldWebserviceObject->AdditionalRequestDataGet(
    UserID   => 123,
    UserType => 'Agent',            # optional (Agent|Customer)
);

Returns:

my %Data = $DynamicFieldWebserviceObject->AdditionalRequestDataGet(
    UserID   => 123,
    UserType => 'Agent',            # optional (Agent|Customer)
);

my %Data = (
    'UserID'                       => 1,
    'UserEmail'                    => 'root@localhost',
    'UserFirstname'                => 'Admin',
    'UserFullname'                 => 'Admin OTRS',
    'UserLastLogin'                => '1629733655',
    'UserLastname'                 => 'OTRS',
    'UserLogin'                    => 'root@localhost',
    [...]
);

# or

my %Data = $DynamicFieldWebserviceObject->AdditionalRequestDataGet(
    UserID   => 123,
    UserType => 'Customer',            # optional (Agent|Customer)
);

my %Data = (
    'UserLogin'              => '9326500963200000',
    'UserID'                 => '9326500963200000',
    'UserFirstname'          => 'Firstname',
    'UserLastname'           => 'Lastname',
    'UserFullname'           => 'Firstname Lastname',
    'UserEmail'              => 'znuny@localunittest.com',
    'UserCustomerID'         => 'znuny',
    'Source'                 => 'CustomerUser',
    [...]
);

AdditionalDynamicFieldValuesStore()#

stores additional values from web-service in dynamic fields

my $Success = $DynamicFieldWebserviceObject->AdditionalDynamicFieldValuesStore(
    DynamicFieldConfig => {},
    TicketID           => 1234,
    UserID             => 1234,
);

my $Success = 1;

DisplayValueGet()#

Fetches display value(s) for given dynamic field config and value(s). Hashref is used for BuildSelection or input fields.

my $DisplayValue = $DynamicFieldWebserviceObject->DisplayValueGet(
    DynamicFieldConfig => {},
    Value              => 'My value', # or array of values
    TicketID           => 65, # optional
    UserID             => 1, # optional
);

If one value was given, it returns its display value as a string
or the given value if no display value could be found.

If an array of values was given (even with only one element), it returns a hash reference:
my $DisplayValues = {
    'My value 1' => 'My display value 1',
    'My value 2' => 'My value 2', # if display value was not found
};

_DisplayValueAssemble()#

Assembles display value for given web-service result hash (after search).

my $DisplayValue = $DynamicFieldWebserviceObject->_DisplayValueAssemble(
    DynamicFieldConfig => {},
    Result             => {
        Key   => 'value col 1',
        Value => 'value col 2',
        # ...
    },
);

my $DisplayValue = 'value col 1 - value col 2';

_DisplaySeparatorGet()#

Returns the display keys separator to use.

my $DisplaySeparator = $DynamicFieldWebserviceObject->_DisplaySeparatorGet(
    DisplaySeparator => '', # this (or omitting the parameter) will be turned into ' '
);

Template()#

Returns the current value or values as string according to the desired template. This function is only needed for WebserviceMultiselect (multiselect).

my $Value = $DynamicFieldWebserviceObject->Template(
    DynamicFieldConfig => \%DynamicFieldConfig,
    Value              => ['first','second', 'third'], # or a scalar value
    Type               => 'Value', # optional; or 'Title'
    ContentType        => 'ASCII', # optional; 'HTML' is default,
    TemplateType       => 'default', # optional; or: 'separator', 'wordwrap', 'list'
);

Returns:

my $Value = 'first, second, third';                                     # default
my $Value = 'first second third';                                       # separator '<space>'
my $Value = 'first<br>second<br>third';                                 # wordwrap 'HTML'
my $Value = 'first\nsecond\nthird';                                     # wordwrap 'ASCII'
my $Value = '<ul><li>first<\li><li>second<\li><li>third<\li></ul>';     # list 'HTML'
my $Value = '- first\n- second\n- third';                               # list 'ASCII'

TemplateTypeList()#

Returns a list of template types. This function is only needed for WebserviceMultiselect (multiselect).

my %TemplateTypeList = $Object->TemplateTypeList();

Returns:

my %TemplateTypeList = (
    default   => 'default',
    separator => 'separator',
    wordwrap  => 'wordwrap',
    list      => 'list',
);

BackendList()#

Returns a list of backends which can be used for this dynamic field web service.

my %BackendList = $DynamicFieldWebserviceObject->BackendList();

Returns:

my %BackendList = (
    DirectRequest => DirectRequest,
);

BackendListGet()#

Returns a list of backends which can be used for this dynamic field web service.

my %BackendListGet = $DynamicFieldWebserviceObject->BackendListGet();

Returns:

my %BackendListGet = (
    DirectRequest => DirectRequest,
);

_BackendConfigGet#

Fetches backend config (web-service) of dynamic field.

my $BackendConfig = $DynamicFieldWebserviceObject->_BackendConfigGet(
    DynamicFieldConfig => {},
);

my $BackendConfig = {
    Backend       => 'DirectRequest',
    InvokerSearch => 'TestSearch',
    InvokerGet    => 'TestGet',
    Webservice    => 'DynamicFieldWebserviceTest'
};

_BackendObjectGet#

Fetches backend object (web-service) to access web-service of dynamic field.

my $BackendObject = $DynamicFieldWebserviceObject->_BackendObjectGet(
    BackendConfig => {
        Backend       => 'DirectRequest',
        InvokerSearch => 'TestSearch',
        InvokerGet    => 'TestGet',
        Webservice    => 'DynamicFieldWebserviceTest'
    },
);