Dec 10, 2015

Add new application status and customize emails in EBS iRecruitment



This post will walks you through the detailed steps involved, in adding a new application status and customize the email subject/body for the new status in Oracle E-Business Suite iRecruitment application. I can’t find much documentation on this topic, so decided to write a post. :)

Before we start, here is a quick introduction about how workflow and AME work together in EBS - Please ignore, if you already know. :-)

In EBS, Workflow is tightly integrated with Approval Management Engine (AME) and is very useful to meet the Enterprise business process customizations, without modifying the code. For example, business requirements like manager’s approval for employee accruals, timecard approval by timekeepers/Managers, new hire multi-level approvals, expense approvals by finance team etc.., can be easily implemented using AME. Workflow process may make calls to AME APIs to get the approvers/actions based on transaction values at runtime. Am i sounding too techie and confusing here. :-)

iRecruitment hiring process is also designed using the mix of workflow and AME. Luckily, the email subject/body are also configured in AME by Oracle. Most of the times, subject/body are coded in workflow as hardcoded strings or FND messages. Luckily, they are configured in AME, so, they can be changed dynamically based run-time conditions. You will see how.

Let’s assume, hiring managers need to add a new status to application “Suspended Temporarily”. They wanted to use this status, at times of temporary hiring freezes in the org during Audits. Hr also need to customize candidate email mentioning that application is being suspected. Here is the screenshot of customized email.



We will do this without much coding. Here are the detailed steps.


Step-1) In iRecruitment, candidate application is stored as an applicant assignment record in base table. So, to create new iRec message, create new assignment status and save it. Navigation, US Super HRMS Manager -> Work Structures -> Status (Form title - Define Assignment Statuses), Click New

Select the System Status as "Active Application" and Type as "Primary". That would automatically display this status on iRec application status LOV.




Step 2) Define the new email subject and email body as FND messages. Also run "Generate Messages"


Step3) AME Configuration Changes
Idea of these setup changes are to skip the seeded AME rule and configure new AME rule to pick up the FND messages we created in previous step.
Navigation, Login as SYSADMIN -> Approvals Management Business Analyst -> Search for Transaction Type "iRecruitment Notification Approvals" and click on Setup/Attributes

3a) Setup -> Attributes
First, create a new dynamic AME attribute to detect the application status, based on workflow transaction id.


Query:
SELECT CASE IRC_NOTIFICATION_WORKFLOW_PKG.getWFAttrValue (:transactionId, 'IRC_JOB_APPL_NEW_USER_STATUS')
        WHEN 'Suspended Temporarily' THEN 'SUSPENDED_TEMPORARILY'
        ELSE 'SEEDED' END appl_status
FROM DUAL

3b) Setup -> Conditions
Next, create 2 new conditions, to detect the application status is seeded ot custom. These are used by AME rules in next steps.




3c) Setup -> Action Types
Next, create new production rule action types for workflow subject and body attributes. These rules are later included in AME rules. When the conditions are met, the name of FND message is passed to workflow attributes.




3d) AME Rules – changes to seeded rule
Edit the existing rule "Application Status Changed - Candidate Rule", click on "add condition" button and add the condition that detects the seeded application status. This step will help workflow not to fire duplicate emails for the new status. 
Notice the rules that are defined in Actions section. Similar rules should be added to new rule that we are creating in next step.


  
3e) AME Rules - create new rule
Last step, create a new AME rule with the details as in the screenshot below. Notice the new actions and change in condition when compared to seeded rule. This rule does all the trick. When the workflow process is fired and if it detects the new application status, the new subject and body fnd messages are picked up.



  
That ends our setups. Consider clearing application cache, if the changes are not reflected immediately.

Leave a comment below, if you find it useful.

Oct 16, 2015

Oracle EBS Browser Support Update 2015




Oracle has recently announced few interesting updates related EBS browser certification for self-service and Java native client support. It’s interesting because, from now on, all JRE 1.6, 1.7, and 1.8 update releases are automatically certified with EBS upon release.

Oracle said, “We test all new JRE releases in parallel with the JRE development process, so all new JRE releases are considered certified with the E-Business Suite on the same day that they're released by our Java team. You do not need to wait for a certification announcement before applying new JRE 6, 7, or 8 releases to your EBS users' desktops.Reference

This is a major relief for the organizations (especially to IT and business analyst Staff), helps increase the productivity because personal/non-work devices are now compatible to access and use EBS Self Service pages/Forms.

Browser: Internet Explorer

IE11 is now officially certified browser for Self Service pages and Native JRE client support for Windows Operating System both 32 bit and 64 bit versions.

Windows 7 and 8.1 desktops/laptops are now certified with JRE 1.6, 1.7 and 1.8 latest versions. (Notice windows 8 isn't a certified platform for EBS and IE11, only windows 8.1 is). Windows 10 is certified only with JRE 1.7 and 1.8 versions. 

That would mean windows users are not always forced to upgrade their machines to J2SE 1.8 version always and upgrading to latest update on respective JRE versions should be enough (For example JRE 1.7u85). 
If you are wondering, all these are terms mean the same: "J2SE", "Java2 Standard Edition Java Runtime Engine" or "JRE".

You might have to add your domain to compatibility view settings to open the forms for the first time. See the screenshot of enabling compatibility view, first time while opening the forms.



Browser: Google Chrome

From September 2015 (Chrome 45 update), Chrome removed the override and NPAPI support permanently. Installed extensions that require NPAPI plugins will no longer be able to load those plugins. So, EBS Forms will no longer works in Chrome. HTML/OA framework pages are still supported.

Browser: Firefox

This is my favorite browser for EBS development. Mozilla Firefox ESR 38+ versions are fully supported and work great for both oracle forms/Self Service pages.

Browser: Microsoft Edge

Microsoft Edge doesn't support Java yet, so running Java based content like Oracle forms isn’t supported. Oracle is in the process of certifying HTML/OA Framework pages for R12.x versions only. R11i OAF Self service pages are not certified to work with Edge browser. There are many known limitations with Edge browser as of now, for example: Self-service pages won’t work on VPN networks because of secure IP Bind restrictions.


Well, it’s obvious, all of this require server side patches, needed latest FWK release.
For 12.1.x code line it is Patch 21565052:R12.FWK.B which does the magic.


Find out more about the patches at
Recommended Browsers for Oracle E-Business Suite Release 12 (Doc ID 389422.1)



Jul 13, 2015

OAF Page Personalizations - read only issue


OAF personalizations are used declaratively, to tailor the user interface look and feel, layout and visibility of page content to suite a business need or user preferences.

It’s frustrating sometimes, to deal with context specific issues with page personalizations. For example, not all field properties are allowed to personalize in all the contexts. This article describes one such issues of page personalizations become read-only and how to change it back to normal mode.





Have you also witnessed any such case? Page personalizations become read-only, when trying to edit. Above screenshot shows the personalize page for employee self service -> personal information self service page. Notice that, none of the page options are allowed to change and because of this issue none of existing personalizations take effect.

Well, the problem is because of the following option that is enabled in the XML MDS document of the page definition. Export page definition or XMLExporter command to see the page XML definition.



developerMode="true" - One of the reasons for this string could be because of the profile option FND_PERSONALIZATION_SEEDING_MODE is set to Yes, last time when it was personalized.

Now we know where the problem is, solving it is piece of cake. :-) Export the page definition using functional administrator, edit the XML to remove this string and import it back. Needless to say, while importing back the modified XML, make sure to set the profile option FND_PERSONALIZATION_SEEDING_MODE is set to No.

Following screenshots show how the page XML looks like after editing and page becomes editable after import.






Reference



If you find this article useful, please leave a comment below.

Jun 24, 2015

OAF Personalization - Changing Prompt Style for messageChoice Item



If you reached this article via search engine, most likely you are as much frustrated as I am right now. OAF pages are highly customizable via personalizations but sometimes its very difficult to do simple things.

Changing Prompt formatting style for few items like messageStyledText, messageChoice etc.. isn’t straight forward as it appears. BLAFguidelines offer no direct CSS class that can do this. CSS class formatting for such items are applied only to data portion and not to prompt.

This is how it looks like, when a CSS class is selected for a message choice item. Notice the Prompt is plain text and values are in bold here.


 If your requirement is also to change the prompt style to bold, then try this workaround. Idea is to divide the message choice text into two separate items (Prompt and Data) and include them in rowLayout to bind them together. Item1 - Formatted Text (displays Prompt) and Item2 - messageChoice item (no Prompt and displays only Values). Following snapshot shows how the items look like in JDeveloper. Notice the bold style Prompt after these changes.


Hope you find it useful too. Do you have any other workarounds in mind, please leave a comment below.

Thanks for reading this article.

  

Mar 3, 2015

Oracle EBS Alert - Define a Summary Alert


Traditionally, Oracle Alerts are used to deliver key information from EBS, in the format of your choice.
There are many different options in defining an alert to meet a business need.
One such option is to create alerts with "Summary Actions". This option is useful to consolidate and 
distribute the data to few groups instead of entire population like people managers, business heads or administrators.

In this article, I will discuss the steps involved in defining a Summary Alert.
Want to read more about Oracle Alert basics? Read my older article to know more.

Let's assume a business need of informing work managers every day about the team birthdays.
Firing one email for each team member birthday won't make sense for larger teams. 
Sending them one summary email would be neat and clean.

Step-1) First step, obviously, to create a periodic alert, which runs on every calendar day.
Here is the SQL to get the list of all employee birthdays and their managers (who are configured as managers in EBS).

SELECT EMP.global_name employee_name, 
        EMP.date_of_birth employee_dob, 
      EMP.email_address employee_email, 
      MGR.global_name manager_name, 
        MGR.email_address manager_email
FROM APPS.per_all_people_f EMP, 
    APPS.per_all_assignments_f ASG, 
    APPS.per_all_people_f MGR
WHERE trunc(sysdate) between EMP.effective_start_date and EMP.effective_end_date
AND to_char(to_date(EMP.date_of_birth),'dd') = to_char(to_date(sysdate),'dd')
AND to_char(to_date(EMP.date_of_birth),'mm') = to_char(to_date(sysdate),'mm')
AND ASG.person_id = EMP.person_id
AND trunc(sysdate) between ASG.effective_start_date and ASG.effective_end_date
AND ASG.primary_flag = 'Y'
AND ASG.assignment_type='E'
AND MGR.person_id = ASG.supervisor_id
AND ASG.supervisor_id IS NOT NULL
AND trunc(sysdate) between MGR.effective_start_date and MGR.effective_end_date;

Defining an alert with the above SQL. Note the INTO clause: it is added to capture the column data into alert variables (alert variables start with "&" sign).



Syntax for SQL can be checked by clicking on "Verify" button. 
And the number of exceptions can be tested, by clicking on 'Run' button. 
"Exceptions" -> mean the number of matching rows

By the way, did you notice the "Keep - 7 days" option in the above screenshot?
This option keeps the alert execution history for a week in the system without purging.

Step-2) Defining a Summary Action



Message Full Text:

Dear &manager_name,

Here is the list of team members celebrating 
birthdays today (&employee_dob)

   Employee              Email
   --------              ---------
=**= Enter summary template below this line =**=
** &employee_name         &employee_email
=**= Enter summary template above this line =**=

Regards
HR

Notice the use of static text as highlighted in the above message. 
This does the trick of grouping all the employees, who report to a manager.
Oracle Alert automatically group the rows (exceptions) by the alert variables mentioned outside the static text.
Alert variables mentioned inside the static text are added for each unique combination of outside variables.

In our business case, Alert engine prepares one distinct message, for each work manager and with the list of employee birthdays included.

Step-3) Almost done.... last step is to attach the action that was defined in Step-2, to an action set.




Notice, "Suppress Duplicates" option on Action Sets screen is also selected, to help avoiding multiple emails, if any. (For extra caution to avoid duplicate emails to managers)


Here is the screenshot of sample email fired by this summary alert.




Hope you find this article useful. 
Please leave your comments/feedback below.

Reference
R12 Oracle Alert - User Guide