Monday, December 30, 2013

Hijrah Calendar Support in Oracle E-Business Suite Release 12

This document describes Hijrah calendar support in Oracle E-Business Suite R12.

Contents

  • Scope of Support
  • Overview
  • Requirements
  • Installation
  • Deviation Days Setup
  • Known Issues

Scope of Support

The support for Hijrah calendars is limited to Forms-based user interfaces. Flexfields embedded in the Forms-based user interface, however, still use the Gregorian calendar. In subsequent E-Business Suite releases, Oracle may enable Hijrah calendar support in flexfields as well as products or components that are based on Oracle Application Framework or BI Publisher. Oracle does not have plans to enable Hijrah calendar support in other E-Business Suite components or technologies such as Oracle CRM Technology Foundation (JTF), WebADI, Oracle Discoverer, or Oracle Reports. Only Hijrah calendars (Arabic and English) are currently supported. In the subsequent E-Business Suite releases, support for additional calendars, such as Thai Buddhist, is planned. Product Specific Information Forms

Overview

ARU# 6193444 provides the necessary code to support the Hijrah calendar in EBS forms. The support includes a date picker showing the Hijrah calendarm and date type fields showing Hijrah dates.

Requirements

Make sure your system has the following code levels before applying the Hijrah calendar support patch:
  • R12.AD.A.delta.4
  • R12.ATG_PF.A.delta.4

In addition, Oracle Forms version must be upgraded to 10.1.2.2 first. Review Oracle MetaLink Note# 437878.1, then apply Forms one-off patch for bug 5843467. Client machine locale must be set to Arabic in order for Arabic text to be rendered correctly. Refer to MetaLink Note#393320.1 for how to set the locale with the Windows regional settings.

Installation

Apply ARU# 6193444 with adpatch. After patch application, all product Forms will need to be regenerated. Re-generate the FND message files as well. Bounce the oacore service after patch application. Enabling Hijrah Calendar Support: The following three profile options are added for non Gregorian calendar support:
  • FND: Calendar Week Start Day
  • FND: Forms User Calendar
  • FND: Tooltip Calendar
To enable the Arabic or English Hijrah calendar at runtime, set the FND: Forms User Calendar profile to the desired value. In addition, Hijrah calendar users might want to set the other two profile options. Here is the screen shot of the date picker with following profile values:
  • FND: Calendar Week Start Day = "Sat"
  • FND: Forms User Calendar = "English Hijrah"
  • FND: Tooltip Calendar = "Gregorian"
datepickerThe date picker will show the English Hijrah calendar, with the first day of the week as Saturday. If you place the mouse cursor over a date cell, the tooltip shows the corresponding Gregorian date. When you click on the expansion button at the right bottom corner of the date picker, the corresponding Gregorian calendar pane is displayed next to it. dualmode
datefield
Also, date type fields show the date in the calendar set to FND: Forms User Calendar. The user of the Hijrah Calendar MUST set "Date Format" preference to one with "MM". Refer to known issue #1 for more detail.

Deviation Days Setup

The setup for Hijrah calendar deviation days needs to be configured both on the database tier and on the Forms tier. Use the same deviation file. Refer to the following steps:
  1. Place deviation file under $ORACLE_HOME/nls on both forms middle tier and database tiers. (Refer to the example of nlt file at the bottom of this section.)
  2. run lxegen on each tier. e.g. % lxegen It generates lxecalah.nlb and lxecaleh.nlb under the same directory.
  3. Restart middle tier and database.
  4. Invoke the date picker and confirm the deviation. For instance, after the setup, Gregorian date 09/01/2008 is Hijrah 1/1/1429. Before, it was Hijrah 30/12/1428
      --- Sample of lxecal.nlt ---
     DEFINE calendar
    
             calendar_name              =       "Arabic Hijrah"
    
        DEFINE calendar_deviation
              deviation_data           = { 
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                }
        ENDDEFINE calendar_deviation
    
     ENDDEFINE calendar
    
            DEFINE calendar
    
             calendar_name              =       "English Hijrah"
    
               DEFINE calendar_deviation
              deviation_data           = {
                                    <"Jul-26-2006 ad">:1
                                    <"Nov-21-2006 ad">:11
                                    <"Apr-18-2007 ad">:1
                                    <"May-17-2007 ad">:11
                                    <"Jun-16-2007 ad">:1
                                    <"Jul-15-2007 ad">:11
                                    <"Aug-14-2007 ad">:1
                                    <"Sep-12-2007 ad">:11
                                    <"Oct-12-2007 ad">:1
                                    <"Nov-10-2007 ad">:11
                                    <"Jan-09-2008 ad">:1
                                            }
               ENDDEFINE calendar_deviation
    
            ENDDEFINE calendar
    
       --- end of sample of lxecal.nlt ---
    
    Note: this sample covers only recent years.
If you encounter a performance issue when bringing up the forms date picker with a big deviation file, apply patch for bug# 5604120 on 10.1.2 ORACLE_HOME. After applying the patch, make sure to relink forms and reports. Refer to post install steps in Note 437878.1.

Freeman-Grenville Hijrah Calendar Calculation Algorithm

A year has 12 months.
Over a cycle of 30 years there are 11 leap years.
There are 30 days in month number 1, 3, 5, 7, 9, and 11, and 29 days in month number 2, 4, 6, 8, 10, and 12.
In a leap year month 12 has 30 days.
In a 30 year cycle, year 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29 are leap years.
Total of 10631 days in a 30 years cycle.
The table shows the features described above.
# of month
Name of month
Number of days
1
Muharram
30
2
Safar
29
3
Rabi'al-Awwal
30
4
Rabi'ath-Thani
29
5
Jumada l-Ula
30
6
Jumada t-Tania
29
7
Rajab
30
8
Sha`ban
29
9
Ramadan
30
10
Shawwal
29
11
Dhu 'l-Qa`da
30
12
Dhu 'l-Hijja
29, but 30 days in years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, and 29
 The algorithm is taken from the book, The Muslim and Christian Calendars by G.S.P. Freeman-Grenville.
 

Known Issues

  • The "Date Format" preference for the Hijrah Calendar user MUST NOT include "MMM", the translated SHORT month name. For instance, go to "Preference". Make sure the "Date Format" value does NOT have "MMM". Or, search for the "ICX: Date format mask" option with "System Administrator" > Profile > System. Set the format with all numbers, not the translated short month name. This is because some of the short month names are the same. Also, they might be meaninglessly truncated.
  • Hijrah and Thai calendars are only supported for Date Type fields. Character (text) Type fields show Gregorian dates. Similarly, dates embedded in error, informative, alert messages, or title bar may show up in Gregorian irrespective of the user preferred calendar.
  • Flexfields embedded in the Forms-based user interface show Gregorian date.
  • Oracle Foms UI embedded Beans Areas such as timeline of MRMS Maintain Contingent Workers or Scheduler Workbench of EAM always show Gregorian dates.
  • Seeded data for "term" is Gregorian base. e.g. "Jan-00"
  • Dates prior to July 16th, 622 AD are not supported in Hijrah calendar.
  • While generating all the forms after applied ARU#6193444, one CSI Form gives error: following Oracle Forms objects did not generate successfully: csi forms/XX CSIIRTYP.fmx (XX is the oracle language code you’re generating.) bug#5863264 is tracking this issue, and it is planned to be resolved in the future. The workaround is to set the width and height property to 5 on the calendar canvas of $AU_TOP/forms/XX/CSIIRTYP.fmb. And re-generate it.

1 comment:

  1. This comment has been removed by a blog administrator.

    ReplyDelete