Validate Configuration
Goals/Scope
- The goal of this requirements page is to document the user stories associated with verifying and validating configuration during the OpenLMIS implementation process. The configuration in 3.0 is completed using some administration UI screens, sql insert scripts, or bulk csv uploads.
- Scope: this feature includes stories on:
- Validation and reporting for missing roles and rights required for users to complete desired activities
- Validation and reporting for associations for facilities, programs, supervisory nodes, and requisition groups
- Validation and reporting for other missing associations (users that are set up with no assignments will not be able to complete any functions, products that are missing associations, geographic hierarchies)
- Scope: this feature includes stories on:
Background
Version 2.0 validation of configuration was completed by generating the following reports:
1. Facilities Missing a Create Requisition Role: This report will identify any facility where a program is operating but there is no active verified user who has been assigned a role that includes the rights to create requisitions for that program. The role must be assigned to a user for whom the facility is their home facility, or to a user has been assigned the role at a supervisory node over the facility. If no user holds this role, it will not be possible for the facility to create and submit requisitions for the program.
2. Facilities Missing an Authorize Requisition Role: This report will identify any facilities where a program is operating but there is no active verified user who has been assigned a role that includes the rights to authorize requisitions for that program. The role must be assigned to a user for whom the facility is their home facility, or to a user has been assigned the role at a supervisory node over the facility. If no user holds this role, it will not be possible for the facility's requisitions for the given program to be authorized, and then advance for review and approval.
3. Facilities Missing an Approve Requisition Role: This report will identify any facilities where a program is operating but there is no active verified user who has been assigned a role that includes the rights to approve requisitions for that program. The role must be assigned to a user for whom the facility is their home facility, or to a user has been assigned the role at a supervisory node over the facility. If no user holds this role, it will not be possible for the facility's requisitions for the given program to be approved, and eventually get released as an order.
4. Supervisory Nodes Missing an Approve Requisition Role: This report will identify any supervisory nodes where there is no active verified user who has been assigned a role that includes the rights to approve requisitions for all programs that are operated by all facilities who are members of any requisition group under this supervisory node. There must be a user with approval rights at each supervisory node, for requisitions for each program that passes through the supervisory node. If no user holds approval rights for a given supervisory node, then requisitions will "get stuck" at that node, with no way to move them up the approval hierarchy.
5. Requisition Groups Missing a Supply Line: This report identifies any requisition groups that have no supply line to support fulfillment of a program that is supported by the requisition group. Note that supply lines map top-level supervisory nodes to a warehouse that will fill orders for designated program(s). Supervisory nodes, themselves are not specific to any program. Requisition Groups that appear on this report thus have a top-level supervisory node which is missing the supply line for one or more programs supported by requisition groups under that supervisory node.
6. Order Routing Inconsistencies: This report identifies any facilities that have been designated as warehouse or stocking depot for a supply line which was created as part of Step #8, yet the facility is either set to "Disabled" in OpenLMIS, or there are no FTP credentials that specify how to route orders to this warehouse facility. If a facility has been disabled, or there are no FTP credentials, then any orders destined for that warehouse cannot be forwarded to the warehouse.
7. Delivery Zones Missing a Manage Distribution Role: This report identifies any Delivery Zones that were created as part of Step #10 for which there is no active verified user who has been assigned a role with rights to manage distributions for that zone. If no user holds manage distribution rights for the delivery zone then no one can initiate a distribution for the zone, nor can anyone enter data related to distributions.
Assumptions
- This feature assumes that the UI validates that the administrator or implementor has successfully created a User, Facility or Supervisory Node with the following:
- Required fields when creating a new user such as username, first and last name, etc.
- Required fields when creating a new facility such as facility type, name, active, etc.
- Required fields when creating a new Supervisory Node such as Supervisory Node code, facility code, etc.
Once the setup is completed, these tickets ensure the assignments are validated and errors reported for the administrator to make necessary edits.
User Stories
# | Title | User Story | Label | Importance | JIRA Tickets |
---|---|---|---|---|---|
1 | Validation Process | As an admin I want an automated process to report incomplete assignments and associations so that I can make corrections as needed. Acceptance Criteria:
| Nice to Have | ||
2 | Incomplete user assignment | As an admin I want to know which user setups are incomplete so that I can prioritize and update their assignments. Acceptance Criteria:
Types of missing data:
Nice to Have:
| Nice to Have Must Have | ||
3 | Incomplete Requisition roles for Facility | As an admin I want to know which facility setups are incomplete for the requisition workflow so that I can update their assignments. Acceptance Criteria:
Nice to Have:
| Nice to Have Must Have | ||
4 | Incomplete Supervisory Nodes | As an admin I want to know which Supervisory Nodes setups are incomplete for the requisition approvals so that I can update their assignments. Acceptance Criteria:
Nice to Have:
| Must Have | ||
5 | Incomplete Products Configuration | As an admin I want to know which products are missing required configurations so that I can update their associations and assignments. Acceptance Criteria:
| |||
6 | Edit reporting/notification process schedule | As an admin I want to manually run these validation processes if there was an error and the process didn't run automatically. Acceptance Criteria: | Nice to Have |
Diagrams
Incomplete User Assignment:
- Each unique Username must have at least one role assigned, and one program assigned.
Username | Active | Role assigned | Program assigned | Home Facility (tbd if required) |
---|---|---|---|---|
Incomplete Requisition Roles for Facilities:
Facility Code | Roles assigned | ||
---|---|---|---|
Incomplete Supervisory Nodes:
Dependencies
Description | Link |
---|---|
Open Questions
Below is a list of questions to be addressed as a result of this requirements document:
# | Question | Outcome | Status |
---|---|---|---|
1 | How should we query for the list of records that need to be validated? What will this validation process be? Adding a new field, status, or using an audit tool to gather the data? | ||
2 | Should we add a created date? Should there also be an identifier for each record that shows its already been validated so that we don't continue to check it? | ||
3 | Who should have access to view these missing configurations and act on them? What rights will need to get created or already exists for this type of activity? | ||
4 | How will these missing configurations be resolved? Through manually marking in the UI, or after another validation process is run? | ||
5 | Who should have access to configure when the validation processes are run? If a process fails for some reason, can it be run manually? How frequently should jobs be scheduled to run? | ||
6 | Should a history of missing configurations be maintained for historical reporting at some point? | ||
7 | How will we direct the user on which action needs to be taken to resolve the missing configuration? Links to the admin page within the notification? | ||
8 | Are there different types/classifications of missing configurations? Should some errors have a higher priority to resolve than others? How is priority determined? | ||
9 | What should happen if an error is not resolved the next time the validation process is run? What types or resolution are available? Can a user mark an error as resolved manually? Are there scenarios where the error would not automatically be resolved after the admin makes edits? | ||
10 | What happens when an error is resolved? | ||
11 | What if there are no errors to report? |
Out of Scope
- Delivery Zones are out of scope.
- Other OpenLMIS system related validation such as system status checks are out of scope for this feature.
OpenLMIS: the global initiative for powerful LMIS software