Proposals for New Features for Linthal System
Contents
Revision Workflow Assistant
Overview
The goal is to have a single button for completing a revision workflow step. This is to make it easier for users to complete workflow steps.
The button would allow the user to complete a workflow step without having to use the update revision transaction (which is confusing for many users, and also allows them to change things they shouldn't). The implementation will additionally separate the roles for completing workflow steps from the roles for creating and updating documents and revisions.
User Interface
The workflow assistant is called from button in the revision detail screen. A button is displayed for each workflows step that is ready to be completed.
The workflow assistant allows you to set the following fields:
Complete Date (defaults to current date)
Responsible Person, defaults to current user, or Select if the user does not have the workflow step role (e.g. for admin users)
Status, if the workflow step has an associated status field
Note, if the selected status requires a note (e.g. for approved with comment and rejected)
The field names displayed in the input form will be set with text according to the type of workflow step being completed. E.g. the user will see easy to understand names like Approval Date, Check Status, etc.
The workflow assistant must also validate the input data:
The complete date must be >= the complete date of the previous workflow step
The status must not be open or not required
- If the selected status requires a note, then there must be text in the note field
Revision update would work as before, but will require the user has the revision update role.
Implementation
The implementation has two parts:
- Implementation of a workflow step update transaction
- Cleanup of user roles, creating a new revision update role separate from the workflow step roles
Possibilities for implementation of the user interface are:
- Via standard FSM and BTs
- Via jQuery and REST/AJAX (preferred)
In either case, pressing the workflow step button would bring up a new page (or in the case of the jQuery solution, display a new screen area or popup containing the workflow step input fields). The user then enters the complete date, responsible person, status and (if required) the note.
In order to run the transaction the user must have either the administrator role or the appropriate workflow step role for the given revision. The workflow step role would not give the user rights to update the revision (e.g. change the revision's title or other classification fields).
Implementation Steps
Estimated activities and effort for implementation:
- User Roles cleanup
- Separate drawing and revision new/update roles
Separate workflow roles (designer/checker/approver/etc.)
- Update transaction profiles
Combine the approver 1-4 roles into a single approver role
- Update Roles configuration data
Get rid of Start workflow step?
Goal is to replace it with a Design and/or Produce step with plan date, complete date (and status?)
- Implement a migration script for updating the existing user roles
- Update Axpo's user role Excel spreadsheet
- Update revision detail display
- Buttons replace the next incomplete and executable workflow steps
- Print format (buttons not displayed)
Change roles controlling the update revision button
- Implement client side jQuery based workflow assistant GUI
- Display new screen area
- Show hide note field based on status
- Implement client side field validation
- Complete date validation
- Status and notes validation
- Implement server side update transaction
- REST dispatcher
- Authorization/role checking
- Data validation
- Database update for workflow step
- Database insert for revision history
- Implement of basket workflow updates most of this is already implemented)
- Check all revisions in same group
- Check workflow step being performed is the next incomplete step
Handle entry of notes for Reject and Approved with corrections status (via Javascript)
- System Test
Revision Workflow Notes Manager
Overview
The goal is to provide user functions that make it easy to use a single task/comment to capture all the notes and discussion associated with a revision's workflow process. This includes the ability to attach files (such as red-lined PDFs) to workflow step comments.
The user will be able to enter notes associated with workflow steps entered directly from the workflow assistant (described above). The notes are then automatically added to the revision's workflow task. The revision detail screen will also display the workflow comment and links to any attached files.
Implementation of this feature requires that the workflow assistant is also implemented.
User Interface
- Use the workflow assistant with minor modifications
- Change the workflow step entry form to allow uploading of a file
- Changes to the revision detail to display the revision's workflow task notes and attached file links
- Changes to basket function to allow entry of notes and an uploaded file
Implementation Steps
- DB model update:
- Add a new fields:
Revisions.workflowCommentId -- Points to the Revisions's workflow comment
Revisions.check1CommentNoteId -- Points to the checker's comment note
Revisions.approval1CommentNoteId -- Points to the approver-1's comment note
Revisions.approval2CommentNoteId -- etc.
Revisions.approval3CommentNoteId
Revisions.approval4CommentNoteId
Revisions.releaseCommentNoteId
- Remove fields: (replaced by the fields above)
Revisions.approval1Comment
Revisions.approval2Comment
Revisions.approval3Comment
Revisions.approval4Comment
Revisions.releaseComment
- Add a new fields:
- Implement changes to revision detail screen:
- Display of workflow notes associated with workflow steps
- Display of workflow note file download links
- Update workflow assistant to allow:
- Uploading of an attachment file, which gets attached to the appropriate comment note (depending on workflow step)
- Implement server side transaction:
- To insert initial entry of notes, possibly allowing notes to be updated (overwritten)
- Allow uploading (and deletion and re-uploading?) of workflow note attachment files
- Changing the document basket workflow function
Implement script to migrate existing workflow notes (stored Revisions table comment fields) to the revisions's workflow task and task notes.
Document Distribution Matrix
Overview
The goal is to implement a document distribution matrix, which allows the user to manage a set of recipients for each document or set of documents. The recipients are then notified automatically via email each time a new revision of a document is released. This feature could also be implemented to allow management of sets of documents. This would allow the ability to send out update emails after sets of documents have been updated (reducing the number of emails that a user would receive).
An example use of this feature is for documentation associated with general conditions and health and safety, which must be re- distributed every time it is updated.
Benefits:
- Document users (who may not regularly use the system) are automatically informed when documentation is updated
- The project has an accurate audit trail showing that recipients have been informed each time documentation is updated
User Interface
- For creating new revisions of documents -- no change
- Administrative screen(s) for managing the distribution matrix
Possible Implementations
- Using Comments and Comment Subscribers
- Creating a new Document Subscriber set of transactions
In any case, you probably want a mechanism for managing:
- Document subscriber lists. E.g. lists of users. User lists could be useful for managing all kinds of things like:
- Assigning and managing user roles
- Managing recipient lists for transmissions
- Document sets. E.g. lists of documents that belong together.
Add a new DB field: Comments.revisionUpdateFlag
- If this flag is set, then every time a revision is updated (meaning that a new revision has reached the end of its workflow) an email is sent to the comment subscribers.
Problem: The Comment to Revision link, links a specific Revision to the Comment. When a new revision matures, then that its revisionId must replace that of the newly superseded revision.
Problem: How to report the distribution matrix in a way that users can understand.
The current manual practice is to create an array (e.g. in Excel) with a vertical list of documents and a horizontal list of recipients. An x in a cell indicates that when the document is updated, then the user must be informed.
Implementation
- Database table(s) for managing the matrix?
Implementation Steps
Dynamic Required Fields for Tasks
Overview
The goal is to allow the required-ness of fields in a comment/task to be dynamic, based on the task type. A array of tasks and fields will be stored in the system configuration with markers for each task type and field combination that indicates whether the field entry is required for the given task-type and field pair.
User Interface
Implementation
- How to handle creation of new task types?
- Dynamically add new comments types to the configuration array
Implementation Steps
Send Comment/Task
As requested by Emil Bieri
Overview
User Interface
Implementation