How to remove all references to a target printer in Oracle Applications so that the registered printer can be deleted. Attempting to delete a printer without removing any concurrent program, concurrent request set, and/or profile references will results in the following corresponding error messages:
"This printer is referenced in a concurrent program definition. You cannot delete a printer while it is referenced."
"This printer is referenced in a request set definition. You cannot delete a printer while it is referenced."
"This printer is referenced by the "Printer" profile option. You cannot delete a printer while it is referenced."
I. Login Into Oracle Applications
1. Select the the System Administrator responsibility.
II. Remove Any Concurrent Program References
1. Navigate to Concurrent: Programs: Define
2. Query the target printer name under the "Printer" field under the "Output" block.
3. Remove and/or replace the target printer and save the record
4. Advance to the next record and perform step three again.
III. Remove Any Concurrent Request Set References
1. Open SQL*Plus session as Apps and executed the following SQL statement in order to identify which request sets, stages, and program names reference the target printer. Replace the word 'TargetPrinter' with the actual printer name registered in Oracle Applications.
set long
set pagesize 5000
select r.user_request_set_name, s.user_stage_name,
c.user_concurrent_program_name
from fnd_request_sets_tl r, fnd_request_set_stages_tl s,
fnd_request_set_programs p,
fnd_concurrent_programs_tl c
where p.request_set_ID = r.request_set_ID
and p.request_set_stage_id = s.request_set_stage_id
and p.concurrent_program_id = c.concurrent_program_id
and printer = 'TargetPrinter';
2. Navigate to Concurrent: Set
3. Query the request set names returned in the above SQL statement.
4. Drill down to the stage and programs name, remove and/or replace the target printer and save the record
5. Query the next request set and perform step four again.
IV. Remove Any Profile References
1. Run the Sysadmin "User Profile Option Values" report to search the value of the "Printer" profile.
2. Navigate to Profile: System
3. Query the "Printer" profile and profile setting returned in the above reports.
4. Remove and/or replace the target printer associated with the profile setting and save the record.
5. Query the next profile setting and perform step four again.
Note: Some Oracle Applications product modules can have different printer profiles, such as "CSD: Printer Name", "IEX: Fulfilment Printer", "OTS: Default Collateral Printer", etc. You may have to run the Sysadmin "User Profile Option Values" report on any product specific profile that assigns a printer.
Note 2: The following SQL statement may be helpful in identifying printers set with the "Printer" profile, at the all profile levels (thanks to J.Reed).
select distinct t.user_profile_option_name "Profile Option Name", decode(v.level_id, 10001,'Site Level', 10002,'Application Level --> ' ||application_name , 10003,'Responsibility level-->'||responsibility_name, 10004,'User Level-->' ||u.user_name, 'XXX') "Profile Option Level", profile_option_value "Value" from fnd_profile_options o, fnd_profile_option_values v, fnd_profile_options_tl t, fnd_responsibility_tl r, fnd_application_tl a,fnd_user u where o.profile_option_id = v.profile_option_id and o.application_id = v.application_id and start_date_active <= SYSDATE and nvl(end_date_active,SYSDATE) >= SYSDATE and o.profile_option_name = t.profile_option_name and a.application_id(+) = decode(level_id,10002,level_value,null) and r.responsibility_id(+)= decode(level_id,10003,level_value,null) and u.user_id(+) = decode(level_id,10004,level_value,null) --and nvl(u.end_date, sysdate) >= sysdate and t.user_profile_option_name = 'Printer' order by 2, --v.level_id, t.user_profile_option_name, decode(v.level_id, 10001,'Site Level', 10002,'Application Level --> ' ||application_name , 10003,'Responsibility level-->'||responsibility_name, 10004,'User Level-->' ||u.user_name, 'XXX');
V. Remove The Registered Printer
1. Navigate to Install: Printer: Register
2. Query the target printer name
3. On the menu tool bar, select Edit: Delete