Work with tasks is, perhaps, the most frequently used function of the electronic document management system. It would seem that it may be easier to deliver the document to the contractor and get a reaction to its processing, but practice shows that the task is one of the most complex objects in the EDS. Russian EDS has powerful task management tools. Let's tell how tasks in Docsvision are implemented, and what are the features of their implementation.
Unlike other corporate system applications (ERP, CRM, PDM, etc.), in which the user works constantly and plays an active role in interacting with the program, most of the EDS users work there periodically, as the need arises to process a particular document in framework regulations. For example, it is necessary to agree on a contract or application, approve an order on an incoming document, etc. Most of the processes even automatically initiate the processing of a document based on standard procedures of procedures. The work scenario in the EDMS differs from work in other applications: the system must notify the user about the need to perform certain actions and provide him with all the necessary data in a convenient, intuitive interface for their implementation, since he can handle this type of task once a year or only once. Notification and “delivery” of documents and necessary content to the user at the right time is realized through the
task mechanism. The task also provides the necessary interface for processing the document, offering various options for completion, a form to fill out, etc., and sometimes a brief instruction on what needs to be done.
As we have already noted, the task is a rather complicated object. This complexity is a consequence of the variety of scenarios that developers of EDMS application have to implement using tasks. With all the complexity, it should be intuitive, so that the employee quickly guessed what and how to do.
Basic job functions
The Docsvision task is based on the same object as the Docsvision document card (see
habrahabr.ru/company/docsvision/blog/263263 ) - respectively, the same customization options apply to it. This is the ability to change the data structure, interface, processing logic, state machine, role model, etc. However, the task has predefined processing logic that cannot be changed. An assignment has such fields as a performer, controller, planned and actual deadlines, planned and actual labor-intensiveness, and others that are specific to the assignment. The basic processing logic involves the routing of the task and the notifications of the performers, the ability for the performer to see the task in the appropriate folders (Inbox) and complete with the appropriate button.
')
Fig. 1. The job interface allows you to perform various operations on its processing using ribbon buttons.
Job Routing Capabilities
The task has a variety of routing options in basic functionality: the contractor can delegate it (if they have the appropriate rights) to the deputy manually, either by transferring to him the full right to perform, or by requesting a return upon completion. A task can have a control step: in this case, after the task is completed, it will be transferred to the controller to confirm execution. The task can be decomposed, i.e. according to it, subordinate tasks can be created, which, in turn, can be decomposed - thus, a hierarchy of subordinate tasks is formed - this is a kind of process for executing an assignment that the executor can control. In addition to manual routing, automatic replacement scripts are implemented: if an employee is, for one reason or another, unavailable, the task will be automatically forwarded to the deputies for execution.
Ways to initialize tasks in applications
The task itself is a separate Docsvision application. It can be created by the user, but this is not the only scenario for its initialization. There are several ways to embed a task in Docsvision applications:
• The easiest way is to use the task initialization function in the business process (https://habrahabr.ru/company/docsvision/blog/281959/), while designing the process, you need to take care of the correct initialization of the parameters of the task - the appointment of the contractor, deadlines, choice type of assignment, transfer to the tasks of the necessary documents, etc.
• To initialize the task, you can use a special .Net component that is available for any card. It allows you to embed the functions of creating tasks and monitoring the progress of their execution for any documents that are customized using the designer or created as separate software components of the system.
• And, finally, task functionality can be added to any application using program code through the API.
Customization tasks
The behavior of the standard task functionality can be configured in the “Task” object type reference book. For example, you can configure delegation rules, decomposition capabilities, rules for creating tasks from document cards (in particular, rules for automatically filling in fields of a task from fields in a document card).
Fig.2. Rich settings customization of the standard behavior of the task in the directory types back without programming
In the task, you can add or modify arbitrary functionality with the help of markup designers, states, roles and scripts, in the same way as for all other Docsvision document cards.
Customization of business logic, collecting metrics
If it is necessary to change the business logic of work with tasks in individual applications, for example, non-standard completion logic is implemented. There are also customization tools in the job type reference book. For example, in the case of a specialized task in the application “coordination of financial documents”, it is necessary not only to complete the tasks, but to choose one of the alternatives - “Reconcile”, “Reject” and “Additional approval”; in this case, if you choose the alternative “Reject”, you must specify the reason in plain text, in the case of “Additional approval” - an employee or group from the employee reference book. Such scenarios can be configured by standard mechanisms without programming.
Fig.3. All Docsvision tools are available for customization of the interface and the logic of job processing.
Often, more complex task processing is required during its execution. One of these scenarios is the automatic collection of information on the progress of task execution for the formation of process metrics. For example, you can create a program script that will track the user's activity when working with a task and automatically generate a report on the actual time spent on its execution. In practice, one has to deal with a wide variety of scenarios of work with tasks, which has led to the need to implement all possible customization mechanisms, similar to the means of customizing document cards.
Objects Routed to the Task
The main function of the task is to deliver certain documents to the contractor. Practice shows that these can be various types of documents - regular files, structured document cards, links to various external entities, for example, URL links, to certain WEB pages, and, finally, these can be objects of various external systems, with which the business process subsystem works, through the gateway mechanism, which we spoke about in the previous article (https://habrahabr.ru/company/docsvision/blog/281959/).
A feature of the implementation of job assignments in Docsvision is the ability to seamlessly route external objects of gateways directly in the job. For example, if a user needs to work with a particular 1C document at a certain stage of a business process, he will receive a task that will contain the corresponding link and, having initiated it, the user will open exactly the document he needs. He does not need to open the 1C program separately and look for the corresponding object there.
Fig. 4. The task supports in-place mechanisms - working with content directly in the task interface.
Task management in business processes
If the standard routing and processing business task processing tools are not enough for implementing the functions of the application, you can apply another customization mechanism - a special function of the business process. If the task is initiated by a business process, or the business process somehow “found” the task for processing, you can configure it in such a way that it will implement the logic for processing the task. For example, to implement the processing of emergency situations - to automatically complete or withdraw the task, change the performer, the deadline or the text of the task, if any rules of its processing are violated. This can be implemented without programming. And, of course, in the process you can also apply program processing of the task, which makes the possibilities of extending the processing logic almost unlimited.
Different job interfaces
A task is an object with which the user must interact at any time through the available means of communication. Therefore, we have implemented various options for working with tasks, through various types of devices. Today users have access to:
• Full-featured client - Windows application
• Light client working in an HTML browser
• Separate mobile application for iPad or IPhone
• Mail client. This type of client allows you to process jobs directly in a standard email program (for example, in Gmail or a mobile phone email client) without installing additional components. This type of client, of course, allows you to perform by no means all the operations and tasks with the task described above. But it allows you to familiarize yourself with the document file, make changes to it and report on the results of the task processing, for example, agree or reject the document. Information about these actions will be delivered to the SED.
In addition to the ease of such processing, the advantage is the ability to work in Off-line.
Fig.5. Work with the task in the light client
Fig. 6. This is how the task looks in the mail client
Described far from exhausting the tasks in the Docsvision system, there are other possibilities for the implementation of specific scenarios in applications, but it seems to us that this is enough to imagine how sophisticated task processing scenarios have to be implemented when creating the ERMS applications.