9 Allocating Tasks to TMS Users

This section includes:

About Task Allocation

You can use Oracle Thesaurus Management System (TMS) to distribute coding and QA tasks—classifying omissions, approving VTAs, and approving Action assignments—to people in your organization. You can also keep track of each person's workload, and each person can track his or her own tasks.

You can set up task allocation to work in several different ways:

  • Manual Pool Allocation. As omissions, unapproved VTAs, and Action assignments are created, they accumulate in a pool until you manually allocate them to other TMS users through either the Allocate Tasks by Quantity or the Allocate Tasks by Term window.

  • Automatic Pool Allocation. Tasks—omissions, unapproved VTAs, and Action assignments—accumulate in a pool until you invoke a process to allocate them to other users. You allocate only one type of task at a time from one dictionary/domain (or, in the case of VTAs, dictionary/global) combination at a time, to the users you specify. You can select an algorithm that takes into account only the capacity you define for each worker, or an algorithm that uses capacity plus current workload. You run the allocation process from the Allocate Tasks by Quantity window.

  • Direct Allocation. Omissions, unapproved VTAs, and unapproved Action assignments do not accumulate in a pool. TMS allocates them to users as they are created, according to the user capacities you define.

    TMS performs direct allocation in the following circumstances:

    • on omissions that enter TMS through Batch Validation

    • on terms with associated tasks that enter TMS through Disconnected System Integration (DSI)

    • on VTAs that are created by manually classifying an omission where VTA approval is required

    • on VTAs that are created proactively

    • on actions assigned to omissions where approval is required

    However, TMS does not perform direct allocation on omissions or unapproved VTAs or actions that existed before direct allocation was set up, and if a term is manually unallocated, direct allocation does not reallocate it.

    Direct allocation will not allocate an approval task to the same user who created the unapproved VTA or unapproved Action assignment.

    You can still do automatic and manual pooled allocation, reallocation, and unallocation even when you are using Direct Allocation. TMS prevents two sessions from running automatic pooled allocation at the same time to avoid conflicts. TMS manages conflicts between direct allocation and automatic pooled allocation internally to prevent conflicts.

Using the Task Allocation feature is not required. You specify separately for each type of task—omissions, unapproved VTAs, and unapproved Action assignments—in a reference codelist whether you want to use Task Allocation at all, and if so, whether you want to use direct or pool allocation; see "Setting Task Allocation Reference Codelist Values".

Approving VTAs and Action assignments are also not required. You specify whether to require these approvals for each domain/dictionary combination; see "Assigning a Dictionary to a Domain". You can also require approval for VTAs and actions assigned by certain users through the users' profile settings; see "Defining Users".

Note:

You can only require approval for, and therefore allocate tasks for, Answerable Actions. Internal Actions with base Answerable Actions are used for this purpose.

TMS assigns a status to each omission, VTA, and Action as it progresses to each new life cycle stage; see "Term Statuses".

Setting Up Task Allocation

Setting up Task Allocation includes the following:

Setting Task Allocation Reference Codelist Values

The following installation reference codelists settings affect your Task Allocation setup:

Adding Workers to the Task Allocation System

Before you can allocate tasks to users you must add them to the system in the Maintain User Task Allocation Pools window.

Setting Each Worker's Capacity

If you are using either Direct Allocation or Automatic Pooled Allocation, you must specify a capacity for each user who will be doing tasks: classifying omissions or approving unapproved VTAs or actions.

For Direct Allocation, you do this in the Maintain User Task Allocation Pools window. For Automatic Pooled Allocation you do it in the Allocate By Quantity window, where you can modify users' capacities each time you run the allocation job if necessary; see "Using Automatic Pool Allocation".

For direct allocation, the capacity is a number between 0 and 100 that represents a user's capacity for work relative to other workers within the same dictionary or all dictionaries. It is not a percentage, and a worker's capacities for different dictionaries do not need to add up to 100.

For example, four users might have the following capacities:

Table 9-1 Example of Worker Capacities

User Dictionary 1 Dictionary 2 All Dictionaries

Worker A

90

100

N/A

Worker B

100

80

N/A

Worker C

100

40

N/A

Worker D

N/A

N/A

100


The table indicates that in Dictionary 1, Workers B and C have greater capacity to receive tasks than does Worker A. In Dictionary 2, Worker A has the greatest capacity to receive tasks, Worker B has the next greatest capacity, and Worker C has the least capacity. You can specify a non-dictionary-specific capacity instead, as for Worker D. A worker can have a single capacity for All Dictionaries or for any number of individual dictionaries, but not a combination of All Dictionaries and individual dictionaries. See "Direct Allocation Algorithm" for more information.

Note:

You can specify a worker's capacity for a dictionary but not a domain/dictionary combination. However, the user's existing Data Access Group security assignments determine the dictionary/domain combination in which tasks can be assigned to the user.

Setting Each Worker's Availability

You can set each worker to Unavailable when he or she is on holiday or in class, for example. No tasks can be assigned to a worker while he or she is Unavailable. However, tasks allocated to the user remain allocated unless they are explicitly deallocated or reallocated.

Maintaining User Tasks Allocation Pools

In the Maintain User Task Allocation Pools window you must list each worker to whom tasks—classifying omissions, approving or rejecting unapproved VTAs and actions—can be allocated.

Adding a User Do the following to enable a TMS user to have task allocations:

  1. Click in the Account Name field to activate the List of Values (LOV).

  2. Click the LOV ellipsis (…) on the right of the Account Name field. The Accounts LOV appears. You can enter a search in the Find field.

  3. Select the user account of the person you want to add. The system enters the person's account name, first and last name, and specifies whether or not he or she is a superuser.

  4. Set Available? to Yes when you are ready to start allocating tasks to this user.

  5. Save.

Specifying Capacities If you are using Direct Allocation, in the Direct Allocation Capacities section, specify the user's capacity for the dictionaries to which he or she has security access. See "Setting Each Worker's Capacity" for more information.

  1. Click in the Dictionary field to activate the List of Values (LOV).

  2. Click the LOV ellipsis (…) on the right of the Dictionary field. The Dictionary LOV appears, listing all the dictionaries to which the user has security access. You can enter a search in the Find field.

  3. Select a value from the LOV. You can select the value All Dictionaries or you can select the name of a single dictionary. To allow a user to work on multiple dictionaries but not all dictionaries, select a dictionary in as many additional lines as necessary.

  4. In the Capacity field, enter a number between 1 and 100. See "Setting Each Worker's Capacity" for more information.

  5. Save.

Removing a User from the Pool To remove a user from the task allocation system, so that tasks can no longer be allocated to him or her, do the following:

  1. Click the user's Account Name to select it.

  2. Select Delete from the Record menu.

  3. Save.

Allocating Tasks to Workers

You can allocate tasks to workers in several different ways:

Using Direct Allocation

To use direct allocation, follow the instructions in "Setting Up Task Allocation". Direct allocation then proceeds automatically, allocating tasks as soon as an omission, unapproved VTA, or unapproved Action assignment is created in any way.

Check the Maintain Direct Allocation Log Files window periodically to see if direct allocation has completed with errors. Each time direct allocation fails, the system enters the information in this window.

For each failed job, the system displays an error log ID, the user ID of the person who ran the job that created the omission(s), VTA(s), or Action(s), and the timestamp of that job. The system displays a detail ID for the error and an error message in the lower portion of the window for the error log selected in the upper portion of the window. The thi_term_id may appear in the error message.

You can use a SQL*Plus tool to determine the name of the term, domain, and base dictionary from their respective IDs and then correct each problem manually.

Using Automatic Pool Allocation

In the Task Allocation by Quantity window you can invoke an algorithm to automatically allocate tasks. You have more control over the process than with Direct Allocation, but you must explicitly invoke the algorithm. You can allocate only one type of task at a time: omissions, unapproved VTAs, or unapproved Action assignments. You can allocate tasks in only one domain/dictionary combination at a time.

You can specify the workers to whom you want to allocate tasks and set workers' capacities each time you run the job. You can choose either an algorithm that allocates tasks based on workers' current workload as well as their capacities, or use an algorithm that uses only their relative capacities.

Reallocating and Unallocating Tasks You can use the same method to reallocate tasks from one worker to one or more different workers and to unallocate tasks—that is, remove task assignments from a worker and put the tasks back into the Unallocated pool.

Note:

Unlike direct allocation, automatic pool allocation allows assigning an approval task to the same user who created the VTA or Action assignment requiring approval, if the user has the required privileges.

To use automatic pool allocation, reallocation, or unallocation, do the following:

  1. From the "From" Worker drop-down list, do one of the following:

    • To allocate tasks that are currently unallocated, select UNALLOCATED.

    • To reallocate tasks from one worker to one or more other workers or to unallocate tasks that are currently allocated, select the name of the worker from whom you want to remove the tasks.

  2. From the Domains drop-down list, select either a single domain or All.

    • If you select a single domain, the system returns omissions, unapproved Action assignments, or unapproved VTAs that apply only to the domain you select.

    • If you select All, the system returns all omissions, unapproved Action assignments, or unapproved VTAs, including unapproved global VTAs.

    In either case, the system returns only unallocated tasks or tasks assigned to a particular user, depending on your selection in the "From" Worker field.

  3. From the Dictionary drop-down list, select either a single dictionary or All (to signify that you want omissions, unapproved Action assignments, or unapproved VTAs from all dictionaries).

  4. If you wish, click the Filter button to refine the query with information from the external system, or to check the current settings. If you have changed these settings in another TMS window during this session, the changed settings are still in effect.

    In the pop-up window, select the external source data system and database, and then select values for any or all of the fields that are specific to the source data system you select.

  5. Click the tab for the type of task you wish to allocate: Omissions, Verbatim Term Assignments, or Action Assignments.

  6. Press F8 or select Execute Query from the Query menu.

    The system retrieves information on all omissions, VTAs, or Action assignments for the worker or unallocated pool in the domain/dictionary combination you specified at the top of the window, applying any additional external system criteria you specified in the Filter pop-up.

  7. Select the domain/dictionary combination you want to work on by clicking in any field in the relevant row.

  8. In the # to give away column, specify the number of tasks you want to allocate. By default the number in the column is the same as the number of tasks—omissions, VTAs, or actions, depending on the tab—either unallocated or allocated to the worker you selected in the From Worker field at the top of the window.

    If you enter a number greater than the number of tasks either unallocated or allocated to the worker you specified, the system stops allocating tasks when there are no more available to allocate. The system gives an error if you enter a negative number.

  9. In the Worker field in the lower part of the window, the system displays all the workers who are allowed to work on the dictionary/domain combination selected in the Domain and Dictionary fields in the upper portion of the tab. Use the scroll bar to see additional workers or query for a particular worker in the Worker field; see "Querying in Windows".

    For each worker to whom you want to allocate tasks, enter a number between 0-99999 in the Capacity field, inclusive, as the worker's capacity relative to other workers' capacities to whom you are allocating tasks; see "Setting Each Worker's Capacity". Click Clr to reset the number to zero (0) or Set to set the number to 100.

    Note:

    UNALLOCATED is the last value listed in the Worker column. To deallocate tasks, enter any number greater than zero (0) as the capacity for the UNALLOCATED row and 0 for all others.
  10. From the Distribution Algorithm field, select the algorithm you want to use to allocate the tasks: Pooled or Pooled By Workload. The Pooled By Workload algorithm takes into account the number of tasks already assigned to a worker as well as the capacity you set for the worker. The Pooled algorithm uses only the capacity.

    Both algorithms consider only the specified dictionary/domain combination and only the type of task currently being allocated.

  11. If you wish, click Calculate Projections. The system displays the number of tasks that will be allocated to each user if you run the allocation job with the parameters you have entered, but does not actually allocate the tasks. You can make changes and calculate projections as many times as necessary.

    When the system calculates the projected allocations, it rounds up to the nearest whole task for each user. When the system actually allocates tasks, it stops when it comes to the last task. Therefore the calculated projection may be slightly different from the actual allocation total for each user, but the maximum difference should be one fewer tasks allocated than projected.

    To reset values to zero (0), click the Clr button at the top of the column. To reset values to 100, click the Set button at the top of the column. To reset the value for a single row, use the Clr or Set button for that row.

  12. Click Allocate. The system allocates tasks to the users you specified.

Using Manual Allocation by Term

Use the Task Allocation by Term window to manually allocate, deallocate, or reallocate a single omission, unapproved VTA, or unapproved Action assignment to a particular user.

Note:

You can manually allocate multiple omissions, unapproved VTAs, or unapproved Action assignments to a single user in the Task Allocation by Quantity window; see "Using Automatic Pool Allocation".

Note:

Unlike direct allocation, manual allocation allows assigning an approval task to the same user who created the VTA or Action assignment requiring approval, if the user has the required privileges.

To allocate, deallocate, or reallocate a single omission, unapproved VTA, or unapproved Action assignment, do the following:

  1. In the Task Allocation by Term window, click the tab for the type of task you want to allocate: Omissions, Verbatim Term Assignments, or Action Assignments.

  2. Click the Filter button to limit the tasks displayed. See "Setting Filters and Creating Activity Lists" for instructions.

  3. Query for the particular task you want to allocate. You can use the following fields as criteria: Term, Domain, Dictionary, Substatus, and Assigned. The Assigned column includes both workers to whom a task is assigned and the value UNALLOCATED, for tasks not currently assigned to a worker.

    The system retrieves the tasks that meet the criteria you entered.

  4. Select the task you want to allocate by clicking it in the Term column. You can use Shift+Click to select multiple consecutive tasks or Ctrl+Click to select multiple nonconsecutive tasks.

    Click Status/Notes to see its status history and Release Label information in the Status/Notes pop-up window. You can also add a note in the Status/Notes pop-up window. See "Using the Status/Notes Pop-up Window".

  5. Click the Assign To field. The List of Values ellipsis (…) appears.

  6. Click the LOV ellipsis (…). The List of Values pop-up appears. You can enter a search for a particular user in the Find field, using the % wildcard.

  7. Select the user to whom you want to allocate the task. Or, to deallocate the task, select UNALLOCATED.

  8. Click Assign. TMS puts the name of the user to whom the task is now assigned in the Assigned column for the task.

  9. Repeat for as many tasks as required.

  10. Save.

Tracking Users' Workloads

You can see the current workload for any user in the Task Allocation by Quantity window and by creating a list of activities for any user. In either case, you can only view one task type—omissions, unapproved VTAs, or unapproved Action assignments—at a time.

Tracking Workloads in the Task Allocation by Quantity Window

To see a user's current number of tasks, do the following:

  1. In the Task Allocation by Quantity window, "From" Worker field, select the user whose workload you want to see.

  2. Select All for both the Domain and Dictionary. Do not enter a filter search.

  3. Press F8 to retrieve all tasks.

    In the upper portion of each tab, the system lists omissions, VTAs, and Action assignments for the user, and lists the total number for each task type as well.

Tracking Workloads as Activities

You can use the filter pop-up window to create a list of omissions, unapproved VTAs, or unapproved Action assignments for a single user or for all users, for any dictionary/domain combination or for all dictionaries and all domains. If you save the filter as an activity, you can then view it at any time from the Activity List window in the Omission Management menu.

The Activity List window always displays a summary of the current results of the query you defined in the filter window, including the task type, dictionary, domain, term status, and current total.

You can double-click the activity name to see the individual tasks retrieved by the query.

You specify filter criteria in the Filter pop-up from the appropriate window, as follows:

  • To retrieve allocated omissions, go to the Classify VT Omissions window.

  • To retrieve allocated unapproved Action assignments, go to the Approve Action Assignments window.

  • To retrieve unapproved VTAs, go to the approve VTAs window.

For instructions, see "Creating and Using Activity Lists".

Task Allocation Algorithms

Direct allocation and automatic pooled allocation work somewhat differently. See:

Direct Allocation Algorithm

The Direct Allocation algorithm is based on the capacities you define for each worker and each dictionary. The algorithm allocates tasks one task at a time as it loops through the set of available workers. During a given loop, the algorithm determines which workers should receive tasks and which should not, based on the workers' capacities.

For example, given the following worker capacities for the same dictionary:


Worker A capacity: 10
Worker B capacity: 20
Worker C capacity: 40

The algorithm works out the relative capacities of the three workers available to work on the relevant dictionary and assigns Worker C twice as many tasks as Worker B and four times as many as Worker A.

The algorithm does not give the first 10 to Worker A, the next 20 to Worker B, and the next 40 to Worker C, for example. Instead, it does something like: 2 to Worker C, 1 to Worker B, 2 to Worker C, 1 to Worker B, 1 to Worker A until all the tasks are allocated.

Direct Allocation does not take current workload into account when assigning tasks.

Automatic Pooled Allocation Algorithm

When you invoke automatic allocation from the Task Allocation by Quantity window, you can select one of two algorithms:

Pooled

The Pooled algorithm works the same way as the Direct Allocation algorithm (see "Direct Allocation Algorithm") except that it performs all the allocations at one time (rather than as they are created in TMS) and allocates only the number of tasks you specify to only the users you specify. (In addition, you can allocate only one type of task at a time.)

Pooled by Workload

The Pooled by Workload algorithm also works the same way except that it also considers the current workload of each user (in the current dictionary and for the current task type) so that even if a particular user has a higher capacity for the relevant dictionary, if that user has a larger current workload (number of tasks currently in his or her own pool) then the user receives fewer tasks than another user with a lower workload.

Unfulfillable Assignments Report

You can use TMS to allocate coding and quality assurance tasks among your team members. These tasks include classifying omissions, approving VTAs and approving Action assignments. However, it is possible to assign tasks to users who cannot do them for one or more of the following reasons:

  • User lacks Assignee status.

  • User has Assignee status but is unavailable.

  • User lacks DAG access.

  • User lacks database role.

The Unfulfillable Assignments Report displays the following:

  • The name of the person assigned the task (assignee)

  • The database role of the assignee

  • The tasks allocated: VTO, VTA, Action

  • The dictionary that is affected by the unfulfilled assignments

  • The domain that is affected by the unfulfilled assignments

The Unfulfillable Assignments Report displays the number of counts against each item and the reasons for incompletion. It also shows you the total unfulfilled tasks against each assignee as well as the grand total.

To generate a Unfulfillable Assignments Report:

  1. Select Task Allocation in the navigator window.

  2. Select Unfulfillable Assignments.

  3. Fill in the general report specifications. See "Setting Parameters"

  4. Enter a value for Job Specific parameters:

    • Domain: Choose the appropriate domain.

    • Active dictionaries: Choose the dictionary on which to run the report.

    • Assignment type: Choose the assignment type for the report.

    • User: Choose a user from the list.

    • Template: Select the template you want to use for this report. If your company has created a custom template, it appears in the list of values. The Oracle Template is the default template.

  5. Submit the job. See "Running a Job"