Data Item Class JDEUTIME

advertisement
Title: Data Item Class JDEUTIME
Abstract: This document provides an overview of a date/time data item class, new with
PeopleSoft EnterpriseOne 8.9. This data type has both a date and time component and
performs all date and time calculations in Coordinated Universal Time.
Table of Contents
1. Overview of Issue
2. Solution
3. Formatting and Display Characteristics
4. New APIs and Event Rule Functions Associated with Universal Time
Overview of Issue
Prior to PeopleSoft EnterpriseOne 8.9, the software presumed that all users of a
system were located in the same time zone. While this is not a problem for localized
enterprises dealing with only one time zone, it becomes a significant issue for
enterprises whose business processes span several time zones, particularly when the
duration of these processes is relatively short. Time zone variations make
timestamps inaccurate, and the potential errors caused by these variations can make
the calculated and reported dates in applications almost meaningless. In the current
e-business environment, where multi-zone, short duration business processes are
typical, finding a solution to this problem is critical.
In order to provide some clarity, lets look at a real example. For this example lets have
the enterprise server in Denver (GMT -7) and a user located in Sydney, Australia (GMT
+10). There is a 17-hour difference between these two locations. This 17-hour difference
means that Denver and Sydney share the same date for only a 6-hour period of time. If
the user in Sydney enters a new Sales Order in P4210 on October 13, 2003 at 11:00AM,
this corresponds to October 12, 2003 at 6:00PM in Denver. If the Denver office then
runs a Sales Order Update at 10:00PM on October 12, to update all the sales order for
that day, it will miss the Sydney order as its date stamp (October 13) is in the
future. This means that this sales order would not be updated until the next day in
Denver. If you reverse the enterprise server and the user, then we have the possibility of
this sales order never getting updated at all by the Sales Order Update process.
Lets look at one more Sales Order Entry example where time would be important with
respect to a date. In this example a user is taking a sales order in Denver for a Customer
in Australia. As part of this process we need to calculate when the package will arrive at
the customer site. The order is placed on 10/13/03 at 5:00 PM in Denver, which for the
Australian customer is 10/14/03 at 10:00 AM. Lets assume that we know this package
will be picked up, by the delivery service in Denver, on the morning of 10/14/03 at 9:00
AM, and that delivery will take three working days. If we are cognizant of time zone
information, we will correctly calculate the delivery date as 10/18/03. Without time zone
information, the customer would be expecting the package on 10/17/03.
These examples highlight the need for applications to be aware of time information when
working with dates. This awareness of time is more important for calculating dates, than
it is for knowing an exact time. However, time information becomes extremely
important when creating audit information. In a global enterprise, the ordering of
transactions based on audit information is critical. In order for the audit information to be
useful it must be stored with finer resolution than just date. This is why exact times must
be used, but for this time to be useful it must be relative to a single reference point. This
is exactly what Universal Time was designed for. All times are relative to a single
reference point, thus eliminating any confusion resulting from different time zones.
Back to Top
Solution
A new data type, JDEUTIME, has been created. This data type has both a date and time
component. This new data type stores all dates/times, and performs all date/time
calculations, in Coordinated Universal Time (UTC). When a user runs an application,
and enters a date/time, it will internally be converted to UTC and stored in the database
as UTC. When another user then inquires on this date, it will be fetched from the
database and then converted to the user’s local time based upon the user’s personal
profile, or to a UTC offset specified by the application (e.g. the customer’s time zone, or
a business unit’s time zone) before being displayed. This conversion will be transparent
to both the application and the user.
Coordinated Universal Time (UTC) is in essence the new name for Greenwich Mean
Time (GMT), which is based upon the time at the zero degree meridian that crosses
through Greenwich, England. UTC is a worldwide standard consisting of 24 time zones
starting at UTC -0, which passes through the zero degree meridian. UTC time zones
decrease from UTC -1 to UTC -12 heading west, and increase from UTC +1 to UTC +12
heading east. The United States time zones range from UTC –5 (Eastern Standard Time)
to UTC – 8 (Pacific Standard Time).
There aren’t any standard data items in class JDEUTIME that are used in any
standard reports or applications with PeopleSoft EnterpriseOne 8.9, but the data
item is available for use in custom or modified objects. Use data items in this class
like any other data dictionary item is used.
Back to Top
Formatting and Display Characteristics











JDEUTIME stores a date and time with accuracy to the second.
The date/time will always be stored and manipulated at UTC –0:00.
A user’s time zone and time format are set up in their user profile.
If no time is entered, 00:00:00 is assumed.
If no time zone is entered, then the user’s time zone is used.
When JDEUTIME is displayed, it will be shifted to a given UTC offset.
A JDEUTIME string will have the following format: DATE TIME OFFSET è
1/1/2003 12:00:00 AM (UTC –7:00)
DATE can have any of the current JDEDATE formats.
TIME can be in 12-hour format as shown above, or if there is no AM or PM, 24hour format is assumed.
TIME can be entered with or without seconds, but will always be displayed with
seconds.
OFFSET can be between -12:00 and +12:00, in 15-minute intervals.
Back to Top
New APIs and Event Rule Functions Associated with Universal Time
APIs
JDEUTIME can only be manipulated by using the associated APIs. APIs exist to:





Parse a JDEUTIME string
Format a JDEUTIME for display
Set a JDEUTIME
Get individual components of a JDEUTIME
Perform JDEUTIME calculations, conversions, and comparisons
Event Rule Functions
There are new event rule functions available within the Expression Manager in event
rules that were designed for use with the JDEUTIME data item. Some of these functions
are listed below.
utc_get_cur_time( )
Returns a JDEUTIME set to the current time
utc_get_year(utime, time zone)
Returns the year of the passed in JDEUTIME in the given time zone
If a NULL time zone is passed in then the current display time zone is
used, if there is no display time zone, then the user's time zone
is used.
utc_add_years(utime, amount)
Returns a JDEUTIME with the given number of years added to the
passed in JDEUTIME
utc_days_between(utime, utime)
Returns the number of days between two JDEUTIMEs
utc_last_day(utime, time zone)
Returns a JDEUTIME set to the last day of the month of the passed in
JDEUTIME, but displayed in the passed in time zone
change_disp_tz(utime, time zone)
Returns a JDEUTIME set to the same time as the passed in
JDEUTIME, but displayed in the passed in time zone
get_users_tz( )
Returns a string representing the time zone that the user has set up in
their user profile
Back to Top
Download