Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

Introduction

This document contains proposals and descriptions for (new) offering rule predicates expressed in the offering rule matrix for registration rules and instructor rules.

View file
name2022-03-22-NewOfferingRuleMatricesProposals.xlsx

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!

View file
name2022.03.22 - 4.3.0+ - OfferingRuleGenerator Extended Matrix Format.zip

Example Commands

Code Block
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:

...

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.

...

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
  1. prerequisite course not completed AND current course not completed => false

  2. prerequisite course completed 2021-10-08 AND current course not completed => true

  3. prerequisite course completed 2021-10-08 AND current course completed 2021-10-07 => true

  4. prerequisite course completed 2021-10-08 AND current course completed 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 any settings for that course (column) are included in the registration rule. Therefore, the users would still adhere to the prerequisites, Registration Type and , 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 User Users predicate!

  • The currently existing predicate IsUser can’t take multiple users - Core needs to be extended to a predicate likeas 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|…)

    which should work similar to ProfileValueIn with multiple values but checking for users. 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 independent of their OPF values set further below. It is important to note that all the x for any selected OPF values are ignored for that user - this is realized in creating one instructor rule per userincluded in the instructor rule as well.

Notes:

  • This predicate is used similar to OPFs - it indicates the specific user(s) 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.added as instructor(s)

  • Remove Instructor can be used with the Users predicate!

  • The currently existing predicate IsUser can’t take multiple users - Core needs to be extended to a predicate likeas 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|…)

    which should work similar to ProfileValueIn with multiple values but checking for users. Any user in the list should get registeredget added as instructor. This makes it possible to add one offering rule instead of one offering rule per user.