Gesperrte Tickets von ungültigen Benutzern schließen
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Gesperrte Tickets von ungültigen Benutzern schließen
Hallo liebe Community,
ist es möglich alle gesperrten Tickets von ungültigen Agents zu schließen/löschen?
MfG und Danke
ist es möglich alle gesperrten Tickets von ungültigen Agents zu schließen/löschen?
MfG und Danke
-
- Znuny Employee
- Posts: 132
- Joined: 13 Sep 2021, 09:38
- Znuny Version: Znuny 6.3.x
- Real Name: Shawn Beasley
- Company: Znuny
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Es gibt kein "simple" Losung dafür.
Am einfachsten lässt dies per SQL lösen. Es soll aber den Cache danach gelöscht werden.
Test und LIMIT entfernen wenn es geklappt hat:
#Get a list
#SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2 LIMIT 1;
#Unlock
#UPDATE ticket as t LEFT JOIN users as u on u.id=t.user_id SET t.ticket_lock_id=1 WHERE u.valid_id=2 LIMIT 1;
#Close
#UPDATE ticket as t LEFT JOIN users as u on u.id=t.user_id SET t.ticket_state_id = 2 WHERE u.valid_id=2 LIMIT 1;
#Check
#SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2 LIMIT 1;
bin/otrs.Console.pl Maint::Cache::Delete --type Ticket
Oder alle Agenten kurz wieder mal aktivieren, und ein GA dafür benutzen.
Am einfachsten lässt dies per SQL lösen. Es soll aber den Cache danach gelöscht werden.
Test und LIMIT entfernen wenn es geklappt hat:
#Get a list
#SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2 LIMIT 1;
#Unlock
#UPDATE ticket as t LEFT JOIN users as u on u.id=t.user_id SET t.ticket_lock_id=1 WHERE u.valid_id=2 LIMIT 1;
#Close
#UPDATE ticket as t LEFT JOIN users as u on u.id=t.user_id SET t.ticket_state_id = 2 WHERE u.valid_id=2 LIMIT 1;
#Check
#SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2 LIMIT 1;
bin/otrs.Console.pl Maint::Cache::Delete --type Ticket
Oder alle Agenten kurz wieder mal aktivieren, und ein GA dafür benutzen.
-
- Znuny wizard
- Posts: 471
- Joined: 20 Nov 2011, 16:08
- Znuny Version: 6.5.4
- Real Name: Schulmann
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Hallo,nscblauensteiner wrote: ↑08 Apr 2022, 10:37 ist es möglich alle gesperrten Tickets von ungültigen Agents zu schließen/löschen?
mein Vorgehen ist (Entsperren von Tickets ungültiger Agenten):
- Mit einem SQL-Kommando die Tickets suchen
- Die Kommandos für das Entsperren ausgeben (incl. Ticket-Nummern und Besitzern)
Code: Select all
psql -c 'select ticket.id,ticket.tn,users.login FROM ticket JOIN users on ticket.user_id = users.id WHERE ticket.ticket_lock_id = 2 AND users.valid_id != 1;' -d otrs -t otrs|sed -e 's/^ *//'|grep '^[0-9]'|sed -e 's/|/#/;s/ |//;s+^+bin/otrs.Console.pl Maint::Ticket::UnlockTicket +'
Znuny6/Debian/ESXi
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Hallo und danke für die rasche Rückmeldung,
zeigt ohne Limit deutlich mehr Ergebnisse, als die Ausgabe an gesperrten Tickets in der "Supportdaten-Analyse":
Ungültige Benutzer mit gesperrten Tickets (35)
Es existierten ungültige Benutzer mit gesperrten Tickets.
Was mache ich falsch?
Dieser Befehlshawnbeasley wrote: ↑11 Apr 2022, 16:16 #SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2 LIMIT 1;
Code: Select all
SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2;
Ungültige Benutzer mit gesperrten Tickets (35)
Es existierten ungültige Benutzer mit gesperrten Tickets.
Was mache ich falsch?
Last edited by nscblauensteiner on 12 Apr 2022, 09:28, edited 1 time in total.
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Vielen Dank für die Rückmeldung, ich habe eine MySQL Datenbank im Einsatz.schulmann wrote: ↑12 Apr 2022, 06:36Hallo,nscblauensteiner wrote: ↑08 Apr 2022, 10:37 ist es möglich alle gesperrten Tickets von ungültigen Agents zu schließen/löschen?
mein Vorgehen ist (Entsperren von Tickets ungültiger Agenten):Mit einer Postgres-DB geht das so:
- Mit einem SQL-Kommando die Tickets suchen
- Die Kommandos für das Entsperren ausgeben (incl. Ticket-Nummern und Besitzern)
CDCode: Select all
psql -c 'select ticket.id,ticket.tn,users.login FROM ticket JOIN users on ticket.user_id = users.id WHERE ticket.ticket_lock_id = 2 AND users.valid_id != 1;' -d otrs -t otrs|sed -e 's/^ *//'|grep '^[0-9]'|sed -e 's/|/#/;s/ |//;s+^+bin/otrs.Console.pl Maint::Ticket::UnlockTicket +'
-
- Znuny Employee
- Posts: 132
- Joined: 13 Sep 2021, 09:38
- Znuny Version: Znuny 6.3.x
- Real Name: Shawn Beasley
- Company: Znuny
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Nichts unbedingt. Du kannst auch erst mal einfach ein weitere JOIN dazunehmen und schauen welcher Nutzer als Owner im Tickets gesetzt sind. Es gibt ein Konsole commandnscblauensteiner wrote: ↑12 Apr 2022, 09:25 Dieser Befehlzeigt ohne Limit deutlich mehr Ergebnisse, als die Ausgabe an gesperrten Tickets in der "Supportdaten-Analyse":Code: Select all
SELECT t.tn,t.ticket_state_id FROM ticket as t LEFT JOIN users as u on u.id=t.user_id WHERE u.valid_id=2;
bin/otrs.Console.pl Maint::Ticket::InvalidUserCleanup
Das ist zwar nicht geschlossen, aber besser als ein Fehler in der DB zu machen.
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Ja, dieses Kommando zeigt mir die ungültigen User, nicht aber die gesperrten Tickets dieser ungültigen User.
Code: Select all
Starting invalid user cleanup...
Lock Cleanup for 72 users starting...
Done (unlocked 0 and changed state of 0 tickets).
Flag Cleanup for 72 users starting...
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Wie meinst du das?shawnbeasley wrote: ↑12 Apr 2022, 09:49 Nichts unbedingt. Du kannst auch erst mal einfach ein weitere JOIN dazunehmen und schauen welcher Nutzer als Owner im Tickets gesetzt sind.
-
- Znuny Employee
- Posts: 132
- Joined: 13 Sep 2021, 09:38
- Znuny Version: Znuny 6.3.x
- Real Name: Shawn Beasley
- Company: Znuny
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Schein als ob kein tickets auf Ungültigen Benutzer gesperrt sind.Code: Select all
Starting invalid user cleanup... Lock Cleanup for 72 users starting... Done (unlocked 0 and changed state of 0 tickets). Flag Cleanup for 72 users starting...
Ich würde so vorgehen:
Identifiziere im SQL mein ungültigen Nutzer.
Code: Select all
SELECT id FROM users WHERE valid_id = 2
Code: Select all
SELECT tn, user_id, ticket_lock_id, ticket_state_id FROM ticket WHERE user_id in (SELECT id FROM users WHERE valid_id = 2);
+--------------------+---------+----------------+-----------------+
| tn | user_id | ticket_lock_id | ticket_state_id |
+--------------------+---------+----------------+-----------------+
| 2021012710123456 | 3 | 1 | 1 |
| 202203281849000018 | 3 | 1 | 1 |
| 202203281849000027 | 3 | 1 | 4 |
| 202203281849000036 | 3 | 1 | 1 |
| 202203281849000045 | 3 | 1 | 1 |
| 202203281849000054 | 3 | 1 | 1 |
| 202203281849000063 | 3 | 1 | 4 |
| 202203301849000013 | 3 | 1 | 1 |
| 202203301849000022 | 3 | 1 | 1 |
+--------------------+---------+----------------+-----------------+
9 rows in set (0.00 sec)
Identify the lock_type and state_id zu setzen
Code: Select all
mysql> SELECT * FROM ticket_lock_type;
+----+----------+----------+---------------------+-----------+---------------------+-----------+
| id | name | valid_id | create_time | create_by | change_time | change_by |
+----+----------+----------+---------------------+-----------+---------------------+-----------+
| 1 | unlock | 1 | 2022-03-24 09:04:56 | 1 | 2022-03-24 09:04:56 | 1 |
| 2 | lock | 1 | 2022-03-24 09:04:56 | 1 | 2022-03-24 09:04:56 | 1 |
| 3 | tmp_lock | 1 | 2022-03-24 09:04:56 | 1 | 2022-03-24 09:04:56 | 1 |
+----+----------+----------+---------------------+-----------+---------------------+-----------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM ticket_state;
+----+---------------------+----------------------------------------+---------+----------+---------------------+-----------+---------------------+-----------+
| id | name | comments | type_id | valid_id | create_time | create_by | change_time | change_by |
+----+---------------------+----------------------------------------+---------+----------+---------------------+-----------+---------------------+-----------+
| 1 | new | New ticket created by customer. | 1 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 2 | closed successful | Ticket is closed successful. | 3 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 3 | closed unsuccessful | Ticket is closed unsuccessful. | 3 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 4 | open | Open tickets. | 2 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 5 | removed | Customer removed ticket. | 6 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 6 | pending reminder | Ticket is pending for agent reminder. | 4 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 7 | pending auto close+ | Ticket is pending for automatic close. | 5 | 1 | 2022-03-24 09:04:55 | 1 | 2022-03-24 09:04:55 | 1 |
| 8 | pending auto close- | Ticket is pending for automatic close. | 5 | 1 | 2022-03-24 09:04:56 | 1 | 2022-03-24 09:04:56 | 1 |
| 9 | merged | State for merged tickets. | 7 | 1 | 2022-03-24 09:04:56 | 1 | 2022-03-24 09:04:56 | 1 |
+----+---------------------+----------------------------------------+---------+----------+---------------------+-----------+---------------------+-----------+
9 rows in set (0.00 sec)
Code: Select all
mysql> UPDATE ticket SET ticket_state_id = 2 WHERE user_id in (SELECT id FROM users WHERE valid_id = 2);
Query OK, 9 rows affected (0.07 sec)
Rows matched: 9 Changed: 9 Warnings: 0
mysql> UPDATE ticket SET ticket_lock_id = 1 WHERE user_id in (SELECT id FROM users WHERE valid_id = 2);
Query OK, 0 rows affected (0.03 sec)
Rows matched: 9 Changed: 0 Warnings: 0
mysql> SELECT tn, user_id, ticket_lock_id, ticket_state_id FROM ticket WHERE user_id in (SELECT id FROM users WHERE valid_id = 2);
+--------------------+---------+----------------+-----------------+
| tn | user_id | ticket_lock_id | ticket_state_id |
+--------------------+---------+----------------+-----------------+
| 2021012710123456 | 3 | 1 | 2 |
| 202203281849000018 | 3 | 1 | 2 |
| 202203281849000027 | 3 | 1 | 2 |
| 202203281849000036 | 3 | 1 | 2 |
| 202203281849000045 | 3 | 1 | 2 |
| 202203281849000054 | 3 | 1 | 2 |
| 202203281849000063 | 3 | 1 | 2 |
| 202203301849000013 | 3 | 1 | 2 |
| 202203301849000022 | 3 | 1 | 2 |
+--------------------+---------+----------------+-----------------+
9 rows in set (0.00 sec)
ALWAYS MAKE A BACKUP
-
- Znuny newbie
- Posts: 28
- Joined: 15 Apr 2019, 09:34
- Znuny Version: 6.0.44
- Real Name: Lukas B.
Re: Gesperrte Tickets von ungültigen Benutzern schließen
Zu berücksichtigen ist, dass die postmasterUserID bzw. der user mit der ID 1 (user_id = 1) nicht inaktiv ist!