otrs -> rel-6_0 API documentation

NAME

Kernel::System::SysConfig::Migration - System configuration settings migration tools.

PUBLIC INTERFACE

new()

Create an object. Do not use it directly, instead use:

use Kernel::System::ObjectManager;
local $Kernel::OM = Kernel::System::ObjectManager->new();
my $SysConfigMigrationObject = $Kernel::OM->Get('Kernel::System::SysConfig::Migration');

MigrateXMLStructure()

Migrate XML file content from OTRS 5 to OTRS 6.

my $Result = $SysConfigMigrationObject->MigrateXMLStructure(
    Content => '
        <?xml version="1.0" encoding="utf-8" ?>
        <otrs_config version="1.0" init="Framework">
            ...
        </otrs_config>',
    Name => 'Framework',
);

Returns:

$Result = '
    <?xml version="1.0" encoding="utf-8" ?>
    <otrs_config version="2.0" init="Framework">
        ...
    </otrs_config>';

MigrateConfigEffectiveValues()

Migrate the configs effective values to the new format for OTRS 6.

my $Result = $SysConfigMigrationObject->MigrateConfigEffectiveValues(
    FileClass       => $FileClass,
    FilePath        => $FilePath,
    NoOutput        => 1,                                       # ( 0 | 1 ) optional, default 0.
                                                                # if set to 1 no info output will be printed to the screen.
    PackageSettings => [                                        # (optional) only migrate the given package settings
        'Frontend::Module###AdminGeneralCatalog',
        'Frontend::NavigationModule###AdminGeneralCatalog',
        'GeneralCatalogPreferences###Comment2',
        'GeneralCatalogPreferences###Permissions',
        'Loader::Agent::CommonJS###100-GeneralCatalog'
    ],
    PackageLookupNewConfigName => {
        'Ticket::EventModulePost###999-GenericInterface' => 'Ticket::EventModulePost###9900-GenericInterface',
    },
    ReturnMigratedSettingsCounts => 1,                          # (optional) returns an array with counts of un/successful migrated settings
);

Returns:

$Result = 1;    # True on success or false on error.
                # or
                # if ReturnMigratedSettingsCounts parameter is set
$Result =  {
    AllSettingsCount      => 1,
    MissingSettings       => [],
    UnsuccessfullSettings => [],
};

NavigationLookupGet()

Get a list of all old Sub-Groups and the corresponding new navigation.

my %NavigationLookup = $SysConfigMigrationObject->NavigationLookupGet();

Returns:

%NavigationLookup = (
    'Old::Subgroup' => 'New::Navigation',
    # ...
);

PRIVATE INTERFACE

_LookupNewConfigName()

Helper function to lookup new config names for configuration settings where the name has been changed from OTRS 5 to OTRS 6.

my $NewName = $SysConfigMigrationObject->_LookupNewConfigName(
    OldName => 'CustomerCompany::EventModulePost###100-UpdateCustomerUsers',
);

Returns:

True on success or false on error.

_MigrateFrontendModuleSetting()

Helper function to migrate a frontend module setting from OTRS 5 to OTRS 6.

my $NewName = $SysConfigMigrationObject->_MigrateFrontendModuleSetting(
    FrontendSettingName => 'Frontend::Module',
    FrontendModuleName  => 'AgentTicketQueue',
    OTRS5EffectiveValue => {
        'Description' => 'Overview of all open Tickets.',
        'Group' => [ 'users', 'admin' ],
        'GroupRo' => [ 'stats' ],
        'Loader' => {
            'CSS' => [
                'Core.AgentTicketQueue.css',
                'Core.AllocationList.css'
            ],
            'JavaScript' => [
              'Core.UI.AllocationList.js',
              'Core.Agent.TableFilters.js'
            ],
        },
        'NavBar' => [
            {
              'AccessKey' => 'o',
              'Block' => '',
              'Description' => 'Overview of all open Tickets. xxx xxx',
              'Link' => 'Action=AgentTicketQueue',
              'LinkOption' => '',
              'Name' => 'Queue view',
              'NavBar' => 'Ticket',
              'Prio' => '100',
              'Type' => ''
            },
            {
              'AccessKey' => 't',
              'Block' => 'ItemArea',
              'Description' => 'xxx',
              'Link' => 'Action=AgentTicketQueue',
              'LinkOption' => '',
              'Name' => 'Tickets',
              'NavBar' => 'Ticket',
              'Prio' => '200',
              'Type' => 'Menu'
            }
          ],
        'NavBarName' => 'Ticket',
        'Title' => 'QueueView',
    },
    OTRS6Setting => \%OTRS6Setting,
);

Returns:

True on success or false on error.

_SettingUpdate()

This method locks provided settings(by force), updates them and unlock the setting.

my %Result = $SysConfigMigrationObject->_SettingUpdate(
    Name           => 'Setting::Name',
    IsValid        => 1,                         # (optional) 1 or 0, modified 0
    EffectiveValue => $SettingEffectiveValue,    # (optional)
);

Returns:

%Result = (
    Success => 1,        # or false in case of an error
    Error   => undef,    # error message
);

TERMS AND CONDITIONS

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.