Tuesday, December 26, 2006

AME - Approvals Made Easy

One of my most interesting module that I have implemented in the recent past is AME. Its a small module but extremely powerful. It simplifies the approval process for self service based transactions. When AME is enabled SSHR uses it to route the transactions untill no approvers are found. In this note I will try to explain AME the way I think it works

AME setup comprises of 4 components called atributes, conditions, actions and rules. You setup attributes, conditions, actions and tie them together using a rule. Actually speaking, the setup is nothing but a mathematical equation, which can be expressed as

When attribute A has a value B then the approver should be C
........... --------------
............ Attribute
........... ------------------------.......................... ---------------------------
....................Condition...............................................Action
...........-----------------------------------------------------------------------
........................................................ Rule

This various componets of the equation are

  • Attributes: A is a property of the transaction that dictates how AME should behave e.g. name of the workflow process involved
  • Condition: When attribute A has a value B. e.g. When the workflow process name is HR_NEW_HIRE_PRC_JSP
  • Action: Approver should be C. This identifies who should perform the action. e.g. The approver should be person's supervisor
  • Rule: Conditions and Actions are tied together in a rule that is evaluated by AME. When all the conditions defined in a rule are met then AME notifies every person in the Action list before the transaction is approved.

When AME is invoked it evaluates all the rules that are defined for the product. It then combine the result (approver set) of all the rules and builds the final list of approvers.

So you can see that AME is very easy to setup. It simple maths.. Happy implementation

Tuesday, December 05, 2006

How to setup Interim Coverage (Coverage Restriction)

Requirement:
You want to restirct a participant's coverage, in an insurance plan, that can be selected without a certificate. Untill the person provides the certificate you want him/herto receive a restricted coverage (interim).

Navigation:
Plan Enrollment Requirements > General > Plan > Coverage > Coverage Restrictions

Setup:

1. Set the Restrict Change Based On to

  • Benefit Restrictions Applies: If the interim is to be setup based on the coverage amount selected
  • Option Restrictions Applies: If the interim si to be setup based on the option included in the plan (e.g. cases where coverage is setup as multiple of salary)

2. Set the Change Restrictions to NULL

3. Define the Values based on which the restriction are to be imposed
  • No Min check box: Select if there is no minimum for the plan
  • Min: Select if you have not selected the no min check box. Enter the min coverage amount that should always be selected
  • Min Rule: If the min amount is determined dynamically enter the name of the rule that returns the min amount
  • No Max check box: Select if there is no maximum for the plan (very unlikely)
  • Max: If you have not selected the No Max check box, enter the max coverage amount that can be selected (without certificate)
  • Max Rule: If the max amount is determined dynamically enter the name of the rule that returns the max amount
  • Max with Certifications: Enter the max amount that a person can ever select with a certificate.

4. Enter the details in the Interim region

  • Assign Code: Controls the interim coverage that is assigned, when a person elects an amount that is more than the max amount defined in step 3.e/3.f. There are various codes available that help's in handling situations where a person is already enrolled in the plan and is increasing coverage or when a person is newly electing the benefits. E.g: If the code selected was Current Same Option in Plan, Same; New, Default. For an existing participant the interim would be same as his previous enrollment. For a new participant the default option would be set as the interim
  • Unsuspend Code: Select the code that determines when coverage in the interim plan ends

5. Increases Region: Use only setting up Benefits Restrictions. Applies when an existing participant is increasing coverage

  • Max: Control the maximum increase a person can make on his existing coverage. Setting this to 0 would not allow a person to increase coverage
  • Max with Certification: Controls the max increase allowed with certification

6. Multiple Increases: Use only if you setting up Options Restrictions. Applies when an existing participant is increasing coverage

  • Max: Controls the maximum permitted option levels jump. Level are determined based on the seq in which options are entered in a plan
  • Max with Certification: Controls the max option level jump allowed with certification.

This setups can also be made specific to a life events by clicking on the life event button andentering the data on the form. This provides a finer control over interim coverages across life events.

Friday, November 10, 2006

Building Custom Processes in Self Service

In my current assignment, the client wanted a custom process to be available on SS menu that is not available in the product. This process required users to update the assignment status of the employee and enter other details in a SIT. However, as there is no seeded function that would allow users to perform these two transaction at one place. Users would have had to use one screen to enter the assignment details and switch to the SIT function to enter other details. But, they would have had to move from one process to another, which can be frustrating.

This can be easily be done using the Manage Employment Events functionality in SSHR. It lets you to tie together different assignment related events using a workflow process and build a custom process for use in SS. The events that can be tied together are Assignment, Location, Work Schedule, Change Manager, Employee or Contingent Worker Termination, Employee or Contingent Worker Pay, Individual Compensation Distributions, Special Information Types and Other Employment Information.

In order to build this process I built a new workflow process to tie the events. Once the workflow was ready, I defined the required functions and added them to the menu. To get a better understanding of the menu's refer to my previous post.

Friday, October 27, 2006

Convert Independent / Dependent Value Set to Translatable

Somteimes, the LOV's attached to your value set displays the code values instead of the meanings and this confuses users. One of the reason is that you have a Independent / Dependent Value Set when it should have been Translatable Independent / Dependent. This happens because the translatable value field on the flex field value window is disabled for non translatable type value sets and the translatable value field for all recors is set to same as the value field. This prevents users from entering the translatable value. In order to resolve this issue you can convert the independent / dependent value set to a translatable one, which would then allow you to edit the translatable value for the records. In order to do so run

1. $FND_TOP/sql/afffupg1.sql script
2. Select the option #8 'Convert an Independent/Dependent value set to a Translatable Independent/Dependent value set '.
3. Enter the name of the value set

Once the script has run you can go in and change the translatable values.

Monday, October 16, 2006

How to Define a Custom SSHR Menu Function

To include a new cutom SSHR menu option, use the following instructions.

1. Create the Custom Workflow as per the business process. Create a form function (copy a seeded ESS function) for ESS process. Make the following changes to the definition
a. Change parameter pProcessName so that it refers to the desire workflow process
b. Change parameter pCalledFrom so that it includes the internal name of the function being created
c. Change the value passed to OAFunc (HTML Call) to include the internal name of the function being created

2. Create a Form function for MSS based on any seeded MSS function. Change the value of the parameter pCalledFrom so that it refers to the internal name of the ESS function

3. Include the newly created ESS and MSS form functions in "Global Self Service Functions Custom" menu

4. Include the newly created ESS function in "Manager Actions Menu"

5. If the process is required in the ESS menu Include the newly created ESS form function in the Employee Self Service Menu

6. If the process is required in the MSS menu Include the newly created MSS form function in the Employee Self Service Menu

Please note that these steps are only relevant for SSHR. They may not work for other modules.

Understanding Self Service Menu Functions

In Self Service you define two menu function for accessing the same process from within ESS and MSS menus. The ESS function allows users to perform actions on the person assigned to the logged in user. Whereas the MSS equivalent of the function allows managers to perform actions on a people in their reporting hierarchy.

The ESS function includes information about the workflow, AME and other process related details. The workflow controls the sequence of screen available in the process and AME (if enabled) manages the Approval logic for the function.

The MSS function on itself only displays the Employee Hierarchy page. It needs to be associated to an ESS function, which controls the underlying process flow and approval management. It only includes a reference to the ESS function that controls the process.

All properties of the functions are controlled by the parameter values defined in the function definition. You can control the process by changing the value of any of the parameters. For e.g. if you want to change the underlying workflow for a process, simply change the value of parameter pProcessName in the ESS function definition to view the changes. Similarly, for a MSS function, changing the value of parameter pManagerEnabled to N would prevent manager to perform action on their own records. Every parameter has a specific role and its very intuitive to guess the utility of the parameter.

It took me a while to understand on how SSHR functions behave. These details should certainly help you to understand SSHR functions. I will later explain how you can define a custom process in SSHR and include it SSHR menus.
 
Technology Blogs - Blog Top Sites