How You Set Up Approval Groups and Approval Task Configuration Rules

Here's how you set up or define approval groups and approval task configuration rules for contracts:

  1. Sign in as a setup user.
  2. In Setup and Maintenance go to:

    • Offerings: Sales

    • Functional Area: Sales Foundation

    • Task: Manage Approval Groups

  3. On the Manage Approvals page, click the Approval Groups tab.

  4. In the Groups region, select the plus sign icon to begin creating a new approval group.

    1. Enter a name for the new group.

    2. Click Save.

  5. Add a member to the group. Click the Add Member icon to retrieve the Add to Group dialog window. In the search box, enter the email address of the user created earlier and click OK.

  6. Click Save.

  7. Repeat the previous steps to create an approval group that includes both level-one and level-two approvers.

  8. Click the Task Configuration tab.

  9. In the Tasks to be configured region, search for ContractsApproval.

  10. Click the ContractsApproval task to access a set of subtabs where you can set up rules for the approval task.

    For example, under Configuration, you can set the assignment and routing policy attributes to suit your business needs. If you want to let the initiator add ad hoc approvers and configure notifications as the approval progresses, select the Allow initiator to add participants option.

    As another configuration example, you can specify a variety of conditions, such as preventing a PDF from being attached to a notification or allowing an initiator to add participants.

  11. You can create rules to suit your business needs. Edit the ContractsApproval task.

  12. Click Rules

  13. Expand each rule.

  14. Click Edit to create rules for the ContractsApproval stage rule set.

  15. Delete all three rules.

  16. Create a new rule.

    Important: Create rule names without spaces between them.
  17. Enter the rule name. Click the arrow. Under the IF label, click the list icon next to the first field.

  18. As an example, in the Condition Browser, expand ContractsApprovalPayloadType, ContractDetails, result, and select the estimatedAmount payload attribute.

    Note: Set up this rule for contracts starting with zero dollars: ContactDetails.estimatedAmount is null or ContractDetails.estimatedAmount.value.doubleValue() is same or above 0.00.

    Here's another example with contract_type_id, organization_id, amount null, and agreed amount 0 or agreed amount smaller than 2000 dollars:

    IF ContractDetails.org_id is {org_id} and ContractDetails.contractTypeId in {contract_type_id} and (contractdetails.agreedAmount is null or(contractdetails.agreedAmount isn't null and contractdetails.agreedAmount.doubleValue()same or less than 2000))
  19. Select 'isn't' from the operator drop-down list, and select null as the comparison value of the IF condition.

  20. Click the down arrow in IF condition and select simple test to add a new IF condition.

  21. In the IF condition of ContractApproval, use the following condition to setup contract approval based on Contract Intent:
    • For Buy Intent: ContractDetails.buyOrSell is "B"
    • For Sell Intent: ContractDetails.buyOrSell is "S"
  22. Select the comparison field of the new IF condition from the condition browser.

  23. Similarly add another IF condition as follows: select estimatedAmount for the comparison field, select same or less than as the operator, and select a value such as 30000 as the comparison value.

  24. Select Approval Group from the List Builder drop-down list under THEN, and click Create Action to create the List builder action 1 region.

  25. Select level 1 approver and enter the required information for the List builder action 1 region.

  26. Click + next to Estimate_Amount_Rule1 to create a second rule, give it a name such as Estimate_Amount_Rule2, and expand it.

  27. Create a second rule to route to higher level approvers for higher contract amounts.

  28. Create a third rule such that, if contract estimated amount isn't entered, it's routed to level 1 approver.

  29. Click the Save button and then the Commit task button to commit the rules to the database. Expand all the rules.

    Note that you could also add rules based on:

    • Policy deviations (ContractsApprovalPayloadType.policyDeviation = Y or N)

    • Terms amended rule (ContractsApprovalPayloadType.termsAmended = Y or N)

    • Nonstandard clauses added (ContractsApprovalPayloadType.nonStdClause = Y or N)

    • Missing (deleted) standard clauses (ContractsApprovalPayloadType.missingStdClause = Y or N)

    • Standard clause (not on the terms template) added (ContractsApprovalPayloadType.stdClauseAdded = Y or N)

    • Clause deviation category codes (TermsDeviations.deviationCategory = "<<Code>>")

    • Deviation codes (TermsDeviations.deviationCode = "<<Code>>")

    Add steps to define such approval rules, referring to this table:

    Clause Deviation Category Code

    Clause Deviation Code

    Description

    OKC_NON_STD_ARTICLES

    NA

    A nonstandard clause exists on the contract.

    OKC_NON_STD_ARTICLES

    ADDED_NON_STD

    A new nonstandard clause was added.

    OKC_NON_STD_ARTICLES

    MODIFIED_STD

    A standard clause was modified and made nonstandard.

    OKC_MISSING_STD_ARTICLES

    NA

    A standard clause from the terms template was deleted from the contract.

    OKC_MISSING_STD_ARTICLES

    MISSING_MANDATORY

    A mandatory clause is missing.

    OKC_MISSING_STD_ARTICLES

    MISSING_EXPERT_ARTICLE

    A conditional clause based on an expert rule is missing.

    OKC_MISSING_STD_ARTICLES

    MISSING_OPTIONAL_ARTICLE

    An optional clause is missing.

    OKC_INVALID ARTICLES

    NA

    An invalid clause exists on the contract.

    OKC_INVALID ARTICLES

    ARTICLE_EXPIRED

    The clause is expired.

    OKC_INVALID ARTICLES

    ARTICLE_ON_HOLD

    The clause is on hold.

    OKC_INVALID ARTICLES

    EXPERT_ARTICLE_NOT_REQUIRED

    The rule conditions no longer apply for a clause added by Contract Expert.

    OKC_STD_ARTICLES_ADDED

    NA

    A standard clause was added.

    OKC_STD_ARTICLES_ADDED

    ADDED_STD_ARTICLE

    A standard clause from the library was added.

    OKC_STD_ARTICLES_ADDED

    REPLACED_ALT

    A standard clause was replaced with an alternate clause.

  30. Alternatively, to bypass the approval hierarchy and have automatic approval, create only the following rule.

    Edit IF condition to 1 is 1
    Under Then block Choose
    List builder : Supervisory Response type: Required Number of levels: 1 Starting Participant: HierarchyBuilder.getPrincipal("<User Id>",-1,null,null) Top Participant: HierarchyBuilder.getPrincipal("<User Id>",-1,null,null)
    Auto action enabled: True Auto Action: "APPROVE"
    Save and commit.
  31. Click the Approval Group tab to create an approval group for Clause Approval.

  32. Click the Task Configuration tab to create rules for clause approval human task. Click the human task ContractClauseApproval and then click the Rules subtab.

  33. Click the Approval Group tab to create an approval group for Template Approval.

  34. Click the Task Configuration tab to create rules for Contracts Template Approval human task, click the TemplateApprovalHumanTask human task, and then click the Rules subtab.

  35. Repeat the rule creation steps described for contract approvals.

Note: To create a dynamic list of approvers, you can create a dynamic approval group based on a Java class file. The Java class can refer to approval task payload parameters, for example, contract identifier.