1 package body FND_CONC_GLOBAL as
2 /* $Header: AFCPGBLB.pls 120.2 2005/08/19 21:43:15 rckalyan ship $ */
3
4
5 zconc_copies number := NULL;
6 zconc_hold varchar2(1) := NULL;
7 zconc_priority number := NULL;
8 zconc_save_output varchar2(1) := NULL;
9 zconc_single_thread varchar2(1) := NULL;
10 zprinter varchar2(255) := NULL;
11 zconc_priority_request number := NULL;
12 zconc_print_together varchar2(1) := NULL;
13 zconc_print_output varchar2(1) := NULL;
14 zrequest_data varchar2(240) := NULL;
15 zconc_status varchar(30) := 'NONE';
16 zconc_restart_time varchar2(50) := NULL;
17 zrelease_sub_request varchar2(1) := NULL;
18 zops_inst_num number := NULL;
19
20 /*
21 ** GENERIC_ERROR (Internal)
22 **
23 ** Set error message and raise exception for unexpected sql errors
24 */
25 procedure GENERIC_ERROR(routine in varchar2,
26 errcode in number,
27 errmsg in varchar2) is
28 begin
29 fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
30 fnd_message.set_token('ROUTINE', routine);
31 fnd_message.set_token('ERRNO', errcode);
32 fnd_message.set_token('REASON', errmsg);
33 app_exception.raise_exception;
34 end;
35
36 /*
37 ** CONC_COPIES - Number of copies to print for a concurrent process
38 */
39 function CONC_COPIES return number is
40 begin
41 return(zconc_copies);
42 end CONC_COPIES;
43
44 /*
45 ** CONC_HOLD - Temporarily hold a concurrent process
46 */
47 function CONC_HOLD return varchar2 is
48 begin
49 return(zconc_hold);
50 end CONC_HOLD;
51
52 /*
53 ** CONC_PRIORITY - Priority for running a concurrent process
54 */
55 function CONC_PRIORITY return number is
56 begin
57 return(zconc_priority);
58 end CONC_PRIORITY;
59
60 /*
61 ** CONC_SAVE_OUTPUT - Save the output form a concurrent process
62 */
63 function CONC_SAVE_OUTPUT return varchar2 is
64 begin
65 return(zconc_save_output);
66 end CONC_SAVE_OUTPUT;
67
68 /*
69 ** CONC_SINGLE_THREAD - Single thread process the concurrent process
70 */
71 function CONC_SINGLE_THREAD return varchar2 is
72 begin
73 return(zconc_single_thread);
74 end CONC_SINGLE_THREAD;
75
76 /*
77 ** PRINTER
78 */
79 function PRINTER return varchar2 is
80 begin
81 return(zprinter);
82 end PRINTER;
83
84 /*
85 ** CONC_PRIORITY_REQUEST
86 */
87 function CONC_PRIORITY_REQUEST return number is
88 begin
89 return(zconc_priority_request);
90 end CONC_PRIORITY_REQUEST;
91
92 /*
93 ** CONC_PRINT_TOGETHER
94 */
95 function CONC_PRINT_TOGETHER return varchar2 is
96 begin
97 return(zconc_print_together);
98 end CONC_PRINT_TOGETHER;
99
100 /*
101 ** CONC_PRINT_OUTPUT
102 */
103 function CONC_PRINT_OUTPUT return varchar2 is
104 begin
105 return(zconc_print_output);
106 end CONC_PRINT_OUTPUT;
107
108 /*
109 ** CONC_PRINT_OUTPUT
110 */
111 function REQUEST_DATA return varchar2 is
112 begin
113 return(zrequest_data);
114 end REQUEST_DATA;
115
116 /*
117 ** Override_OPS_INST_NUM
118 ** Used by Transaction Managers and Concurrent Managers.
119 ** INTERNAL AOL USE ONLY
120 */
121 procedure Override_OPS_INST_NUM(Inst_num in number) is
122 begin
123 if (Inst_num is not null) then
124 zops_inst_num := Inst_num;
125 else
126 select instance_number
127 into zops_inst_num
128 from v$instance;
129 end if;
130 end Override_OPS_INST_NUM;
131
132
133 /*
134 ** OPS_INST_NUM
135 */
136 function OPS_INST_NUM return number is
137 begin
138 return(zops_inst_num);
139 end OPS_INST_NUM;
140
141
142 /*
143 ** INITIALIZE
144 ** Set new values for CPM globals.
145 ** INTERNAL AOL USE ONLY
146 */
147 procedure INITIALIZE(conc_copies in number,
148 conc_hold in varchar2,
149 conc_priority in number,
150 conc_save_output in varchar2,
151 conc_single_thread in varchar2,
152 printer in varchar2,
153 conc_priority_request in number,
154 conc_print_together in varchar2,
155 conc_print_output in varchar2,
156 request_data in varchar2,
157 db_temp_dir in varchar2) is
158 begin
159 /*
160 ** Set globals from parameters
161 */
162 zconc_copies := conc_copies;
163 zconc_hold := conc_hold;
164 zconc_priority := conc_priority;
165 zconc_save_output := conc_save_output;
166 zconc_single_thread := conc_single_thread;
167 zprinter := printer;
168 zconc_priority_request := conc_priority_request;
169 zconc_print_together := conc_print_together;
170 zconc_print_output := conc_print_output;
171 zrequest_data := request_data;
172 zconc_status := 'NONE';
173 zconc_restart_time := NULL;
174 zrelease_sub_request := NULL;
175
176 /*
177 ** Select any name globals that were not directly passed.
178 ** Example:
179 ** begin
180 ** select u.user_name
181 ** into zuser_name
182 ** from fnd_user u
183 ** where u.user_id = initialize.user_id;
184 ** exception
185 ** when no_data_found then
186 ** zuser_name := NULL;
187 ** end;
188 */
189
190 /*
191 ** Put special values to profile cache.
192 ** ### This is for backward compatibility. Users should
193 ** ### reference these globals instead.
194 */
195 fnd_profile.put('CONC_COPIES', to_char(zconc_copies));
196 fnd_profile.put('CONC_HOLD', zconc_hold);
197 fnd_profile.put('CONC_PRIORITY', to_char(zconc_priority));
198 fnd_profile.put('CONC_SAVE_OUTPUT', zconc_save_output);
199 fnd_profile.put('CONC_SINGLE_THREAD', zconc_single_thread);
200 fnd_profile.put('CONC_PRINT_TOGETHER', zconc_print_together);
201 fnd_profile.put('CONC_DB_TMP_DIR', db_temp_dir);
202
203 exception
204 when others then
205 generic_error('FND_CONC_GLOBAL.INITIALIZE', SQLCODE, SQLERRM);
206 end INITIALIZE;
207
208
209 /*
210 ** GET_REQ_GLOBALS
211 ** Used by CM to get values for special globals.
212 ** INTERNAL AOL USE ONLY
213 */
214 procedure GET_REQ_GLOBALS(conc_status out nocopy varchar2,
215 request_data out nocopy varchar2,
216 conc_restart_time out nocopy varchar2,
217 release_sub_request out nocopy varchar2) is
218 begin
219 conc_status := zconc_status;
220 request_data := zrequest_data;
221 conc_restart_time := zconc_restart_time;
222
223 --Bug 4113291. Parameter release_sub_request is
224 --obsolete. Returning NULL value for this parameter.
225 release_sub_request := NULL;
226 exception
227 when others then
228 generic_error('FND_CONC_GLOBAL.GET_REQ_GLOBALS', SQLCODE, SQLERRM);
229 end GET_REQ_GLOBALS;
230
231
232 /*
233 ** SET_REQ_GLOBALS
234 ** Used by CM to set values for special globals.
235 ** INTERNAL AOL USE ONLY
236 */
237 procedure SET_REQ_GLOBALS(conc_status in varchar2 default null,
238 request_data in varchar2 default null,
239 conc_restart_time in varchar2 default null,
240 release_sub_request in varchar2 default null) is
241 begin
242 zconc_status := nvl(conc_status, 'NONE');
243 zrequest_data := request_data;
244 zconc_restart_time := conc_restart_time;
245
246 --Bug 4113291. Parameter release_sub_request is
247 --obsolete. Ignoreing the value of this parameter.
248 zrelease_sub_request := NULL;
249
250 if (release_sub_request is not null) then
251 if( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )then
252
253 fnd_log.string(
254 FND_LOG.LEVEL_EVENT,
255 'fnd.plsql.FND_CONC_GLOBAL.SET_REQ_GLOBALS',
256 'The release_sub_request parammeter is obsolete now'||
257 'and it''s value is ignored.');
258 end if;
259 end if;
260
261 exception
262 when others then
263 generic_error('FND_CONC_GLOBAL.GET_REQ_GLOBALS', SQLCODE, SQLERRM);
264 end SET_REQ_GLOBALS;
265
266
267 begin
268 select instance_number
269 into zops_inst_num
270 from v$instance;
271 /* v$instance should contain exactly one row. I
272 * can't think of any exceptions that we should be
273 * catching here.
274 */
275 end FND_CONC_GLOBAL;