You are on page 1of 10

Technical Trick | How to retriev the password for any e-Business applications

user
This script is for retrieving the password for any e-Business applications user
First: Login to your DB using APPS user
Second: Run the following script:
CREATE OR REPLACE PACKAGE XX_get_pwd
AS
FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
RETURN VARCHAR2;
END XX_get_pwd;
/
--Package Body
CREATE OR REPLACE PACKAGE BODY XX_get_pwd
AS
FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
RETURN VARCHAR2
AS
LANGUAGE JAVA
NAME
'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String)
return java.lang.String';
END XX_get_pwd;
/
Third: Run the following SQL statement after you put your username (you want to get its
password) in the parameter:
--Note: please enter the application username in the input parameter in CAPITAL case
SELECT usr.user_name,
XX_get_pwd.decrypt
((SELECT (SELECT XX_get_pwd.decrypt
(fnd_web_sec.get_guest_username_pwd,
usertable.encrypted_foundation_password
)
FROM DUAL) AS apps_password
FROM fnd_user usertable
WHERE usertable.user_name =
(SELECT SUBSTR
(fnd_web_sec.get_guest_username_pwd,
1,

INSTR
(fnd_web_sec.get_guest_username_pwd,
'/'
)
-1
)
FROM DUAL)),
usr.encrypted_user_password
) PASSWORD
FROM fnd_user usr
WHERE usr.user_name = '&USER_NAME';

DBA | SQL Query to get all the scheduled concurrent program in the
applications
SELECT r.request_id,
CASE
WHEN pt.user_concurrent_program_name = 'Report Set'
THEN DECODE (r.description,
NULL, pt.user_concurrent_program_name,
r.description
|| ' ('
|| pt.user_concurrent_program_name
|| ')'
)
ELSE pt.user_concurrent_program_name
END job_name,
u.user_name requestor, u.description requestor_description,
u.email_address, frt.responsibility_name requested_by_resp,
r.request_date, r.requested_start_date,
DECODE (r.hold_flag, 'y', 'yes', 'n', 'no') on_hold,
CASE
WHEN r.hold_flag = 'y'
THEN SUBSTR (u2.description, 0, 40)
END last_update_by,
CASE
WHEN r.hold_flag = 'y'
THEN r.last_update_date
END last_update_date, r.argument_text PARAMETERS,
NVL2 (r.resubmit_interval,
'periodically',
NVL2 (r.release_class_id, 'On specific days', 'Once')
) AS schedule_type,
r.resubmit_interval resubmit_every,
r.resubmit_interval_unit_code resubmit_time_period,

DECODE (r.resubmit_interval_type_code,
'START', 'From the start of the prior run',
'END', 'From the Completion of the prior run'
) apply_the_update_option,
r.increment_dates,
TO_CHAR ((r.requested_start_date), 'HH24:MI:SS') start_time
FROM applsys.fnd_concurrent_programs_tl pt,
applsys.fnd_concurrent_programs pb,
applsys.fnd_user u,
applsys.fnd_user u2,
applsys.fnd_printer_styles_tl s,
applsys.fnd_concurrent_requests r,
applsys.fnd_responsibility_tl frt
WHERE pb.application_id = r.program_application_id
AND pb.concurrent_program_id = r.concurrent_program_id
AND pb.application_id = pt.application_id
AND r.responsibility_id = frt.responsibility_id
AND pb.concurrent_program_id = pt.concurrent_program_id
AND u.user_id = r.requested_by
AND u2.user_id = r.last_updated_by
AND s.printer_style_name(+) = r.print_style
AND r.phase_code = 'P'
-- AND pb.concurrent_program_name = :p_concurrent_short_name

Payroll: SQL Query to get the elements values changes


SELECT per.employee_number, NVL (per.known_as, per.full_name) employee_name,
org.NAME ORGANIZATION, pj.NAME job, pap.NAME POSITION,
NVL (petf.reporting_name, petf.element_name) element_name,
peevf.effective_start_date change_date,
(SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1
AND peevf_old.effective_end_date = peevf.effective_start_date - 1
AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_old.input_value_id = peevf.input_value_id
AND peevf_old.element_entry_id = peevf.element_entry_id)
old_value,
peevf.screen_entry_value new_value,
( NVL (peevf.screen_entry_value, 0)
- NVL ((SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1
AND peevf_old.effective_end_date =

peevf.effective_start_date - 1
AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_old.input_value_id = peevf.input_value_id
AND peevf_old.element_entry_id = peevf.element_entry_id),
0
)
) difference,
(SELECT peevf_current.screen_entry_value
FROM pay_element_entry_values_f peevf_current
WHERE 1 = 1
AND peevf_current.effective_end_date =
TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND peevf_current.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_current.input_value_id = peevf.input_value_id
AND peevf_current.element_entry_id = peevf.element_entry_id)
current_value
FROM pay_element_types_f petf,
pay_input_values_f pivf,
pay_element_entries_f peef,
pay_element_entry_values_f peevf,
per_all_assignments_f pas,
per_all_people_f per,
per_jobs pj,
per_all_positions pap,
hr_all_organization_units org
WHERE 1 = 1
AND petf.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND petf.element_type_id = pivf.element_type_id
AND pivf.NAME = 'Amount'
AND pivf.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND petf.element_type_id = peef.element_type_id
AND peef.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND peef.element_entry_id = peevf.element_entry_id
AND pivf.input_value_id = peevf.input_value_id
AND peef.assignment_id = pas.assignment_id
AND pas.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND pas.person_id = per.person_id
AND per.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND (SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1
AND peevf_old.effective_end_date = peevf.effective_start_date - 1
AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id

AND peevf_old.input_value_id = peevf.input_value_id


AND peevf_old.element_entry_id = peevf.element_entry_id) IS NOT NULL
AND pas.job_id = pj.job_id(+)
AND pas.position_id = pap.position_id(+)
AND pas.organization_id = org.organization_id
----------------------------- AND per.employee_number = '10002'
-- AND petf.element_name = 'Basic Salary'
ORDER BY per.employee_number, petf.element_name

OAF: SQL Query to get all the personalization on the OAF pages in the
application
SELECT PATH.path_docid perz_doc_id,
jdr_mds_internal.getdocumentname (PATH.path_docid) perz_doc_path
FROM jdr_paths PATH
WHERE PATH.path_docid IN (
SELECT DISTINCT comp_docid
FROM jdr_components
WHERE comp_seq = 0
AND comp_element = 'customization'
AND comp_id IS NULL)
AND UPPER (jdr_mds_internal.getdocumentname (PATH.path_docid)) LIKE
UPPER ('%AbsenceHomePagePG%')
ORDER BY perz_doc_path;

DBA: SQL Query to get application users of a a responsibility


--Kindly change the highlighted in Yellow to your responsibility name
SELECT fu.user_name "User Name", fr.responsibility_name "Responsibility",
fa.application_name "Application", fur.start_date "From",
fur.end_date "To", fm.user_menu_name "Menu",
frg.request_group_name "Request Group"
FROM fnd_user fu,
fnd_user_resp_groups_all fur,
fnd_responsibility_vl fr,
fnd_application_vl fa,
fnd_menus_vl fm,
fnd_request_groups frg
WHERE fu.user_id = fur.user_id
AND fur.responsibility_id = fr.responsibility_id
AND fr.application_id = fa.application_id
AND fr.menu_id = fm.menu_id
AND fr.request_group_id = frg.request_group_id(+)
AND UPPER (fr.responsibility_name) = UPPER ('Application Developer')

DBA: SQL Query to get a responsibilities of an application user


--Kindly change the highlighted in Yellow to your application user
SELECT fu.user_name "User Name", fr.responsibility_name "Responsibility",
fa.application_name "Application", fur.start_date "From",
fur.end_date "To", fm.user_menu_name "Menu",
frg.request_group_name "Request Group"
FROM fnd_user fu,
fnd_user_resp_groups_all fur,
fnd_responsibility_vl fr,
fnd_application_vl fa,
fnd_menus_vl fm,
fnd_request_groups frg
WHERE fu.user_id = fur.user_id
AND fur.responsibility_id = fr.responsibility_id
AND fr.application_id = fa.application_id
AND fr.menu_id = fm.menu_id
AND fr.request_group_id = frg.request_group_id(+)
AND UPPER (fu.user_name) = UPPER ('mahmoud')

Oracle Performance Management OPM: SQL Query to get an appraisal


employee details
SELECT papr.main_appraiser_id, papr.appraiser_person_id,
papr.appraisee_person_id, papr.appraisal_id,
papr.appraisal_template_id, papr.appraisal_date,
papr.appraisal_period_start_date, papr.appraisal_period_end_date,
papr.TYPE appraisal_type, pap.person_id, pap.employee_number,
pap.attribute3 employee_name, pas.assignment_id,
pas.assignment_number, pas.position_id, pos.NAME position_name,
pas.organization_id, org.NAME org_name, org.TYPE org_type,
---------------------------------------------NVL ((SELECT SUM (TO_NUMBER (prl.step_value)) / COUNT (*)
FROM per_performance_ratings ppr, per_rating_levels prl
WHERE 1 = 1
AND ppr.appraisal_id = papr.appraisal_id
AND ppr.person_id = papr.main_appraiser_id
AND ppr.performance_level_id = prl.rating_level_id),
0
) objective_score,
0.5 competence_weightage, 0.5 objective_weightage
FROM per_appraisals papr,
per_all_people_f pap,
per_all_assignments_f pas,

hr_all_organization_units org,
hr_all_positions_f pos
WHERE 1 = 1
AND papr.appraisee_person_id = pap.person_id
AND pap.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND pap.person_id = pas.person_id
AND pas.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND pas.organization_id = org.organization_id
AND pas.position_id = pos.position_id
AND pos.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND appraisal_system_status <> 'DELETED'
-----------------------------------------------------AND papr.plan_id = NVL (:p_plan_id, 103)
AND (pap.person_id = :p_person_id OR :p_person_id IS NULL)
AND ( TO_NUMBER (TO_CHAR (papr.appraisal_period_start_date, 'RRRR')) =
:p_year
OR :p_year IS NULL
)
AND (org.organization_id = :p_org_id OR :p_org_id IS NULL)
---------------------------------------------------ORDER BY org.TYPE, org.NAME, TO_NUMBER (pap.employee_number)

HRMS: SQL Query to get AME admin users


This SQL statement to get all the application users which have the responsibility of 'Approvals
Management Business Analyst', which means that they are AME admin users.
SELECT DISTINCT fu.user_name, fu.user_id, frtl.responsibility_name
FROM fnd_user fu,
fnd_user_resp_groups furgd,
fnd_responsibility_tl frtl
WHERE furgd.user_id = fu.user_id
AND furgd.responsibility_id = frtl.responsibility_id
AND frtl.responsibility_name LIKE
'Approvals Management Business Analyst' ;

Payroll: SQL Query to get the elements values changes


SELECT per.employee_number, NVL (per.known_as, per.full_name) employee_name,
org.NAME ORGANIZATION, pj.NAME job, pap.NAME POSITION,
NVL (petf.reporting_name, petf.element_name) element_name,
peevf.effective_start_date change_date,
(SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1

AND peevf_old.effective_end_date = peevf.effective_start_date - 1


AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_old.input_value_id = peevf.input_value_id
AND peevf_old.element_entry_id = peevf.element_entry_id)
old_value,
peevf.screen_entry_value new_value,
( NVL (peevf.screen_entry_value, 0)
- NVL ((SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1
AND peevf_old.effective_end_date =
peevf.effective_start_date - 1
AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_old.input_value_id = peevf.input_value_id
AND peevf_old.element_entry_id = peevf.element_entry_id),
0
)
) difference,
(SELECT peevf_current.screen_entry_value
FROM pay_element_entry_values_f peevf_current
WHERE 1 = 1
AND peevf_current.effective_end_date =
TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND peevf_current.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_current.input_value_id = peevf.input_value_id
AND peevf_current.element_entry_id = peevf.element_entry_id)
current_value
FROM pay_element_types_f petf,
pay_input_values_f pivf,
pay_element_entries_f peef,
pay_element_entry_values_f peevf,
per_all_assignments_f pas,
per_all_people_f per,
per_jobs pj,
per_all_positions pap,
hr_all_organization_units org
WHERE 1 = 1
AND petf.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND petf.element_type_id = pivf.element_type_id
AND pivf.NAME = 'Amount'
AND pivf.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND petf.element_type_id = peef.element_type_id
AND peef.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')

AND peef.element_entry_id = peevf.element_entry_id


AND pivf.input_value_id = peevf.input_value_id
AND peef.assignment_id = pas.assignment_id
AND pas.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND pas.person_id = per.person_id
AND per.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND (SELECT peevf_old.screen_entry_value
FROM pay_element_entry_values_f peevf_old
WHERE 1 = 1
AND peevf_old.effective_end_date = peevf.effective_start_date - 1
AND peevf_old.element_entry_value_id =
peevf.element_entry_value_id
AND peevf_old.input_value_id = peevf.input_value_id
AND peevf_old.element_entry_id = peevf.element_entry_id) IS NOT NULL
AND pas.job_id = pj.job_id(+)
AND pas.position_id = pap.position_id(+)
AND pas.organization_id = org.organization_id
----------------------------- AND per.employee_number = '10002'
-- AND petf.element_name = 'Basic Salary'
ORDER BY per.employee_number, petf.element_name

HRMS: SQL Query to get payslip of an employee


Hello Everybody,
below is a useful SQL statement to retrive a payslip of a certain employee in a certain calendar
month.
just replace the calendar name and the emp number with yours and run it.
SELECT ppa.date_earned, per.full_name, per.employee_number,
NVL (pet.reporting_name, pet.element_name), piv.NAME,
prrv.result_value, ptp.period_name
FROM pay_payroll_actions ppa,
pay_assignment_actions pac,
per_all_assignments_f ass,
per_all_people_f per,
pay_run_results prr,
pay_element_types_f pet,
pay_input_values_f piv,
pay_run_result_values prrv,
per_time_periods_v ptp
WHERE ppa.payroll_action_id = pac.payroll_action_id
AND pac.assignment_id = ass.assignment_id
AND ass.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')

AND ass.person_id = per.person_id


AND per.effective_end_date = TO_DATE ('12/31/4712', 'MM/DD/RRRR')
AND pac.assignment_action_id = prr.assignment_action_id
AND prr.element_type_id = pet.element_type_id
AND prr.run_result_id = prrv.run_result_id
AND pet.element_type_id = piv.element_type_id
AND piv.input_value_id = prrv.input_value_id
AND ppa.time_period_id = ptp.time_period_id
----------------------------------------AND pet.element_name = 'Basic Salary'
-- AND piv.NAME = 'Pay Value'
AND per.employee_number = '91314'
AND ptp.period_name like '6 2008 Calendar Month'
ORDER BY 1;

Why should Apps & Applsys passwords always be the same?


The need to have the same password for Apps and Applsys is because when
you sign on to apps, intially it connects to a public schema called
APPLSYSPUB. This validates AOL username and password that we enter
(operations/welcome using guest user account. Once this is verified we
select responsibility, this is validated by APPLSYS schema and then it
connects to APPS schema.
Since it uses both applsys and apps during signon process this expects both
the password to be identical. Try changing apps password to something else
and try to login, the validation at the last stage would fail. This would result
in failure of application login. Apps is a universal schema has synonyms to all
base product tables and sequences. This also has code objects for all
products (triggers, views, packages, synonyms etc.). Applsys schema has
applications technology layer products like FND and AD etc.

You might also like