<ROOT>
 <APPS_INITIALIZE_DATA>
  <USER_NAME>ENGINATICS</USER_NAME>
  <RESPONSIBILITY_KEY>SYSTEM_ADMINISTRATOR</RESPONSIBILITY_KEY>
  <APPLICATION_SHORT_NAME>SYSADMIN</APPLICATION_SHORT_NAME>
 </APPS_INITIALIZE_DATA>
<LOVS>
<!-- loader xml for Enginatics Blitz Report lov: Blitz Upload Mode -->
 <LOVS_ROW>
  <GUID>E811F942597A2075E0530100007FF4F2</GUID>
  <LOV_NAME>Blitz Upload Mode</LOV_NAME>
  <VALIDATE_FROM_LIST>Y</VALIDATE_FROM_LIST>
  <LOV_QUERY>select xxen_upload.action_create id, xxen_upload.action_meaning(xxen_upload.action_create) value, null description from dual union all
select xxen_upload.action_create || &apos;,&apos; || xxen_upload.action_update id, xxen_upload.action_meaning(xxen_upload.action_create)||&apos;, &apos;||xxen_upload.action_meaning(xxen_upload.action_update) value, null description from dual
</LOV_QUERY>
  <LOV_TRANSLATIONS>
   <LOV_TRANSLATIONS_ROW>
    <LANGUAGE>US</LANGUAGE>
   </LOV_TRANSLATIONS_ROW>
  </LOV_TRANSLATIONS>
 </LOVS_ROW>
<!-- loader xml for Enginatics Blitz Report lov: PER Employee -->
 <LOVS_ROW>
  <GUID>8E2FF36EDF0779D2E0530100007F1FF2</GUID>
  <LOV_NAME>PER Employee</LOV_NAME>
  <VALIDATE_FROM_LIST>Y</VALIDATE_FROM_LIST>
  <FILTER_BEFORE_DISPLAY>Y</FILTER_BEFORE_DISPLAY>
  <LOV_QUERY>select
ppx.full_name value,
(select fu.user_name from fnd_user fu where ppx.person_id=fu.employee_id and rownum=1) description
from
per_people_x ppx,
per_assignments_x pax
where
ppx.employee_number is not null and
ppx.current_employee_flag=&apos;Y&apos; and
ppx.person_id=pax.person_id and
pax.primary_flag=&apos;Y&apos; and
pax.assignment_type=&apos;E&apos;
order by
ppx.full_name</LOV_QUERY>
  <LOV_TRANSLATIONS>
   <LOV_TRANSLATIONS_ROW>
    <LANGUAGE>US</LANGUAGE>
   </LOV_TRANSLATIONS_ROW>
  </LOV_TRANSLATIONS>
 </LOVS_ROW>
<!-- loader xml for Enginatics Blitz Report lov: Yes -->
 <LOVS_ROW>
  <GUID>8E2FF36EDEA679D2E0530100007F1FF2</GUID>
  <LOV_NAME>Yes</LOV_NAME>
  <VALIDATE_FROM_LIST>Y</VALIDATE_FROM_LIST>
  <LOV_QUERY>select &apos;Y&apos; id, xxen_util.meaning(&apos;Y&apos;,&apos;YES_NO&apos;,0) value, null description from dual</LOV_QUERY>
  <LOV_TRANSLATIONS>
   <LOV_TRANSLATIONS_ROW>
    <LANGUAGE>US</LANGUAGE>
   </LOV_TRANSLATIONS_ROW>
  </LOV_TRANSLATIONS>
 </LOVS_ROW>
</LOVS>
<REPORTS>
<!-- loader xml for Enginatics Blitz Report: OTL Timecard Upload -->
 <REPORTS_ROW>
  <GUID>FF40E81F28EA4EC7BB8FFBFB4B4ED225</GUID>
  <SQL_TEXT>select
null action_,
null status_,
null message_,
null modified_columns_,
row_number() over (order by x.employee, x.period_starting, x.date_worked, x.detail_bb_id) upload_row,
x.employee,
x.employee_number,
x.approval_status,
x.transferred,
x.period_starting,
x.date_worked,
x.project,
x.task,
x.expenditure_type,
x.hours_type,
x.hours,
x.line_comment,
x.submit_timecard,
x.delete_line,
x.timecard_bb_id,
x.detail_bb_id
from
(
select
papf.full_name employee,
papf.employee_number,
xxen_util.meaning(hts.approval_status,&apos;HXC_APPROVAL_STATUS&apos;,3) approval_status,
xxen_util.yes(case when exists (select null from hxc_transaction_details htd, hxc_transactions ht where htd.time_building_block_id=htbb_det.time_building_block_id and htd.time_building_block_ovn=htbb_det.object_version_number and htd.status=&apos;SUCCESS&apos; and htd.transaction_id=ht.transaction_id and ht.type=&apos;RETRIEVAL&apos; and ht.status=&apos;SUCCESS&apos;) then &apos;Y&apos; end) transferred,
trunc(hts.start_time) period_starting,
trunc(htbb_day.start_time) date_worked,
ppa.segment1 project,
pt.task_number task,
decode(hta.attribute_category,&apos;PROJECTS&apos;,hta.attribute3) expenditure_type,
petf.element_name hours_type,
htbb_det.measure hours,
htbb_det.comment_text line_comment,
null submit_timecard,
null delete_line,
hts.timecard_id timecard_bb_id,
htbb_det.time_building_block_id detail_bb_id
from
hxc_timecard_summary hts,
hxc_time_building_blocks htbb_day,
hxc_time_building_blocks htbb_det,
hxc_time_attribute_usages htau,
hxc_time_attributes hta,
per_all_people_f papf,
pa_projects_all ppa,
pa_tasks pt,
pay_element_types_f petf
where
:p_upload_mode like &apos;%&apos;||xxen_upload.action_update and
hts.resource_id=papf.person_id and
hts.start_time between papf.effective_start_date and papf.effective_end_date and
htbb_day.parent_building_block_id=hts.timecard_id and
htbb_day.parent_building_block_ovn=hts.timecard_ovn and
htbb_day.scope=&apos;DAY&apos; and
htbb_day.date_to=to_date(&apos;4712-12-31&apos;,&apos;YYYY-MM-DD&apos;) and
htbb_det.parent_building_block_id=htbb_day.time_building_block_id and
htbb_det.parent_building_block_ovn=htbb_day.object_version_number and
htbb_det.scope=&apos;DETAIL&apos; and
htbb_det.date_to=to_date(&apos;4712-12-31&apos;,&apos;YYYY-MM-DD&apos;) and
htau.time_building_block_id=htbb_det.time_building_block_id and
htau.time_building_block_ovn=htbb_det.object_version_number and
htau.time_attribute_id=hta.time_attribute_id and
(hta.attribute_category=&apos;PROJECTS&apos; or hta.attribute_category like &apos;ELEMENT - %&apos;) and
ppa.project_id(+)=decode(hta.attribute_category,&apos;PROJECTS&apos;,to_number(hta.attribute1)) and
pt.task_id(+)=decode(hta.attribute_category,&apos;PROJECTS&apos;,to_number(hta.attribute2)) and
petf.element_type_id(+)=case when hta.attribute_category like &apos;ELEMENT - %&apos; then to_number(substr(hta.attribute_category,11)) end and
htbb_day.start_time between petf.effective_start_date(+) and petf.effective_end_date(+)
) x
where
1=1</SQL_TEXT>
  <VERSION_COMMENTS>Initial version: OTL Timecard Upload (create, update, submit and delete OTL timecards with project and payroll element lines) via the public TimeStore deposit API hxc_timestore_deposit.</VERSION_COMMENTS>
  <ENABLED>Y</ENABLED>
  <TYPE>U</TYPE>
  <UPLOAD_TYPE>A</UPLOAD_TYPE>
  <UPLOAD_OBJECT>xxen_otl_upload.upload_timecard</UPLOAD_OBJECT>
  <REPORT_TRANSLATIONS>
   <REPORT_TRANSLATIONS_ROW>
    <LANGUAGE>US</LANGUAGE>
    <REPORT_NAME>OTL Timecard Upload</REPORT_NAME>
    <DESCRIPTION>OTL Timecard Upload
===================
Create, update and delete Oracle Time and Labor (OTL / HXC) timecards via the public TimeStore deposit API hxc_timestore_deposit, as an Excel-based alternative to self-service time entry.

Row model
=========
One spreadsheet row per timecard line and day: Employee, Date, classification and Hours. Rows are grouped into timecards by employee and the OTL timecard period (e.g. the weekly period from the employee&apos;s OTL preferences) containing the Date. Rows of the same employee and period must be contiguous and are deposited together as one timecard. The Period Starting column fills automatically once Employee and Date are entered.

Classification
==============
Each line is classified either for Projects (Project, Task and Expenditure Type - straight time) or for Payroll (Hours Type = payroll element). The deposit derives the employee&apos;s application set, approval style and security context from the OTL preferences, exactly like self-service time entry.

Run the upload under a responsibility whose operating unit context matches the projects being charged (e.g. the OTL or Projects responsibility the employees use) - the deposit validates the project, task, expenditure type and expenditure organization under the session&apos;s operating unit, exactly like self-service time entry.

Save and submit
===============
Leave Submit blank to save the timecard in Working status. Set Submit to Yes on any row of a timecard to submit it for approval (the OTL approval workflow starts, e.g. HR supervisor approval). Updating a timecard that is already Submitted or Approved re-submits it for approval automatically.

Updates and deletes
===================
Downloaded lines carry hidden building block ids and are updated through the OTL deposit API, which creates a new timecard version and re-routes approval. Set Delete Line to Yes to remove a line; deleting all lines of a timecard deletes the whole timecard. Timecards already transferred to a recipient application (Projects, Payroll/BEE or Purchasing) are protected and cannot be modified by the upload.

Upload modes
============
Create - empty template for new timecards.
Create, Update - downloads existing timecards (project and payroll element lines) for review, correction, resubmission or deletion.</DESCRIPTION>
   </REPORT_TRANSLATIONS_ROW>
  </REPORT_TRANSLATIONS>
  <CATEGORY_ASSIGNMENTS>
   <CATEGORY_ASSIGNMENTS_ROW>
    <CATEGORY>Enginatics</CATEGORY>
   </CATEGORY_ASSIGNMENTS_ROW>
   <CATEGORY_ASSIGNMENTS_ROW>
    <CATEGORY>Upload</CATEGORY>
   </CATEGORY_ASSIGNMENTS_ROW>
  </CATEGORY_ASSIGNMENTS>
  <ANCHORS>
   <ANCHORS_ROW>
    <ANCHOR>1=1</ANCHOR>
   </ANCHORS_ROW>
  </ANCHORS>
  <PARAMETERS>
   <PARAMETERS_ROW>
    <SORT_ORDER>1</SORT_ORDER>
    <DISPLAY_SEQUENCE>10</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>:p_upload_mode like &apos;%&apos; || xxen_upload.action_update</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV</PARAMETER_TYPE_DSP>
    <LOV_NAME>Blitz Upload Mode</LOV_NAME>
    <LOV_GUID>E811F942597A2075E0530100007FF4F2</LOV_GUID>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select xxen_upload.action_create id, xxen_upload.action_meaning(xxen_upload.action_create) value, null description from dual union all
select xxen_upload.action_create || &apos;,&apos; || xxen_upload.action_update id, xxen_upload.action_meaning(xxen_upload.action_create)||&apos;, &apos;||xxen_upload.action_meaning(xxen_upload.action_update) value, null description from dual
</LOV_QUERY_DSP>
    <DEFAULT_VALUE>C,U</DEFAULT_VALUE>
    <REQUIRED>Y</REQUIRED>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Upload Mode</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>2</SORT_ORDER>
    <DISPLAY_SEQUENCE>20</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.employee=:p_employee</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV</PARAMETER_TYPE_DSP>
    <LOV_NAME>PER Employee</LOV_NAME>
    <LOV_GUID>8E2FF36EDF0779D2E0530100007F1FF2</LOV_GUID>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <FILTER_BEFORE_DISPLAY_DSP>Y</FILTER_BEFORE_DISPLAY_DSP>
    <LOV_QUERY_DSP>select
ppx.full_name value,
(select fu.user_name from fnd_user fu where ppx.person_id=fu.employee_id and rownum=1) description
from
per_people_x ppx,
per_assignments_x pax
where
ppx.employee_number is not null and
ppx.current_employee_flag=&apos;Y&apos; and
ppx.person_id=pax.person_id and
pax.primary_flag=&apos;Y&apos; and
pax.assignment_type=&apos;E&apos;
order by
ppx.full_name</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Employee</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>3</SORT_ORDER>
    <DISPLAY_SEQUENCE>30</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.period_starting&gt;=:p_period_start_date_from</SQL_TEXT>
    <PARAMETER_TYPE_DSP>Date</PARAMETER_TYPE_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Period Start Date From</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>4</SORT_ORDER>
    <DISPLAY_SEQUENCE>40</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.period_starting&lt;:p_period_start_date_to+1</SQL_TEXT>
    <PARAMETER_TYPE_DSP>Date</PARAMETER_TYPE_DSP>
    <DEFAULT_VALUE>last_day(:$flex$.period_start_date_from)</DEFAULT_VALUE>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Period Start Date To</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>5</SORT_ORDER>
    <DISPLAY_SEQUENCE>50</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.approval_status=:p_approval_status</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV custom</PARAMETER_TYPE_DSP>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
flvv.meaning value,
null description
from
fnd_lookup_values_vl flvv
where
flvv.lookup_type=&apos;HXC_APPROVAL_STATUS&apos; and
flvv.view_application_id=3 and
flvv.security_group_id=0 and
flvv.enabled_flag=&apos;Y&apos;
order by
1</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Approval Status</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
  </PARAMETERS>
  <PARAMETER_DEPENDENCIES>
   <PARAMETER_DEPENDENCIES_ROW>
    <FLEX_BIND>:$flex$.period_start_date_from</FLEX_BIND>
    <PARAMETER_NAME>Period Start Date From</PARAMETER_NAME>
    <IS_DATE>Y</IS_DATE>
    <DEPENDENT_PARAMETER_NAME>Period Start Date To</DEPENDENT_PARAMETER_NAME>
   </PARAMETER_DEPENDENCIES_ROW>
  </PARAMETER_DEPENDENCIES>
  <TEMPLATES>
  </TEMPLATES>
  <DEFAULT_TEMPLATES>
  </DEFAULT_TEMPLATES>
  <UPLOAD_COLUMNS>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>1</COLUMN_NUMBER>
    <COLUMN_NAME>ACTION_</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>2</COLUMN_NUMBER>
    <COLUMN_NAME>STATUS_</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>3</COLUMN_NUMBER>
    <COLUMN_NAME>MESSAGE_</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>4</COLUMN_NUMBER>
    <COLUMN_NAME>MODIFIED_COLUMNS_</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <HIDDEN>Y</HIDDEN>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>5</COLUMN_NUMBER>
    <COLUMN_NAME>UPLOAD_ROW</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Number</COLUMN_TYPE_DSP>
    <DATA_TYPE>number</DATA_TYPE>
    <HIDDEN>Y</HIDDEN>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>6</COLUMN_NUMBER>
    <COLUMN_NAME>EMPLOYEE</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV custom</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <FILTER_BEFORE_DISPLAY_DSP>Y</FILTER_BEFORE_DISPLAY_DSP>
    <LOV_QUERY_DSP>select
ppx.person_id id,
ppx.full_name value,
ppx.employee_number description
from
per_people_x ppx
where
ppx.current_employee_flag=&apos;Y&apos;
order by
ppx.full_name</LOV_QUERY_DSP>
    <REQUIRED>Y</REQUIRED>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>7</COLUMN_NUMBER>
    <COLUMN_NAME>EMPLOYEE_NUMBER</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <DEFAULT_VALUE>select min(ppx.employee_number) from per_people_x ppx where ppx.full_name=:$column$.employee having count(distinct ppx.employee_number)=1</DEFAULT_VALUE>
    <COMMENTS>Fills automatically from the Employee. Only needed to identify the person uniquely when two employees share the same full name.</COMMENTS>
    <READ_ONLY>Y</READ_ONLY>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>8</COLUMN_NUMBER>
    <COLUMN_NAME>APPROVAL_STATUS</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <COMMENTS>Current approval status of the downloaded timecard (Working, Submitted, Approved, Rejected, Error). Blank for new timecards.</COMMENTS>
    <READ_ONLY>Y</READ_ONLY>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>9</COLUMN_NUMBER>
    <COLUMN_NAME>TRANSFERRED</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <COMMENTS>Yes when the timecard line has already been transferred to a recipient application (Projects, Payroll/BEE or Purchasing). Transferred timecards cannot be modified by the upload.</COMMENTS>
    <READ_ONLY>Y</READ_ONLY>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>10</COLUMN_NUMBER>
    <COLUMN_NAME>PERIOD_STARTING</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Date</COLUMN_TYPE_DSP>
    <DATA_TYPE>date</DATA_TYPE>
    <DEFAULT_VALUE>select xxen_otl_upload.period_start(:$column$.employee,:$column$.employee_number,:$column$.date_worked) from dual</DEFAULT_VALUE>
    <COMMENTS>First day of the OTL timecard period containing the Date, from the employee&apos;s OTL recurring period preference. Fills automatically once Employee and Date are entered. Rows of the same employee and period are deposited together as one timecard.</COMMENTS>
    <READ_ONLY>Y</READ_ONLY>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>11</COLUMN_NUMBER>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Date</COLUMN_TYPE_DSP>
    <DATA_TYPE>date</DATA_TYPE>
    <REQUIRED>Y</REQUIRED>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>12</COLUMN_NUMBER>
    <COLUMN_NAME>PROJECT</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV custom</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
ppev.project_id id,
ppev.project_number value,
ppev.project_name || nvl2(ppev.project_description,&apos; (&apos; || ppev.project_description || &apos;)&apos;,null) description
from
pa_projects_expend_v ppev
where
:$column$.date_worked between nvl(ppev.start_date,:$column$.date_worked) and nvl(ppev.completion_date,:$column$.date_worked)
order by
value,
description</LOV_QUERY_DSP>
    <COMMENTS>Project for a Projects time entry. Enter either Project, Task and Expenditure Type or an Hours Type, not both.</COMMENTS>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>13</COLUMN_NUMBER>
    <COLUMN_NAME>TASK</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV custom</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
ptev.task_id id,
ptev.task_number value,
ptev.task_name description
from
pa_projects_expend_v ppev,
pa_tasks_expend_v ptev
where
ppev.project_number=:$column$.project and
ppev.project_id=ptev.project_id and
ppev.project_ou=ptev.org_id and
:$column$.date_worked between nvl(ptev.start_date,:$column$.date_worked) and nvl(ptev.completion_date,:$column$.date_worked)
order by
value,
description</LOV_QUERY_DSP>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>14</COLUMN_NUMBER>
    <COLUMN_NAME>EXPENDITURE_TYPE</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV custom</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
petsl.expenditure_type value,
pet.description || &apos; (&apos; || pet.expenditure_category || &apos;) (&apos; || pet.unit_of_measure || &apos;)&apos; description
from
pa_expend_typ_sys_links petsl,
pa_expenditure_types pet
where
petsl.system_linkage_function=&apos;ST&apos; and
petsl.expenditure_type=pet.expenditure_type and
:$column$.date_worked between trunc(greatest(petsl.start_date_active,pet.start_date_active)) and nvl(trunc(least(petsl.end_date_active,pet.end_date_active)),:$column$.date_worked)
order by
value</LOV_QUERY_DSP>
    <COMMENTS>Straight time expenditure type for a Projects time entry.</COMMENTS>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>15</COLUMN_NUMBER>
    <COLUMN_NAME>HOURS_TYPE</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV custom</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
petf.element_type_id id,
petf.element_name value,
petf.description
from
pay_element_types_f petf
where
:$column$.date_worked between petf.effective_start_date and petf.effective_end_date
order by
value</LOV_QUERY_DSP>
    <COMMENTS>Payroll element for a payroll time entry (e.g. Regular Hours, Overtime). Enter either Project, Task and Expenditure Type or an Hours Type, not both.</COMMENTS>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>16</COLUMN_NUMBER>
    <COLUMN_NAME>HOURS</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Number</COLUMN_TYPE_DSP>
    <DATA_TYPE>number</DATA_TYPE>
    <REQUIRED>Y</REQUIRED>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>17</COLUMN_NUMBER>
    <COLUMN_NAME>LINE_COMMENT</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Char</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>18</COLUMN_NUMBER>
    <COLUMN_NAME>SUBMIT_TIMECARD</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <LOV_NAME>Yes</LOV_NAME>
    <LOV_GUID>8E2FF36EDEA679D2E0530100007F1FF2</LOV_GUID>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select &apos;Y&apos; id, xxen_util.meaning(&apos;Y&apos;,&apos;YES_NO&apos;,0) value, null description from dual</LOV_QUERY_DSP>
    <COMMENTS>Set to Yes on any row of a timecard to submit it for approval. Leave blank to save the timecard in Working status. A timecard that is already Submitted or Approved is re-submitted automatically when updated.</COMMENTS>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>19</COLUMN_NUMBER>
    <COLUMN_NAME>DELETE_LINE</COLUMN_NAME>
    <COLUMN_TYPE_DSP>LOV</COLUMN_TYPE_DSP>
    <DATA_TYPE>varchar2</DATA_TYPE>
    <LOV_NAME>Yes</LOV_NAME>
    <LOV_GUID>8E2FF36EDEA679D2E0530100007F1FF2</LOV_GUID>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select &apos;Y&apos; id, xxen_util.meaning(&apos;Y&apos;,&apos;YES_NO&apos;,0) value, null description from dual</LOV_QUERY_DSP>
    <COMMENTS>Set to Yes to delete this downloaded timecard line. Deleting all lines of a timecard deletes the whole timecard.</COMMENTS>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>20</COLUMN_NUMBER>
    <COLUMN_NAME>TIMECARD_BB_ID</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Number</COLUMN_TYPE_DSP>
    <DATA_TYPE>number</DATA_TYPE>
    <HIDDEN>Y</HIDDEN>
   </UPLOAD_COLUMNS_ROW>
   <UPLOAD_COLUMNS_ROW>
    <COLUMN_NUMBER>21</COLUMN_NUMBER>
    <COLUMN_NAME>DETAIL_BB_ID</COLUMN_NAME>
    <COLUMN_TYPE_DSP>Number</COLUMN_TYPE_DSP>
    <DATA_TYPE>number</DATA_TYPE>
    <HIDDEN>Y</HIDDEN>
   </UPLOAD_COLUMNS_ROW>
  </UPLOAD_COLUMNS>
  <UPLOAD_PARAMETERS>
  </UPLOAD_PARAMETERS>
  <UPLOAD_SQLS>
   <UPLOAD_SQLS_ROW>
    <SQL_TYPE>Error SQL</SQL_TYPE>
   </UPLOAD_SQLS_ROW>
   <UPLOAD_SQLS_ROW>
    <SQL_TYPE>Order By</SQL_TYPE>
    <SQL_TEXT>upload_row</SQL_TEXT>
   </UPLOAD_SQLS_ROW>
   <UPLOAD_SQLS_ROW>
    <SQL_TYPE>Success SQL</SQL_TYPE>
    <SQL_TEXT>select
xu.action_,
xu.status_,
xu.message_,
xu.modified_columns_,
xu.upload_row,
nvl(papf.full_name,xu.employee) employee,
nvl(papf.employee_number,xu.employee_number) employee_number,
nvl(xxen_util.meaning(hts.approval_status,&apos;HXC_APPROVAL_STATUS&apos;,3),xu.approval_status) approval_status,
nvl(xxen_util.yes(case when exists (select null from hxc_transaction_details htd, hxc_transactions ht where htd.time_building_block_id=htbb_det.time_building_block_id and htd.time_building_block_ovn=htbb_det.object_version_number and htd.status=&apos;SUCCESS&apos; and htd.transaction_id=ht.transaction_id and ht.type=&apos;RETRIEVAL&apos; and ht.status=&apos;SUCCESS&apos;) then &apos;Y&apos; end),xu.transferred) transferred,
nvl(trunc(hts.start_time),xu.period_starting) period_starting,
nvl(trunc(htbb_day.start_time),xu.date_worked) date_worked,
nvl(ppa.segment1,xu.project) project,
nvl(pt.task_number,xu.task) task,
nvl(decode(hta.attribute_category,&apos;PROJECTS&apos;,hta.attribute3),xu.expenditure_type) expenditure_type,
nvl(petf.element_name,xu.hours_type) hours_type,
nvl(htbb_det.measure,xu.hours) hours,
nvl(htbb_det.comment_text,xu.line_comment) line_comment,
xu.submit_timecard,
xu.delete_line,
nvl(hts.timecard_id,xu.timecard_bb_id) timecard_bb_id,
nvl(htbb_det.time_building_block_id,xu.detail_bb_id) detail_bb_id
from
xxen_otl_timecard_uploa_9018_u xu,
hxc_timecard_summary hts,
per_all_people_f papf,
hxc_time_building_blocks htbb_det,
hxc_time_building_blocks htbb_day,
(
select
htau.time_building_block_id,
htau.time_building_block_ovn,
hta.attribute_category,
hta.attribute1,
hta.attribute2,
hta.attribute3
from
hxc_time_attribute_usages htau,
hxc_time_attributes hta
where
htau.time_attribute_id=hta.time_attribute_id and
(hta.attribute_category=&apos;PROJECTS&apos; or hta.attribute_category like &apos;ELEMENT - %&apos;)
) hta,
pa_projects_all ppa,
pa_tasks pt,
pay_element_types_f petf
where
xu.status_code_=xxen_upload.status_success and
hts.timecard_id(+)=xu.timecard_bb_id and
papf.person_id(+)=hts.resource_id and
hts.start_time between papf.effective_start_date(+) and papf.effective_end_date(+) and
htbb_det.time_building_block_id(+)=xu.detail_bb_id and
htbb_det.scope(+)=&apos;DETAIL&apos; and
htbb_det.date_to(+)=to_date(&apos;4712-12-31&apos;,&apos;YYYY-MM-DD&apos;) and
htbb_day.time_building_block_id(+)=htbb_det.parent_building_block_id and
htbb_day.scope(+)=&apos;DAY&apos; and
htbb_day.date_to(+)=to_date(&apos;4712-12-31&apos;,&apos;YYYY-MM-DD&apos;) and
hta.time_building_block_id(+)=htbb_det.time_building_block_id and
hta.time_building_block_ovn(+)=htbb_det.object_version_number and
ppa.project_id(+)=decode(hta.attribute_category,&apos;PROJECTS&apos;,to_number(hta.attribute1)) and
pt.task_id(+)=decode(hta.attribute_category,&apos;PROJECTS&apos;,to_number(hta.attribute2)) and
petf.element_type_id(+)=case when hta.attribute_category like &apos;ELEMENT - %&apos; then to_number(substr(hta.attribute_category,11)) end and
htbb_day.start_time between petf.effective_start_date(+) and petf.effective_end_date(+)</SQL_TEXT>
   </UPLOAD_SQLS_ROW>
  </UPLOAD_SQLS>
  <UPLOAD_DEPENDENCIES>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>Default value</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.employee</FLEX_BIND>
    <COLUMN_NAME>EMPLOYEE</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>EMPLOYEE_NUMBER</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>LOV query</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.date_worked</FLEX_BIND>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>EXPENDITURE_TYPE</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>LOV query</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.date_worked</FLEX_BIND>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>HOURS_TYPE</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>Default value</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.date_worked</FLEX_BIND>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>PERIOD_STARTING</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>Default value</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.employee</FLEX_BIND>
    <COLUMN_NAME>EMPLOYEE</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>PERIOD_STARTING</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>Default value</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.employee_number</FLEX_BIND>
    <COLUMN_NAME>EMPLOYEE_NUMBER</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>PERIOD_STARTING</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>LOV query</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.date_worked</FLEX_BIND>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>PROJECT</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>LOV query</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.date_worked</FLEX_BIND>
    <COLUMN_NAME>DATE_WORKED</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>TASK</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
   <UPLOAD_DEPENDENCIES_ROW>
    <DEPENDENCY_TYPE>LOV query</DEPENDENCY_TYPE>
    <FLEX_BIND>:$column$.project</FLEX_BIND>
    <COLUMN_NAME>PROJECT</COLUMN_NAME>
    <DEPENDENT_COLUMN_NAME>TASK</DEPENDENT_COLUMN_NAME>
   </UPLOAD_DEPENDENCIES_ROW>
  </UPLOAD_DEPENDENCIES>
 </REPORTS_ROW>
</REPORTS>
</ROOT>
