...
Introduction
This document describes and sub-documents describe the processes how offering rules (for registrations and instructors) are generated and updated using the Offering Rule Matrix (aka Registration Rule Generator) and the Offering Rule Generator (aka Registration Rule Generator) DOS prompt tool in combination with the Core client command GetOfferingRuleMatrix.
The Offering Rule Matrix is usually extracted with the Core client command GetOfferingRuleMatrix
before any changes are made to the existing rules. This ensures an accurate picture of what is in the system before any change is made. The section Customer Specific Processes below describes any customer specific requirements.
...
The customer would get a pre-filled Offering Rule Matrix (with courses and OrgProfileField values) which has been extracted from the LMS via Core command
GetOfferingRuleMatrix
commandThe Offering Rule Matrix can be split into sub-matrices so only a portion of the courses' offering rules are replaced.
Important: if a course has multiple rules a sub-matrix must contain all rules for that course - rules for one course can’t be split across multiple sub-matrices (this is automatically considered by the Core commandGetOfferingRuleMatrix
).
Generate the offering rules (either instructor or registrations) using the Offering Rule Generator
Pause the offering rule background thread via command
PauseAutomaticOfferingRuleProcessing
. Check the status of the background thread with with the commandGetOfferingRuleStatus
to make sure the thread is paused and not in the middle of processing. It may take a bit to finish if the background thread is paused in the middle of processing.Remove previous offering rules for courses (the set of rules to be removed commands to remove offering rules is created by the Offering Rule Generator) by executing the commands provided by the Offering Rule Generator
Add new offering rules - commands created by the Offering Rule Generator
Note: The commands to add new offering rules automatically checks if the OPF single choice values existRe-evaluate the rules for courses for which the rules have been changed (student and/or instructor) via command
ReEvaluateOfferingRulesByCoursePathMatch
(task https://marinels.atlassian.net/browse/
will add the proper commands to the output file of the Offering Rule Generator)Jira Legacy server System JIRA serverId 23f523ea-1678-3ca2-a1e8-2de53fd3b74a key PSDEV-760
Note: while re-evaluation is being executed you can check the progress of the re-eval command by executingGetOfferingRuleStatus
in a new pages/dev client window.Continue rule background thread via command
ContinueAutomaticOfferingRuleProcessing
once all re-eval commands have finished.Check the that the background thread is not paused anymore with
GetOfferingRuleStatus
Info |
---|
It is not required to keep the Offering Rule Matrix on file because if the customer asks for an Offering Rule Matrix the next time we will freshly export a new matrix via comand |
Info |
---|
Since release v3.0.5+ any updated registration rule needs offering rules need to be run re-evaluated manually to bring the rule engine up to date. The rules need to be run because rule changes/invalidate the ‘from’ date that the new rule engine uses internally to scan for changes. If you just let the engine run normally after rule updates it might miss people who are: (a) affected by the new rule, and (b) have not changed since the internal from date the engine records. There are command lines to run the rules only for specific courses, so if you have only changed the rules for a small set you can just run re-eval the rules for those (i.e. The rule engine doesn’t care that the attributes offering rules have been updated (i.e. by the rule generator) and doesn’t make any attempt to determine if offering rules have changed. So its up to a human in this case to decide what rules have changed semantically and ensure to manually run the rules for those courses. |
Info |
---|
Before updating any registration offering rule the rule engine needs to be paused. Commands to pause/continue/check status of the automatic registration offering rule processing:
|
Offering Rule Matrix
The Offering Rule Matrix (aka Registration Rule Matrix) is a csv representation of registration and instructor rules for courses. The instructor and registration rules matrix’s format is slightly different.
...
Registration Rule Matrix (v4.3+)
1 | Course Name | TRG-OHS-2205 Working at Height Training for Workers | EO Costa Atlantica PDR - Technical Training Qualification Card | Confined Spaces | |
2 | Course Path | /Root/Carnival/CMG/HESS/WorkingHeightWorker | /Root/Carnival/CMG/PDRs/EO/CostaAtlantica/PDR3 | /Root/Carnival/CMG/EOT/ConfinedSpaces | |
3 | Registration Type | OneTime | ReRegistration | Deactivated | |
4 | Re-Registration Before Certificate Expiry | 30d | |||
5 | Certificate Short Id | CourseCompleted1Y | |||
6 | De-Registration | ||||
7 | |||||
8 | OPF Name | OPF Value | |||
9 | Vessel | Shore | !x | ||
10 | Vessel | AIDAblue | x | ||
11 | Vessel | Costa Atlantica | x | x | |
12 | Rank | Captain | |||
13 | Rank | Engineer | x | x | |
14 | Rank | Environmental Officer | x |
Course Name
A human readable name of the course - this is not used in any rule creation (information only).
...
OneTime: one time registration - doesn't re-register as soon as a completed registration exists (uses predicate HasNoRegistrations())
ReRegistration: re-registers users in combination of a Certificate with expiry (column Certificate Short Id is mandatory). Uses predicates !HasActiveRegistrations() and CertificateWillExpire(..) (a user without a certificate will get registered because the predicate CertificateWillExpire(..) returns true for that case.
OnlyWithCompletedRegistration: registers and re-registers users who have an already completed at least one completed registration. This is only available in combination with a Certificate with expiry (column Certificate Short Id is mandatory). Uses predicates HasCompletedRegistrations(), !HasActiveRegistrations() and CertificateWillExpire(..)
Deactivated: a course which was in use before but has been discontinued. This creates a delete NavPage attribute to delete any rule for this course (differentiates between Student and Instructor)
No value (empty cell): no rules or delete commands are generated. Rows with no registration type value can be used to prepare courses for the future
...
Instructor Rule Matrix (v4.3+)
1 | Course Name | TRG-1701 - EFFECTIVE SUPERVISION | TRG-1701 - EFFECTIVE SUPERVISION | |
2 | Course Path | /Root/Carnival/CMG/HESS/PubHealth1 | /Root/Carnival/CMG/HESS/PubHealth1 | |
3 | Instructor Rule Status | Active | Active | |
4 | Remove Instructor | x | x | |
5 | ||||
6 | OPF Name | OPF Value |
|
|
7 | Vessel | Shore |
| |
8 | Vessel | AIDAblue | x |
|
9 | Vessel | Costa Atlantica | x | |
10 | Rank | Captain |
| x |
11 | Rank | Engineer |
| x |
12 | Rank | Environmental Officer |
Course Name
A human readable name of the course - this is not used in any rule creation (information only).
...
For example, if all users should be registered who are NOT assigned to Vessel: Shore use '!x' for OPF value Shore. This will result in a simpler offering rule which uses !ProfileValueIn(Vessel,Shore) instead of ProfileValueIn(Vessel,[list all vessels])
1 | Course Name | TRG-OHS-2205 Working at Height Training for Workers | |
2 | Course Path | /Root/Carnival/CMG/HESS/WorkingHeightWorker | |
3 | Registration Type | OneTime | |
4 | Re-Registration Before Certificate Expiry | ||
5 | Certificate Short Id | ||
6 | De-Registration | ||
7 | |||
8 | OPF Name | OPF Value | |
9 | Vessel | Shore | !x |
10 | Vessel | AIDAblue | |
11 | Vessel | Costa Atlantica | |
12 | Rank | Captain | |
13 | Rank | Engineer | x |
14 | Rank | Environmental Officer |
Example Offering Rule Matrices for v4.2.x and v4.3.x
Attachments | ||
---|---|---|
|
...
https://marinels.atlassian.net/browse/PSDEV-768
https://marinels.atlassian.net/browse/PSDEV-726
https://marinels.atlassian.net/browse/
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Get Offering Rule Matrix via GetOfferingRuleMatrix
...
Page Properties | ||
---|---|---|
| ||
|