Applications in the electronic document management system. Part 5: Jobs and document routing in EDMS applications

    Work with tasks is perhaps the most frequently used function of the electronic document management system. It would seem that it could be simpler to deliver the document to the performer and get a reaction to its processing, but practice shows that the task is one of the most complex objects in the EDMS. Russian EDMS have powerful job management tools. We will tell you how tasks are implemented in Docsvision, 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 EDMS users work in it periodically, as it becomes necessary to process a document in the framework of regulations. For example, it is necessary to agree on a contract or application, approve an order for an incoming document, etc. Most of the processes even automatically initiate the processing of a document based on standard procedures of regulations. The scenario of work in the EDMS is different from the work in other applications: the system should 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 execution, because he can process this kind of task once a year, or even only once. Notification and “delivery” of documents and necessary content to the user at the right time is implemented through the mechanismtasks . The task also provides the necessary interface for processing the document, offering various options for completion, a form for filling, etc., and sometimes a brief instruction on what needs to be done.
    As we have already noted, the task is a rather complex object. This complexity is a consequence of the variety of scenarios that developers of EDMS applications have to implement using tasks. For all its complexity, it should be intuitive for the employee to quickly find out what and how to do.

    Basic job functions


    The Docsvision task is based on the same object as the card of the Docsvision document (see article habrahabr.ru/company/docsvision/blog/263263 ) - accordingly, the same customization options apply to it. This is an opportunity to change the data structure, interface, processing logic, state machine, role model, etc. However, the task has a predefined processing logic that cannot be changed. The task has such fields as the contractor, controller, planned and actual deadlines, planned and actual labor intensity and others specific to the task. The basic processing logic implies routing of the task and notifications of the performers, the ability for the performer to see the task in the corresponding folders (Inbox) and complete it using the corresponding button.


    Fig. 1. The job interface allows you to implement a variety of operations for its processing using the ribbon buttons.

    Job Routing Features


    The task has various routing options in the basic functionality: the contractor can delegate it (if there are appropriate rights) to the deputy manually, either by transferring to him the full execution rights or by demanding a return upon completion. The task may have a control step: in this case, after the task is completed, it will be transferred to the controller for confirmation of execution. The task can be decomposed, i.e. subordinate tasks can be created on it, which, in turn, can be decomposed - in this way, a hierarchy of subordinate tasks is formed - this is a kind of task execution process that the performer can control. In addition to manual routing, automatic substitution scenarios are implemented: if an employee is unavailable for one reason or another,

    Ways to initialize tasks in applications


    The task itself is a separate Docsvision application. It can be created by the user, but this is far from the only scenario of its initialization. There are several ways to embed a task in Docsvision applications:
    • The easiest way is to use the task initialization function in a business process (https://habrahabr.ru/company/docsvision/blog/281959/), and you should take care of proper initialization when designing a process. job parameters - assigning a contractor, terms, choosing the type of task, transferring necessary documents to tasks, etc.
    • To initialize a task, you can use a special .Net component, which 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 can be configured using the designer or created as separate software components of the system.
    • And finally, the functionality of working with a task can be added to any application using program code through an API.

    Job customization


    The behavior of the standard task functionality can be configured in the types reference of the Task object. For example, you can configure delegation rules, decomposition options, rules for creating tasks from document cards (in particular, rules for automatically filling task fields from document card fields).


    Fig. 2. Rich options for customizing the standard behavior of the task in the rear

    view catalog without programming. You can add or modify arbitrary functionality in the task using the markup, state, role and script constructors, similar to how it is done for all other Docsvision document cards.

    Customization of business logic, collection of metrics


    If it is necessary to change the business logic of working with tasks in individual applications, for example, non-standard completion logic is implemented. The settings are also provided in the reference book of job types. For example, in the case of a specialized task in the application “approval of financial documents”, it is necessary not only to complete the tasks, but to select one of the alternatives - “Agree”, “Reject” and “Additional approval”, and in case of choosing the alternative “Reject”, it is necessary to indicate the reason in plain text, in the case of “Additional coordination” - an employee or a group from the directory of employees. Similar scenarios can be configured with standard mechanisms without programming.


    Fig. 3. All Docsvision tools are available to customize the interface and job processing logic.

    Often, more complex processing of a task is required during its execution. One of these scenarios is the automatic collection of information on the progress of the task to form process metrics. For example, you can create a program script that will track user 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 the most diverse scenarios of working with tasks, which led to the need to implement all possible customization mechanisms similar to the means of customizing document cards.

    Objects routable in a job


    The main function of the task is to deliver to the contractor certain documents. Practice shows that these can be the most various types of documents - ordinary files, structured document cards, links to various external entities, for example, URL links, to various Web pages, and, finally, they can be objects of various external systems, with which the subsystem of business processes works through the gateway mechanism, which we talked about in the previous article (https://habrahabr.ru/company/docsvision/blog/281959/).
    A feature of the implementation of jobs in Docsvision is the ability to seamlessly route external gateway objects directly in the job. For example, if the user needs to work with a particular 1C document at a certain stage of the business process, he will receive a task that will contain the corresponding link and, initiating it, the user will open exactly the document that 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 - work with content directly in the task interface.

    Task management in business processes


    If the standard tools for routing and processing business logic, tasks for implementing application functions are not enough, 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, then you can configure it in such a way that it will implement the logic of processing the task. For example, to implement the processing of contingencies - automatically complete or withdraw a task, change the contractor, deadlines or the text of the task if any rules for its processing are violated. This can be implemented without programming. And, of course, in the process it is possible to apply the program processing of the task, which makes the possibilities of expanding the processing logic almost unlimited.

    Various job interfaces


    A task is an object with which the user must interact at any time through the means of communication available to him. Therefore, we implemented various options for working with tasks through various types of devices. Today, users are available:
    • Full-featured client - Windows application
    • Lightweight client running in an HTML browser
    • Separate mobile application for iPad or iPhone
    • Mail client. This type of client allows you to process tasks directly in a standard e-mail program (for example, in Gmail or a mobile phone mail client) without installing additional components. This type of client, of course, allows you to perform far from all the operations, work with the task described above. But it allows you to familiarize yourself with the document file, make changes to it and report the results of processing the task, for example, agree or reject the document. Information about these actions will be delivered to the EDMS.
    In addition to the ease of such processing, the advantage is the ability to work in Off-line.


    Fig. 5. Work with Job lightweight client


    Fig. 6. This is what the task looks like in the mail client

    The described far from exhausts the possibilities of the task in the Docsvision system, there are other possibilities for implementing specific scenarios in applications, but, as it seems to us, this is enough to imagine how sophisticated task processing scenarios have to be implemented when creating EDMS applications.

    Also popular now: