...
The customer would get a pre-filled Offering Rule Matrix (courses/OrgProfileField values) which has been extracted from the LMS via GetOfferingRuleMatrix command
Instead of a complete Offering Rule Matrix, it is possible to only send an partial Offering Rule Matrix to the customer which only contains courses which need a rule update
Generate the offering rules (either instructor or registrations) using the Offering Rule Generator
Pause the rule background thread via command PauseAutomaticOfferingRuleProcessing. Check the status of the background thread with GetOfferingRuleStatus to make sure the thread is paused and not in the middle of processing.
Remove previous offering rules for courses (the set of rules to be removed is created by the Offering Rule Generator)
Create the new offering rules - commands created by the Offering Rule Generator
Note: The commands to add new 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/PSDEV-760 will add the proper commands to the output file of the Offering Rule Generator)
Note: you can check the progress of the re-eval command by executing GetOfferingRuleStatus in a new pages/dev client window.Continue rule background thread via command ContinueAutomaticOfferingRuleProcessing once all re-eval commands finished.
Check the that the background thread is not paused anymore with GetOfferingRuleStatus
...
In general, one column determines one rule for a course. If multiple columns for the same course exist, a user gets registered if at least one rule applies to the user. Rows specify Org Profile Fields and their values - from row 9+ for registration rule matrix and 7+ for instructor rule matrix. An X 'x' in a course column and OPF value row specifies that a user requires that OPF value in order to get registered.
...
The LMS certificate short Id which is awarded for completing the course. The certificate is used to determine the re-registration date according to the certificate’s validity duration. Only available for registration types ReRegistration and OnlyWithCompletedRegistration.
De-Registration
Set an ‘x‘x' into a course column to add de-registration rules. An active registration would be removed as soon as the registration rule requirements won’t apply anymore (i.e. due to a vessel change)
OPF Name
Org profile name to which can be used in registration rules
OPF Value
Org profile value to which can be used in registration rules
...
Active: Instructor rule is active
Deactivated: Instructor rule is deactivated - a course was discontinued. This creates a delete NavPage attribute to delete any instructor rules for this course
no value (empty cell): no rules or delete commands are generated. Rows with no value can be used to prepare courses for the future
Remove Instructor
Set an ‘x‘x' into a course column to add a remove instructor rules. An instructor would be removed as soon as the instructor rule requirements wouldn’t apply anymore (i.e. due to a vessel change)
OPF Name
Org profile name to which can be used in instructor rules
OPF Value
Org profile value to which can be used in instructor rules
...
If no requirement (OPF value) is selected for a course no instructor rule is generatedrules are generated for this course. However, if a Instructor Rule Status ‘Active’ is selected but no OPF value is selected the generator output a warning (console). This would indicate that the instructor rule was left empty unintentional
Commands to delete any 'instructor ‘instructor rules' and 'remove instructor' rules are generated if the column Instructor Rule Status has any value. This is to remove any old rules.
...
Invert OPF Selection
If you need the opposite of an OPF value as registration/instructor requirement you can invert the selected OPF value. In order to do that we use the Boolean NOT character '!' in front of 'x'.
OPF values selections can be marked with an ‘x' or ‘!x' (for the inverse) for a course (column). Selected values of one OPF name must have either all ‘x' or all '!x' within one course. You can't have a mix of 'x' and '!x' in one column within one OPF name. The Offering Rule Generator will throw an exception if '!x' and 'x' are mixed within one column and OPF name.
Example
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 |
https://marinels.atlassian.net/browse/PSDEV-806
https://marinels.atlassian.net/browse/PSDEV-768
https://marinels.atlassian.net/browse/PSDEV-726
https://marinels.atlassian.net/browse/PSDEV-755
Get Offering Rule Matrix via GetOfferingRuleMatrix
...