Validate Configuration

Target release
Epic

OLMIS-2707 - Getting issue details... STATUS

Document status
IN DEV
Document owner
Technical Lead

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)

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

#TitleUser StoryLabelImportanceJIRA Tickets
1Validation 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:

  • Create a process that runs on a schedule to check newly created or edited records for completeness.
  • This process should identify which records have already been validated, and which records need to be validated.
  • When records are identified as incomplete, they are flagged for reporting or notification
  • When the incomplete record has been updated, the process will run again and clear those flags so that it is no longer reported.


Nice to Have

OLMIS-2782 - Getting issue details... STATUS

2Incomplete 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:

  • Generate a list of all Users with no Roles and/or rights

Types of missing data:

    • User Missing Home Facility (low priority error?)
    • User Missing Role & Program assignment

Nice to Have:

  • Create an automated job that runs nightly to complete validation and records any missing data to report to administrator
    • This job would gather all recently created or modified users since last run
    Admin selects user and is directed to page where they can edit user roles or rights
  • When error is resolved it is no longer reported in the configuration errors table

Nice to Have

Must Have

  • If we change to make the Home Facility required, this should be included in the "incomplete setup" query.
  • OLMIS-2757 - Getting issue details... STATUS
  • OLMIS-2758 - Getting issue details... STATUS


3Incomplete 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:

  • Generate a list of all facilities that are missing the following: Facility has program assigned but no users with Supervision roles with rights to create, authorize, approve
  • Generate a list of all facilities that has program assigned but no users are assigned that same program and a Supervisory Node
    • Check for Active Program and Active user

Nice to Have:

  • Create an automated job that runs nightly to complete validation and records any missing data to report to administrator
    • This job would gather all recently created or modified facilities since last run
  • When error is resolved it is no longer reported in the configuration errors table

Nice to Have

Must Have

4Incomplete 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:

  • Generate a list of all Supervisory Nodes where there is no user that has no associated approval rights.
  • List all Supervisory Nodes that are missing a Requisition Group assignment

Nice to Have:

  • Create an automated job that runs nightly to complete validation and records any missing data to report to administrator
    • This job would gather all recently created or modified Supervisory Nodes
  • When error is resolved it is no longer reported in the configuration errors table

Must Have


5Incomplete 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:

  • List of all products and their missing configurations
    • Need to gather list of associations that are required and add from (Orderables (Products))
    • Example: Orderable is missing orderable-facilityType-program association


6Edit 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. 
UsernameActiveRole assignedProgram assignedHome Facility (tbd if required)











Incomplete Requisition Roles for Facilities:

Facility CodeRoles assigned






Incomplete Supervisory Nodes:


Dependencies

DescriptionLink


Open Questions

Below is a list of questions to be addressed as a result of this requirements document:

#QuestionOutcomeStatus
1How 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?

2Should 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?

3Who 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?
4How will these missing configurations be resolved? Through manually marking in the UI, or after another validation process is run?

5Who 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?

6Should a history of missing configurations be maintained for historical reporting at some point?

7How 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?

8Are 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?



10What happens when an error is resolved?

11What 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