Hauptmenü

Verweiste Merged-Tickets als Nebeneffekt von ACL

Begonnen von danielwi, 13.08.2020 15:49:24

⏪ vorheriges - nächstes ⏩

danielwi

Hallo zusammen,


ich habe eine ACL erstellt, die verhindert, dass Tickets direkt in der Postmaster-Queue geschlossen werden können. Sie müssen erst einer anderen Queue zugewiesen werden, damit die entsprechenden Einträge in der Dropdown-Liste erscheinen. Nun ergibt sich daraus aber ein ärgerlicher Nebeneffekt:


Immer wenn ich direkt im Postmaster mehrere Tickets zusammenführe, bleiben die merged Tickets im State open und liegen dann weiter im Postmaster herum. Das ist erstmal logisch, denn laut ACL darf das Ticket ja den State "merged" gar nicht annehmen. (Siehe Anhang) Das dumme ist nur, dass das Problem auch bestehen bleibt, wenn ich "merged" in der ACL als Possible State hinzufüge.


Was mache ich hier also falsch?
VG
Daniel

Jörg Brückner

Guten Morgen Daniel,

Leider können wir den beschrieben Vorgang hier nicht reproduzieren. Wir haben den Vorgang nachgestellt, aber das Problem ist nicht aufgetreten, was Du beschreibst.


Wir haben hier 2 Ansätze, die Du mal prüfen kannst:

1. ist die ACL in Betrieb genommen wurden?
2. gibt es evtl. noch in der SysConfig, in den StatusWorkflows-Einstellungen eine Festlegung, die den Wechsel des Staus verhindern könnte?


Herzliche Grüße

Jörg




danielwi

Hi,


ich habe mir das Thema heute noch einmal angeschaut. Seltsamerweise hängt der Fehler am Namen der Queue. Ich bin wie folgt vorgegangen:


Alle ACLs deaktiviert.
-> Fehler tritt noch auf.


- Neue Queue erstellt: Postmaster2
- Alle Postmaster-Email-Konten auf die neue Queue verwiesen
-> Alles funktioniert problemlos mit Postmaster2


- ACL wieder aktiviert und auf die neue Queue Postmaster2 angewendet
-> Alles geht nach wie vor Problemlos


- Anschließend die alte Queue umbenannt in Postmaster_old
- Neue Queue umbenannt in Postmaster
-> Der Fehler tritt wieder auf.


- ACLs wieder deaktiviert
-> Fehler ist immer noch da.


Also bleibt der Fehler auch bei deaktivierter ACL bestehen. Deinen Vorschlag 1. schließe ich also mal aus.


Was Deinen zweiten Vorschlag angeht, habe ich nichts gefunden, was da ein Problem sein sollte. Vor allem habe ich nie an den Status-Workflows irgendetwas verändert. Ich wüsste auch nicht, woher da Änderungen kommen sollten.


Natürlich könnte ich einfach die Eingangs-Queue umbenennen und damit wäre das Problem gelöst. Aber wer sagt mir, dass es nicht wieder auftritt? Ich bin also schon sehr an einer Lösung interessiert. Hast du vielleicht noch eine Idee?


VG
Daniel

Jörg Brückner

Hi Daniel,

es ist natürlich nicht so einfach hier das Verhalten nachzustellen. Ich habe es dennoch einmal versucht.
Aber ich kann das Verhalten leider nicht nachstellen. Ich habe dazu Ihre ACL ohne "merged" angelegt, dabei bleiben beide Tickets im Status Open. Aber das muss ja auch so sein.
Denn ich zur ACL "merged" hinzufüge, funktioniert es auch wie es soll. Ich erstelle 2 neue Tickets in der Postmaster Queue. Das 2. Ticket merge ich zum 1. "Haupt"-Ticket. Das "Haupt"-Ticket behält seinen aktuellen Status "Open" und das zusammengefasste Ticket erhält den Status "merged". Ebenso habe ich auch die Queue "Postmaster" genannt.


Einen weiteren Punkt den Du prüfen kannst:
Du schreibst:
"Alle ACLs deaktiviert.  -> Fehler tritt noch auf."
--> Das ist auch normal. Du musst, nachdem Du eine ACL auf ungültig gesetzt hast, trotzdem noch einmal den Button "ACL in Betrieb nehmen" klicken. Sonst läuft diese im Hintergrund noch weiter.


Gibt es evtl. noch andere ACLs die das Vorgehen evtl. beeinflussen können, oder ein Generic Agent der im Hintergrund automatisierte Änderungen durchführt?


Viele Grüße
Jörg

danielwi

Hi,


danke für die Rückmeldung:


Du schreibst:
Das ist auch normal. Du musst, nachdem Du eine ACL auf ungültig gesetzt hast, trotzdem noch einmal den Button "ACL in Betrieb nehmen" klicken. Sonst läuft diese im Hintergrund noch weiter.[/size]

[/size]

Das habe ich natürlich getan, sonst hätten ja alle meine Tests nicht so funktioniert.

Gibt es evtl. noch andere ACLs die das Vorgehen evtl. beeinflussen können, oder ein Generic Agent der im Hintergrund automatisierte Änderungen durchführt?

[/size]
Ich hatte alle ACLs deaktiviert. Da kann also nichts dazwischen funken. Den Generic-Agent habe ich bisher nicht angefasst.[/size]


Ich habe auch testweise über die CLI den Cache gelöscht und die Konfiguration neu aufgebaut. Aber auch das brachte keine Änderung.[/size]
Ich vermute hier irgendwo eine korrupte Konfiguration oder einen fehlerhaften Datenbankeintrag, der irgendwie hängen geblieben ist. Kann ich das prüfen bzw. alle ACL auf die Grundkonfiguration zurück setzen?[/size]

[/size]
VG[/size]
Daniel[/size]

[/size]

Jörg Brückner

Hallo Daniel,

um das genauer analysieren zu können bräuchten wir im nächsten Schritt einmal die "zzzauto.pm" Datei.Kannst Du uns die hier zur Verfügung stellen (gerne auch mir geschwärzten Inhalten, die nicht für die Öffentlichkeit sind)


Viele Grüße

Jörg

danielwi

Hi,


hier der Inhalt der Datei. Ich hoffe, dass wir dem Problem damit auf die Spur kommen. Noch einmal vielen Dank für die Hilfe. :)






# KIX config file (automatically generated)
# VERSION:1.1
package Kernel::Config::Files::ZZZAuto;
use strict;
use warnings;
no warnings 'redefine';
use utf8;
sub Load {
    my ($File, $Self) = @_;
$Self->{'AdminEmail'} =  'xxxxxxxxxxxxxxxx';
$Self->{'AgentLoginLogo'} =  {
  'StyleHeight' => '210px',
  'StyleWidth' => '210px',
  'URL' => 'skins/Agent/xxx/img/xxx_LOGO_rgb_web_kix_gr.png',
  'margin' => '15px auto auto;'
};
$Self->{'AgentLogo'} =  {
  'StyleHeight' => '60px',
  'StyleLeft' => '20px',
  'StyleRight' => '20px',
  'Stylexxxxx' => '10px',
  'StyleWidth' => '60px',
  'URL' => 'skins/Agent/xxx/img/xxx_LOGO_rgb_web_kix_kl.png'
};
$Self->{'CheckMXRecord'} =  '0';
$Self->{'ConfigItemOverview::ExcludedDeploymentStates'} =  'Retired';
$Self->{'ConfigItemOverview::ShowDeploymentStatePostproductive'} =  '1';
$Self->{'Customer::AuthModule'} =  'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} =  'DC=xxxxx,DC=xxxxxxxxxx,DC=com';
$Self->{'Customer::AuthModule::LDAP::Host'} =  'xxxxxad01.xxxxx.xxxxxxxxxx.com';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} =  'CNxxxxxxxxxxxx,OU=Service Accounts,OU=Clients,DC=xxxxx,DC=xxxxxxxxxx,DC=com';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} =  'xxxxxxxxxxxxx';
$Self->{'Customer::AuthModule::LDAP::UID'} =  'sAMAccountName';
$Self->{'CustomerDashboardConfigItemLink::CISearchInClasses'} =  {
  'Computer' => 'Owner',
  'Hardware' => 'Owner',
  'Netzwerk-Device' => 'Owner',
  'Phones' => 'Owner',
  'Server' => 'Owner',
  'Sim-Karte' => 'Owner',
  'Software' => 'Owner'
};
delete $Self->{'CustomerFrontend::KIXSidebarBackend'}->{'CustomizeForm'};
delete $Self->{'CustomerFrontend::KIXSidebarBackend'}->{'LinkedCIs'};
delete $Self->{'CustomerFrontend::KIXSidebarBackend'}->{'TextModules'};
delete $Self->{'CustomerFrontend::Module'}->{'CustomerFAQExplorer'};
$Self->{'CustomerFrontend::Module'}->{'CustomerTicketOverview'} =  {
  'Description' => 'Overview of customer tickets.',
  'NavBar' => [
    {
      'AccessKey' => 'm',
      'Block' => '',
      'Description' => 'Tickets.',
      'Link' => 'Action=CustomerTicketOverview;Subaction=MyTickets',
      'LinkOption' => '',
      'Name' => 'Tickets',
      'NavBar' => 'Ticket',
      'Prio' => '100',
      'Type' => 'Menu'
    },
    {
      'AccessKey' => '',
      'Block' => '',
      'Description' => 'My Tickets.',
      'Link' => 'Action=CustomerTicketOverview;Subaction=MyTickets',
      'LinkOption' => '',
      'Name' => 'My Tickets',
      'NavBar' => 'Ticket',
      'Prio' => '110',
      'Type' => 'Submenu'
    }
  ],
  'NavBarName' => 'Ticket',
  'Title' => 'Overview'
};
$Self->{'CustomerFrontend::Module'}->{'SwitchButton'} =  {
  'Description' => 'Switch to agent frontend and login automatically',
  'NavBarName' => '',
  'Title' => 'Agent Frontend'
};
$Self->{'CustomerHeadline'} =  '';
$Self->{'CustomerLoginLogo'} =  {
  'StyleHeight' => '210px',
  'StyleWidth' => '210px',
  'URL' => 'skins/Customer/xxx/img/xxx_LOGO_rgb_web_kix_gr.png',
  'margin' => '15px auto auto;'
};
$Self->{'CustomerLogo'} =  {
  'StyleHeight' => '60px',
  'StyleLeft' => '20px',
  'StyleRight' => '20px',
  'Stylexxxxx' => '10px',
  'StyleWidth' => '60px',
  'URL' => 'skins/Customer/xxx/img/xxx_LOGO_rgb_web_kix_kl.png'
};
$Self->{'CustomerPanelBodyLostPassword'} =  'Hi <KIX_USERFIRSTNAME>,




New password: <KIX_NEWPW>


<KIX_CONFIG_HttpType>://<KIX_CONFIG_FQDN>/<KIX_CONFIG_ScriptAlias>customer.pl';
$Self->{'CustomerPanelBodyLostPasswordToken'} =  'Hi <KIX_USERFIRSTNAME>,


You or someone impersonating you has requested to change your KIX
password.


If you want to do this, click on this link. You will receive another email containing the password.


<KIX_CONFIG_HttpType>://<KIX_CONFIG_FQDN>/<KIX_CONFIG_ScriptAlias>customer.pl?Action=CustomerLostPassword;Token=<KIX_TOKEN>


If you did not request a new password, please ignore this email.';
$Self->{'CustomerPanelBodyNewAccount'} =  'Hi <KIX_USERFIRSTNAME>,


You or someone impersonating you has created a new KIX account for
you.


Full name: <KIX_USERFIRSTNAME> <KIX_USERLASTNAME>
User name: <KIX_USERLOGIN>
Password : <KIX_USERPASSWORD>


You can log in via the following URL. We encourage you to change your password
via the Preferences button after logging in.


<KIX_CONFIG_HttpType>://<KIX_CONFIG_FQDN>/<KIX_CONFIG_ScriptAlias>customer.pl';
$Self->{'Daemon::SchedulerCronTaskManager::Task'}->{'MailAccountFetch'} =  {
  'Function' => 'Execute',
  'MaximumParallelInstances' => '1',
  'Module' => 'Kernel::System::Console::Command::Maint::PostMaster::MailAccountFetch',
  'Params' => [],
  'Schedule' => '*/1 * * * *',
  'TaskName' => 'MailAccountFetch'
};
$Self->{'DefaultCustomerInfoString'} =  '$CustomerData->{UserCustomerID}<br/>
                $CustomerData->{UserFirstname} $CustomerData->{UserLastname}<br/><br/>
                <b>[% Translate("Phone")  | html %]:</b> $CustomerData->{UserPhone}<br/>
                <b>[%  Translate("Mail")  | html %]:</b> $CustomerData->{UserEmail}<br/>
                $CustomerData->{UserComment}';
$Self->{'FQDN'} =  'kix.xxxxxxxxxx.com';
$Self->{'Frontend::CommonParam'}->{'Action'} =  'AgentTicketQueue';
delete $Self->{'Frontend::KIXSidebarBackend'}->{'Checklist'};
delete $Self->{'Frontend::KIXSidebarBackend'}->{'CustomizeForm'};
$Self->{'Frontend::KIXSidebarBackend'}->{'ReuseArticleAttachments'} =  {
  'Actions' => 'AgentTicket(Compose|Forward|Bounce)',
  'Description' => 'Show or hide the',
  'Module' => 'Kernel::Output::HTML::KIXSidebar::ReuseArticleAttachments',
  'Prio' => '0400',
  'Title' => 'Attachments'
};
delete $Self->{'Frontend::KIXSidebarBackend'}->{'Scratchpad'};
delete $Self->{'Frontend::KIXSidebarBackend'}->{'TextModules'};
$Self->{'Frontend::Module'}->{'AgentArticleEdit'} =  {
  'Description' => 'Edit article data',
  'Loader' => {
    'JavaScript' => [
      ''
    ]
  },
  'NavBarName' => '',
  'Title' => 'Article edit'
};
$Self->{'Frontend::Module'}->{'AgentCustomerInformationCenter'} =  {
  'Description' => 'Customer Information Center.',
  'Loader' => {
    'CSS' => [
      'Core.Agent.Dashboard.css',
      'Core.AllocationList.css',
      'thirdparty/fullcalendar-2.4.0/fullcalendar.min.css',
      'thirdparty/nvd3-1.7.1/nv.d3.css',
      'KIX4OTRS.AgentCustomerDashboard.css'
    ],
    'JavaScript' => [
      'thirdparty/momentjs-2.10.6/moment.min.js',
      'thirdparty/fullcalendar-2.4.0/fullcalendar.min.js',
      'thirdparty/d3-3.5.6/d3.min.js',
      'thirdparty/nvd3-1.7.1/nvd3.min.js',
      'thirdparty/nvd3-1.7.1/models/OTRSLineChart.js',
      'thirdparty/nvd3-1.7.1/models/OTRSMultiBarChart.js',
      'thirdparty/nvd3-1.7.1/models/OTRSStackedAreaChart.js',
      'thirdparty/canvg-1.4/rgbcolor.js',
      'thirdparty/canvg-1.4/StackBlur.js',
      'thirdparty/canvg-1.4/canvg.js',
      'thirdparty/StringView-8/stringview.js',
      'Core.UI.AdvancedChart.js',
      'Core.UI.AllocationList.js',
      'Core.Agent.TableFilters.js',
      'Core.Agent.Dashboard.js',
      'thirdparty/jquery-ui-tabs-1.10.3/jquery.ui.tabs.js',
      'Core.Agent.CustomerSearch.js',
      'Core.Agent.TicketAction.js',
      'Core.KIX4OTRS.Agent.CustomerDashboard.js'
    ]
  },
  'NavBar' => [
    {
      'AccessKey' => '',
      'Block' => '',
      'Description' => 'Customer Information Center Search',
      'Link' => 'Action=AgentCustomerInformationCenter',
      'LinkOption' => '',
      'Name' => 'Customer Information Center',
      'NavBar' => 'Customer Management',
      'Prio' => '890',
      'Type' => ''
    }
  ],
  'NavBarName' => 'Customer Management',
  'Title' => 'Customer Information Center'
};
$Self->{'Frontend::Module'}->{'AgentCustomerInformationCenterSearch'} =  {
  'Description' => 'Customer Information Center Search.',
  'NavBarName' => '',
  'Title' => ''
};
delete $Self->{'Frontend::Module'}->{'AgentDashboard'};
$Self->{'Frontend::Module'}->{'AgentGenericAutoCompleteSearch'} =  {
  'Description' => 'Search queues to move',
  'NavBarName' => '',
  'Title' => 'SearchQueueMove'
};
$Self->{'Frontend::Module'}->{'AgentLinkObjectUtils'} =  {
  'Description' => 'LinkObject Utils',
  'NavBarName' => '',
  'Title' => 'LinkObject Utils'
};
$Self->{'Frontend::Module'}->{'QuickLinkAJAXHandler'} =  {
  'Description' => 'QuickLink AJAX Handler',
  'NavBarName' => '',
  'Title' => 'QuickLink AJAX Handler'
};
$Self->{'Frontend::Module'}->{'SearchprofilePreferencesAJAXHandler'} =  {
  'Description' => 'Search Profile AJAX Handler',
  'NavBarName' => '',
  'Title' => 'Search Profile AJAX Handler'
};
$Self->{'Frontend::Module'}->{'SwitchButton'} =  {
  'Description' => 'Switch to customer frontend and login automatically',
  'GroupRo' => [
    'SwitchButton'
  ],
  'NavBarName' => '',
  'Title' => 'Customer Frontend'
};
$Self->{'ITSMConfigItem::Frontend::Overview'}->{'Small'} =  {
  'Module' => 'Kernel::Output::HTML::ITSMConfigItem::OverviewSmall',
  'Name' => 'Small',
  'NameShort' => 'S',
  'PageShown' => '200'
};
$Self->{'Loader::Agent::DefaultSelectedSkin'} =  'xxx';
$Self->{'LostPassword'} =  '1';
delete $Self->{'NodeID'};
$Self->{'NotificationBodyLostPassword'} =  'Hi <KIX_USERFIRSTNAME>,




Here\'s your new KIX password.


New password: <KIX_NEWPW>


You can log in via the following URL:


<KIX_CONFIG_HttpType>://<KIX_CONFIG_FQDN>/<KIX_CONFIG_ScriptAlias>index.pl';
$Self->{'NotificationBodyLostPasswordToken'} =  'Hi <KIX_USERFIRSTNAME>,


You or someone impersonating you has requested to change your KIX
password.


If you want to do this, click on the link below. You will receive another email containing the password.


<KIX_CONFIG_HttpType>://<KIX_CONFIG_FQDN>/<KIX_CONFIG_ScriptAlias>index.pl?Action=LostPassword;Token=<KIX_TOKEN>


If you did not request a new password, please ignore this email.';
$Self->{'NotificationSenderEmail'} =  'noreply@kix.xxxxxxxxxx.com';
$Self->{'Organization'} =  'xxxxxxxxxx';
$Self->{'PostMaster::PreFilterModule::NewTicketReject::Body'} =  'Dear Customer,


Unfortunately we could not detect a valid ticket number
in your subject, so this email can\'t be processed.


Please create a new ticket via the customer panel.


Thanks for your help!


Your Helpdesk Team';
$Self->{'PostmasterDefaultQueue'} =  'Changes';
$Self->{'PreferencesGroups'}->{'ConfigItemOverviewCustomPageShown'} =  {
  'Active' => '0',
  'Column' => 'Other Settings',
  'Data' => {
    '10' => '10',
    '100' => '100',
    '15' => '15',
    '20' => '20',
    '200' => '200',
    '25' => '25',
    '30' => '30',
    '35' => '35'
  },
  'DataSelected' => '25',
  'Key' => 'Configuration Item limit per page',
  'Label' => 'Configuration Item Limit',
  'Module' => 'Kernel::Output::HTML::Preferences::Generic',
  'PrefKey' => 'UserConfigItemOverviewCustomPageShown',
  'Prio' => '8000'
};
$Self->{'PreferencesGroups'}->{'ConfigItemOverviewSmallPageShown'} =  {
  'Active' => '0',
  'Column' => 'Other Settings',
  'Data' => {
    '10' => '10',
    '100' => '100',
    '15' => '15',
    '20' => '20',
    '200' => '200',
    '25' => '25',
    '30' => '30',
    '35' => '35'
  },
  'DataSelected' => '25',
  'Key' => 'Configuration Item limit per page',
  'Label' => 'Configuration Item Limit',
  'Module' => 'Kernel::Output::HTML::Preferences::Generic',
  'PrefKey' => 'UserConfigItemOverviewSmallPageShown',
  'Prio' => '8000'
};
$Self->{'PreferencesGroups'}->{'RefreshTime'} =  {
  'Active' => '1',
  'Column' => 'Other Settings',
  'Data' => {
    '0' => 'off',
    '10' => '10 minutes',
    '15' => '15 minutes',
    '2' => '2 minutes',
    '5' => '5 minutes',
    '7' => '7 minutes'
  },
  'DataSelected' => '0',
  'Desc' => 'If enabled, the different overviews (Dashboard, LockedView, QueueView) will automatically refresh after the specified time.',
  'Key' => 'After',
  'Label' => 'Overview Refresh Time',
  'Module' => 'Kernel::Output::HTML::Preferences::Generic',
  'PrefKey' => 'UserRefreshTime',
  'Prio' => '2000'
};
$Self->{'PreferencesGroups'}->{'SpellDict'} =  {
  'Active' => 1,
  'Column' => 'Other Options',
  'Data' => {
    'deutsch' => 'Deutsch',
    'english' => 'English'
  },
  'Desc' => 'Select your default spelling dictionary.',
  'Label' => 'Spelling Dictionary',
  'Module' => 'Kernel::Output::HTML::Preferences::Generic',
  'PrefKey' => 'UserSpellDict',
  'Prio' => 5000
};
$Self->{'PreferencesGroups'}->{'TicketOverviewSmallPageShown'} =  {
  'Active' => '0',
  'Column' => 'Other Settings',
  'Data' => {
    '10' => '10',
    '100' => '100',
    '15' => '15',
    '20' => '20',
    '25' => '25',
    '30' => '30',
    '35' => '35'
  },
  'DataSelected' => '25',
  'Key' => 'Ticket limit per page for Ticket Overview "Small"',
  'Label' => 'Ticket Overview "Small" Limit',
  'Module' => 'Kernel::Output::HTML::Preferences::Generic',
  'PrefKey' => 'UserTicketOverviewSmallPageShown',
  'Prio' => '8000'
};
$Self->{'Process::DefaultQueue'} =  'Changes';
$Self->{'ProductName'} =  'xxx xxx xxx';
$Self->{'SendNoAutoResponseRegExp'} =  '(MAILER-DAEMON|postmaster|abuse|helpdesk)@.+?\\..+?';
$Self->{'SessionMaxIdleTime'} =  '2592000';
$Self->{'SessionMaxTime'} =  '2592000';
$Self->{'SystemID'} =  '37';
$Self->{'Ticket::Frontend::AdminQuickTicketConfigurator'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => '1',
  'ticketErpProject' => 1,
  'ticketExterneID' => '1',
  'ticketFollowUp' => '2',
  'ticketFollowUpmulti' => '1',
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'OnlyResponsible'} =  '0';
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'PermissionGroupCopy'} =  [
  'xxx_Artikel-Bearbeiter'
];
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'PermissionGroupDelete'} =  [
  'xxx_Artikel-Bearbeiter'
];
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'PermissionGroupEdit'} =  [
  'xxx_Artikel-Bearbeiter'
];
$Self->{'Ticket::Frontend::AgentArticleEdit'}->{'PermissionGroupMove'} =  [
  'xxx_Artikel-Bearbeiter'
];
$Self->{'Ticket::Frontend::AgentTicketAddtlITSMField'}->{'DynamicField'} =  {
  'ITSMDueDate' => '1',
  'ITSMRecoveryStartTime' => '1',
  'ITSMRepairStartTime' => '1',
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketClose'}->{'DynamicField'} =  {
  'ITSMReviewRequired' => '1',
  'ticketDoing' => 2,
  'ticketERPReference' => '1',
  'ticketErpProject' => '1',
  'ticketExterneID' => '1',
  'ticketFollowUp' => '2',
  'ticketFollowUpmulti' => '1',
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketClose'}->{'Service'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketClose'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketCompose'}->{'DynamicField'} =  {
  'ITSMReviewRequired' => '1',
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketDecision'}->{'DynamicField'} =  {
  'ITSMDecisionDate' => '1',
  'ITSMDecisionResult' => '1',
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketEmail'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketEmailOutbound'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketForward'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketFreeText'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => '0',
  'ticketErpProject' => '0',
  'ticketExterneID' => '0',
  'ticketFollowUp' => '2',
  'ticketFollowUpmulti' => '1',
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketFreeText'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketMove'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
delete $Self->{'Ticket::Frontend::AgentTicketNote'}->{'ArticleTypes'};
$Self->{'Ticket::Frontend::AgentTicketNote'}->{'DynamicField'} =  {
  'ticketDoing' => '2',
  'ticketERPReference' => '1',
  'ticketErpProject' => '1',
  'ticketExterneID' => '1',
  'ticketFollowUp' => '2',
  'ticketFollowUpmulti' => '1',
  'ticketKategorie' => '2'
};
$Self->{'Ticket::Frontend::AgentTicketNote'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketOwner'}->{'Body'} =  'Neuer Bearbeiter';
$Self->{'Ticket::Frontend::AgentTicketOwner'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => '0',
  'ticketErpProject' => '0',
  'ticketExterneID' => '0',
  'ticketFollowUp' => '0',
  'ticketFollowUpmulti' => '0',
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketOwner'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketOwner'}->{'Subject'} =  'Neuer Bearbeiter';
$Self->{'Ticket::Frontend::AgentTicketPending'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketPhone'}->{'DynamicField'} =  {
  'ITSMDueDate' => '1',
  'ITSMImpact' => '0',
  'ticketDoing' => 2,
  'ticketERPReference' => '1',
  'ticketErpProject' => '1',
  'ticketExterneID' => '1',
  'ticketFollowUp' => '2',
  'ticketFollowUpmulti' => '1',
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketPhone'}->{'ServiceMandatory'} =  '1';
$Self->{'Ticket::Frontend::AgentTicketPhoneInbound'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketPhoneOutbound'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketPrint'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketPrintRichtext'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketPriority'}->{'DynamicField'} =  {
  'ITSMImpact' => '1',
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketResponsible'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketSearch'}->{'DynamicField'} =  {
  'ITSMDecisionDate' => '1',
  'ITSMDecisionResult' => '1',
  'ITSMDueDate' => '1',
  'ITSMImpact' => '1',
  'ITSMRecoveryStartTime' => '1',
  'ITSMRepairStartTime' => '1',
  'ITSMReviewRequired' => '1',
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketZoom'}->{'DynamicField'} =  {
  'ITSMCriticality' => '1',
  'ITSMDecisionDate' => '1',
  'ITSMDecisionResult' => '1',
  'ITSMDueDate' => '1',
  'ITSMImpact' => '1',
  'ITSMRecoveryStartTime' => '1',
  'ITSMRepairStartTime' => '1',
  'ITSMReviewRequired' => '1',
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketZoomTabActionCommon'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::AgentTicketZoomTabArticle'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketZoomTabEditCoreData'}->{'DynamicField'} =  {
  'ticketDoing' => '0',
  'ticketERPReference' => '0',
  'ticketErpProject' => '0',
  'ticketExterneID' => '0',
  'ticketFollowUp' => '0',
  'ticketFollowUpmulti' => '0',
  'ticketKategorie' => '0'
};
$Self->{'Ticket::Frontend::AgentTicketZoomTabEditCoreData'}->{'State'} =  '0';
$Self->{'Ticket::Frontend::AgentTicketZoomTabEditDynamicFields'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::AgentTicketZoomTabProcess'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::BulkFeatureGroup'} =  [
  'xxx_Stapelverarbeiter',
  'admin'
];
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => '0',
  'ticketErpProject' => 0,
  'ticketExterneID' => '0',
  'ticketFollowUp' => '0',
  'ticketFollowUpmulti' => '0',
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'Queue'} =  '0';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'QueueDefault'} =  'Changes';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'SLA'} =  '0';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'Service'} =  '0';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'TicketTypeDefault'} =  'Incident';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'TicketTypeFix'} =  'Incident';
$Self->{'Ticket::Frontend::CustomerTicketOverview'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => '0',
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::CustomerTicketOverview'}->{'Owner'} =  '1';
$Self->{'Ticket::Frontend::CustomerTicketOverviewSortable'} =  'Sortable';
$Self->{'Ticket::Frontend::CustomerTicketPrint'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::CustomerTicketSearch'}->{'DynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::CustomerTicketZoom'}->{'DynamicField'} =  {
  'ITSMCriticality' => '1',
  'ITSMImpact' => '1',
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
$Self->{'Ticket::Frontend::CustomerTicketZoom'}->{'FollowUpDynamicField'} =  {
  'ticketDoing' => 0,
  'ticketERPReference' => 0,
  'ticketErpProject' => 0,
  'ticketExterneID' => 0,
  'ticketFollowUp' => 0,
  'ticketFollowUpmulti' => 0,
  'ticketKategorie' => 0
};
delete $Self->{'Ticket::Frontend::MenuModule'}->{'210-PrintForwardFax'};
$Self->{'Ticket::Frontend::OverviewMedium'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::OverviewPreview'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::OverviewSmall'}->{'DynamicField'} =  {
  'ticketDoing' => 2,
  'ticketERPReference' => 1,
  'ticketErpProject' => 1,
  'ticketExterneID' => 1,
  'ticketFollowUp' => 2,
  'ticketFollowUpmulti' => 1,
  'ticketKategorie' => 2
};
$Self->{'Ticket::Frontend::TimeUnits'} =  '(work units)';
$Self->{'Ticket::Hook'} =  '#';
$Self->{'Ticket::NumberGenerator'} =  'Kernel::System::Ticket::Number::AutoIncrement';
$Self->{'Ticket::NumberGenerator::CheckSystemID'} =  '0';
$Self->{'Ticket::SubjectFormat'} =  'Right';
$Self->{'Ticket::SubjectSize'} =  '250';
$Self->{'Ticket::Type'} =  '0';
$Self->{'UniqueCIName::EnableUniquenessCheck'} =  '1';
$Self->{'WebUserAgent::DisableSSLVerification'} =  '1';
$Self->{'Process::DefaultQueue'} = 'ISO und KVP';
$Self->{'PostmasterDefaultQueue'} = 'ISO und KVP';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'QueueDefault'} = 'ISO und KVP';
$Self->{'Process::DefaultQueue'} = 'IT-Team';
$Self->{'PostmasterDefaultQueue'} = 'IT-Team';
$Self->{'Ticket::Frontend::CustomerTicketMessage'}->{'QueueDefault'} = 'IT-Team';
}
1;


[\code]

danielwi

Hallo,


ich habe hier eine Information, die eventuell von Bedeutung ist. Ich habe eben festgestellt, dass das Phänomen nur bei einer Massenänderung auftritt. Also beispielsweise, wenn man in der Sammelaktion "Zusammenfassen zu ältestem" auswählt. Geht man über die Zusammenfassen-Option direkt im Ticket, wird der State wie gewünscht gesetzt. Kannst du das so nachvollziehen?


VG
Daniel

Jörg Brückner

Guten Morgen Daniel,

ich habe das gesamte Verhalten noch einmal auf verschiedenen Testsystemen mit den Infos von Dir versucht nachzustellen. In allen Fällen konnte ich das Verhalten wieder nicht nachstellen.Auch in der Analyse der zzzauto-Datei konnte ich nichts finden, was das Verhalten erklärt. Wir haben im Team noch einmal beraten und möchten weiter in die Analyse gehen und benötigen folgende Infos dafür:

- Screenshot bzw. die gesamte History eines zusammengefassten Tickets, wo das Verhalten auftritt- ich möchte mir einmal die Übersetzungsdatei ansehen (/opt/kix/Kernel/Language/de_KIX.pm)   Auch hier kann es zu nicht gewünschten Verhalten kommen, wenn es Änderungen gab, oder Sonder, Leer oder Freizeichen enthalten sind.- Bitte mal einen Screenshot der gesamten Queue-Liste

Vielleicht finden wir hier irgendwo eine Erklärung.

Herzliche GrüßeJörg

danielwi

Hi, das hatte ich schon befürchtet.


Anbei sind die von dir gewünschten Dateien. Besonders interessant ist Vergleich Merge.png. Ich habe da mal die Historie eines erfolgreichen mit einem erfolglosen Merge verglichen. Wie man sehen kann, fehlt bei einem fehlerhaften Merge das StateUpdate komplett. Ich habe aber keine Ahnung, wieso.


VG
Daniel

Jörg Brückner

Hallo Daniel,


so langsam fällt es uns schwer aus der Ferne das Verhalten nachzuvollziehen. Aus dem Grund habe ich bei unserer Softwareentwicklung angefragt, ob noch jemand eine Idee hat, woran das Verhalten liegen kann. Die meisten Punkte haben wir, soweit das aus der Ferne möglich ist, bereits durchgearbeitet.


Es gibt noch einen Punkte, die Ihr einmal prüfen könnt:

KIX-Daemon bitte einmal neu starten:

sudo -u www-data /opt/kix/bin/kix.Daemon.pl stop
sudo -u www-data /opt/kix/bin/kix.Daemon.pl start


Wenn das nicht die Lösung ist, kommen wir hier wahrscheinlich nicht mehr herum das im System direkt anzusehen.

Dazu möchte ich Dich gerne auf unsere Supportservices hinweisen. Kontaktiere uns einfach dazu:
Unser Vertriebsteam berät dich hierzu gern und erstellt dir ein individuelles, auf deine Wünsche zugeschnittenes, Angebot. 
Du erreichst uns unter der Rufnummer +49 371 27095 -620 oder per E-Mail an sales@cape-it.de.



Herzliche Grüße
Jörg

danielwi

Hall und vielen Dank für die Antwort.


Das Problem besteht auch nach einem Neustart des Servers. Entsprechend kann ein aufgehängter KIX-Daemon nicht die Ursache sein. Der Workaround funktioniert jetzt erst einmal. Falls sich noch etwas ergibt, werde ich mir ein Angebot schreiben lassen.


Viele Grüße
Daniel