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.