PL/SQL APIs for Concurrent Processing    26-3
Example
/*
* This is sample PL/SQL concurrent program submits 10
* sub-requests. The sub-requests are submitted one at a
* time.  Each time a sub-request is submitted, the parent
* exits to the Running/Paused state, so that it does not
* consume any resources while waiting for the child
* request, to complete.  When the child completes the
* parent is restarted. 
*/
create or replace procedure parent  (errbuf out varchar2,
retcode   out number) is
i number;
req_data varchar2(10);
r number;
begin
--
-- Read the value from REQUEST_DATA.  If this is the
-- first run of the program, then this value will be
-- null.
-- Otherwise, this will be the value that we passed to
-- SET_REQ_GLOBALS on the previous run.
--
req_data := fnd_conc_global.request_data;
--
-- If this is the first run, we'll set i = 1.
-- Otherwise, we'll set i = request_data + 1, and we'll
-- exit if we're done.
--
if (req_data is not null) then
i := to_number(req_data);
i := i + 1;
if (i < 11  ) then
errbuf := 'Done!';
retcode := 0 ;
return;
end if;
else
i := 1;
end if;
--
-- Submit the child request.  The sub_request parameter
-- must be set to 'Y'.
--
r := fnd_request.submit_request('FND', 'CHILD',
'Child ' || to_char(i), NULL,
TRUE, fnd_conc_global.printer);
if r = 0 then
--
-- If request submission failed, exit with error.
--
errbuf := fnd_message.get;
retcode := 2;
else 
--
Pdf protected mode - C# PDF Password Library: add, remove, edit PDF file password in C#.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
pdf owner password; create password protected pdf reader
Pdf protected mode - VB.NET PDF Password Library: add, remove, edit PDF file password in vb.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
break password on pdf; convert password protected pdf to normal pdf
26-4    Oracle E-Business Suite Developer's Guide
-- Here we set the globals to put the program into the
-- PAUSED status on exit, and to save the state in
-- request_data.
--
fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
request_data => to_char(i));
errbuf := 'Sub-Request submitted!';
retcode := 0 ;
end if;
return;
end;  
FND_CONCURRENT Package
FND_CONCURRENT.AF_COMMIT
Summary
function FND_CONCURRENT.AF_COMMIT;
Description
FND_CONCURRENT.AF_COMMIT is used by concurrent 
programs that use a particular rollback segment. This 
rollback segment must be defined in the Define Concurrent
Program form.
FND_CONCURRENT.AF_COMMIT executes the COMMIT command for the specified 
rollback segment.
FND_CONCURRENT.AF_COMMIT has no arguments.
FND_CONCURRENT.AF_ROLLBACK
Summary
function FND_CONCURRENT.AF_ROLLBACK;
Description
FND_CONCURRENT.AF_ROLLBACK is used by 
concurrent programs that use a particular rollback 
segment. This rollback segment must be defined in the 
Define Concurrent Program form.
FND_CONCURRENT.AF_ROLLBACK executes the 
ROLLBACK command for the specified rollback segment.
FND_CONCURRENT.AF_ROLLBACK has no arguments.
C#: How to Add HTML5 Document Viewer Control to Your Web Page
userDefined", FileName: "/RasterEdge_Demo_Docs/pdf/demo_1.pdf" })); _tabDemoFiles. addCommand AppSettings.Get("resourceFolder"); protected void Page_Load(object
add password to pdf; create password protected pdf from word
C# Image: How to Integrate Web Document and Image Viewer
RasterEdgeImagingDeveloperGuide8.0.pdf: from this user manual, you can find the detailed public string mode; public string fid; protected void Page_Load
convert protected pdf to word; pdf open password
PL/SQL APIs for Concurrent Processing    26-5
FND_CONCURRENT.GET_REQUEST_STATUS (Client or Server)
Summary
function FND_CONCURRENT.GET_REQUEST_STATUS
(request_id IN OUT number,
application IN varchar2 default NULL,
program   IN varchar2 default NULL,
phase   OUT varchar2,
status   OUT varchar2,
dev_phase  OUT varchar2,
dev_status OUT varchar2,
message   OUT varchar2) 
return boolean;
Description
Returns the status of a concurrent request. If the request 
has already completed, also returns a completion message.
FND_CONCURRENT.GET_REQUEST_STATUS returns 
the "developer" phase and status values that can drive 
program logic.
Arguments (input)
request_id
The request ID of the program to be checked.
application
Short name of the application associated with the 
concurrent program. This parameter is necessary only 
when the request_id is not specified.
program
Short name of the concurrent program (not the executable).
This parameter is necessary only when the request_id is not
specified. When application and program are provided, the
request ID of the last request for this program is returned 
in request_id.
Arguments (output)
phase
The user-friendly request phase from FND_LOOKUPS.
status
The user-friendly request status from FND_LOOKUPS.
dev_phase
The request phase as a constant string that can be used for 
program logic comparisons.
dev_status
The request status as a constant string that can be used for 
program logic comparisons.
message
The completion message supplied if the request has 
completed.
C# TIFF: C#.NET Code to Create Online TIFF Document Viewer
We still demonstrate how to create more web viewers on PDF and Word documents at the public string mode; public string fid; protected void Page_Load
pdf file password; convert pdf password protected to word online
C# Word: How to Create Word Online Viewer in C# Application
For PDF and TIFF web viewer creating, you can go to PDF Web Viewer Creation in C#.NET and public string mode; public string fid; protected void Page_Load
add copy protection pdf; annotate protected pdf
26-6    Oracle E-Business Suite Developer's Guide
Example
call_status boolean;
rphase      varchar2(80);
rstatus     varchar2(80);
dphase      varchar2(30);
dstatus     varchar2(30);
message     varchar2(240);
call_status :=
FND_CONCURRENT.GET_REQUEST_STATUS(<Request_ID>, '', '',
rphase,rstatus,dphase,dstatus, message);
end;
In the above example, rphase and rstatusreceive the same phase and status values as are
displayed on the Concurrent Requests form. The completion text of a completed request
returns in a message.
Any developer who wishes to control the flow of a program based on a request's 
outcome should use the following values to compare the request's phase and status. 
Possible values for dev_phase and dev_status are listed and described in the following 
table:
dev_phase
dev_status
Description
PENDING
NORMAL
Request is waiting for the 
next available manager.
PENDING
STANDBY
A constrained request (i.e. 
incompatible with currently 
running or actively pending 
programs) is waiting for the 
Internal concurrent manager 
to release it.
PENDING
SCHEDULED
Request is scheduled to start 
at a future time or date.
PENDING
PAUSED
Child request is waiting for its
Parent request to mark it 
ready to run. For example, a 
report in a report set that runs
sequentially must wait for a 
prior report to complete.
RUNNING
NORMAL
Request is being processed.
RUNNING
PAUSED
Parent request is waiting for 
its sub-requests to complete.
C# DICOM - How to Create Web Viewer
Allow C#.NET users to save or print (convert) web DICOM file to TIFF or PDF file. public string mode; public string fid; protected void Page_Load(object
pdf document password; advanced pdf password remover
C# Excel: Tutorial for Web Excel Document Viewer Creation
Support saving modified Excel document PDF and TIFF files within C#.NET web program. public string mode; public string fid; protected void Page_Load
change password on pdf file; convert password protected pdf to word online
PL/SQL APIs for Concurrent Processing    26-7
dev_phase
dev_status
Description
RUNNING
RESUMING
Parent request is waiting to 
restart after its sub-requests 
have completed.
RUNNING
TERMINATING
A user has requested to 
terminate this running 
request.
COMPLETE
NORMAL
Request completed 
successfully.
COMPLETE
ERROR
Request failed to complete 
successfully.
COMPLETE
WARNING
Request completed with 
warnings. For example, a 
report is generated 
successfully but failed to 
print.
COMPLETE
CANCELLED
Pending or Inactive request 
was cancelled.
COMPLETE
TERMINATED
Running request was 
terminated.
INACTIVE
DISABLED
Concurrent program 
associated with the request is 
disabled. 
INACTIVE
ON_HOLD
Pending request placed on 
hold.
INACTIVE
NO_ MANAGER
No manager is defined to run 
the request. 
INACTIVE
SUSPENDED
This value is included for 
upward compatibility. It 
indicates that a user has 
paused the request at the OS 
level.
C# PowerPoint: Create Web Document Viewer for PowerPoint Viewing
Support converting and saving web PowerPoint document to PDF and TIFF. Here we provide public string mode; public string fid; protected void Page_Load
a pdf password; creating password protected pdf
26-8    Oracle E-Business Suite Developer's Guide
FND_CONCURRENT.WAIT_FOR_REQUEST (Client or Server)
Summary
function FND_CONCURRENT.WAIT_FOR_REQUEST  
(request_id IN number default NULL,
interval   IN number default 60,
max_wait   IN number default 0,
phase      OUT varchar2,
status     OUT varchar2,
dev_phase  OUT varchar2,
dev_status OUT varchar2,
message    OUT varchar2) return  
boolean;
Description
Waits for request completion, then returns the request 
phase/status and completion message to the caller. Goes to 
sleep between checks for request completion.
Arguments (input)
request_id
The request ID of the request to wait on.
interval
Number of seconds to wait between checks (i.e., number of 
seconds to sleep.) 
max_wait
The maximum time in seconds to wait for the request's 
completion.
Arguments (output)
phase
The user-friendly request phase from the FND_LOOKUPS 
table.
status
The user-friendly request status from the FND_LOOKUPS 
table.
dev_phase
The request phase as a constant string that can be used for 
program logic comparisons.
dev_status
The request status as a constant string that can be used for 
program logic comparisons.
message
The completion message supplied if the request has 
already completed.
FND_CONCURRENT.SET_COMPLETION_STATUS (Server)
Summary
function FND_CONCURRENT.SET_COMPLETION_STATUS  
(status  IN varchar2,
message IN varchar2) return boolean;
PL/SQL APIs for Concurrent Processing    26-9
Description
Call SET_COMPLETION_STATUS from a concurrent 
program to set its completion status. The function returns 
TRUE on success, otherwise FALSE.
Arguments (input)
status
The status to set the concurrent program to. Either 
NORMAL, WARNING, or ERROR.
message
An optional message.
FND_FILE: PL/SQL File I/O
The FND_FILE package contains procedures to write text to log and output files. These 
procedures are supported in all types of concurrent programs.
For testing and debugging, you can use the procedures FND_FILE.PUT_NAMES and 
FND_FILE.CLOSE. Note that these two procedures should not be called from a 
concurrent program.
FND_FILE supports a maximum buffer line size of 32K for both log and output files.
Important: This package is not designed for generic PL/SQL text I/O, 
but rather only for writing to request log and output files.
See: PL/SQL File I/O Processing, page 23-2
FND_FILE.PUT
Summary
procedure FND_FILE.PUT
(which  IN NUMBER,
buff  IN VARCHAR2);
Description
Use this procedure to write text to a file (without a new line
character). Multiple calls to FND_FILE.PUT will produce 
concatenated text. Typically used with 
FND_FILE.NEW_LINE.
Arguments (input)
which
Log file or output file. Use either FND_FILE.LOG or 
FND_FILE.OUTPUT.
buff
Text to write.
26-10    Oracle E-Business Suite Developer's Guide
FND_FILE.PUT_LINE
Summary
procedure FND_FILE.PUT_LINE
(which IN NUMBER,
buff IN VARCHAR2);
Description
Use this procedure to write a line of text to a file (followed 
by a new line character). You will use this utility most 
often.
Arguments (input)
which
Log file or output file. Use either FND_FILE.LOG or 
FND_FILE.OUTPUT.
buff
Text to write.
Example
Using Message Dictionary to retrieve a message already set up on the server and 
putting it in the log file (allows the log file to contain a translated message):
FND_FILE.PUT_LINE( FND_FILE.LOG, fnd_message.get );
Putting a line of text in the log file directly (message cannot be translated because it is 
hardcoded in English; not recommended):
fnd_file.put_line(FND_FILE.LOG,'Warning: Employee '||
l_log_employee_name||' ('||
l_log_employee_num ||
') does not have a manager.');
FND_FILE.NEW_LINE
Summary
procedure FND_FILE.NEW_LINE
(which IN NUMBER,
LINES  IN NATURAL := 1);
Description
Use this procedure to write line terminators (new line 
characters) to a file.
Arguments (input)
which
Log file or output file. Use either FND_FILE.LOG or 
FND_FILE.OUTPUT.
lines
Number of line terminators to write.
Example
To write two new line characters:
fnd_file.new_line(FND_FILE.LOG,2);
PL/SQL APIs for Concurrent Processing    26-11
FND_FILE.PUT_NAMES
Summary
procedure FND_FILE.PUT_NAMES
(p_log IN VARCHAR2,
p_out IN VARCHAR2,
(p_dir IN VARCHAR2);
Description
Sets the temporary log and out filenames and the temp 
directory to the user-specified values. DIR must be a 
directory to which the database can write. 
FND_FILE.PUT_NAMES should be called before calling 
any other FND_FILE function, and only once per session. 
Important: FND_FILE.PUT_NAMES is meant for testing and 
debugging from SQL*Plus; it does nothing if called from a concurrent 
program.
BEGIN
fnd_file.put_names('test.log', 'test.out',
'/local/db/8.0.4/db-temp-dir/');  
fnd_file.put_line(fnd_file.output,'Called stored    
procedure'); 
/* Some logic here... */ 
fnd_file.put_line(fnd_file.output, 'Reached point A'); 
/* More logic, etc... */ 
fnd_file.close;
END; 
Arguments (input)
p_log
Temporary log filename.
p_out
Temporary output filename.
p_dir
Temporary directory name.
Example
BEGIN
fnd_file.put_names('test.log', 'test.out',
'/local/db/8.0.4/db-temp-dir/'); 
fnd_file.put_line(fnd_file.output,'Called stored  
procedure'); 
/* Some logic here... */ 
fnd_file.put_line(fnd_file.output, 'Reached point A'); 
/* More logic, etc... */ 
fnd_file.close;
END; 
FND_FILE.CLOSE
Summary
procedure FND_FILE.CLOSE;
26-12    Oracle E-Business Suite Developer's Guide
Description
Use this procedure to close open files. 
Important: Use FND_FILE.CLOSE only in 
command lines sessions. 
FND_FILE.CLOSE should not be called 
from a concurrent program.
Example
BEGIN
fnd_file.put_names('test.log', 'test.out',
'/local/db/8.0.4/db-temp-dir/');    
fnd_file.put_line(fnd_file.output,'Called stored 
procedure'); 
/* Some logic here... */ 
fnd_file.put_line(fnd_file.output, 'Reached point A'); 
/* More logic, etc... */ 
fnd_file.close;
END; 
Error Handling
The FND_FILE package can raise one exception, FND_FILE.UTL_FILE_ERROR, which 
is raised to indicate an UTL_FILE error condition. Specifically, the procedures 
FND_FILE.PUT, FND_FILE.PUT_LINE and FND_FILE.NEW_LINE can raise 
FND_FILE.UTL_FILE_ERROR if there is an error. In addition to this package exception,
FND_FILE can also raise predefined PL/SQL exceptions such as NO_DATA_FOUND or
VALUE_ERROR.
FND_FILE will raise a UTL_FILE_ERROR if it is not able to open or write to a 
temporary file. It is up to the concurrent program to error out or complete normally, 
after the FND_FILE.UTL_FILE_ERROR exception is raised. FND_FILE keeps the 
translated message in the message stack before raising the UTL_FILE_ERROR 
exception. Developers can get the message for FND_FILE errors and use it as a Request 
Completion text. It is up to the caller to get the message from the message stack by 
using the FND_MESSAGE routine within an exception handler. 
The concurrent manager will keep all the temporary file creation errors in the request 
log file. 
FND_PROGRAM: Concurrent Program Loaders
The FND_PROGRAM package includes procedures for creating concurrent program 
executables, concurrent programs with parameters and incompatibility rules, request 
sets, and request groups. The FND_PROGRAM package also contains functions you can
use to check for the existence of concurrent programs, executables, parameters, and 
incompatibility rules.
The arguments passed to the procedures correspond to the fields in the Oracle 
Documents you may be interested
Documents you may be interested