Open technologies in electronic document management
Once upon a time, people are talking about electronic document management. Only now (for example) in my office for the preparation of one document, 2-3 sheets of paper goes to drafts.
Some advanced bosses, all sorts of documents that should go to them for signature, are first reviewed digitally, put notes, give out their edits in color ...
But somewhere, entire departments work together on several documents, passing them to each other in a circle. “You write your information in the table, for now I’ll make a list, and then change and check ...”
And again, my programmer-rationalization nature combed itself, stirred; because you can make it easier for people to live and work in the world! Some of their actions can be automated, for others there are even ready-made solutions!
So what am I suggesting?
We now consider the mechanism of operation of this whole bundle.
The theater begins with a hanger, the house starts at the doorstep, and the software system, which claims that a person can work with it, starts from the user interface. In my electronic document management system, the user directly deals with a document and an office program (word processor, spreadsheet, etc.), as well as with the CPS interface implemented as a separate application or, more preferably, as a website on a corporate intranet.
Take, for example, this situation: the head of a branch of a company gives the task to some department to prepare an annual report. For this he
The task is entered into the system and automatically sent to the head of the department by electric mail or using the corporate instant messaging system ( SMOS , IM ).
The department head indicates the list of employees related to the assignment.
Each employee writes his own part of the report and from time to time sends it to the version control server.
There are many ready-made solutions for this, but for added convenience, you can even write a plug-in for OpenOffice.org and other office suites.
When sending a version of a document to a server ( committing changes to the terminology of the SUV) the head of the department (and everyone involved) is automatically sent a notification of the changes. He can immediately view the change in a convenient way and make his own adjustments. In this case, it is not necessary to highlight your changes in color or in any other way. Just write what should be the result. Diff will find and show all edits and annotations.
At the end of the preparation of the report, the executor - the head of the department sets the status of the task to “completed”.
If for some reason the branch manager does not like the task, he can again make the task active (indicating the reason).
UPD Thanks to Outspector for the informative comment.. He recalled an important issue such as version merging, and suggested using L A T E X to prepare documentation. It is worth agreeing with uv. Outspector about the usefulness of L A T E X for specialists, but a good solution for the “secretaries” has not yet been found.
Some advanced bosses, all sorts of documents that should go to them for signature, are first reviewed digitally, put notes, give out their edits in color ...
But somewhere, entire departments work together on several documents, passing them to each other in a circle. “You write your information in the table, for now I’ll make a list, and then change and check ...”
And again, my programmer-rationalization nature combed itself, stirred; because you can make it easier for people to live and work in the world! Some of their actions can be automated, for others there are even ready-made solutions!
So what am I suggesting?
Solution: OpenDocument + Subversion + Visualizer diff + Trac
- OpenDocument format ( ODF ).
The format of office documents of various kinds. It is used in open office suites OpenOffice.org , StarOffice and others .
The peculiarity of the format from the point of view of the developer is that each document is an archive, the bulk of which is occupied by XML files . The archive is unpacked "on the fly", and XML files areeasy to program processing. - Subversion version control system .
Version control systems ( SUVs ) use so-called differential compression (sometimes the term delta compression , or Δ-compression ) is used to store many versions of one document . Thanks to the differential compression in a special repository - repositories - the files are not saved in their entirety, but only the differences between the versions.
These differences are usually calculated using the diff program (from the English difference - difference ). SUV userat any time can compare any version of the document, find out what edits were made by him and other users,
return to any of the previous states of the document. - Visualizer diff.
The old, like the computer world, diff utility has 2 significant drawbacks. Firstly, it is designed for line-by-line comparison of text files, which may not be optimal for finding differences in XML files .
Secondly, how dissimilar an ODF document in edit mode is to its original XML code, the diff output is just as incomprehensible to the end user. For effective work, the user needs a visual representation of the differences between versions.
Perhaps this is the only component of the proposed system that requires a serious effort.
Possible ways to solve the problem:- processing the output of the "classic" line-by-line diff;
- refinement or creation of a new diff for more correct comparison of XML files and simplification of the visualizer.
- Job management system.
There are various job management systems ( CPS ), but so far I only got to know Trac well .
CPS Trac allows you to create tasks, assign them to users, indicate which group of documents the task affects, monitor the status of the task, receive information about the users' work on tasks, and much more.
Application
We now consider the mechanism of operation of this whole bundle.
The theater begins with a hanger, the house starts at the doorstep, and the software system, which claims that a person can work with it, starts from the user interface. In my electronic document management system, the user directly deals with a document and an office program (word processor, spreadsheet, etc.), as well as with the CPS interface implemented as a separate application or, more preferably, as a website on a corporate intranet.
Take, for example, this situation: the head of a branch of a company gives the task to some department to prepare an annual report. For this he
- Goes to the corporate website, in the CPS ;
- creates a task in it;
- sets job attributes:
- deadline for the assignment;
- importance;
- urgency;
- appoints the contractor - the head of the department.
The task is entered into the system and automatically sent to the head of the department by electric mail or using the corporate instant messaging system ( SMOS , IM ).
The department head indicates the list of employees related to the assignment.
Each employee writes his own part of the report and from time to time sends it to the version control server.
There are many ready-made solutions for this, but for added convenience, you can even write a plug-in for OpenOffice.org and other office suites.
When sending a version of a document to a server ( committing changes to the terminology of the SUV) the head of the department (and everyone involved) is automatically sent a notification of the changes. He can immediately view the change in a convenient way and make his own adjustments. In this case, it is not necessary to highlight your changes in color or in any other way. Just write what should be the result. Diff will find and show all edits and annotations.
At the end of the preparation of the report, the executor - the head of the department sets the status of the task to “completed”.
If for some reason the branch manager does not like the task, he can again make the task active (indicating the reason).
UPD Thanks to Outspector for the informative comment.. He recalled an important issue such as version merging, and suggested using L A T E X to prepare documentation. It is worth agreeing with uv. Outspector about the usefulness of L A T E X for specialists, but a good solution for the “secretaries” has not yet been found.