In this article we will look into the EDIT button grayed out on the Employment screen for an employee and how to resolve this issue.
If there are any transactions performed on the employee and the approval is in progress then we won’t be able to perform any more changes on the employee till the pending transaction has been approved/rejected by the approver.
However there are cases where there was no direct transaction performed on the employee and still the EDIT option is grayed out and not able to perform any transactions on the employee.
There are two types of the transactions which can block the Edit button
1. Direct transaction
2. indirect/inflight transaction
Table of Contents
What is Direct Transaction and how to find it?
The transaction which was directly performed on the person and it is under pending status. (e.g. Promotion transaction is performed on person A and
while it is in pending status, none of the Employment transaction is allowed (except Termination and Resignation) until Promotion transaction is under pending status.)
Use the following query to find Employment Direct Pending transactions ( Note: If below query gives exceed time limit error, then first run an inner
query to find the Person_Id and then replace inner query block with person Id)
Query to find Direct Transaction source
Replace <<PERSON_NUMBER>> with person number for whom edit button grey out.
SELECT d.state, d.status,h.* FROM fusion.HRC_TXN_HEADER h, FUSION.HRC_TXN_DATA d WHERE h.Transaction_id = d.Transaction_id and h.OBJECT in ('PER_ALL_ASSIGNMENTS_M','PER_PERIODS_OF_SERVICE') AND ( h.subject_id IN ( SELECT DISTINCT PERSON_ID FROM fusion.PER_ALL_PEOPLE_F WHERE person_number IN ('<<PERSON_NUMBER>>') ) OR h.object_id IN (SELECT DISTINCT assignment_id FROM fusion.per_all_assignments_m WHERE person_id IN (SELECT DISTINCT PERSON_ID FROM fusion.PER_ALL_PEOPLE_F WHERE PERSON_NUMBER IN ('<<PERSON_NUMBER>>') ) ) OR h.object_id IN (SELECT DISTINCT period_of_service_id FROM fusion.per_periods_of_service WHERE person_id IN (SELECT DISTINCT PERSON_ID FROM fusion.PER_ALL_PEOPLE_F WHERE PERSON_NUMBER IN ('<<PERSON_NUMBER>>') ) ) ) order by h.creation_date desc
What is Indirect transaction and how to find it?
The transaction which was not directly performed on the person instead it was performed on his manager where this person being reassigned or added as Directs.
It will block the Person transaction even though the transaction was performed on his manager as once transaction gets approved, the application will create a split in person/Directs assignment and assignment supervisor table. ( if allowed to perform the transaction(i,e direct transaction ) on Person /Reportee who has an Indirect pending transaction then once indirect transaction get approved, it will make a direct transaction to be failed due to the data conflicts.
Use the following query to find Employment Direct Pending transactions (Note: Parent Person Number is a person on whom transaction was performed, Module Identifier gives an idea of Process Name and Comment will give an idea about whether blocking person is reassigned or added as directs as part of a transaction)
Query to find Indirect Transactions source
Replace <<PERSON_NUMBER>> with the person number for whom transaction is blocked / edit button is grayed out
SELECT HrcTxnHeaderPEO.MODULE_IDENTIFIER, HrcTxnHeaderPEO.creation_date, HrcTxnHeaderPEO.created_by, HrcTxnHeaderPEO.TRANSACTION_ID, HrcTxnHeaderPEO.OBJECT, HrcTxnHeaderPEO.OBJECT_ID, HrcTxnHeaderPEO.SUBJECT_ID, p.person_number as PARENT_Person_number, pn.display_name as PARENT_Person_name, HrcTxnHeaderPEO.TRANSACTION_ID AS TRANSACTION_ID1, HrcTxnDataPEO.TRANSACTION_DATA_ID, HrcTxnDataPEO.TRANSACTION_ID AS TRANSACTION_ID2, HrcTxnDataPEO.STATUS, HrcTxnDataPEO.STATE, EmplTxnChildPEO.COMMENTS FROM fusion.PER_EMPL_CHILD_TXN_DATA EmplTxnChildPEO, fusion.HRC_TXN_HEADER HrcTxnHeaderPEO, fusion.HRC_TXN_DATA HrcTxnDataPEO, fusion.PER_ALL_PEOPLE_F p, fusion.PER_PERSON_NAMES_F pn WHERE HrcTxnHeaderPEO.TRANSACTION_ID =HrcTxnDataPEO.TRANSACTION_ID AND HrcTxnHeaderPEO.TRANSACTION_ID =EmplTxnChildPEO.PARENT_TXN_ID AND HrcTxnHeaderPEO.OBJECT_ID =EmplTxnChildPEO.PARENT_OBJ_ID AND p.PERSON_ID = HrcTxnHeaderPEO.SUBJECT_ID AND sysdate between p.EFFECTIVE_START_DATE and p.EFFECTIVE_END_DATE AND p.PERSON_ID = pn.PERSON_ID AND sysdate between pn.EFFECTIVE_START_DATE and pn.EFFECTIVE_END_DATE AND pn.NAME_TYPE='GLOBAL' AND ( ( (EmplTxnChildPEO.CHILD_OBJ_ID IN (SELECT assignment_id FROM fusion.PER_ALL_ASSIGNMENTS_M WHERE person_id IN ( SELECT DISTINCT PERSON_ID FROM fusion.PER_ALL_PEOPLE_F WHERE PERSON_NUMBER IN ('<<PERSON_NUMBER>>') ) ) ) AND (UPPER(HrcTxnDataPEO.STATUS) = UPPER('PENDING') ) ) )
Tip: With these queries you can find out if there is any direct/indirect pending transaction due to which the EDIT button is grayed out. You can follow up with the approver who has the pending transaction and get it approved to resolve it.Hope this helps when you get into similar issue.
Top 10 Popular Posts from our Knowledgebase
- DataFusing FREE Cloud based SQL Developer like tool for Oracle Cloud
- Core HR Entity Relationship Diagram (ERD) for HCM Cloud
- Most Frequently used Document IDs from Oracle Support
- FREE Oracle Training & Accreditation with Oracle Learning Explorer
- How HDL Transformation Formula works with ElementEntry Sample
- FREE Oracle Fusion Demo Instance (VISION) Access
- Top 10 FREE useful tools for Fusion Consultants
- Learning Fusion HCM Technical Skillset
- Sample HCM Data Loader (HDL) files for all Business Objects
- Most frequently used Tables list in Fusion HCM