SAP for Higher Education and Research Discussions
Spark conversations about student engagement, research optimization, and administrative efficiency using SAP in higher education and research. Join in!
cancel
Showing results for 
Search instead for 
Did you mean: 

Subrequirements and a Full Set of Boolean Operators

Former Member
0 Kudos

Hi,

I have noticed that the subrequirement objects used by SLCM's audit functionality are based on rule modules (which is not surprising as requirements are rule containers). Is there a way that the rule module and rule element editors can be directed to look at this set of rule modules rather than the normal set (the ones used for progressions, etc...)? If this can be done, I would be tempted to forfeit the use of the subrequirements editor in favor of editing the subrequirements rules directly in their "raw" form....

I ask because I am running into the constraints of not having the complete power of boolean logic available in the subrequirements editor. By default, all of the subrequirement results in a requirement appear to have a logical AND applied to them, producing the result of the requirement. If one turns on the "implicit condition", then it appears that a logical inclusive-OR is applied to them instead. However, there does not appear to be a good way to make combinations of logical AND and OR within the same requirement. This poses a difficulty with the following scenario:

(1) Suppose I have two alternate sets of subrequirements that can be fulfilled, say set A is 2A - ">= 6 CRH of Physical Sciences" AND 3A - ">= 12 CRH of Social Sciences", and set B is 2B - ">= 12 CRH of Physical Sciences" AND 3B - ">= 6 CRH of Social Sciences".

(2) Satisfying set A or set B counts towards satisfying their requirement. To put it compactly: ((2A AND 3A) OR (2B AND 3B)) AND "other subrequirements".

(3) 2A and 2B have the same default modules, and 3A and 3B have the same default modules.

(4) The SC having this subrequirements structure cannot be split out into two separate cases, because the students are given freedom to meet either set of subrequirements without committing to which one. (Basically, the subrequirements belong to a requirement for a single SC, and we are not free to create two different SC's to deal with this.)

I rearranged the expression with one of DeMorgan's duality rules to see if I could hoist a consolidation out that way, but, of course, negations also appeared, and so no ground was gained that way.

Any thoughts on how to deal with this problem would be appreciated.

Thank you,

Eric

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Eric,

In deed Sub requirements and VSR Rules use the same data model. All rules in SLcM are represented as Rule Modules and are grouped into Rule Containers. The Rule Containers can then related via a call-up point to the Academic Structure. Actually, we used Rule Modules to represent Sub Requirements to have the possibility to use VSR Rules in audits easily. But up to now this is not possible. You cannot evaluate VSR rules in an audit run, yet.

Rules like ((2A AND 3A) OR (2B AND 3B)) AND "other subrequirements" - (2A, 3A and so represent Sub Requirements) - are difficult to set up in SLcM. Nevertheless, following ideas might lead to a solution:

First of all you must know that we cannot define OR-conditions on Sub Requirement level, a boolean logic is not supported. Instead, Or-Conditions must be handled with help of Auxiliary Conditions or they can be defined within the Sub Requirements itsself.

Assume it would be possible to combine Sub Requirement 2A and 3A into one Sub Requirement and 2B and 3B into one Sub Requirement. Then you would have a Requirement with just two Sub Requirements A and B. To define that either A or B must be fulfilled by the student you need an Auxiliary Condition checking the number of fulfilled Sub Requirements, which could be one in our example.

Suppose now a slightly different rule: suppose a Requirement 'Program A Requirements' which has 3 Sub Requirements A, B and C. Suppose furthermore that A must be fulfilled and either B or C must be fulfilled to fulfill the Requirement. You can implement this rule with help of the weigthing factors which you can define for Sub Requirements and with help of an Auxiliary Condition. Example:

- Sub Requirement A has weight 2

- Sub Requirement B has weight 1

- Sub Requirement C has also weight 1

- Auxiliary Condition checks that weight of fulfilled sub requirements must be >= 3.

You see the solution pattern is:

- try to combine 'basic Sub Requirements' into more sophisticated Sub Requirements

- use Auxiliary Conditions (if necessary with weights) to define OR-conditions on Sub Requirements

In the example you have given (e.g. 2A - ">= 6 CRH of Physical Sciences" AND 3A - ">= 12 CRH of Social Sciences") it is hard to combine the two Sub Requirements into just one (index-dependent) Sub Requirement since the Nominal Values for Performance Indexes are different.

So, I assume that you will have a Requirement with really 4 Sub Requirements 2A, 2B, 3A and 3B. Let's try to give weights in a way that 2A and 3A or 2B and 3B must be fulfilled.

Let's try:

- 2A - Weight 1 -> 6 CRH of Physical Sciences

- 3A - Weight 4 -> 12 CRH of Social Sciences

- 2B - Weight 4 -> 12 CRH of Physical Sciences

- 3B - Weight 1 -> 6 CRH of Social Sciences

- Auxiliary Condition: Weight >= 5

Still the rule is not secure, because students could fulfil 3A and 3B to get a weight of 5. In this case you need a 'helper' Sub Requirement or a helper 'Auxiliary Condition', which ensures in the example that student has at least 6 CRH in Physics and 6 CRH in Social Sciences. In the example you could e.g. introduce another Auxiliary Condition which checks that 3 Sub Requirements out of the 4 have to be fulfilled. That should work since the rule '6 CRH of Physical Sciences' is automatically fulfilled when rule '12 CRH of Physical Sciences' is fulfilled. Actually I assume that the last mentioned Auxiliary Condition is enough to make the whole rule complete.

So, a final solution for your concrete example could be:

Requirement XYZ -> Implicit Condition switched off (that means that only the Auxiliary Conditions must be fulfilled that the Requirement is fulfilled)

- Sub Requirement 2A

- 3A

- 2B

- 3B

- Auxiliary Condition (3 Sub Requirements must be fulfilled)

Please check also following note:

1031564 - CM_AUDIT: Auxiliary conditions using weighting

Regards

Volker.

View solution in original post

10 REPLIES 10

Former Member
0 Kudos

Hi Eric,

In deed Sub requirements and VSR Rules use the same data model. All rules in SLcM are represented as Rule Modules and are grouped into Rule Containers. The Rule Containers can then related via a call-up point to the Academic Structure. Actually, we used Rule Modules to represent Sub Requirements to have the possibility to use VSR Rules in audits easily. But up to now this is not possible. You cannot evaluate VSR rules in an audit run, yet.

Rules like ((2A AND 3A) OR (2B AND 3B)) AND "other subrequirements" - (2A, 3A and so represent Sub Requirements) - are difficult to set up in SLcM. Nevertheless, following ideas might lead to a solution:

First of all you must know that we cannot define OR-conditions on Sub Requirement level, a boolean logic is not supported. Instead, Or-Conditions must be handled with help of Auxiliary Conditions or they can be defined within the Sub Requirements itsself.

Assume it would be possible to combine Sub Requirement 2A and 3A into one Sub Requirement and 2B and 3B into one Sub Requirement. Then you would have a Requirement with just two Sub Requirements A and B. To define that either A or B must be fulfilled by the student you need an Auxiliary Condition checking the number of fulfilled Sub Requirements, which could be one in our example.

Suppose now a slightly different rule: suppose a Requirement 'Program A Requirements' which has 3 Sub Requirements A, B and C. Suppose furthermore that A must be fulfilled and either B or C must be fulfilled to fulfill the Requirement. You can implement this rule with help of the weigthing factors which you can define for Sub Requirements and with help of an Auxiliary Condition. Example:

- Sub Requirement A has weight 2

- Sub Requirement B has weight 1

- Sub Requirement C has also weight 1

- Auxiliary Condition checks that weight of fulfilled sub requirements must be >= 3.

You see the solution pattern is:

- try to combine 'basic Sub Requirements' into more sophisticated Sub Requirements

- use Auxiliary Conditions (if necessary with weights) to define OR-conditions on Sub Requirements

In the example you have given (e.g. 2A - ">= 6 CRH of Physical Sciences" AND 3A - ">= 12 CRH of Social Sciences") it is hard to combine the two Sub Requirements into just one (index-dependent) Sub Requirement since the Nominal Values for Performance Indexes are different.

So, I assume that you will have a Requirement with really 4 Sub Requirements 2A, 2B, 3A and 3B. Let's try to give weights in a way that 2A and 3A or 2B and 3B must be fulfilled.

Let's try:

- 2A - Weight 1 -> 6 CRH of Physical Sciences

- 3A - Weight 4 -> 12 CRH of Social Sciences

- 2B - Weight 4 -> 12 CRH of Physical Sciences

- 3B - Weight 1 -> 6 CRH of Social Sciences

- Auxiliary Condition: Weight >= 5

Still the rule is not secure, because students could fulfil 3A and 3B to get a weight of 5. In this case you need a 'helper' Sub Requirement or a helper 'Auxiliary Condition', which ensures in the example that student has at least 6 CRH in Physics and 6 CRH in Social Sciences. In the example you could e.g. introduce another Auxiliary Condition which checks that 3 Sub Requirements out of the 4 have to be fulfilled. That should work since the rule '6 CRH of Physical Sciences' is automatically fulfilled when rule '12 CRH of Physical Sciences' is fulfilled. Actually I assume that the last mentioned Auxiliary Condition is enough to make the whole rule complete.

So, a final solution for your concrete example could be:

Requirement XYZ -> Implicit Condition switched off (that means that only the Auxiliary Conditions must be fulfilled that the Requirement is fulfilled)

- Sub Requirement 2A

- 3A

- 2B

- 3B

- Auxiliary Condition (3 Sub Requirements must be fulfilled)

Please check also following note:

1031564 - CM_AUDIT: Auxiliary conditions using weighting

Regards

Volker.

0 Kudos

Thanks for the very thorough answer, Volker. I will need to wait until my basis team makes SLCM 6.0 available before I can try your proposed solution. But, it looks promising, so I'll go ahead and mark this question as answered.

(I admit that I still wonder if it might not be better for SAP to provide another requirements category called something like "Alternation", which would allow for an OR of requirement results. Then, one could stack Alternations and Consolidations in a hierarchy, and effectively do the same thing, but without resorting to the use of subrequirement weights and auxiliary conditions. I am guessing that the weighting scheme becomes more cumbersome as the complexity of the boolean logic increases....)

Thank you,

Eric

Former Member
0 Kudos

Hi,

I notice that the SLCM Audit Handbook makes reference to a performance index calculation, "SR01", which is necessary to implement a key figure needed to emulate an OR operation in an auxiliary condition. I cannot find this on our SLCM 6.0 test system, or referenced in note #1031564. Since it is not a Z-named index calc, I assume that this is something that is shipped to the customer. Is this correct? And, if so, does this imply that a customer cannot perform even a hackish OR of subrequirements, unless it implements the missing functionality or is at 6.3?

(Part of the motivation for this question is that my boss asked me to put together a list of SLCM audit features that we need from 6.3, which 6.0 does not provide.)

Thank you,

Eric

Edited by: Eric McDonald on Jan 24, 2008 6:28 PM

0 Kudos

Eric,

This PI Calculation is delivered with EHP3 on top of SLCM 6.0. The calculation actually has 4 filters (SR01-04).

Yes, you could put together a Z-namespace implementation yourself, if you wanted to.

Here is a code block for you:

METHOD if_ex_hrpiq00si2_pindx_cal~calculate.

DATA: lv_weight TYPE piqaggm_weighting,

ls_keyf_suby TYPE piqsi2s_performance,

ls_keyf_suba TYPE piqsi2s_performance.

READ TABLE it_keyfigures INTO ls_keyf_suby

WITH KEY iosem = 'SUBY'.

IF sy-subrc = 0.

ENDIF.

CASE flt_val.

WHEN 'SR01'.

es_result-acpi_unit = 'ST'.

es_result-acpi_value = ls_keyf_suby-acpi_value.

WHEN 'SR02'.

es_result-acpi_unit = '%'.

READ TABLE it_keyfigures INTO ls_keyf_suba

WITH KEY iosem = 'SUBA'.

IF sy-subrc = 0.

es_result-acpi_value = ls_keyf_suby-acpi_value / ls_keyf_suba-acpi_value * 100.

ENDIF.

WHEN 'SR03'.

es_result-acpi_value = ls_keyf_suby-weighting.

es_result-acpi_unit = '%'.

WHEN 'SR04'.

es_result-acpi_value = ls_keyf_suby-weighting.

es_result-acpi_unit = 'ST'.

ENDCASE.

ENDMETHOD.

I hope this helps you.

Michael

P.S. I'm in the process of putting together an example of the OR condition that specifically models your (12 CRH from group A and 6 CRH from group b) OR (12 CRH from group B and 6 CRH from group A) . It involves creating a new Badi implementation, but it is actually quite flexible and elegant when complete, I think.

0 Kudos

Thank you for the code and other information, Michael. I look forward to seeing what you're putting together.

Eric

0 Kudos

Eric,

Please look at the update I posted to this 'sticky' thread for the Audit Handbook. It contains the exact example you are looking for.

Michael

0 Kudos

Interesting solution, Michael. While it is not quite as compact as Volker's, I definitely think it is more understandable to advisers and students - and that is what is important. I think what you have done will be quite sufficient for now. Thank you for your efforts.

In the long term, I will be looking forward to when you guys open up the VSR machinery for SLCM audit. I am keeping a NRIV for PIQ_REQ set aside for this. Do you happen to have an estimate on when this might occur?

Thanks Much,

Eric

P.S. As of this writing, Volker's Handbook no longer seems to be attached to the sticky thread for it. Only your appendices are showing up.

0 Kudos

Hi Michael ,

Unable to download the sticky post for Degree Audit (Part1 to Part4) .

Regards

Gajalakshmi

0 Kudos

You need to 'right-click' (sorry if you are on a Mac and don't have a right mouse button...) on the attachment link and select 'Save Target As', rather than just clicking on it. I just tried it with no problem.

0 Kudos

I tried using Save target as option by right-clicking , yet it downloaded with 0 bytes.........

Today I tried , it worked ....out well the attachement got downloaded ....I used the same mouse and system.....but I dont know why it happened ........

Thanks for the help !!

Regards

Gajalakshmi

Edited by: Gajalakshmi Kannappan on Feb 4, 2008 6:41 AM