Saludos a todos, estoy iniciándome en el OTRS 3.1 y me surge una primera duda.
El tema es que después de crear algunos estados para los tickets quiero listarlos por su estado en la vista de Tickets-Status View,
el problema que me encuentro es que los tickets abiertos los lista bién, uno de los estados creado también lo lista bién, pero estos de este último listado
también aparecen en el listado de cerrados y quiero evitar que aparezcan en esta lista, es decir:
- Los abiertos en el listado de abiertos
- Los cerrados en el listado cerrado
- Los del nuevo estado en su listado correspondiente y no en el listado de cerrados.
He creado el nuevo estado y con un nuevo tipo de estado, pero de alguna manera los tiene marcados como cerrados y no como el nuevo estado.
Creo que me he explicado, espero vuestra ayuda.
Saludos.
Listado de tickets por su estado
-
- Znuny wizard
- Posts: 370
- Joined: 17 Nov 2011, 17:46
- Znuny Version: 6.0.10
- Real Name: Miguel
- Company: SIA
- Location: Madrid, Spain.
Re: Listado de tickets por su estado
Lo que buscas no esta ahi,
Vete por linea de comandos a la ruta /opt/otrs/Kernel/Modules/AgentTicketStatusView.pm y modifica en la funcion Run "my %Filters". Mira esto
Cada uno de estos 4 elementos son las pestañas del StatusView, como puedes ver he añadido uno nuevo que son los ticket cuyo tipo de estado sea "espera" (un nuevo tipo de estado agregado por mi) y otra pestaña cliente donde aparecen solo los tickets cuyo Customer se llame cliente. Te explico:
- El name es el nombre que aparecera en tu pestaña StatusView.
- Prio es la posicion que ocupa en la barra, empieza por 1000 (open) , 1001 (closed), 1002 (...), etc. Puedes reordenarlos a tu gusto.
- Search es la funcion que ejecuta para filtarte los tickets al pinchar sobre la pestaña, esta funcion esta en Kernel/System/Ticket.pm donde en su cabecera puedes ver todas las posibles busquedas.
- StateType es lo que te interesa, declaras el nombre del tipo de estado a filtrar. esta sentencia puede ser sustituida por cualquiera de la funcion TicketSearch como Estado especifico, prioridad, propietario, sla, servicio, freetext, todo lo que tu quieras.
Aqui tienes esa lista completa:
Un saludo.
Vete por linea de comandos a la ruta /opt/otrs/Kernel/Modules/AgentTicketStatusView.pm y modifica en la funcion Run "my %Filters". Mira esto
Code: Select all
my %Filters = (
Open => {
Name => 'open',
Prio => 1000,
Search => {
StateType => 'Open',
OrderBy => $OrderBy,
SortBy => $SortBy,
UserID => $Self->{UserID},
Permission => 'ro',
},
},
Espera => {
Name => 'Espera',
Prio => 1001,
Search => {
StateType => 'Espera',
OrderBy => $OrderBy,
SortBy => $SortBy,
UserID => $Self->{UserID},
Permission => 'ro',
},
},
Closed => {
Name => 'closed',
Prio => 1002,
Search => {
StateType => 'Closed',
OrderBy => $OrderBy,
SortBy => $SortBy,
UserID => $Self->{UserID},
Permission => 'ro',
},
},
Cliente => {
Name => 'Cliente',
Prio => 1003,
Search => {
CustomerUserLogin => 'cliente',
OrderBy => $OrderBy,
SortBy => $SortBy,
UserID => $Self->{UserID},
Permission => 'ro',
},
},
);
- Espera => {
Name => 'Espera',
Prio => 1001,
Search => {
StateType => 'Espera',
OrderBy => $OrderBy,
SortBy => $SortBy,
UserID => $Self->{UserID},
Permission => 'ro',
},
},
- El name es el nombre que aparecera en tu pestaña StatusView.
- Prio es la posicion que ocupa en la barra, empieza por 1000 (open) , 1001 (closed), 1002 (...), etc. Puedes reordenarlos a tu gusto.
- Search es la funcion que ejecuta para filtarte los tickets al pinchar sobre la pestaña, esta funcion esta en Kernel/System/Ticket.pm donde en su cabecera puedes ver todas las posibles busquedas.
- StateType es lo que te interesa, declaras el nombre del tipo de estado a filtrar. esta sentencia puede ser sustituida por cualquiera de la funcion TicketSearch como Estado especifico, prioridad, propietario, sla, servicio, freetext, todo lo que tu quieras.
Aqui tienes esa lista completa:
Code: Select all
# result limit
Limit => 100,
# ticket number (optional) as STRING or as ARRAYREF
TicketNumber => '%123546%',
TicketNumber => ['%123546%', '%123666%'],
# ticket title (optional) as STRING or as ARRAYREF
Title => '%SomeText%',
Title => ['%SomeTest1%', '%SomeTest2%'],
Queues => ['system queue', 'other queue'],
QueueIDs => [1, 42, 512],
# use also sub queues of Queue|Queues in search
UseSubQueues => 0,
# You can use types like normal, ...
Types => ['normal', 'change', 'incident'],
TypeIDs => [3, 4],
# You can use states like new, open, pending reminder, ...
States => ['new', 'open'],
StateIDs => [3, 4],
# (Open|Closed) tickets for all closed or open tickets.
StateType => 'Open',
# You also can use real state types like new, open, closed,
# pending reminder, pending auto, removed and merged.
StateType => ['open', 'new'],
StateTypeIDs => [1, 2, 3],
Priorities => ['1 very low', '2 low', '3 normal'],
PriorityIDs => [1, 2, 3],
Services => ['Service A', 'Service B'],
ServiceIDs => [1, 2, 3],
SLAs => ['SLA A', 'SLA B'],
SLAIDs => [1, 2, 3],
Locks => ['unlock'],
LockIDs => [1, 2, 3],
OwnerIDs => [1, 12, 455, 32]
ResponsibleIDs => [1, 12, 455, 32]
WatchUserIDs => [1, 12, 455, 32]
# CustomerID (optional) as STRING or as ARRAYREF
CustomerID => '123',
CustomerID => ['123', 'ABC'],
# CustomerUserLogin (optional) as STRING as ARRAYREF
CustomerUserLogin => 'uid123',
CustomerUserLogin => ['uid123', 'uid777'],
# create ticket properties (optional)
CreatedUserIDs => [1, 12, 455, 32]
CreatedTypes => ['normal', 'change', 'incident'],
CreatedTypeIDs => [1, 2, 3],
CreatedPriorities => ['1 very low', '2 low', '3 normal'],
CreatedPriorityIDs => [1, 2, 3],
CreatedStates => ['new', 'open'],
CreatedStateIDs => [3, 4],
CreatedQueues => ['system queue', 'other queue'],
CreatedQueueIDs => [1, 42, 512],
# 1..16 (optional)
TicketFreeKey1 => 'Product',
TicketFreeText1 => 'adasd',
# or with multi options as array ref or string possible
TicketFreeKey2 => ['Product', 'Product2'],
TicketFreeText2 => ['Browser', 'Sound', 'Mouse'],
# 1..6 (optional)
# tickets with free time after ... (optional)
TicketFreeTime1NewerDate => '2006-01-09 00:00:01',
# tickets with free time before ... (optional)
TicketFreeTime1OlderDate => '2006-01-19 23:59:59',
# search for ticket flags
TicketFlag => {
Seen => 1,
}
# article stuff (optional)
From => '%spam@example.com%',
To => '%support@example.com%',
Cc => '%client@example.com%',
Subject => '%VIRUS 32%',
Body => '%VIRUS 32%',
# use full article text index if configured (optional, default off)
FullTextIndex => 1,
# article content search (AND or OR for From, To, Cc, Subject and Body) (optional)
ContentSearch => 'AND',
# article content search prefix (for From, To, Cc, Subject and Body) (optional)
ContentSearchPrefix => '*',
# article content search suffix (for From, To, Cc, Subject and Body) (optional)
ContentSearchSuffix => '*',
# content conditions for From,To,Cc,Subject,Body
# Title,CustomerID and CustomerUserLogin (all optional)
ConditionInline => 1,
# articles created more than 60 minutes ago (article older than 60 minutes) (optional)
ArticleCreateTimeOlderMinutes => 60,
# articles created less than 120 minutes ago (article newer than 60 minutes) (optional)
ArticleCreateTimeNewerMinutes => 120,
# articles with create time after ... (article newer than this date) (optional)
ArticleCreateTimeNewerDate => '2006-01-09 00:00:01',
# articles with created time before ... (article older than this date) (optional)
ArticleCreateTimeOlderDate => '2006-01-19 23:59:59',
# tickets created more than 60 minutes ago (ticket older than 60 minutes) (optional)
TicketCreateTimeOlderMinutes => 60,
# tickets created less than 120 minutes ago (ticket newer than 120 minutes) (optional)
TicketCreateTimeNewerMinutes => 120,
# tickets with create time after ... (ticket newer than this date) (optional)
TicketCreateTimeNewerDate => '2006-01-09 00:00:01',
# tickets with created time before ... (ticket older than this date) (optional)
TicketCreateTimeOlderDate => '2006-01-19 23:59:59',
# tickets changed more than 60 minutes ago (optional)
TicketChangeTimeOlderMinutes => 60,
# tickets changed less than 120 minutes ago (optional)
TicketChangeTimeNewerMinutes => 120,
# tickets with changed time after ... (ticket changed newer than this date) (optional)
TicketChangeTimeNewerDate => '2006-01-09 00:00:01',
# tickets with changed time before ... (ticket changed older than this date) (optional)
TicketChangeTimeOlderDate => '2006-01-19 23:59:59',
# tickets closed more than 60 minutes ago (optional)
TicketCloseTimeOlderMinutes => 60,
# tickets closed less than 120 minutes ago (optional)
TicketCloseTimeNewerMinutes => 120,
# tickets with closed time after ... (ticket closed newer than this date) (optional)
TicketCloseTimeNewerDate => '2006-01-09 00:00:01',
# tickets with closed time before ... (ticket closed older than this date) (optional)
TicketCloseTimeOlderDate => '2006-01-19 23:59:59',
# tickets with pending time of more than 60 minutes ago (optional)
TicketPendingTimeOlderMinutes => 60,
# tickets with pending time of less than 120 minutes ago (optional)
TicketPendingTimeNewerMinutes => 120,
# tickets with pending time after ... (optional)
TicketPendingTimeNewerDate => '2006-01-09 00:00:01',
# tickets with pending time before ... (optional)
TicketPendingTimeOlderDate => '2006-01-19 23:59:59',
# you can use all following escalation options with this four different ways of escalations
# TicketEscalationTime...
# TicketEscalationUpdateTime...
# TicketEscalationResponseTime...
# TicketEscalationSolutionTime...
# ticket escalation time of more than 60 minutes ago (optional)
TicketEscalationTimeOlderMinutes => -60,
# ticket escalation time of less than 120 minutes ago (optional)
TicketEscalationTimeNewerMinutes => -120,
# tickets with escalation time after ... (optional)
TicketEscalationTimeNewerDate => '2006-01-09 00:00:01',
# tickets with escalation time before ... (optional)
TicketEscalationTimeOlderDate => '2006-01-09 23:59:59',
# search in archive (optional)
ArchiveFlags => ['y', 'n'],
# OrderBy and SortBy (optional)
OrderBy => 'Down', # Down|Up
SortBy => 'Age', # Owner|Responsible|CustomerID|State|TicketNumber|Queue|Priority|Age|Type|Lock
# Title|Service|SLA|PendingTime|EscalationTime
# EscalationUpdateTime|EscalationResponseTime|EscalationSolutionTime
# TicketFreeTime1-6|TicketFreeKey1-16|TicketFreeText1-16
# OrderBy and SortBy as ARRAY for sub sorting (optional)
OrderBy => ['Down', 'Up'],
SortBy => ['Priority', 'Age'],
# user search (UserID is required)
UserID => 123,
Permission => 'ro' || 'rw',
# customer search (CustomerUserID is required)
CustomerUserID => 123,
Permission => 'ro' || 'rw',
# CacheTTL, cache search result in seconds (optional)
CacheTTL => 60 * 15,
Last edited by miguelmz on 13 Apr 2012, 15:09, edited 1 time in total.
Re: Listado de tickets por su estado
Gracias Miguel por la pronta respuesta me ha sido de gran ayuda.
La función search no está en Kernel/System/Ticket.pm, está en Kernel/System/TicketSearch.pm
De todas formas la lista que has escrito me ha sidu útil.
Gracias y cuento contigo para futuras referencias.
Doriath
La función search no está en Kernel/System/Ticket.pm, está en Kernel/System/TicketSearch.pm
De todas formas la lista que has escrito me ha sidu útil.
Gracias y cuento contigo para futuras referencias.
Doriath
-
- Znuny wizard
- Posts: 370
- Joined: 17 Nov 2011, 17:46
- Znuny Version: 6.0.10
- Real Name: Miguel
- Company: SIA
- Location: Madrid, Spain.
Re: Listado de tickets por su estado
Ups, me he equivocado no es Search, sino TicketSearch la ruta que te di es la correcta me equivoce en el nombre de la funciondoriath wrote:La función search no está en Kernel/System/Ticket.pm, está en Kernel/System/TicketSearch.pm

Un saludo.
Re: Listado de tickets por su estado
No problem, mirando otros ficheros la he encontrado.
Otra pregunta, si no te importa y sabes como, no lo he encontrado.
He abierto otro hilo, pero ya que estamos...
Quiero mostrar en el menú superior, cuando ves el detalle de un ticket, el enlace de cerrar en función del
tipo de estado del ticket, ya que ahora lo muestra siempre esté o no marcado como cerrado, y claro, cerrar
uno ya cerrado queda un poco raro...
Saludos.
Doriath
Otra pregunta, si no te importa y sabes como, no lo he encontrado.
He abierto otro hilo, pero ya que estamos...

Quiero mostrar en el menú superior, cuando ves el detalle de un ticket, el enlace de cerrar en función del
tipo de estado del ticket, ya que ahora lo muestra siempre esté o no marcado como cerrado, y claro, cerrar
uno ya cerrado queda un poco raro...

Saludos.
Doriath