Limiting owner to Queues

nstafford@cabelas.com's picture

Is there any way to limit selections in the owner field to a queue (and not workers)? The goal is to insure that an incident always has group visibility and accountability for automated time based notifications. As multiprocess incidents may get reassigned to several other individuals or queue/groups through the lifecycle of the incident,and both workers and queues appear in both owner and assigned fields, we need a way to insure that a queue/group always maintains ownership visibility of all incidents. Otherwise, workers have the ad-hoc ability to assign to an individual and own to either the same individual or a different individual (this causes problems when the individual is on leave or is reassigned outside of service management). As a result, group/queue accountability is lost, and incidents tend to be missed without frequently changing queue queries to include the queue and the individuals that are part of the queue.

I have incident validation rules that only allow for queues only to be selected for the owner, but non-queue workers still appear in the dropdown box which causes confusion. would be ideal to limit selections to queues only.

JLAbuhl's picture

Limiting owner to Queues

Since the workers and queues are listed in the same table (Worker Tbl), how would you distinguish between them? They are intermixed with values asssigned in the order they were created. Listing them in separate tables would go beyond basic customizations.

jgo's picture

Owners and Assigned to

Both owners and assigned to are based off of the workers data source in the workitemeditgeneral.ascx.

If you really only want to sonly ee the queues for the owners I would do the following

  1. I would mimc the owner drop down with a customization [using the altiris helpdesk manual].
  2. I would then make the owner field invisible.
  3. Then I would create a incident rule to synch them whenever that field changes and the incident is saved!

Good Luck! :)

John Golembiewski
Midwest Practice Principal
ITS Partners
Jgo@itsdelivers

jgo's picture

Also...

I also meant to say that in your mimic field you could create a query for the new drop down like...

SELECT * FROM worker_view where lower(worker_status) = 'a' and lower(worker_contact_status) = 'v' ORDER BY worker_is_virtual DESC, worker_name ASC

John Golembiewski
Midwest Practice Principal
ITS Partners
Jgo@itsdelivers

Steve Wayment's picture

Solution

We have recently done this exact thing. The important thing to note is that the Workers are distinguished with the is_virtual column. If is_virtual=1, it is a Queue. 0 is a person.

In order to limit the dropdown box to show these items, you need to exit the subWorkItemEditGeneral template. (Remember that it is recommended to create a custom.config file and copy any modified templates to a custom folder.) in the (My)subWorkItemEditGeneral template, there are 3 lines that need to be copied:

if DataStore("Workers") is nothing then
DataStore("Workers") = New ListDataSet("WorkerList")
end if

Paste the copied lines directly underneath (before the next 'if' statement) and change the code to look like this:

if DataStore("WorkersQueue") is nothing then
DataStore("WorkersQueue") = New ListDataSet("WorkerListIsVirtual")
end if

Now go down near the bottom to this line:
aw:DropDownList ID="ddlOwnedBy".....

and change the value of DataSourceName from "Workers" to "WorkersQueue".

Now the Owned By field can be used to always track which group the incident belongs to, regardless of which individual it is assigned to.

You will need to create some incident rules to properly display the Owned By and Assigned To values, but in our case it is well worth it.

mbird@cabelas's picture

limiting owners to queues- Steve Wayment Solution

I followed Steve steps, but I still show all of the workers and queues in the owner field. Any help?

Steve Wayment's picture

Some steps to try

First of all, are you sure you are hitting the correct page?  Make sure that you are going to the right worker console. If you are using a custom worker console, make sure the custom.config is pointing to the correct version of your subWorkItemEditGeneral file.  An easy way to check is change the label of a field that you can recognize, save the file and refresh your incident page.  If I change "sidLblType" to "test" it should now display "test" instead of  "Type" on the page.

Second, make sure your code is correct.  There may be some items that I changed and forgot to mention, such as the PreserveItems value.  Here is an example of what mine looks like:
 

if DataStore("Workers") is nothing then
DataStore("Workers") = New ListDataSet("WorkerList")
end if
if DataStore("WorkersQueue") is nothing then
DataStore("WorkersQueue") = New ListDataSet("WorkerListIsVirtual")
end if
if DataStore("WorkerListPersons") is nothing then
DataStore("WorkerListPersons") = New ListDataSet("WorkerListPersons")
end if
<aw:DropDownList ID="ddlOwnedBy" RunAt="server" Label="csidLblMyParentQueue" ItemDataField="workitem_owned_by_worker_id" DataTextField="worker_name" DataValueField="worker_id" DataSourceName="WorkersQueue" currentValue="False" PreserveItems="true" Width="100%" OnSelectedIndexChanged="UpdateDdlAssigned" AutoPostBack="true" />

<aw:DropDownList id="ddlPriority" runat="server" Width="100%" ItemDataField="workitem_priority_lookup_id" Label="sidLblPriority" DataTextField="value" DataValueField="id" DataSourceName="Priorities" currentValue="True" />

If everything mentioned above looks correct, make sure you have the WorkerListIsVirtual item listed under the Query table in your database.  It's possible that this is a custom query, I honestly don't remember.  If it does not exist, you can add a row to the table.  Name it WorkerListIsVirtual (case sensitive) and add the following code as the expression:
 

SELECT * FROM worker_view where lower(worker_status) = 'a' and worker_is_virtual =N'1' ORDER BY worker_name ASC

The cache_results column should be set to '1'.  Using a script to update the table can sometimes be a little tricky -- the formatting can be confusing.  If you need help just let me know!