Sunteți pe pagina 1din 12

HCM Extracts Bug Logging Checklist

1. Is this a production issue? Yes/No


2. What is the POD name?
3. Import and export of extract definition issues
a. Check for Pre-requisites
a. Review the import log download
b. Provide the import log and SQL query output in the bug
4. Extract validation issues
c. Check the validation errors in the Execution Tree page and fix them
d. Provide the validation log
5. Extract run failure
a. Is this an existing extract definition that was previously running? Yes/No
b. If you are facing this issue for the first time, then did you follow the troubleshooting guide to debug
the issue? Yes/No. Please update your troubleshooting analysis in the bug.
c. Are there any recent changes to the extract definition? If so, please explain the changes.
d. Please provide the following details and logs:
i. Extract definition name
ii. Extract flow instance name (payroll run)
iii. Exported extract definition file
iv. Screenshot that displays the results for the failed extract run
v. HCM Extract Process log
vi. Sub-process Logs - if requested by development
vii. Enable detailed logging before the run (GMFZT) - if requested by development
viii. BIP Process Log (if using BI Report in Delivery Option)
ix. BI Report History Logs (if using BI Report in Delivery Option)
6. Extract run performance issues
a. Are there any recent changes to the extract definition? If so, please explain the changes.
b. Please provide the following details and logs:
i. Extract run time for the previous run
ii. Number of extracts running at the same time, include a screenshot of the Checklist Overview
iii. Extract definition name
iv. Extract flow instance name (payroll run)
v. Exported extract definition file
vi. Fast formulas used in the extracts (if any)
vii. HCM Extract Process log
viii. Is detailed logging enabled? If Yes, then disable and re-run extract.
ix. Is this a multi-threaded extract? If so, how many threads have you used to run the extract? If
not, please check:
i. How to Design a Multi-threaded Extract
ii. How to Configure Threads
x. AWR Report during the time the extract was run. The extract log contains the start and end
time.
7. Extract design questions or retrieving unexpected results
a. Log a P3 Bug with functional requirement details and the extract definition
b. Explain the issue with sample output XML (mask data as required)
c. Changes Only Extract Issues
8. Other Issues
Import and Export Issues
There are prerequisites for importing the extract definition in the following scenarios:

Scenario Prerequisite Steps

Fast Formula is used for data group Create the fast formula needs in the destination system
criteria or rule based attributes. (with the same name and start date).

Attributes are based on Flexfield DBIs Generate the DBIs by running the ‘Generate Database
generated from the ‘Generate Database Items’ process and the same set of parameters used in the
Items’ process. source instance.

If issues still exist, then provide the import log you received when importing the extract definition in the
target environment.

Retrieve the output of the following query from the source environment where an extract definition
already exists (for example, from where you exported the extract definition). Substitute the <Source
Definition Name> with the definition from the source environment and run against the source
environment.

Query 1:

=========

select rb.block_name parent_block, nb.block_name next_block from


(
(SELECT report_block_Id, next_block_id
FROM pay_report_records_f
WHERE report_block_id IN
(
SELECT report_block_id
FROM pay_report_blocks
WHERE ext_definition_id =
(
SELECT ext_definition_id
FROM per_ext_definitions_vl
WHERE definition_name ='<Source Definition Name>'
)
) and NEXT_BLOCK_ID is not null
)
minus
(
SELECT PARENT_BLOCK_ID as report_block_Id, REPORT_BLOCK_ID as next_block_id
FROM per_ext_block_links
WHERE parent_block_id IN
(
SELECT report_block_id
FROM pay_report_blocks
WHERE ext_definition_id =
(
SELECT ext_definition_id
FROM per_ext_definitions_vl
WHERE definition_name ='<Source Definition Name>'
)
)
)
) cal, pay_report_blocks_vl rb, pay_report_blocks_vl nb where
cal.report_block_id = rb.report_block_id
and cal.next_block_id = nb.report_block_id;

Query 2:

=========

select rb.block_name Block_name, nb.block_name Mising_Next_block from


(
(
SELECT PARENT_BLOCK_ID as report_block_Id, REPORT_BLOCK_ID as next_block_id
FROM per_ext_block_links
WHERE parent_block_id IN
(
SELECT report_block_id
FROM pay_report_blocks
WHERE ext_definition_id =
(
SELECT ext_definition_id
FROM per_ext_definitions_vl
WHERE definition_name ='<Source Definition Name>'
)
)
)
minus
(SELECT report_block_Id, next_block_id
FROM pay_report_records_f
WHERE report_block_id IN
(
SELECT report_block_id
FROM pay_report_blocks
WHERE ext_definition_id =
(
SELECT ext_definition_id
FROM per_ext_definitions_vl
WHERE definition_name ='<Source Definition Name>'
)) and NEXT_BLOCK_ID is not null
)
) cal, pay_report_blocks_vl rb, pay_report_blocks_vl nb where
cal.report_block_id = rb.report_block_id
and cal.next_block_id = nb.report_block_id;

Extract Validation Issues


1. Navigate to the Extract Execution Tree.
2. Click on the Validate button.
3. Take screenshots of the messages.
4. Upload the screenshots to the bug and log the issues.
Considerations for critical validation issues:

1. While using child data group, have you:


a. Created a data group connection between the child data group and the parent data group?
b. Set the ‘Next Data Group’ value in the parent data group record definition to point to the
child data group?
2. Did you configure a valid report path and template name in the Delivery Options page?

How to Provide Extract Definition File


1. Navigate to the Manage HCM Extract Definition task.
2. Search and select the extract definition.
3. On the Search Results, select the extract and click on ‘Export Extract’.
4. Save the definition in the local file system and enter the file details in the bug.
5. If using fast formulas in the data group criteria or attribute, then enter the fast formula code in
the bug also.

Note: Do not provide the file generated by the Export XSD Schema button on the Extract Execution
Tree page.

How to Provide the Process Log (Archive Log)


In the Payroll Checklists work area, where you submit the extract run, follow the steps below to
access the log details:
1. Select the Go to Task icon for the submitted extract.
2. Select the process ID for the archived process in the Processes and Reports hierarchy tree.

3. Download the archive log and upload to the bug for further analysis.

4. Retrieve the output of the following query:


-----------
Query 1: Get instances status of particular extract definition. Substitute <Definition Name> with extract definition name
causing issue.
--------------

SELECT fi.instance_name
,pc.checklist_name
,pci.worklist_id
,pci.status checkliststatus
,fti.status flowtaskinstancestatus
,fti.flow_task_instance_id
FROM pay_flow_instances fi
,pay_checklists_vl pc
,pay_flow_task_instances fti
,pay_checklist_instances pci
WHERE fi.flow_instance_id = pci.flow_instance_id
AND fi.flow_instance_id = fti.flow_instance_id
AND fti.base_flow_task_id = pc.base_flow_task_id
AND pc.base_checklist_id = pc.base_checklist_id
AND pci.base_checklist_id = pc.base_checklist_id
AND pc.checklist_name= '<Definition_name>'
order by fi.creation_date desc;

How to provide Sub-process Logs


Sub process logs are required if an extract is multi-threaded and threads are configured for the run.
You will not view these logs if the extract is not configured for multi-threading.

Note: In this section, we refer to the Process ID 340493 which was generated for the archive job
from the previous step.

1. Go to Navigator > Scheduled Process

If you ran the extract process very recently, you can view it in the latest process list.

2. All the processes created after the above process (Archive Payroll Information and Generate
Report), that are of type ‘Payroll Sub process’ would ideally be the child sub processes and we
will require logs associated with them.
3. You can also search with Process ID minus 1 (for example, 340492) in the Scheduled Process
page. Select the Hierarchy button and expand the tree. After you ensure that Archive Payroll
Information and Generate Report Job (340493) are children, provide us all the log files clicking
on each child node of the tree starting with Manage Payroll Flow.

Note: Select the View Log button on the Search Results table or the log URL in the details
section to download the log.

4. If you do not find any such child processes, run below SQL query (in BIP) to find parent process.
Search the process in Scheduled Processes UI and click on Hierarchy Radio Button and expand
the tree to show all child process of the extract run. Provide us all the log files clicking on each
child node of the tree starting with Manage Payroll Flow.
------------------
Query 1: Find parent request id of extract run to search in Scheduled Process.
-------------------
SELECT fti.status,
fti.flow_task_instance_id,
ft.base_flow_Task_name,
pc.checklist_name,
pr.call_type,
pr.call_id
FROM pay_flow_Task_instances fti,
pay_flow_tasks_vl ft,
pay_checklists_vl pc,
pay_requests pr
WHERE fti.flow_instance_id =
(SELECT flow_instance_id
FROM pay_flow_instances WHERE instance_name = '<Flow_Instance_Name>'
)
AND fti.base_flow_task_id = ft.base_flow_task_id
AND ft.base_flow_task_id = pc.base_flow_task_id
AND fti.flow_task_instance_id = pr.flow_task_instance_id
AND call_type = 'FLOW_ESS' ;

How to Provide BI Process Logs


Note: In this section, we refer to the Process ID 340493 which was generated for the archive job
from the previous step.

1. Go to Navigator > Scheduled Process

If you ran the extract process very recently, you can view it in the latest process list.

2. All the processes created after the above process (Archive Payroll Information and Generate
Report), that are of type ‘Archive Integration with BI Publisher’ would ideally BI processes and
we will require logs associated with them.
3. You can also search with Process ID minus 1 (for example, 340492) in Scheduled Process page.
Select the Hierarchy button and expand the tree. After you ensure that Archive Payroll
Information and Generate Report Job (340493) are children, provide us all the log files clicking
on each child nodes of the tree starting with Manage Payroll Flow.

Note: Select the View Log button on the Search Results table or the log URL in the details
section to review the log information.

Select the View Log button on the Search Results table or the log URL in the details section to
download the log.

4. Provide output of following query:


-----------
Query 1: State of the BI job, Substitute the <flow instance> with Payroll Run Name errored out
-------------
select requestid, name , definition, parentrequestid, state, scheduled, processstart, processend from
fusion.ess_request_history where parentrequestid in(SELECT
pr.call_id
FROM pay_flow_Task_instances fti,
pay_flow_tasks_vl ft,
pay_checklists_vl pc,
pay_requests pr
WHERE fti.flow_instance_id =
(SELECT flow_instance_id
FROM pay_flow_instances
WHERE instance_name = '<Flow_Instance_Name>')
AND fti.base_flow_task_id = ft.base_flow_task_id
AND ft.base_flow_task_id = pc.base_flow_task_id
AND fti.flow_task_instance_id = pr.flow_task_instance_id
AND call_type IN ('FLOW_ESS', 'ESS')) order by requestid ;

How to Retrieve BIP Report History Logs


If the extract still runs into failure after the delivery option is attached with valid report and
template (and you have followed the steps in the Trouble Shooting Guide), then follow the steps
below and provide the screenshots and logs in the bug.

1. After you run the extract and once the extract goes to error, navigate to BIP and find the report
attached to the delivery option. Click on More and then History.

2. In the Report History page, remove the value in the Owner field (make it blank) and click on
Search.

3. Click on the latest report job name in the search results and select the Error Icon (in red) and
add the error information shown in the popup to the bug.
How to Set Up Multi-threading
1) Set up multi threading database item in any one of the data groups (preferably in the root data
group).
If you select the PAYROLL_RELATIONSHIP_ID equivalent DBI as the threading database item (present
in the user entity), then you must select Relationship Actions in the Threading Action Type field. If
you select any unique DBI item other than Payroll Relationship ID, then you can select Object Actions
as the threading action type.

For example: if you select the PER_EXT_PAY_EMPLOYEES_UE user entity, then you select
PER_EXT_PAY_HR_ASSIGNMENT_ID as the threading database item and Object Actions as the
threading action type.
Note: Perform the above step for a new extract data group only. You cannot modify existing data
groups to add a threading database item.

How to Configure Threads


1. Navigate to the Manage Payroll Process Configuration task from Setup and Maintenance.

2. Check and modify the values of the following parameters:

a. Parameter Name: Threads, this parameter determines the total number of sub
processes that run under the concurrent manager.

b. Default: 1; minimum: 1. Modify the value to 8 unless the current value is already 8. If
you already have value as 8 or above 8. Do not modify the value.

Note: If you have no such parameter, you need to create the value by clicking on (+) and choosing
above parameter in Lookup.

Changes Only Extract issues


1. Getting Duplicate Data

a. This may happen because of design issues

i. Multi-threading DBI chosen is not unique for the data group. Please configure
correct multi-threading DBI or atleast provide the filter that will ensure the
threading object value is unique for the data group.

ii. If you have marked Key Element wrongly for the data group.

2. Changes Only producing output even if there is not change:

a. This may happen because of design issues

i. Multi-threading DBI chosen is not unique for the data group. Please configure
correct multi-threading DBI or atleast provide the filter that will ensure the
threading object value is unique for the data group.

ii. If you have marked Key Element wrongly for the data group.

b. To further Debug/Find the change that has caused extraction


i. Open the Output XML and trace an Object Action (<OBJECT_ACTION_ID>) of
the data that is extracted even if there is no change. Substitute the value in
below SQL

select max(pra2.OBJECT_ACTION_ID) OBJECT_ACTION_ID


from FUSION.PAY_OBJECT_ACTIONS pra,
pay_payroll_actions ppa,
FUSION.PAY_OBJECT_ACTIONS pra2,
pay_payroll_actions ppa2
where pra.OBJECT_ACTION_ID= <OBJECT_ACTION_ID>
and pra.payroll_action_id=ppa.payroll_action_id
and ppa.report_category_id=nvl(ppa2.report_category_id,-999)
and ppa2.payroll_action_id != ppa.payroll_action_id
and ppa2.action_status not in ('U','P')
and ppa2.payroll_action_id=pra2.payroll_action_id
and pra2.OBJECT_ID=pra.OBJECT_ID
and pra2.action_status='C';
ii. Assume that output of above SQL is <OBJECT_ACTION_ID_2>

iii. Compare the records generated by below query and find gaps. Also, please
upload the output of the SQL for our analysis.

select * from PAY_ACTION_INFORMATION where ACTION_CONTEXT_ID in


(<OBJECT_ACTION_ID>,<OBJECT_ACTION_ID_2>);

Other Issues
1. Issue with Event based Extract

a. Event Based Extracts suddenly stopped working and does not detect changes.

i. Please get output of following query

select definition_name from per_ext_definitions_vl where ext_definition_id in


(select ext_definition_id from per_ext_definitions_vl where attribute26 is not null
minus
select ext_definition_id from pay_report_blocks prb,
ff_dbi_usages use,
ff_dbi_groups grp,
ff_contexts ctx
where prb.multi_dbi_id is not null
and prb.multi_dbi_id = use.dbi_id
and use.dbi_group_id = grp.dbi_group_id
and grp.context_id = ctx.context_id);

ii. Open Extract Definitions in above output. See if you have marked Event Group
recently for the extract and clear the value. You should not mark any Extract
with Event Group unless it has atleast one multi-threaded data group.
Documentation on MOS

Note Details
1677090.1 Fusion HCM Extract Step-by-Step Approach and Troubleshooting Guide
1964920.1 Oracle HCM Extracts: Running a Changes-Only Extract
1559127.1 Oracle Fusion HCM Extracts User Guide
1573099.1 Oracle Fusion HCM Extracts: Delivery Options
1536245.1 How to Enable Logging for Oracle Fusion Global Payroll – Provide GMZFT as
value to Payroll Process Configuration Parameter - "Logging Category
Detailed information that is used for investigating problems. Default: no
logging"
1559161.1 Oracle Fusion HCM Extracts FAQs for Release 5
1565118.1 Database Items for Extracts and Formulas in Oracle Fusion HCM
Generate DBIs for Flexfields

S-ar putea să vă placă și