You are on page 1of 7

1.

Seeded Rule set-up for Approve Performance Goals

1.1. Default conditions for each rule:

PerformanceGoalAutoApproval:

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND ((1 == 1) OR
(Performance Goals.Private Flag == "Y")))
PerformanceGoalManualApproval:

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND (Performance
Goals.Private Flag != "Y") AND ((Performance Goals.Goal Created Flag == "NOT_Y") OR ((Performance Goals.Goal Deleted
Flag == "NOT_Y") OR ((Performance Goals.Legacy Key Attribute Updated == "NOT_Y") OR ((Performance Goals.Status
Code == "NOT_CANCEL") OR (Performance Goals.Status Code == "NOT_COMPLETED"))))))

PerformanceGoalBlankTxnApproval:

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 == ""))


 A new seeded rule named PerformanceGoalBlankTxnApproval was introduced in 20C to
handle the blank transactions.
 The blank(empty) transactions are actually submitted in some very exceptional situations
when an employee creates a new goal and then deletes it, before submitting it to approval.
 In such situations, even if there is no draft goal to be submitted to approval, the Submit
button still exist and the application will submit a blank(empty) transaction to approval.
 If the approval rules are not configured to handle these blank(empty) transactions the
transaction will fail.
 This is why the new rule PerformanceGoalBlankTxnApproval is needed.
 Attribute 10 from transactionApprovalRequest payload is used to identify blank
transactions. Attribute 10 stores the comma-separated list of all Goal ids involved in that
particular transaction.
 If Attribute 10 is empty, that particular transaction is recognized to be a blank transaction
and this new rule will auto-approve it.
 Customers are not allowed to make any changes in this rule, as it won't cause any harm
whether they use Auto or Manual approval.
 Customers who already customized their Auto or Manual approval rules in the past
before 20C, will not receive this new seeded rule named
PerformanceGoalBlankTxnApproval out-of-the-box when they will do the upgrade
to 20C. They will need to add this third rule manually to their ruleset.
1.2. How to configure Manual Approvals using the above Seeded Rule set-up:

If a customer wants to configure Manual Approval Rules, in the manual rule they should replace
"NOT_Y" with "Y" on that specific condition as per customer requirement, and in the Auto
approval rule the condition "1==1" should be replaced with the corresponding negated conditions
separated with AND in between.

Eg: If a customer wants manual/manager approval for Goal Create, Update, Delete, Cancel, and
Complete. Remaining all other actions like private goal changes, share, Align, and non-key
attribute update, etc. should go for auto-approval, then the below specified changes required for
seeded Manual and Auto approval rule.

PerformanceGoalManualApproval:

String "NOT_" should be removed on that conditions as shown below

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND (Performance
Goals.Private Flag != "Y") AND ((Performance Goals.Goal Created Flag == "Y") OR ((Performance Goals.Goal Deleted Flag
== "Y") OR ((Performance Goals.Legacy Key Attribute Updated == "Y") OR ((Performance Goals.Status Code == "CANCEL")
OR (Performance Goals.Status Code == "COMPLETED"))))))
PerformanceGoalAutoApproval:

In the Auto approval rule the condition "1==1" should be replaced with the corresponding
negated conditions using "!=" separated with AND in between two conditions. By keeping all the
remaining conditions as it is. As shown below

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND (((Performance
Goals.Goal Created Flag != "Y") AND (Performance Goals.Goal Deleted Flag != "Y") AND (Performance Goals.Status Code
!= "CANCEL") AND (Performance Goals.Legacy Key Attribute Updated != "Y") AND (Performance Goals.Status Code !=
"COMPLETED")) OR (Performance Goals.Private Flag == "Y")))

PerformanceGoalBlankTxnApproval:

No changes required in this Rule


Legacy Key Attribute Updated flag

"Legacy Key Attribute Updated" flag takes care of all the Key attribute changes

 Name
 Description
 Success Criteria
 Start Date
 Target Completion date
 Priority
 Category
 Private flag
 Weight
 Measurement:
o Measurement Name
o Measurement Type Code
o UOM Code
o Target Type
o Target Value
To add any other Manual Approval:

Now if Customer wants to configure Manual approval for Task-related changes like Task added,
Task updated and Task deleted, along with the above-mentioned changes, we should add all
these conditions separated with OR in Manual approval rule and corresponding negated
conditions using separated with AND in Auto approval rule as shown below

PerformanceGoalManualApproval:

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND (Performance
Goals.Private Flag != "Y") AND ((Performance Goals.Goal Created Flag == "Y") OR ((Performance Goals.Goal Deleted Flag
== "Y") OR ((Performance Goals.Legacy Key Attribute Updated == "Y") OR ((Performance Goals.Status Code == "CANCEL")
OR ((Performance Goals.Status Code == "COMPLETED") OR ((Performance Goals.Task Created Flag == "Y") OR
((Performance Goals.Task Deleted Flag == "Y") OR (Performance Goals.Task Updated Flag == "Y")))))))))

PerformanceGoalAutoApproval:

((transactionApprovalRequest.attribute25 == "Y") AND (transactionApprovalRequest.attribute10 != "") AND (Performance


Goals != null) AND (Performance Goals.Goal Version Type Code == "PENDING_APPROVAL") AND (((Performance
Goals.Goal Created Flag != "Y") AND (Performance Goals.Goal Deleted Flag != "Y") AND (Performance Goals.Status Code
!= "CANCEL") AND (Performance Goals.Legacy Key Attribute Updated != "Y") AND (Performance Goals.Status Code !=
"COMPLETED") AND (Performance Goals.Task Created Flag != "Y") AND (Performance Goals.Task Deleted Flag != "Y")
AND (Performance Goals.Task Updated Flag != "Y")) OR (Performance Goals.Private Flag == "Y")))

You might also like