Kernel::GenericInterface::Mapping::Simple - GenericInterface simple data mapping backend
usually, you want to create an instance of this by using Kernel::GenericInterface::Mapping->new();
provides 1:1 and regex mapping for keys and values also the use of a default for keys and values that were not mapped is possible
we need the config to be in the following format
$Self->{MappingConfig}->{Config} = { KeyMapExact => { # optional. key/value pairs for direct replacement 'old_value' => 'new_value', 'another_old_value' => 'another_new_value', 'maps_to_same_value => 'another_new_value', }, KeyMapRegEx => { # optional. replace keys with value if current key matches regex 'Stat(e|us)' => 'state', '[pP]riority' => 'prio', }, KeyMapDefault => { # required. replace keys if the have not been replaced before MapType => 'Keep', # possible values are # 'Keep' (leave unchanged) # 'Ignore' (drop key/value pair) # 'MapTo' (use provided value as default) MapTo => 'new_value', # only used if 'MapType' is 'MapTo'. then required }, ValueMap => { # optional. 'new_key_name' => { # optional. Replacement for a specific key ValueMapExact => { # optional. key/value pairs for direct replacement 'old_value' => 'new_value', 'another_old_value' => 'another_new_value', 'maps_to_same_value => 'another_new_value', }, ValueMapRegEx => { # optional. replace keys with value if current key matches regex 'Stat(e|us)' => 'state', '[pP]riority' => 'prio', }, }, }, ValueMapDefault => { # required. replace keys if the have not been replaced before MapType => 'Keep', # possible values are # 'Keep' (leave unchanged) # 'Ignore' (drop key/value pair) # 'MapTo' (use provided value as default) MapTo => 'new_value', # only used if 'MapType' is 'MapTo'. then required }, }; my $ReturnData = $MappingObject->Map( Data => { 'original_key' => 'original_value', 'another_key' => 'next_value', }, ); my $ReturnData = { 'changed_key' => 'changed_value', 'original_key' => 'another_changed_value', 'another_original_key' => 'default_value', 'default_key' => 'changed_value', };
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.