Extended Offering Rule Matrices (deprecated)
- 1 Introduction
- 2 Offering Rule Generator (pre-release and minimally tested version - use with caution!)
- 2.1 Example Commands
- 2.2 Notes
- 3 Registration Rules
- 3.1 Additional Rows
- 3.1.1 New Registration Rule Predicates
- 3.1.1.1 Rows
- 3.1.1.1.1 Course-Prerequisite (latest registration is completed) - MostRecentRegistrationCompletedFor
- 3.1.1.1.2 Course-Prerequisite (completed after current completion) - CompletedForSinceCurrentCompletion
- 3.1.1.1.2.1 Examples
- 3.1.1.1.3 OrgProfileFieldChanged (since latest completion) - ProfileChangedSinceLastCompletion
- 3.1.1.1.4 CertificateWillExpireInCourse (course, certId, daysBeforeExpiry)
- 3.1.1.1 Rows
- 3.1.2 Users (UserNames)
- 3.1.1 New Registration Rule Predicates
- 3.1 Additional Rows
- 4 Instructors
- 4.1 Additional Rows
- 4.1.1 Users (UserNames)
- 4.1 Additional Rows
Introduction
This document contains proposals and descriptions for (new) offering rule predicates expressed in the offering rule matrix for registration rules and instructor rules.
Offering Rule Generator
(pre-release and minimally tested version - use with caution!)
The attached offering rule generator (incl. sample matrices for Registration and Instructor rules) is a pre-release version which was barely tested. Please double check the created rules if they look OK before adding to a live system!
Example Commands
OfferingRuleGenerator.exe Instructor -f "D:\temp\2022-03-22-Instructor-NewOfferingRuleMatrix.csv" -p /Root/TestOrg -o "D:\temp\2022-03-22-Instructor-NewOfferingRuleMatrix-Commands.txt" -v
OfferingRuleGenerator.exe Student -f "D:\temp\2022-03-22-Registration-NewOfferingRuleMatrix.csv" -p /Root/TestOrg -o "D:\temp\2022-03-22-Registration-NewOfferingRuleMatrix-Commands.txt" -v
Notes
Registration Rules ignore the rows De-Registration Rules and Users (UserNames)
Instructor Rules ignores the row Users (UserNames)
Registration Rules
Additional Rows
New Registration Rule Predicates
Some additional rows were added to support new predicates:
MostRecentRegistrationCompletedFor
CompletedForSinceCurrentCompletion
ProfileChangedSinceLastCompletion
CertificateWillExpireInCourse
Note: De-Registration can’t be used for any of the above predicates, including the existing predicate CertificateWillExpire.
Rows
Course-Prerequisite (latest registration is completed) - MostRecentRegistrationCompletedFor
Define courses which are prerequisite to the course column. That is, those courses need to be completed BEFORE someone gets registered in this course.
The predicate stays ‘true’ once the prerequisite course has been completed at least once. To avoid endless re-registration combine this prerequisite with a certificate, other rule predicate or use with Registration Type OneTime.
Note: If more than one course is prerequisite, add multiple course paths separated with pipe '|'.
Course-Prerequisite (completed after current completion) - CompletedForSinceCurrentCompletion
Define courses which are prerequisite to the course column. That is, those courses need to be completed BEFORE someone gets registered in this course.
The predicate is only true if the prerequisite course was either completed AFTER the current course or the current course has not been completed yet and the prerequisite course has been completed at least once.
Examples
prerequisite course
not completed
AND current coursenot completed
=> falseprerequisite course
completed 2021-10-08
AND current coursenot completed
=> trueprerequisite course
completed 2021-10-08
AND current coursecompleted 2021-10-07
=> trueprerequisite course
completed 2021-10-08
AND current coursecompleted 2021-10-09
=> false
Note: If more than one course is prerequisite, add multiple course paths separated with pipe '|'.
OrgProfileFieldChanged (since latest completion) - ProfileChangedSinceLastCompletion
Predicate ProfileChangedSinceLastCompletion
is true if the specified profile field value has changed since the user's last course completion.
CertificateWillExpireInCourse (course, certId, daysBeforeExpiry)
The predicate CertificateWillExpireInCourse
is true if the certificate for the specified course is expiring in x days or less or has expired already.
Users (UserNames)
List user names (separated with pipe '|') who should get registered in the current course. It is important to note that any settings for that course (column) are included in the registration rule. Therefore, the users would still adhere to the prerequisites, Registration Type, certificate configuration and OPF values for the course.
Notes:
This predicate is used similar to OPFs - it indicates the specific users who should get registered
De-Registration can be used with the Users predicate!
The currently existing predicate IsUser can’t take multiple users - as a (temporary) work-around the Offering Rule generator will generate one offering rule per user (including any other configurations for that column).
The IsUser predicate will need to be replaced in the future to take multiple users:
Users(userName1|userName2|…)
should work similar to ProfileValueIn with multiple values. Any user in the list should get registered. This makes it possible to add one offering rule instead of one offering rule per user.
Instructors
Additional Rows
Users (UserNames)
List user names (separated with pipe '|') who should get added as instructors for the course. It is important to note that any selected OPF values are included in the instructor rule as well.
Notes:
This predicate is used similar to OPFs - it indicates the specific user(s) who should get added as instructor(s)
Remove Instructor can be used with the Users predicate!
The currently existing predicate IsUser can’t take multiple users - as a (temporary) work-around the Offering Rule generator will generate one offering rule per user (including any other configurations for that column).
The IsUser predicate will need to be replaced in the future to take multiple users:
Users(userName1|userName2|…)
should work similar to ProfileValueIn with multiple values. Any user in the list get added as instructor. This makes it possible to add one offering rule instead of one offering rule per user.