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
RegistrationRuleGenerator.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 RegistrationRuleGenerator.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
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 independent of their OPF values. It is important to note that all the x for OPF values are ignored for that user - this is realized in creating one registration rule per user.
The users would still adhere to the prerequisites, Registration Type and certificate configuration 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 User predicate!
The currently existing predicate IsUser can’t take multiple users - Core needs to be extended to a predicate like:
Users(userName1|userName2|…)
which should work similar to ProfileValueIn with multiple values but checking for users. Any user in the list should get registered.
Instructors
Additional Rows
Users (UserNames)
List user names (separated with pipe '|') who should get added as instructors for the course independent of their OPF values set further below. It is important to note that all the x for OPF values are ignored for that user - this is realized in creating one instructor rule per user.
Notes:
This predicate is used similar to OPFs - it indicates who should get registered and not necessarily defining under which circumstances (i.e. expiring certificate, prerequisites).
Remove Instructor does not have any affect on users mentioned in Users row.
The currently existing predicate IsUser can’t take multiple users - Core needs to be extended to a predicate like:
Users(userName1|userName2|…)
which should work similar to ProfileValueIn with multiple values but checking for users. Any user in the list should get registered.
0 Comments