Hi @jdlueken84, I took a look at your rule engines and made some assumptions about how this is supposed to work in reality.
What I have assumed is that you have a set of overall courses (which I have termed “Course Rules”) . These are the WSH-8021, WSH-8022M and so on. For each of these Course Rules, there is a set of criteria which determines if the student has attained this overall Rule based on the courses taken, and the results achieved in those courses, plus something called an “EntityId”
From the entries in your Rule Engines, I came up with the following table describing these “Course Rules”
The items shown in Red are where a course code was repeated in your rule engine, so I wasn’t sure if there was supposed to be more than one course to fulfill the rule.
So this table says that, for example, to achieve WSH-8041M, the student has to pass Courses 8041M and 8042M, have an entityid of 439 and achieve one of the grades listed (A through D) on both courses.
The attached workflow allows you to enter the above rules in a table, so they can be configured.
If my assumptions about how the rules are supposed to work is correct, then the attached workflow should give what you need, or at least be close to what you need.
The “rules” are manually entered in the Table Creator and turned into a set of “lookup tables”
For each student, the lookup tables are joined firstly with the CourseCode to determine the possible “Course Rule” to be matched, and then using the Course Rule code, matches to required entities and required grades
There is a rule engine, but the rule engine works on row individually and simply asks the question has the requirements been met for a single course on the overall rule to be considered “passed”
Once it has collected all the individual courses taken by each student for each “course rule” it determines whether any student has passed all the courses required to satisfy a “course rule”. It then tabulates the result.
Finally it brings the tabulated columns back into the original “student course results” table and I have added back in your Column Filter and Table View for the final results
At the end you will see that I make use of one “home grown” component at the end, which is the “
Selected Column Alphanumeric Resorter”.
This is used to sort the Course columns into alphabetical order without having to manually do this. The standard
Column Resorter node cannot do this easily without having some prior knowledge of the column names.
It can be found here:
Course Tabulation - configurable rules.knwf (152.7 KB)
Here is the workflow. I hope it helps get towards where you are trying to go. I don’t imagine I’ve covered everything as there are things I cannot be sure about and so there are assumptions made as noted above.