Differenze tra le versioni di "Filters management"

Da itm wiki.
(How To Create complex filter)
 
(19 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
For many entities (ticket, timesheet, etc...) itmSUITE® provides a complete filter management system that user can adapt to his needs.
+
The itmSUITE® provides a complete filter management system that implements items (ticket, timesheet, etc...) searching according to several filtering rules.
 +
In itmSUITE® three filter types can be defined:
 +
* '''Global filters''': are permanent filters configured by company admin and accessible to a group of users of the same company.
 +
* '''Personal filters''': are permanent filters configured by user and accessible only to him/her.
 +
* '''Temporary filters''': are temporary filters configured by user and accessible to him/her in current session.
 +
 
 +
{| class="wikitable" style="text-align: center;"
 +
! Entity !! Global filter !! Personal filter !! Temporary filter
 +
|-
 +
|''Action'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Asset'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Billing Calendar'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Forced View'' || '''X''' || ||
 +
 
 +
|-
 +
|''Invoice'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Message'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Milestone'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''News'' ||  ||  || '''X'''
 +
 
 +
|-
 +
|''Personal View'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Project'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Project Activity'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Project Template'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Purchase Contract'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Sale Contract'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Service'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Service Template'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Supplier'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Resource'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Resource Planning'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Ticket'' || '''X''' || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Ticket Activity'' || '''X''' || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Timesheet'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''User'' ||  || '''X''' || '''X'''
 +
 
 +
|-
 +
|''Workflow'' ||  || '''X''' || '''X'''
 +
 
 +
|}
  
  
Riga 15: Riga 95:
  
 
and specific block sections for every entity views.
 
and specific block sections for every entity views.
 +
 +
  
  
Riga 52: Riga 134:
  
 
|-
 
|-
|<u>Primay Block Hierarchy</u> || Radio button || TBD
+
|<u>Primay Block Hierarchy</u> || Radio button || the following choises are  possible:
 
+
* <u>No Hierarchy</u>
 +
* <u>Project and Services / Ticket Types / Operational Statuses</u>
 +
* <u>Ticket Types / Project and Services / Operational Statuses</u>
 
|-
 
|-
 
|'''Save''' || Button || saves '''''Global Settings''''' configuration
 
|'''Save''' || Button || saves '''''Global Settings''''' configuration
Riga 97: Riga 181:
  
 
|-
 
|-
|<u>Project(s)</u> || <u>Projects and Services</u> || Primary || multiselected filter for ''project''and ''Service'' name
+
|<u>Project(s)</u> || '''''Projects and Services''''' || Primary || multiselected filter for ''project''and ''Service'' name
  
 
|-
 
|-
|<u>Ticket Op Status</u> || <u>Ticket Statuses</u> || Primary || multiselected filter for ''ticket'' status
+
|<u>Ticket Types</u> || '''''Ticket Type''''' || Primary || multiselected filter for ''Workflow'' Ticket Types
 
+
|-
 +
|<u>Ticket Op Status</u> || '''''Ticket Statuses''''' || Primary || multiselected filter for ''ticket'' status
 +
|-
 +
|<u>Groups</u> || '''''Ticket Dynamic Group/Role''''' || Secondary || This section enable the user to filter per
 +
* Group
 +
* Role on ticket
 +
For each group is possible to enable the "Group Sub option" to simplify the group selection.
 +
Ticket role filter management is based on resource role on ticket (e.g. Ticket where the logged user is Creator or Owner or Ticket Workr,ect.) The roles selection list is devided in two sections. Ticket where the logged user is ... and Ticket Without ...
 +
This sections works with an AND clause; each item in each section works with an OR clause.
 +
|-
 +
|<u>Priority</u> || '''''Ticket Priority''''' || Secondary ||This section enable the user to filter the ticket based on Ticket Priority and its component (ticket impact and ticket priority)
 +
|-
 +
|<u>Requester</u> || '''''Requesters''''' || Secondary ||This section enable the user to filter based on ''requester'' information / ''[[GLOSSARY|Client]]'' or position in the ''[[GLOSSARY | Organization Unit]]''
 +
|-
 +
|<u>Generic </u> || '''''Generic information''''' || Secondary ||This section enable the user to filter base on different feature like ''Target Enviroment'',''Service Request'',''Service'',''Product'', ''Ticket activity template''and ''Tuple'' elements
 +
|-
 +
|<u>Causes </u> || '''''Ticket Transition''''' || Secondary || This section enable the user to filter based on ''Ticket closure clause'' and ''Ticket Resolution clause''
 +
|-
 +
|<u>Configuration Item </u> || '''''Confguration Item''''' || Secondary || multiselected filter for ''Configuration Item'' name.
 +
|-
 +
|<u>Custon field </u> || '''''Custom field''''' || Secondary || multiselected filter for ''Custom Fields'' defined for each ''Ticket type'' selected.
 
|-
 
|-
|<u>Ticket statuses </u> || <u>Projects and Services</u> || Primary || multiselected filter for ''project''and ''Service'' name
+
|<u>Text Search </u> || '''''Text''''' || Secondary ||This section enable the user to select one or more Text field and specify a "Search String" value''
  
 
|}
 
|}
 +
 +
==== How To Create complex filter ====
 +
 +
Complex filter will be created as a combination of Ticket parameter selection. For example:
 +
 +
Filter1 : Extract all the Incident ticket where I'm Owner or I'm Ticket Worker, is implented:
 +
* Primary section: Ticket Types : Select "Incident"
 +
* Secondary section: Group : Select two elements:
 +
# Ticket where the logged user is Owner
 +
# Ticket where the logged user is Ticket Worker
 +
 +
 +
Filter2 : Extract all the Incident, Service request ticket without Owner, is implented:
 +
* Primary section: Ticket Types : Select two elements:
 +
# "Incident"
 +
# "Request Fulfilment"
 +
* Secondary section: Group : Select Ticket without Owner
 +
 +
 +
The administrator has to manage carefully the flexibility the tool give him because he/she can select a conflictual choice, so the filter doesn't return any data.
 +
 +
In Filter ''view'' differently from ''Personal'' view has the possibility to define <u>QL Expression </u> (Query Language). This way to filter ticket is delivered only to the Administrator due to the technical knowledge necessary to create then.
 +
 +
Some example:
 +
'''Current User = owner'''
 +
(main.ownerId = ${securityContext.resourceId})
 +
 +
'''Current user = Creator'''
 +
(main.resource.Id = ${securityContext.resourceId})
 +
 +
'''Current User = PM'''
 +
(main.project.id in (select prj.id from Project prj inner join prj.pmEntries as pm
 +
where pm.id =  ${securityContext.resourceId}))
 +
 +
'''Current User = SGm'''
 +
(main.solutiongroup.id in (select sg.id from SolutionGroup as sg inner join
 +
sg.resourceEntries as r where r.id =  ${securityContext.resourceId}))
 +
 +
'''Current User = SG Manager'''
 +
(main.solutiongroup.id in (select sg.id from SolutionGroup as sg inner join
 +
sg.sgManagerEntries as r where r.id =  ${securityContext.resourceId}))
 +
 +
'''Current User = Master SGm'''
 +
(main.masterSolutiongroup.id in (select sg.id from SolutionGroup as sg inner join
 +
sg.resourceEntries as r where r.id =  ${securityContext.resourceId}))
 +
 +
'''Current User = Master SG Manager'''
 +
(main.masterSolutiongroup.id in (select sg.id from SolutionGroup as sg inner join
 +
sg.sgManagerEntries as r where r.id =  ${securityContext.resourceId}))
 +
 +
'''Current User = Ticket Requester'''
 +
(main.requester.id = ${securityContext.resourceId})
 +
 +
'''Current User = Ticket Worker'''
 +
where main.id in (select asT.id from Resource as r inner join r.assignedTicketEntries as asT
 +
where r.id = ${securityContext.resourceId})

Versione attuale delle 10:07, 16 ott 2018

The itmSUITE® provides a complete filter management system that implements items (ticket, timesheet, etc...) searching according to several filtering rules. In itmSUITE® three filter types can be defined:

  • Global filters: are permanent filters configured by company admin and accessible to a group of users of the same company.
  • Personal filters: are permanent filters configured by user and accessible only to him/her.
  • Temporary filters: are temporary filters configured by user and accessible to him/her in current session.
Entity Global filter Personal filter Temporary filter
Action X X
Asset X X
Billing Calendar X X
Forced View X
Invoice X X
Message X X
Milestone X X
News X
Personal View X X
Project X X
Project Activity X X
Project Template X X
Purchase Contract X X
Sale Contract X X
Service X X
Service Template X X
Supplier X X
Resource X X
Resource Planning X X
Ticket X X X
Ticket Activity X X X
Timesheet X X
User X X
Workflow X X


Filters Configuration

In some entities list (i.e., ticket views) it is possible to configure a personal filter by Filters button or to remove it by Drop Filter button:

Filter Management buttons

The filter management form contains following common sections:

  • Personal Filter Manager
  • Global Settings
  • Main Section
  • Primay and Secondary Section

and specific block sections for every entity views.



Personal Filter Manager

Section to create, delete or update personal filters. It is enabled by clicking on Personal Filter Manager button.

Field Type Description
Action Radio button
  • "Save As New": creates a new personal filter with name inserted in text field
  • "Save As": saves current personal filter selected by Filter field with name inserted in text field
  • "Update Existing": saves current personal filter selected by Filter field without select
Default Check box defines the current personal filter selected by Filter as default in view
Save Button saves personal filter defined in Action field
Delete Button deletes current filter selected by Filter field
Global Settings

Section to manage primary filter blocks. It is enabled by clicking on Global Settings button.

Field Type Description
Primary Blocks Settings Check box hides primary filter blocks (i.e., Project Block, Ticket Type Block, Ticket Statuses Block for ticket filter) that are checked
Primay Block Hierarchy Radio button the following choises are possible:
  • No Hierarchy
  • Project and Services / Ticket Types / Operational Statuses
  • Ticket Types / Project and Services / Operational Statuses
Save Button saves Global Settings configuration
Main Section

Section to configure main filter settings (paging, refreshing, etc...).

Field Type Description
Per Page List box defines items number ("10", "20", "50", "100", "Show All") that can be visible in a single view page
Ticket Code Range Text field list of ticket codes (separated by a space char) that user can visualize
Refresh Frequency List box defines the temporal frequency ("30 sec", "1 min", "2 min", "3 min", "5 min") with which items view is refreshed. The "0 sec(off)" value disables this functionality.
Disable Smart Loading Check box if unchecked it enables block filter fields loading according to the visibility that logged user can have on some itmSUITE® items
Disable Cascade Refresh Check box if unchecked it enables cascade options refresh for all filter blocks. If checked it enables asynchronous refreshing by Refresh button (to refresh selected filter block) or by Refresh All button (to update all visible filter blocks)
Ticket Creation Dates Options Radio button creation date filtering:
  • From - To: shows items according to setted creation date range
  • Quick Date Option: shows items according to setted current or last N (N setted in Units field) days, months, years.


Primary and Secondary Section

In these sections, every block filter can be hidden/visibile by a check box. In Primary Section block filter fields are always loaded when users opens the Filter menu. In Secondary Section only checked block filter fields are asynchronously loaded.

Filter Block Section Description
Project(s) Projects and Services Primary multiselected filter for projectand Service name
Ticket Types Ticket Type Primary multiselected filter for Workflow Ticket Types
Ticket Op Status Ticket Statuses Primary multiselected filter for ticket status
Groups Ticket Dynamic Group/Role Secondary This section enable the user to filter per
  • Group
  • Role on ticket

For each group is possible to enable the "Group Sub option" to simplify the group selection. Ticket role filter management is based on resource role on ticket (e.g. Ticket where the logged user is Creator or Owner or Ticket Workr,ect.) The roles selection list is devided in two sections. Ticket where the logged user is ... and Ticket Without ... This sections works with an AND clause; each item in each section works with an OR clause.

Priority Ticket Priority Secondary This section enable the user to filter the ticket based on Ticket Priority and its component (ticket impact and ticket priority)
Requester Requesters Secondary This section enable the user to filter based on requester information / Client or position in the Organization Unit
Generic Generic information Secondary This section enable the user to filter base on different feature like Target Enviroment,Service Request,Service,Product, Ticket activity templateand Tuple elements
Causes Ticket Transition Secondary This section enable the user to filter based on Ticket closure clause and Ticket Resolution clause
Configuration Item Confguration Item Secondary multiselected filter for Configuration Item name.
Custon field Custom field Secondary multiselected filter for Custom Fields defined for each Ticket type selected.
Text Search Text Secondary This section enable the user to select one or more Text field and specify a "Search String" value

How To Create complex filter

Complex filter will be created as a combination of Ticket parameter selection. For example:

Filter1 : Extract all the Incident ticket where I'm Owner or I'm Ticket Worker, is implented:

  • Primary section: Ticket Types : Select "Incident"
  • Secondary section: Group : Select two elements:
  1. Ticket where the logged user is Owner
  2. Ticket where the logged user is Ticket Worker


Filter2 : Extract all the Incident, Service request ticket without Owner, is implented:

  • Primary section: Ticket Types : Select two elements:
  1. "Incident"
  2. "Request Fulfilment"
  • Secondary section: Group : Select Ticket without Owner


The administrator has to manage carefully the flexibility the tool give him because he/she can select a conflictual choice, so the filter doesn't return any data.

In Filter view differently from Personal view has the possibility to define QL Expression (Query Language). This way to filter ticket is delivered only to the Administrator due to the technical knowledge necessary to create then.

Some example:

Current User = owner
(main.ownerId = ${securityContext.resourceId}) 
Current user = Creator
(main.resource.Id = ${securityContext.resourceId})
Current User = PM
(main.project.id in (select prj.id from Project prj inner join prj.pmEntries as pm
where pm.id =  ${securityContext.resourceId}))
Current User = SGm
(main.solutiongroup.id in (select sg.id from SolutionGroup as sg inner join
sg.resourceEntries as r where r.id =  ${securityContext.resourceId}))
Current User = SG Manager
(main.solutiongroup.id in (select sg.id from SolutionGroup as sg inner join
sg.sgManagerEntries as r where r.id =  ${securityContext.resourceId}))
Current User = Master SGm
(main.masterSolutiongroup.id in (select sg.id from SolutionGroup as sg inner join
sg.resourceEntries as r where r.id =  ${securityContext.resourceId}))
Current User = Master SG Manager
(main.masterSolutiongroup.id in (select sg.id from SolutionGroup as sg inner join
sg.sgManagerEntries as r where r.id =  ${securityContext.resourceId}))
Current User = Ticket Requester
(main.requester.id = ${securityContext.resourceId})
Current User = Ticket Worker
where main.id in (select asT.id from Resource as r inner join r.assignedTicketEntries as asT
where r.id = ${securityContext.resourceId})