Posts

How to know who updated a folder in BI

Today somebody asked me how to find who updated my reports folder. I do not see it in the UI. All it says is it was last updated yesterday. So, to help find this out, I used following query : SELECT  report_folder, report_path, report_type_code, creation_date, created_by, last_update_date, last_updated_by   FROM GL_FRC_REPORTS_B  WHERE report_folder like '%401k%%'

Why do I get ???? in my etext report

When you have any syntax error in your etext template, the very first column will be prefixed by question mark/marks depending on the length of first field. Therefore, if you ever encounter this kind of issue in your etext template, check for all the syntax errors. In my case, I was getting it because I did not use IF THEN ELSE Condition correctly. Incorrect code: IF x=1 THEN '10' ELSE x=2 THEN '20' END IF Correct code: IF x=1 THEN '10' ELSE IF x=2 THEN '20' END IF

Getting value of Database Items

Many a times to debug issues with fast formula which uses database items, we want to know exact sql query executed to get the value. Also, to get YTD values of any balance using DBI, we may need to know the value it is returning based on the context which we are setting. Following steps can be used to get to the value of any DBI. 1. Get user entity id. SELECT USER_NAME, DEFINITION_TEXT, USER_ENTITY_ID FROM FF_DATABASE_ITEMS WHERE USER_NAME = 'XX_HOURS_ASG_YTD'; 2. Get Route Id. SELECT ROUTE_ID FROM FF_USER_ENTITIES WHERE USER_ENTITY_ID = 300000467685757; 3. Get the SQL query used for this DBI: SELECT TEXT FROM FF_ROUTES WHERE ROUTE_ID = 300000000327764; In this case as we are fetching YTD value which uses seeded function, it returns dual. 4. The result from above query may use contexts (&B1, &B2, etc). To get the context name use below query: select  a.context_id, a.context_name, b.sequence_no from ff_co

How to get all service endpoints of your environment

Image
You can use the catalog service "https://<test-pod>.hcm.us2.oraclecloud.com/fndAppCoreServices/ServiceCatalogService?WSDL" and call operation getAllServiceEndPoints to get all the service endpoints of your environment.

Audit on a user in Fusion HCM

If you want to know what all transactions was done by a user in your Fusion HCM Cloud, you need to query FND_AUDIT_USER_TABLE_ACCESS table to find list of tables any specific user has updated/inserted/deleted. If audit framework is enabled in your environment, you should also be able to capture the audit information whether a transaction was inserted, updated or deleted from the base table. Step 1: Use below sql to get the list of tables which are modified by the specific user. select * from FND_AUDIT_USER_TABLE_ACCESS where user_name like 'abc'; Step 2: Query shadow table to get the audit information. So, if the base table is PER_ALL_ASSIGNMENTS_M from step 1, query on the shadow table like below: select * from PER_ALL_ASSIGNMENTS_M_ where (last_updated_by = 'abc' or created_by = 'abc' ) ;

User Account in Suppressed Status

If you find that a worker's user account is in suppressed status, it means the username is already assigned to another user. Use following query to check the status of user account in LDAP. SELECT  PAPF.PERSON_NUMBER,         PPNF.LAST_NAME,         PPNF.FIRST_NAME,         PU.USERNAME,         PU.ACTIVE_FLAG,         LDAPU.REQUEST_STATUS,         LDAPU.USERNAME LDAP_USERNAME,         LDAPU.REQUEST_TYPE,         LDAPR.ACTIVE_FLAG LDAP_ACTIVE_FLAG,         LDAPR.REQUEST_DATE,         LDAPR.LDAP_REQUEST_ID FROM PER_ALL_PEOPLE_F PAPF,      PER_PERSON_TYPE_USAGES_M PPTUM,      PER_PERSON_NAMES_F PPNF,      PER_USERS PU,      PER_LDAP_REQUESTS LDAPR,      PER_LDAP_USERS LDAPU WHERE PAPF.PERSON_ID = PPNF.PERSON_ID AND ((TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE) OR (TRUNC(SYSDATE) < PAPF.EFFECTIVE_START_DATE)) AND ((TRUNC(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE AND PPNF.EFFECTIVE_END_DATE) OR (TRUNC(SYSDATE) < PPNF.EFF

SQL to get Payroll Balances in Oracle Fusion HCM

SELECT DISTINCT     papf.person_number,     pni.national_identifier_number,     prb.balance_value,     ppa.effective_date,     pbtv.balance_name,     pbd.base_dimension_name FROM     per_all_people_f           papf,     per_national_identifiers   pni,     per_periods_of_service     ppos,     per_all_assignments_f      paaf,     pay_payroll_assignments    ppasg,     pay_pay_relationships_dn   pprd,     pay_payroll_rel_actions    ppra,     pay_run_results            prr,     pay_run_result_values      prrv,     pay_input_values_f         pivf,     pay_balance_feeds_f        pbf,     pay_balance_types_vl       pbtv,     pay_payroll_actions        ppa,     pay_all_payrolls_f         prl,     pay_run_balances           prb,     pay_defined_balances       pdb,     pay_balance_dimensions     pbd WHERE 1=1     AND papf.person_number = <P_PERSON_NUMBER>     AND trunc(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date     AND papf.primar