OTL Mobile App PDF
OTL Mobile App PDF
OTL Mobile App PDF
An Oracle Whitepaper
Oracle Mobile Timecards for Oracle E-Business Suite™: White Paper 2
Contributors:
Ashok Rajagopal
Praveen Kumar
Anima Prasad
Change History:
Acronyms Used:
Usage Meaning
OTL Oracle Time and Labor
Timecards App Oracle Mobile Timecards for Oracle E-Business
Suite™
SSWA Self Service Web Applications
LOV List of Values
OTLR Oracle Time and Labor Rules Engine
Contents
SSWA time entry VS Smartphone Time entry .................................................................................... 4
Smartphone Time entry...................................................................................................................... 4
Time entry using Smartphone App ................................................................................................. 8
Time Entry Implementation ........................................................................................................... 8
Non SSWA time entry and Timecards App ..................................................................................... 9
Using Timecards App ........................................................................................................................ 10
Administrators .............................................................................................................................. 10
Mobile Framework Configuration: ............................................................................................... 10
OTL Setup/Configuration: ............................................................................................................. 11
Users ............................................................................................................................................. 12
Configuring Timecards App .............................................................................................................. 13
Layout Components – Limitations and Restrictions ......................................................................... 15
Features in SSWA not available in Timecards App ........................................................................... 17
Features not supported in Timecards App ....................................................................................... 18
Features with limitations .................................................................................................................. 19
Seeded Layouts ready for use in Timecards App.............................................................................. 20
Using a custom Responsibility with Timecards App ......................................................................... 20
Using a Custom Menu with Timecards App ..................................................................................... 20
Using a configured layout with Timecards App ................................................................................ 21
Creating Value Sets for View Objects ............................................................................................... 21
Creating Value Sets for Hidden Attributes ....................................................................................... 26
Dependent LOVs ............................................................................................................................... 34
Method 1: Using Layout LDT files. ................................................................................................ 34
Method 2: ..................................................................................................................................... 36
Running OTL: Upgrade Layouts for Mobile Time Entry .................................................................... 45
Trouble Shooting .............................................................................................................................. 48
Mobile Foundation: ...................................................................................................................... 48
Timecards: .................................................................................................................................... 49
Time entry in the Smartphone App however has to make use of limited space on screen with maximum
usability. Consequently the time entry mode in Timecards App is designed to make use of a day level
time entry with means to navigate to next and previous days within the timecard period. While
editing/viewing/creating a timecard above requires user to go to Recent Timecards-> Create/update in
SSWA, the same action happens the following way in Timecards App.
Pic 1: You can use the same login Pic 2: You can use the same Pic 3: Just like the way a
credentials that you use to login responsibility that you use to responsibility and functions are
to use the SSWA Timecard to enter/update the SSWA displayed in SSWA, Timecards
login to the Timecards app. Timecards in the Timecards app. app has a Springboard with all
the time entry related features
Pic 4: Similar to the Recent Pic 5: Time entry page displays Pic 6: Time entry page displays
Timecards page on SSWA, Time the same number of Timecard the same number of Timecard
Entry page on Timecards app Attributes as per the SSWA Attributes as per the SSWA
lists all details for the selected Timecard entry layout. Timecard entry layout.
date.
Sample of Seeded Payroll Sample of Seeded Projects
Selecting a date and tapping on Timecard layout on Timecards Timecard layout on Timecards
the Create button displays the app. app.
Time Entry page
Pic 7: Tapping on Submit Time Pic 8: Just like Clicking on Details Pic 9: Just like the way, Time
on the Springboard displays the icon on the SSWA Recent entry rule error messages are
list of all Timecards which need Timecards page, Tapping on the displayed when Timecard is
to be submitted for further Timecard period on Submit Time submitted in SSWA, Timecards
processing. page on Timecards app displays mobile app also displays the
Timecards in Error status are the day wise summary of all errors messages as part of
displayed with a Error Icon Time entries and the status of Timecards submission process.
the Timecards in the header
region. You also have the option to edit
You can Submit the Timecard by the time entires from Time
tapping on the Submit button on Details page.
top right corner.
Pic 10: Tapping on View Time on Pic 11: Similar to the concept of Pic 12: Clicking on the Action
the Springboard displays the list Templates in SSWA Timecard, button on the Footer displays
of all timecard for the current there is an option of Quick Entry the other options to quickly
month which have been which defaults either the Last enter the time.
submitted and the latest status Saved Entry or the your You can enable the Default Quick
of that timecard. Favourite time entry for today Time by using Settings page.
With the multiple flavors of time entry available in OTL with flexible options, the primary objective
of the design of the Timecards App time entry mode is to ensure that basic functionality of time entry
and configurations are made available to the smartphone devices with best performance and easiest
configuration options. Timecards App time entry follows the Self Service timecard layout concepts as
the foundation to build on. The following salient features may be noted.
OTL Self Service time entry uses the concept of Self Service Timecard Layouts which are packaged in
LDT files. Each of the LDT files defines an array of layout components, the definition of which is
available for further configuration. Self Service Timecard Layouts use View Objects for various Layout
Attributes to search for, select and display Timecard attributes. To aid ease of configuration, upgrade
and optimum performance, Timecards App uses Value Sets in place of View Objects for Layout
Attributes to search for, select and display Timecard Attributes. Consequently all self service layouts
require an upgrade path to enable them for Time entry using Timecards App. This is detailed in the later
sections.
The following table shows the basic differences between SSWA based time entry and Timecards App
based time entry
Table 1
SSWA Timecards App
Follows matrix layout where timecards are created/edited Follows a detail layout where time entries are created/edited
as a whole detail by detail
Requires one Save per timecard after editing one or more Requires one Save(to Draft status) per time entry.
details
Layout attributes are primarily based on View Objects Layout Attributes are primarily based on Value Sets
Allows extensive configuration by multiple permutations of Configuration limited to Layout attributes definition and order.
LDT file definitions
No Draft status Saved time entries move into Draft Status timecards
Periods available for edit dependent upon Self Service Maximum 3 months periods available for edit. Self Service
status that allows Edits status that allows Edits may be used to further limit time entries.
Does not allow edit of timecards in Error Status Allows edit of timecards in Error status.
LOV components are allowed to have multiple columns for LOV components are allowed to have a Single column to select
additional information with no additional columns shown. However, a concatenated
list of columns may be configured.
No restriction on number of layout attributes available on Number of layout attributes allowed is limited to 7
Self Service layout
• Timecards App requires a Self Service layout attached to the employee for functioning.
• It may be possible for Administrators to attach Self service layouts to employees in preferences,
though SSWA is not used by employees. Timecards App may be usable in this case, but with
respect to the following point.
• In cases where Self Service layout and TK layout are not equivalent to each other, Timecards
App time entry bases itself on Self Service layout. Eg. If Self Service layout uses seeded Payroll
layout (with Hours type and Cost centre), while timekeeper uses a layout with Hours Type, Cost
Centre and Activity Type, Timecards App follows the attributes from Self Service layout.
• In direct consequence to the above factor, a layout attribute configured in Timekeeper only
would not be available for use in Timecards App.
Administrators
Administrators need to perform the following steps to make Timecards App available for users.
The following MOS note can be accessed to get more details on the Mobile Framework Configuration
steps: Oracle E-Business Suite Mobile Apps Administrator's Guide for Release 12.1 and Release 12.2 (Doc
ID 1642431.1)
• On an instance where mobile framework patches are installed, Login as SYSADMIN user and
navigate to Mobile Framework responsibility.
• Enter Time and Labor Engine in the Parent Application Field and search.
• Change the Status to Enabled, and click on the “Save and Generate Files” button.
• To confirm if the configuration service has been successfully enabled, try this url
http(s):<<your_host>>:<<port>>/OA_HTML/config/com.oracle.ebs.hr.hxc.Timecards/connection
s.xml
• This URL should display the connections.xml file. If the configuration service is not enabled
properly then a corresponding error is thrown.
OTL Setup/Configuration:
• The initial version of Timecards App has limited support; Adjust OTL preferences to turn off
features which are not required for mobile use.
• Set Self Service Timecard Layouts to one that is already supported (see Table 3) or follow steps
mentioned in this document to upgrade the Layouts used.
• Add Role “Mobile Time Entry” to the responsibility used by the users. 1 Refer Using a custom
Responsibility with Timecards App for more details.
• Add Menu “Mobile Time Entry” as a submenu to the menu used for Time entry. 2
1
This step may be skipped for seeded OTL self service responsibilities. This is a mandatory step for all custom
Responsibilities used to enter Time in SSWA.
2
This step may be skipped for seeded OTL Menus. This is a mandatory step for all custom menus.
Users
To use Timecards App, users may need the following information.
• Username/Password to log into Oracle E-Business Suite instance.
• Oracle E-Business Suite Server URL in the following format :
ht t p( s) : / / <host name>: <por t >/ OA_HTML/ conf i g
To start using Timecards App, a user must need to follow the steps below.
• Download and install the App from authorized location.
• In the one-time configuration screen, key in username, password and the configuration service
URL.
• After above configuration completes key in username and password in the Login page to
authenticate the session.
• In the Responsibilities page, choose the appropriate responsibility to use Timecards App.
ProjectLOVVO ExpenditureType2LOVVO
TaskLOVVO
The above screenshot shows Seeded Projects Layout. There are 3 layout attributes in the layout,
Project, Task and Type. Each of these attributes are based on a View Object, shown in the picture. The
respective View Objects are used to display the List of valid Values to select by the user and to translate
already selected values.
The same timecard, for the same user looks like below in Timecards App.
ProjectLOVVO_VS
TaskLOVVO_VS
ExpenditureType2LOVVO_VS
Each layout attribute in the Timecards App is based on a Value set for displaying List of Valid Values, and
Translation of already stored attributes. These value sets are built based on the existing View Objects
and are available out of the box for seeded layouts listed below.
The following pages describe how a Self Service timecard layout is upgraded for usage in Timecards App.
For some seeded layouts this is already taken care of out of the box, while for some this may be covered
in future releases. Refer Table 3 for the list of Self Service Layouts upgraded out of the box.
For all configured layouts, the detailed steps may be executed to enabled time entry using Timecards
App.
List of Values
The following LOVs are supported
• Seeded LOVs for the layouts listed in Table 3.
• Configured LOVs based on CustomXVOs, in turn based on HXC_CUI_CUSTOMX_V, listed in
section LOV Custom Objects in Timecard Config UI WP. These layouts require running of OTL:
Upgrade layouts for Mobile time entry. Refer to page 45.
• Any custom LOV object that works on a Self Service timecard layout, that is not dependent on a
Hidden Field.
• Any custom LOV object that works on a Self Service timecard layout, that stores not more than 3
hidden attributes.
• Any custom LOV object that works on a Self Service timecard Layout which has not more than a
single component with Hidden attributes.
• Any custom LOV object that works on a Self Service timecard layout that uses the bind variables
limited to this list.
“ RESOURCE_I DENTI FI ER_I D, TI MECARD_BI ND_START_DATE, TI MECARD_BI ND
_END_DATE, ALI ASI D”
For all Layouts other than the Seeded Layouts listed in Table 3, running OTL: Upgrade Timecard Layouts
program is mandatory.
Choice Lists
The following Choice lists are supported.
• Seeded choice lists belonging to the layouts mentioned in Table 3.
• Any custom choice list based on CustomXVO, in turn based on HXC_CUI_CUSTOMX_V views.
• Any custom choice list that works on a Self Service Timecard Layout with not more than 3
hidden attributes, and a single component storing the hidden attributes.
• Any custom choice list that works on a Self Service timecard layout that uses the bind variables
limited to this list.
“ RESOURCE_I DENTI FI ER_I D, TI MECARD_BI ND_START_DATE, TI MECARD_BI ND_EN
D_DATE, ALI ASI D”
For all Layouts other than the Seeded Layouts listed in Table 3, running OTL: Upgrade Timecard Layouts
program is mandatory.
Text fields
Layouts holding Text Fields for Timecard Attributes are not allowed to be used in Timecards App
currently.
Descriptive Flexfields
Any descriptive flexfield based layout attribute is not supported in Timecards App. This is planned for a
future release.
Override/Default Approver
Facility to enter Override approver is not available in Timecards App. However, the timecards created in
devices may be edited in SSWA to key in Override approvers.
Additional Details
Self Service Layouts functionality of entering Additional details for Projects timecards, configured on PA
Expenditure Item DFF is not available currently in Timecards App.
Templates Functionality
Facility to create and use Templates is not supported in Timecards App. This is planned for a future
release
OTLR Engine
Timecards App allows time entry and edit for OTLR users. However, time explosion is not available for
users to see on Timecards App. For viewing explosion of time, the respective timecards have to be
submitted from smartphone devices and must be opened thru Recent Timecards page in SSWA.
Table 2
Application Set Layout Used Usage Note
Payroll Listed in Table 3 No Upgrade Required
Payroll and Human Resources Listed in Table 3 No Upgrade Required
Payroll Configured Layout Upgrade Required
Projects Listed in Table 3 No Upgrade Required
Projects Configured Layout Upgrade Required
Projects and Payroll Listed in Table 3 No Upgrade Required
Projects and Payroll Configured Layout Upgrade Required
Any application set mentioned above with Usage mentioned as Upgrade Required requires
Administrators to run OTL: Upgrade Timecard Layouts for Mobile Time Entry for each layout used. This
also means that such layouts may work only within the limitations mentioned in various sections in this
document. Any application set for which layouts do not follow the standards listed in this document
may not work seamlessly even after running OTL: Upgrade Timecard Layouts for Mobile Time entry.
Any application set which is not mentioned in the above Table, which may be a permutation of the
available time recipients for OTL, is not certified to work with Timecards App.
Table 3
LAYOUT_NAME DISPLAY_LAYOUT_NAME
PAYROLL-TIMECARD Payroll Timecard Layout
PROJECTS-TIMECARD Projects Timecard Layout
EXCEPTION-TIMECARD Exception Layout - Timecard Entry Page
PROJECTS-ALTERNATE-TIMECARD Projects and Payroll Timecard Layout
EXCPTO-TIMECARD Exception Layout with ACC BAL - Timecard Entry Page
US-EXCEPTION-TIMECARD US Exception Layout - Timecard Entry Page
US-PROJECTS-ALTERNATE-TIMECARD US Projects and Payroll Timecard Layout
PROJECTS-DETAILS-TIMECARD Projects Timecard Layout - With Project & Task details concatenated
PROJECTS-DET-ALT-TIMECARD Projects and Payroll Timecard Layout - With Project & Task details concatenated
US-PROJPAY-DET-TIMECARD US Projects and Payroll Timecard Layout - With Project & Task details concatenated
Alternatively you can run the below query to figure out the View objects attached to each of your layout
attributes.
s el ec t Component _name,
VO_NAME,
Layout _at t r i but e,
Bi nd_par amet er s
f r om hx c_mob_l ay out _comps _v
wher e l ayout _i d = : l ay out _i d
Snapshot below shows the query results for seeded Projects Layout, returning the values for 3
attributes, Project, Task and Expenditure Type.
The View Object usually selects multiple columns, one of which would be the Id or the Value to be
stored in HXC_TIME_ATTRIBUTES table. There would be one display column, which would be the
user readable value or name of the attribute. There may be additional columns shown as additional
information in the LOV popup pages. The key items we are looking for in this case are the Id or the
Value to be stored, and the display value. For ease of reference in this and following sections, let’s
call these as Id Column and Display Column.
To easily figure out the Id and Display columns for your View Object, you may look at
qualifier_attribute9 and qualifier_attribute8 in your layout attribute definition. These are shown in
Blue below.
BEGI N HXC_LAYOUT_COMP_QUALI FI ERS " Payr ol l Ti mecar d Layout - Cost Cent er "
OWNER = " ORACLE12. 2. 0"
QUALI FI ER_ATTRI BUTE_CATEGORY = " CHOI CE_LI ST"
QUALI FI ER_ATTRI BUTE1 = " Cost Cent er 2VO"
QUALI FI ER_ATTRI BUTE4 = " N"
QUALI FI ER_ATTRI BUTE8 = " Di s pl ay Val ue "
QUALI FI ER_ATTRI BUTE9 = " Val ue #NUMBER"
QUALI FI ER_ATTRI BUTE10 =
" or acl e. apps. hxc. sel f ser vi ce. t i mecar d. ser ver . Cost Cent er 2VO"
QUALI FI ER_ATTRI BUTE11 = " TI MECARD_BI ND_END_DATE| TI MECARD_BI ND_END_DATE"
QUALI FI ER_ATTRI BUTE17 = " Or aTabl eCel l Text "
QUALI FI ER_ATTRI BUTE20 = " N"
QUALI FI ER_ATTRI BUTE21 = " Y"
QUALI FI ER_ATTRI BUTE22 = " L"
QUALI FI ER_ATTRI BUTE25 = " FLEX"
QUALI FI ER_ATTRI BUTE26 = " Dummy Cost Cont ext "
QUALI FI ER_ATTRI BUTE27 = " At t r i but e1"
LAST_UPDATE_DATE = " 2004/ 05/ 24"
END HXC_LAYOUT_COMP_QUALI FI ERS
BEGI N HXC_LAYOUT_COMP_QUALI FI ERS " Pr oj ect s Ti mecar d Layout - Pr oj ect "
OWNER = " ORACLE12. 2. 0"
QUALI FI ER_ATTRI BUTE_CATEGORY = " LOV"
QUALI FI ER_ATTRI BUTE1 = " Pr oj ect LOVVO"
QUALI FI ER_ATTRI BUTE2 = " N"
QUALI FI ER_ATTRI BUTE3 = " HXC_CUI _PROJECT_LOV"
QUALI FI ER_ATTRI BUTE4 = " 809"
QUALI FI ER_ATTRI BUTE5 = " 12"
QUALI FI ER_ATTRI BUTE6 =
" HxcCui Pr oj ect Number | PROJECT- DI SPLAY| CRI TERI A| N|
HxcCui Pr oj ect I d| PROJECT| RESULT| N|
HxcCui Pr oj ect Number | PROJECT- DI SPLAY| RESULT| N"
QUALI FI ER_ATTRI BUTE8 = " Pr oj ec t Number "
QUALI FI ER_ATTRI BUTE9 = " Pr oj ec t I d #NUMBER"
QUALI FI ER_ATTRI BUTE10 =
" or acl e. apps. hxc. sel f ser vi ce. t i mecar d. ser ver . Pr oj ect LOVVO"
QUALI FI ER_ATTRI BUTE17 = " Or aTabl eCel l Text "
QUALI FI ER_ATTRI BUTE20 = " N"
QUALI FI ER_ATTRI BUTE21 = " Y"
QUALI FI ER_ATTRI BUTE22 = " L"
QUALI FI ER_ATTRI BUTE25 = " FLEX"
QUALI FI ER_ATTRI BUTE26 = " PROJECTS"
QUALI FI ER_ATTRI BUTE27 = " At t r i but e1"
QUALI FI ER_ATTRI BUTE28 = " PROJECT"
LAST_UPDATE_DATE = " 2004/ 05/ 24"
END HXC_LAYOUT_COMP_QUALI FI ERS
END HXC_LAYOUT_COMPONENTS
s el ec t pr oj ec t _number pr oj ec t number ,
pr oj ec t _name pr oj ec t name,
pr oj ec t _det ai l s pr oj ec t det ai l s ,
pr oj ec t _i d pr oj ect i d,
st ar t _dat e,
compl et i on_dat e,
car r y i ng_out _or gani z at i on_i d
f r om pa_onl i ne_pr oj ec t s _v
From the LDT file definition, the Id column is ProjectId, which in the above query is a Column Alias
for project_id.
The display column is ProjectNumber, which in the above query is a column Alias for
project_number.
3. Once we have figured out the required values for Id column and Display column, we may proceed to
creation of Value Sets.
Steps below shows creation of Value set for View Object ProjectLOVVO.xml for the seeded projects
layout.
3
The Value set created should always be of Validation Type Table. Value sets of other validation types are not
supported in this release.
4
The Value set example shown here follows a naming convention of VO_NAME_VS. This is followed to make
the Value sets created Well Defined while upgrading the layouts using OTL: Upgrade layouts for Mobile
Time Entry. Administrators may follow any naming convention.
Following section explains the values to use for fields in the Validation Information page and
the rationale in arriving at the right values.
Table Name: The table in the FROM clause of the SELECT query in the View object is used
here. If there are multiple tables, a comma separated list may be used here, shown in examples
below. If there are multiple tables, using Table aliases may be required. You must ensure that
the Value set is tested successfully. For cases where there are more table names than what can
be put in this field, a View may be created out of the View Object’s query and used here. An
example of this case is ExpTypeElementLOVVO_VS, delivered for the Seeded Projects Layout.
Value: This field represents the Display column from the View Object’s query. It must be
noted here that only one column is allowed to be a display column, and hence multiple
additional columns are never displayed in Timecard App’s LOV searches. However, a
concatenated list of columns is allowed to be used in this field. The example above shows
“project_number” as the Display column. It may be modified to “project_number||’-
‘||project_name” to show Project Name along with Project Number.
Meaning: This field must be left blank.
Id: This field represents the Id column of the layout attribute. The example above shows
“project_id” column. No concatenated values are allowed in this field. It must be noted that
the column mentioned in this field is the value that actually gets stored in
HXC_TIME_ATTRIBUTES and must be able to uniquely identify a value selected. In most cases,
the column used here should be the primary key.
Where/Order By: Any filter conditions used in the View Objects’ query may be inserted
here. Since our example above does not have any filter conditions in the View Objects,
Expenditure Type LOV’s Value set is provided below as an example. Any bind variable or any
other condition must be used here.
Note the WHERE/Order By field that uses bind variables :TIMECARD_BIND_START_DATE and
:TIMECARD_BIND_END_DATE amongst other conditions.
Additional Columns: This field is to be used to add Hidden Attributes to the Value sets. For
more explanation of how to use this field, refer to the following section.
Qualifier_attribute28 is the key here, for populating hidden field. The value provided in
qualifier_attribute28 here would be attached to another layout attribute, which will be picked up by the
layout when time is entered. For the above sample hidden field, the value in qualifier_attribute28 is
“SYSLINKFUNC”. This value is picked up from another layout component, Expenditure type. Layout
Component qualifiers would be as shown below.
BEGI N HXC_LAYOUT_COMPONENTS " Pr oj ect s Ti mecar d Layout - Expendi t ur e Type"
OWNER = " ORACLE12. 2. 0"
COMPONENT_VALUE = " EXPENDI TURETYPE"
REGI ON_CODE = " HXC_CUI _TI MECARD"
REGI ON_CODE_APP_SHORT_NAME = " HXC"
ATTRI BUTE_CODE = " HXC_TI MECARD_EXPTYPE"
ATTRI BUTE_CODE_APP_SHORT_NAME = " HXC"
SEQUENCE = " 230"
COMPONENT_DEFI NI TI ON = " LOV"
RENDER_TYPE = " WEB"
PARENT_COMPONENT =
" Pr oj ect s Ti mecar d Layout - Day Scope Bui l di ng bl ocks f or wor ker t i mecar d mat r i x"
LAST_UPDATE_DATE = " 2004/ 05/ 24"
Another method to get the value to be used for Hidden field in the value set to be created is to
run the query as provided below*.
select *
from hxc_mob_hidden_field_details_v
where layout_id = :1;
The above query returns a column called “column_name”. Value in this column is the key in
specifying the hidden attributes in the value set to be prepared.
If there are multiple hidden fields, the above query would return more than one rows.
All of the 3 hidden attributes should have corresponding columns in the Value set to be defined.
Steps
Analyze the query in the VO used for hidden attribute.
The VO used for another layout attribute should return the value to be used for the hidden attribute(s)
too. The format of the query in the VO typically would be like this.
The value set would be created for the VO with the following specifications in the additional information
page.
In addition to these values, the Additional Columns field should be populated with columns for hidden
attributes, with value returned by column_name from query above as aliases.
Example
Let’s take a scenario example of an LOV with 3 hidden attributes.
LOV that picks out the hidden attributes defined like below.
BEGI N HXC_LAYOUT_COMPONENTS
" OTL Demo Except i on Ti mecar d Layout - Locat i on LOV"
OWNER = " ORACLE12. 1. 3"
COMPONENT_VALUE = " LOC"
REGI ON_CODE = " HXC_CUI _TI MECARD"
REGI ON_CODE_APP_SHORT_NAME = " HXC"
ATTRI BUTE_CODE = " HXC_CUI _LOCATI ON_LABEL"
ATTRI BUTE_CODE_APP_SHORT_NAME = " HXC"
SEQUENCE = " 250"
COMPONENT_DEFI NI TI ON = " LOV"
RENDER_TYPE = " WEB"
PARENT_COMPONENT =
" OTL Demo Except i on Ti mecar d Layout - Day Scope Bui l di ng
bl ocks f or wor ker t i mecar d mat r i x"
LAST_UPDATE_DATE = " 2006/ 09/ 29"
BEGI N HXC_LAYOUT_COMP_QUALI FI ERS
" OTL Demo Except i on Ti mecar d Layout - Locat i on LOV"
OWNER = " ANONYMOUS"
QUALI FI ER_ATTRI BUTE_CATEGORY = " LOV"
QUALI FI ER_ATTRI BUTE1 = " Ci t yLi st VO"
QUALI FI ER_ATTRI BUTE2 = " N"
QUALI FI ER_ATTRI BUTE3 = " HXC_CUI _LOCATI ON_LOV"
QUALI FI ER_ATTRI BUTE4 = " 809"
QUALI FI ER_ATTRI BUTE5 = " 12"
QUALI FI ER_ATTRI BUTE6 =
" Locat i onI d| LOCDI SPLAY| CRI TERI A| N|
Zi p| LOC| RESULT| N| Locat i onI d|
LOC- DI SPLAY| RESULT| N|
Count y| COUNTY| RESULT| N|
Ci t y| CI TY| RESULT| N|
St at e| STATE| RESULT| N"
QUALI FI ER_ATTRI BUTE7 = " STATE| St at e| COUNTY| Count y| CI TY| Ci t y"
QUALI FI ER_ATTRI BUTE8 = " Locat i oni d"
QUALI FI ER_ATTRI BUTE9 = " Zi p#STRI NG"
QUALI FI ER_ATTRI BUTE10 =
" or acl e. apps. hxc. sel f ser vi ce. conf i gui . us. ser ver . Ci t yLi st VO"
QUALI FI ER_ATTRI BUTE14 =
" St at e| STATE| Y#
Count y| COUNTY| Y#
Ci t y| CI TY| Y"
QUALI FI ER_ATTRI BUTE15 =
" upper ( St at e) = upper ( : : St at e) #
upper ( Count y) = upper ( : : Count y) #
upper ( Ci t y) = upper ( : : Ci t y) "
QUALI FI ER_ATTRI BUTE17 = " Or aTabl eCel l Text "
QUALI FI ER_ATTRI BUTE20 = " N"
QUALI FI ER_ATTRI BUTE21 = " Y"
END HXC_LAYOUT_COMPONENTS
As we see above, the LOV uses a VO named CityListVO. Query from the VO is as follows
sel ect pcy. CI TY_NAME| | ' , ' | |
pst . STATE_NAME| | ' , ' | |
pct . COUNTY_NAME| | ' count y, ' | |
pzc. ZI P_START Locat i onI d,
pst . STATE_ABBREV St at eI d,
pst . STATE_NAME St at e,
pct . COUNTY_NAME Count y,
pcy. CI TY_NAME Ci t y,
pzc. ZI P_START Zi p,
pzc. ZI P_END Zi pEnd
f r om
pay_us_st at es pst ,
pay_us_count i es pct ,
pay_us_ci t y_names pcy,
PAY_US_ZI P_CODES pzc
wher e
( pst . st at e_code < 52 or pst . st at e_code = 72)
and pcy. STATE_CODE = pst . STATE_CODE
and pcy. COUNTY_CODE = pct . COUNTY_CODE
and pct . STATE_CODE = pst . STATE_CODE
and pcy. CI TY_CODE = pzc. CI TY_CODE
and pcy. STATE_CODE = pzc. STATE_CODE
and pcy. COUNTY_CODE = pzc. COUNTY_CODE
or der
by pcy. CI TY_NAME,
pst . STATE_NAME,
pct . COUNTY_NAME,
pzc. ZI P_START
We have 3 hidden_attributes coming out from the above LOV component. For this case, let’s see the
steps to create the value set.
Following are the specifications from the VO and Layout comp qualifiers.
Display Column:
pc y . CI TY_NAME| | ' , ' | | ps t . STATE_NAME| | ' , ' | | pct . COUNTY_NAME| | ' count y, ' | | pzc. ZI P_START
Loc at i onI d
(As per qualifier_attribute8, which says LocationId. LocationId is an alias for the above
concatenated column list in the VO query. This is the text shown to the user in a Saved timecard)
Id Column:
pzc. ZI P_START Zi p ( As per VO quer y )
Zip#String ( from qualifier_attribute9; meaning column name from query is Zip, which in this case is
a Column Alias for pzc.zip_start and format is String)
Now we have created the value set for the layout attribute Location LOV. Now let’s add the
columns for hidden attributes. These need to be added to Additional Columns.
There are 3 hidden columns with these column names: State, County, City.
These columns correspond to the following columns as per the VO query:
pst . STATE_NAME
pc t . COUNTY_NAME
pc y . CI TY_NAME
Dependent LOVs
By definition, a dependent LOV is based on one or more previously selected Layout attributes. Such
LOVs need special steps for use in Mobile.
To know if your layout has a dependent attribute and to gather details about the dependent LOVs
follow either of these methods.
The above excerpt from Projects layout LDT, shows the definition of Project and Task components’
definition. In the Task component definition, qualifier_attribute14 and qualifier_attribute15 shows the
details about the dependent component(shown in Red). Qualifier_attribute15 refers the WHERE clause
to be attached to the query to bind the value from previous attribute where as qualifier_attribute14
mentions which layout attribute it has to refer to. PROJECT, shown in Green above points to the Project
component’s qualifier_attribute28 in the previous definition (also shown in Green).
Using this method, it is now clear that the LOV for Task is dependent on Project LOV’s selected value.
Task LOV is the second layout attribute displayed on the Self Service layout and it is dependent on the
project, which is the first attribute.
To implement this feature in mobile application, the Value set created should have an additional
WHERE clause referring to the previous attribute. Qualifier_attribute15 has the WHERE clause to be
used.
So, we proceed on to define the WHERE clause as
“project_id = :attribute1”
Below screenshot shows the value set created for Task LOV.
Method 2:
This method uses a query to point out dependent attributes in a given layout.
sel ect deps. component _name dependent _component _name,
deps. l ayout _at t r i but e dependent _at t r i but e_num,
comps. component _name sour ce_component _name,
comps. l ayout _at t r i but e sour ce_at t r i but e_num,
REGEXP_REPLACE(
REGEXP_SUBSTR(
l cq2. qual i f i er _at t r i but e15, ' [ ^ #] +' , 1,
RANK( ) OVER ( par t i t i on by deps. l ayout _component _i d
Use layout_id as the bind variable. Let’s see the query outputs for a few layouts.
Projects Layout
First and second columns give the detail of the layout attribute which is dependent on a previous
one. Third and fourth columns give details of the layout component which the former component is
dependent on. And WHERE Clause to be added to the Value set to be created is provided as the last
column. The above query result means that the Task component is dependent on Project component
and WHERE clause to be added is “project_id = :attribute1”
Purchasing Layout
The following example demonstrates creation of Dependent LOV components dependent on more than
one attributes. For this example, we are considering seeded Purchasing Layout. 5
Above query result shows two distinct components, Purchase Order Line and Price Type as
dependent attributes. They are dependent on one and two previous attributes respectively.
Purchase order line is dependent on Purchase Order Number and WHERE clause to be added is
“POHeaderid = :attribute1”.
Price Type is dependent on Purchase Order Number and Purchase Order Line( Two rows returned in
the query). Two conditions have to be added in the WHERE clause: “POHeaderId = :attribute1” and
“POLineId = :attribute2”. They may be joined as “POHeaderId = :attribute1 AND POLineId = :attribute2”.
It may be noted here that the WHERE clause derived by the query above uses column aliases.
Creation of the value set may require aliases to be replaced by actual column names. Eg.
PO_HEADER_ID instead of POHeaderId.
Example
Sample Value Set creation with more than one dependent attributes
Layout: Seeded Purchasing Layout 6
Component: Price Type
Excerpt from LDT file showing definition of Purchase Order Number, Line and Price Type.
5
Purchasing layout is used only as a sample layout for this case. This does not confirm all features of the
layout is allowed to be used in Timecards App.
6
Purchasing Layouts are not certified to work with Timecards App. Example shown here is for illustrative
purpose.
BEGI N HXC_LAYOUT_COMPONENTS
" Pur chasi ng Ti mecar d Layout - Pur chase Or der Number "
OWNER = " ORACLE12. 2. 0"
COMPONENT_VALUE = " PONUMBER"
REGI ON_CODE = " PO_CUI _TI MECARD"
REGI ON_CODE_APP_SHORT_NAME = " PO"
ATTRI BUTE_CODE = " PO_TI MECARD_PO_NUMBER"
ATTRI BUTE_CODE_APP_SHORT_NAME = " PO"
SEQUENCE = " 220"
COMPONENT_DEFI NI TI ON = " LOV"
RENDER_TYPE = " WEB"
PARENT_COMPONENT =
" Pur chasi ng Ti mecar d Layout - Day Scope Bui l di ng bl ocks f or wor ker t i mecar d mat r i x"
LAST_UPDATE_DATE = " 2004/ 05/ 13"
BEGI N HXC_LAYOUT_COMP_QUALI FI ERS
" Pur chasi ng Ti mecar d Layout - Pur chase Or der Number "
OWNER = " ORACLE12. 2. 0"
QUALI FI ER_ATTRI BUTE_CATEGORY = " LOV"
QUALI FI ER_ATTRI BUTE1 = " Pur chaseOr der Number LOVVO"
QUALI FI ER_ATTRI BUTE2 = " N"
QUALI FI ER_ATTRI BUTE3 = " PO_CUI _PO_NUMBER_LOV"
QUALI FI ER_ATTRI BUTE4 = " 201"
QUALI FI ER_ATTRI BUTE5 = " 5"
QUALI FI ER_ATTRI BUTE6 =
" POCui PONumber | PO_NUMBER-
DI SPLAY| CRI TERI A| N| POCui POHeader I d| PO_NUMBER| RESULT| N| POCui PONumber | PO_NUMBER- DI SPLAY| RESULT| N"
QUALI FI ER_ATTRI BUTE8 = " PONumber "
QUALI FI ER_ATTRI BUTE9 = " POHeader I d#NUMBER"
QUALI FI ER_ATTRI BUTE10 =
" or acl e. apps. po. sel f ser vi ce. t i mecar d. ser ver . Pur chaseOr der Number LOVVO"
QUALI FI ER_ATTRI BUTE11 =
" TI MECARD_BI ND_START_DATE| TI MECARD_BI ND_END_DATE| RESOURCE_I DENTI FI ER_I D|
TI MECARD_BI ND_START_DATE| TI MECARD_BI ND_END_DATE| TI MECARD_I D| TI MECARD_OVN"
QUALI FI ER_ATTRI BUTE20 = " N"
QUALI FI ER_ATTRI BUTE21 = " Y"
QUALI FI ER_ATTRI BUTE22 = " L"
QUALI FI ER_ATTRI BUTE25 = " FLEX"
QUALI FI ER_ATTRI BUTE26 = " PURCHASI NG"
QUALI FI ER_ATTRI BUTE27 = " At t r i but e8"
QUALI FI ER_ATTRI BUTE28 = " PO_NUMBER"
LAST_UPDATE_DATE = " 2004/ 05/ 13"
END HXC_LAYOUT_COMP_QUALI FI ERS
END HXC_LAYOUT_COMPONENTS
BEGI N HXC_LAYOUT_COMPONENTS
" Pur chasi ng Ti mecar d Layout - Pur chase Or der Li ne"
OWNER = " ORACLE12. 2. 0"
COMPONENT_VALUE = " POLI NE"
REGI ON_CODE = " PO_CUI _TI MECARD"
REGI ON_CODE_APP_SHORT_NAME = " PO"
ATTRI BUTE_CODE = " PO_TI MECARD_PO_LI NE"
ATTRI BUTE_CODE_APP_SHORT_NAME = " PO"
SEQUENCE = " 230"
COMPONENT_DEFI NI TI ON = " LOV"
RENDER_TYPE = " WEB"
PARENT_COMPONENT =
" Pur chasi ng Ti mecar d Layout - Day Scope Bui l di ng bl ocks f or wor ker t i mecar d mat r i x"
LAST_UPDATE_DATE = " 2004/ 05/ 13"
BEGI N HXC_LAYOUT_COMP_QUALI FI ERS
" Pur chasi ng Ti mecar d Layout - Pur chase Or der Li ne"
OWNER = " ORACLE12. 2. 0"
QUALI FI ER_ATTRI BUTE_CATEGORY = " LOV"
QUALI FI ER_ATTRI BUTE1 = " Pur chaseOr der Li neLOVVO"
QUALI FI ER_ATTRI BUTE2 = " N"
QUALI FI ER_ATTRI BUTE3 = " PO_CUI _PO_LI NE_LOV"
QUALI FI ER_ATTRI BUTE4 = " 201"
QUALI FI ER_ATTRI BUTE5 = " 5"
QUALI FI ER_ATTRI BUTE6 =
" POCui POLi ne| PO_LI NE-
DI SPLAY| CRI TERI A| N| POLi neCui POHeader I d| PO_NUMBER| PASSI VE_CRI TERI A| N|
POCui POLi neI d| PO_LI NE| RESULT| N| POCui POLi ne|
PO_LI NE- DI SPLAY| RESULT| N"
QUALI FI ER_ATTRI BUTE8 = " POLi ne"
QUALI FI ER_ATTRI BUTE9 = " POLi neI d#NUMBER"
QUALI FI ER_ATTRI BUTE10 =
" or acl e. apps. po. sel f ser vi ce. t i mecar d. ser ver . Pur chaseOr der Li neLOVVO"
QUALI FI ER_ATTRI BUTE11 =
" TI MECARD_BI ND_START_DATE| TI MECARD_BI ND_END_DATE| RESOURCE_I DENTI FI ER_I D|
TI MECARD_BI ND_START_DATE| TI MECARD_BI ND_END_DATE| TI MECARD_I D| TI MECARD_OVN"
BEGI N HXC_LAYOUT_COMPONENTS
" Pur chasi ng Ti mecar d Layout - Pr i ce Type"
OWNER = " ORACLE12. 2. 0"
COMPONENT_VALUE = " PRI CETYPE"
REGI ON_CODE = " PO_CUI _TI MECARD"
REGI ON_CODE_APP_SHORT_NAME = " PO"
ATTRI BUTE_CODE = " PO_TI MECARD_PRI CE_TYPE"
ATTRI BUTE_CODE_APP_SHORT_NAME = " PO"
SEQUENCE = " 240"
COMPONENT_DEFI NI TI ON = " LOV"
RENDER_TYPE = " WEB"
PARENT_COMPONENT =
" Pur chasi ng Ti mecar d Layout - Day Scope Bui l di ng bl ocks f or wor ker t i mecar d mat r i x"
LAST_UPDATE_DATE = " 2004/ 05/ 13"
, pr i ce_t ype
, mul t i pl i er
FROM po_pr i ce_di f f er ent i al s
WHERE ent i t y_t ype = ' PO LI NE'
AND enabl ed_f l ag = ' Y'
UNI ON ALL
SELECT po_l i ne_i d
, ' STANDARD'
, 1. 0
FROM po_l i nes_al l
) popd
WHERE pol . po_header _i d = poh. po_header _i d
AND f l v. l ookup_t ype = ' PRI CE DI FFERENTI ALS'
AND f l v. l ookup_code = popd. pr i ce_t ype
AND popd. ent i t y_i d = pol . po_l i ne_i d
UNI ON
SELECT poh. segment 1 PONumber
, poh. po_header _i d POHeader I d
, TO_CHAR ( pol . l i ne_num) POLi ne
, pol . po_l i ne_i d POLi neI d
, f l v. l ookup_code POPr i ceType
, f l v. meani ng POPr i ceTypeDi spl ay
FROM po_header s_al l poh
, po_l i nes_al l pol
, f nd_l ookups f l v
, hxc_t i me_bui l di ng_bl ocks day
, hxc_t i me_bui l di ng_bl ocks det ai l
, hxc_t i me_at t r i but es ht a
, hxc_t i me_at t r i but e_usages ht au
WHERE poh. po_header _i d = TO_NUMBER ( ht a. at t r i but e8)
AND pol . po_l i ne_i d = TO_NUMBER ( ht a. at t r i but e2)
AND f l v. l ookup_t ype = ' PRI CE DI FFERENTI ALS'
AND f l v. l ookup_code = ht a. at t r i but e3
AND day. par ent _bui l di ng_bl ock_i d = : 1
AND day. par ent _bui l di ng_bl ock_ovn = : 2
AND det ai l . par ent _bui l di ng_bl ock_i d = day. t i me_bui l di ng_bl ock_i d
AND det ai l . par ent _bui l di ng_bl ock_ovn = day. obj ect _ver si on_number
AND ht au. t i me_bui l di ng_bl ock_i d = det ai l . t i me_bui l di ng_bl ock_i d
AND ht au. t i me_bui l di ng_bl ock_ovn = det ai l . obj ect _ver si on_number
AND ht au. t i me_at t r i but e_i d = ht a. t i me_at t r i but e_i d
AND ht a. at t r i but e_cat egor y = ' PURCHASI NG'
For ease of explanation, let’s consider only the first part of the UNION for now. Query is
SELECT poh. segment 1 PONumber
, poh. po_header _i d POHeader I d
, TO_CHAR ( pol . l i ne_num) POLi ne
, pol . po_l i ne_i d POLi neI d
, f l v. l ookup_code POPr i ceType
, f l v. meani ng POPr i ceTypeDi spl ay
FROM po_header s_al l poh
, po_l i nes_al l pol
, f nd_l ookups f l v
, ( SELECT ent i t y_i d
, pr i ce_t ype
, mul t i pl i er
FROM po_pr i ce_di f f er ent i al s
WHERE ent i t y_t ype = ' PO LI NE'
AND enabl ed_f l ag = ' Y'
UNI ON ALL
SELECT po_l i ne_i d
, ' STANDARD'
, 1. 0
FROM po_l i nes_al l
) popd
WHERE pol . po_header _i d = poh. po_header _i d
AND f l v. l ookup_t ype = ' PRI CE DI FFERENTI ALS'
AND f l v. l ookup_code = popd. pr i ce_t ype
AND popd. ent i t y_i d = pol . po_l i ne_i d
Let us first create a View out of the query so that it is easier to define the value set. This is not a
mandatory step.
As per qualifier_attribute8 and qualifier_attribute9 created Value(Display Column) and Id (Id column).
Two layout attributes need reference in this value set, PO Number and PO line, first and second
attribute respectively.
Choose No if the request is being run for the first time for the layout to be upgraded. If you are doing a
rerun or a correction, choose Yes.
Verify that the request completes successfully and look for the following message in the log
file.
Trouble Shooting
Mobile Foundation:
Issue #1
When entering user credentials and server URL in the configuration screen, no error message is
shown. However, the configuration screen is presented again.
Probable Cause
User credentials are wrong and/or configuration server URL is wrong.
Resolution
User should verify that they enter their valid E-Business Suite username and password. The
configuration server URL should be valid in the format of http(s)://<hostname>:<port>/OA_HTML/config
Issue #2
When entering valid user credentials and valid server URL in the configuration screen, no error
message is shown. However, the configuration screen is presented again.
Probable Cause
Application bundle id in the configuration service request sent to the E-Business Suite server
from the mobile app does not match with server setup.
Resolution
System administrator should verify that the application bundle id in the Mobile Application
Manager matches the mobile app implementation guide.
Issue #3
Configuration server URL is not accessible when tested from a web browser. An HTTP 404 error
appears.
Probable Cause
HTTP server configuration for configuration service is missing.
Resolution
Verify that AutoConfig was run after applying the appropriate ATG consolidated patch for your
Oracle E-Business Suite release.
Issue #4
Configuration server URL is not accessible when tested from a web browser. An HTTP 404 error
appears.
Probable Cause
HTTP server configuration for configuration service is missing.
Resolution
Verify that AutoConfig was run after applying the appropriate ATG consolidated patch for your
Oracle E-Business Suite release.
Issue #5
Login server URL is not accessible when users attempt to login to app.
Probable Cause
Issues with pre-requisite patch.
Resolution
The login service on the E-Business Suite server is automatically setup after patch application.
Login service is of format
http(s)://<hostname>:<port>/OA_HTML/config
Issues during patch application could result in login service in accessible. Contact Oracle
Support.
Timecards:
Issue #1
You do not have access to use this mobile application. Please contact your System
Administrator.
Probable Cause
“Mobile Time Entry” Role has not been added to the responsibility (or) “Mobile Time Entry”
Menu is missing.
Resolution
Add the “Mobile Time Entry” role to the responsibility and “Mobile Time Entry” menu as a
submenu to the associated responsibility.
Please refer to the white paper available in MOS Doc ID 1671889.1 for more details.
Issue #2
Invalid Setup: <<LAYOUT_NAME>> is not upgraded.
Probable Cause
Employee has a timecard layout preference which is not upgraded for mobile time entry.
Resolution
Check the layout attached to self service timecard layout preference. If not upgraded, please
execute the concurrent program “OTL: Upgrade Layouts for Mobile Time Entry”.
If layout attached to preference is upgraded, check if the employee has already entered
timecards with a layout that is not upgraded.
Issue #3
Invalid Setup: Absence Integration is enabled
Probable Cause
OTL Absence Integration is enabled for this user via OTL Preferences.
Resolution
The V1 version of mobile Timecard app does support OTL Absence Integration. Please disable
the Integration to use mobile timecard app.
Issue #4
Invalid Setup: Audit Layout has been set.
Probable Cause
User has OTL preference set up with an Audit Layout.
Resolution
Change and Late Audit feature is not supported in V1 version.
Remove the value in Audit Layout, (6th segment) in SS timecard layout preference.
Issue #5
Invalid Setup: Audit Preferences has been enabled.
Probable Cause
SS timecard flow is set to Audit
Resolution
Set SS timecard flow to Standard. Audit flow is linked to CLA feature which is not enabled for
mobile timecards.
Issue #6
Invalid Setup: Audit Time Entry Rule has been set.
Probable Cause
Time Store Audit Requirements is set to a valid Time entry rule.
Resolution
Set Time Store Audit Requirements to NULL. Audit Time Entry Rule is linked to CLA feature
which is not enabled for mobile timecards.
Issue #7
You must use <<RESP>> responsibility for this action.
Probable Cause
This issue occurs when multiple responsibilities are enabled for mobile timecards. Timecard
created with one responsibility cannot be modified using another responsibility.
Resolution
User must use the corresponding responsibility to modify the timecard. Navigate to Settings ->
Responsibility and select the correct responsibility.
Issue #8
You must enter <<FIELDS>>.
Eg: You must enter Hours Type.
Probable Cause
Timecard has one or more mandatory fields and user has not entered all the required fields.
Resolution
User must key in all the required fields. <<FIELDS>> in the error message are the mandatory
fields.
Issue #9
Submit Failed. Timecard cannot be found.
Save Failed. Timecard cannot be found.
Delete Failed. Timecard cannot be found.
Probable Cause
The administrator or user has deleted the specific timecard in Timestore, there is a discrepancy
in the data between the device and Timestore.
Resolution
Delete the timecard, logout and log in to continue working.
Issue #10
Timecard period does not match your setup. You must delete this timecard.
Probable Cause
User's SS timecard period was changed after a timecard was pending in Draft status in the
device.
Resolution
Delete the timecard in Draft status, logout and log in to continue working.
Issue #11
You cannot create this Time Entry.
Probable Cause
SS status allowing edit preference does not allow user to create this timecard.
Resolution
Adjust Future Number of days and Past number of days preference values.