Tuesday, May 26, 2015
Query to drill down from PO header to shipment
SELECT poll.*
FROM po_headers_all poh,
po_releases_all pora,
po_lines_all pla,
po_line_locations_all poll
WHERE poh.po_header_id = pora.po_header_id
AND pla.po_line_id = poll.po_line_id
AND poll.po_release_id = pora.po_release_id
AND poh.segment1 = :po_number
AND pora.release_num = :po_release_num
AND pla.line_num = :po_line_num
AND poh.org_id = :org_id;
Thursday, May 21, 2015
How To Disable/End Date/ Delete Responsibilities of a User from Backend/API
Below is the query.
Please not Responsibilities cannot be deleted in Oracle Apps from a User. It can only be Disabled or End Dated.
BEGIN
FOR I
IN (SELECT fu.user_id,
fu.user_name,
furg.RESPONSIBILITY_APPLICATION_ID,
frv.RESPONSIBILITY_NAME,
frv.RESPONSIBILITY_KEY,
fa.application_short_name,
frg.security_group_key
FROM FND_USER fu,
FND_USER_RESP_GROUPS furg,
FND_RESPONSIBILITY_VL frv,
fnd_application fa,
fnd_security_groups frg
WHERE fu.user_id = furg.user_id
AND furg.responsibility_id = frv.responsibility_id
AND frv.application_id = fa.application_id
AND frv.data_group_id = frg.security_group_id
AND fu.user_name = 'ABC'
AND frv.RESPONSIBILITY_NAME IN ('Receivables Support'))
LOOP
BEGIN
DBMS_OUTPUT.put_line (
i.user_name
|| i.application_short_name
|| i.responsibility_key
|| i.security_group_key);
fnd_user_pkg.delresp (username => i.user_name,
resp_app => i.application_short_name,
resp_key => i.responsibility_key,
security_group => i.security_group_key);
DBMS_OUTPUT.put_line (
i.RESPONSIBILITY_NAME || ' End Dated Successfully ');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (
'Error encountered while deleting responsibilty from the user and the error is '
|| SQLERRM);
END;
/
Tuesday, May 19, 2015
Wednesday, May 13, 2015
FND DEBUG / FND LOG MESSAGES
What is FND Debug Log ?
- It helps you pinpoint the cause of error in standard Oracle Code, by making debug messages to appear in a centralized table named FND_LOG_MESSAGES.
- You can design and build your custom extensions in a manner that can easily be debugged. This can be done by calling Oracle delivered API’s in your custom code.
A program written in any technology, either form, report, PL/SQL, java concurrent program, OAF has their debug message stored in FND_LOG_MESSAGES.
How does this work?
How to use FND debug Log to pinpoint the error?Step 1: Set up profiles for the User / Responsibility to be used to reproduce the issue
FND: Debug Log Enabled -> YES This turns the debugging feature on
FND: Debug Log Filename -> NULL Use when you want debug messages to get stored to a file FND: Debug Log Level -> STATEMENT
FND: Debug log module -> %
If the error pertains to a specific module use the application short name.
Ex: For receivable use FND: Debug log module -> ar%
Log into the Oracle application
Step 2: Since the debugging routine will start writing messages to the table, we want to know which messages pertain to our test. If you are tracking the debug messages for a concurrent request, note down the Concurrent Request id. Otherwise, note down current max value of log sequence retrieved as follows :
SELECT MAX(LOG_SEQUENCE) FROM FND_LOG_MESSAGE
Step 3: Run the test case, avoiding extraneous steps to avoid stacking the table.
Step 4:
a) For a concurrent process:
SELECT LOG.module, LOG.MESSAGE_TEXT MESSAGE
FROM fnd_log_messages LOG, fnd_log_transaction_context con
WHERE request_id = <Conc Req ID>
AND con.transaction_type = 'REQUEST'
AND con.transaction_context_id = LOG.transaction_context_id
ORDER BY LOG.log_sequence;
b) For any other debugging:
SELECT module, MESSAGE_TEXT
FROM fnd_log_messages
WHERE log_sequence = (SELECT MAX (LOG_SEQUENCE) FROM FND_LOG_MESSAGE);
Obtaining the log messages via Oracle Application:
1) Query Profile: %FND%DEBUG%
2) Set the FND: Debug Log Enabled: Yes
3) System Administrator > Help > Debug Logging > View
5) Then navigate to the above screen and download the complete fnd log messages report by exporting as a CSV.