[Home] [Help]
PACKAGE BODY: APPS.FND_MLS_SUBMIT
Source
1 Package Body FND_MLS_SUBMIT as
2 /* $Header: AFCPMLSB.pls 120.2 2008/05/02 09:34:32 ddhulla noship $ */
3
4 -- PRIVATE VARIABLES
5
6 P_OPS_ID integer := null;
7 P_PROTECTED char := 'N';
8 P_IMPLICIT varchar2(10) := 'N';
9 P_LANGUAGE varchar2(30) := null;
10 P_TERRITORY varchar2(30) := null;
11 P_NUMERIC_CHARACTERS varchar2(2) := null;
12 P_DATAGROUP varchar2(30) := null;
13 P_CRITICAL_REQUEST varchar2(1) := null;
14 P_REQUEST_TYPE varchar2(1) := NULL;
15
16 P_PRINT_STYLE varchar2(30) := null;
17 P_SAVE_OUTPUT char := null;
18 P_PRINT_TOGETHER char := null;
19 P_VALIDATE_PRINTER varchar2(10) := 'RESOLVE';
20 SUBMIT_OPS_ID NUMBER;
21 P_ORG_ID integer := null;
22
23 P_TEMPLATE_APPL varchar2(50) := null;
24 P_TEMPLATE_CODE varchar2(50) := null;
25 P_TEMPLATE_LANG varchar2(6) := null;
26 P_TEMPLATE_TERRITORY varchar2(6) := null;
27 P_OUTPUT_FORMAT varchar2(30) := null;
28
29 TYPE printer_record_type is record
30 (printer varchar2(30),
31 copies number,
32 lang varchar2(30));
33
34 TYPE printer_tab_type is table of printer_record_type
35 index by binary_integer;
36
37 TYPE notification_record_type is record
38 (name varchar2(100),
39 orig_system varchar2(48),
40 orig_system_id number,
41 on_normal varchar2(1),
42 on_warning varchar2(1),
43 on_error varchar2(1));
44
45 TYPE notification_tab_type is table of notification_record_type
46 index by binary_integer;
47
48 TYPE nls_parameters_record_type is record
49 ( nls_lang varchar2(10),
50 nls_territory varchar2(30),
51 nls_num_char varchar2(2));
52
53 TYPE nls_parameters_tab_type is table of nls_parameters_record_type
54 index by binary_integer;
55
56 TYPE layout_record_type is record
57 (template_appl_name varchar2(255),
58 template_code varchar2(255),
59 template_language varchar2(255),
60 template_territory varchar2(255),
61 output_format varchar2(255),
62 nls_language varchar2(30));
63
64 TYPE layout_tab_type is table of layout_record_type
65 index by binary_integer;
66
67 P_NOTIFICATIONS notification_tab_type;
68 P_NOTIFICATION_COUNT number := 0;
69
70 P_LAYOUTS layout_tab_type;
71 P_LAYOUT_COUNT number := 0;
72
73 P_NLS_PARAMETERS_COUNT number :=0;
74 P_NLS_PARAMETERS nls_parameters_tab_type;
75
76 P_PRINTERS printer_tab_type;
77 P_PRINTER_COUNT number := 0;
78
79
80 -- Name
81 -- init_pvt_vars
82 -- Purpose
83 -- Called after submitting request to re-initialize repeat options
84 --
85 -- --
86
87 procedure init_pvt_vars is
88 empty_array printer_tab_type;
89 empty_notify_array notification_tab_type;
90 begin
91 P_OPS_ID := null;
92 -- P_ON_PP_ERR_NOTIFY := null;
93 -- P_REPEAT_TIME := null;
94 -- P_REPEAT_INTERVAL := null;
95 -- P_REPEAT_INTERVAL_UNIT := null;
96 -- P_REPEAT_INTERVAL_TYPE := null;
97 -- P_REPEAT_END := null;
98
99
100 P_PROTECTED := 'N';
101 P_IMPLICIT := 'N';
102 P_LANGUAGE := null;
103 P_TERRITORY := null;
104 P_NUMERIC_CHARACTERS := null;
105 P_DATAGROUP := null;
106 P_NOTIFICATION_COUNT :=0;
107 P_NLS_PARAMETERS_COUNT :=0;
108 P_CRITICAL_REQUEST := null;
109 P_REQUEST_TYPE := NULL;
110
111 P_PRINTERS := empty_array;
112 P_PRINTER_COUNT := 0;
113 P_SAVE_OUTPUT := null;
114 P_PRINT_TOGETHER := null;
115 P_PRINT_STYLE := null;
116
117 -- P_DB_TRIGGER_MODE := FALSE;
118 -- P_CRITICAL_REQUEST := null;
119 -- P_REQUEST_TYPE := NULL;
120 P_NOTIFICATIONS := empty_notify_array;
121 P_NOTIFICATION_COUNT := 0;
122 -- P_DEFERRED_MODE := FALSE;
123 -- P_DEF_REQUEST_ID := 0;
124
125 P_TEMPLATE_APPL := null;
126 P_TEMPLATE_CODE := null;
127 P_TEMPLATE_LANG := null;
128 P_TEMPLATE_TERRITORY := null;
129 P_OUTPUT_FORMAT := null;
130 P_LAYOUT_COUNT := 0;
131
132 P_ORG_ID := null;
133
134 end init_pvt_vars;
135
136
137 procedure internal(critical in varchar2 default null,
138 type in varchar2 default null) is
139 begin
140 P_CRITICAL_REQUEST := critical;
141 P_REQUEST_TYPE := type;
142 end;
143
144
145 PROCEDURE FND_RUN_REQUESTS_INSERT(p_application_id in number,
146 p_concurrent_program_id in number, p_parent_request_id in number,
147 p_request_set_program_id in number,
148 p_set_application_id in number, p_request_set_id in number,
149 p_printer in varchar2, p_print_style in varchar2,
150 p_save_output_flag in varchar2, p_number_of_copies in number,
151 p_nls_language in varchar2, p_nls_territory in varchar2, p_numeric_char in varchar2,
152 p_argument1 in varchar2, p_argument2 in varchar2, p_argument3 in varchar2,
153 p_argument4 in varchar2, p_argument5 in varchar2, p_argument6 in varchar2,
154 p_argument7 in varchar2, p_argument8 in varchar2, p_argument9 in varchar2,
155 p_argument10 in varchar2, p_argument11 in varchar2, p_argument12 in varchar2,
156 p_argument13 in varchar2, p_argument14 in varchar2, p_argument15 in varchar2,
157 p_argument16 in varchar2, p_argument17 in varchar2, p_argument18 in varchar2,
158 p_argument19 in varchar2, p_argument20 in varchar2, p_argument21 in varchar2,
159 p_argument22 in varchar2, p_argument23 in varchar2, p_argument24 in varchar2,
160 p_argument25 in varchar2, p_argument26 in varchar2, p_argument27 in varchar2,
161 p_argument28 in varchar2, p_argument29 in varchar2, p_argument30 in varchar2,
162 p_argument31 in varchar2, p_argument32 in varchar2, p_argument33 in varchar2,
163 p_argument34 in varchar2, p_argument35 in varchar2, p_argument36 in varchar2,
164 p_argument37 in varchar2, p_argument38 in varchar2, p_argument39 in varchar2,
165 p_argument40 in varchar2, p_argument41 in varchar2, p_argument42 in varchar2,
166 p_argument43 in varchar2, p_argument44 in varchar2, p_argument45 in varchar2,
167 p_argument46 in varchar2, p_argument47 in varchar2, p_argument48 in varchar2,
168 p_argument49 in varchar2, p_argument50 in varchar2, p_argument51 in varchar2,
169 p_argument52 in varchar2, p_argument53 in varchar2, p_argument54 in varchar2,
170 p_argument55 in varchar2, p_argument56 in varchar2, p_argument57 in varchar2,
171 p_argument58 in varchar2, p_argument59 in varchar2, p_argument60 in varchar2,
172 p_argument61 in varchar2, p_argument62 in varchar2, p_argument63 in varchar2,
173 p_argument64 in varchar2, p_argument65 in varchar2, p_argument66 in varchar2,
174 p_argument67 in varchar2, p_argument68 in varchar2, p_argument69 in varchar2,
175 p_argument70 in varchar2, p_argument71 in varchar2, p_argument72 in varchar2,
176 p_argument73 in varchar2, p_argument74 in varchar2, p_argument75 in varchar2,
177 p_argument76 in varchar2, p_argument77 in varchar2, p_argument78 in varchar2,
178 p_argument79 in varchar2, p_argument80 in varchar2, p_argument81 in varchar2,
179 p_argument82 in varchar2, p_argument83 in varchar2, p_argument84 in varchar2,
180 p_argument85 in varchar2, p_argument86 in varchar2, p_argument87 in varchar2,
181 p_argument88 in varchar2, p_argument89 in varchar2, p_argument90 in varchar2,
182 p_argument91 in varchar2, p_argument92 in varchar2, p_argument93 in varchar2,
183 p_argument94 in varchar2, p_argument95 in varchar2, p_argument96 in varchar2,
184 p_argument97 in varchar2, p_argument98 in varchar2, p_argument99 in varchar2,
185 p_argument100 in varchar2) IS
186 BEGIN
187
188 insert into fnd_run_requests
189 (application_id, concurrent_program_id, parent_request_id,
190 request_set_program_id,
191 set_application_id, request_set_id,
192 printer, print_style, save_output_flag, number_of_copies,
193 nls_language, nls_territory, numeric_characters,
194 ops_instance,
195 argument1, argument2, argument3, argument4, argument5,
196 argument6, argument7, argument8, argument9, argument10,
197 argument11, argument12, argument13, argument14, argument15,
198 argument16, argument17, argument18, argument19, argument20,
199 argument21, argument22, argument23, argument24, argument25,
200 argument26, argument27, argument28, argument29, argument30,
201 argument31, argument32, argument33, argument34, argument35,
202 argument36, argument37, argument38, argument39, argument40,
203 argument41, argument42, argument43, argument44, argument45,
204 argument46, argument47, argument48, argument49, argument50,
205 argument51, argument52, argument53, argument54, argument55,
206 argument56, argument57, argument58, argument59, argument60,
207 argument61, argument62, argument63, argument64, argument65,
208 argument66, argument67, argument68, argument69, argument70,
209 argument71, argument72, argument73, argument74, argument75,
210 argument76, argument77, argument78, argument79, argument80,
211 argument81, argument82, argument83, argument84, argument85,
212 argument86, argument87, argument88, argument89, argument90,
213 argument91, argument92, argument93, argument94, argument95,
214 argument96, argument97, argument98, argument99, argument100, ORG_ID)
215 values
216 (p_application_id, p_concurrent_program_id, p_parent_request_id,
217 p_request_set_program_id,
218 p_set_application_id, p_request_set_id,
219 p_printer, p_print_style, p_save_output_flag, p_number_of_copies,
220 p_nls_language, p_nls_territory, p_numeric_char,
221 SUBMIT_OPS_ID,
222 p_argument1, p_argument2, p_argument3, p_argument4, p_argument5,
223 p_argument6, p_argument7, p_argument8, p_argument9, p_argument10,
224 p_argument11, p_argument12, p_argument13, p_argument14, p_argument15,
225 p_argument16, p_argument17, p_argument18, p_argument19, p_argument20,
226 p_argument21, p_argument22, p_argument23, p_argument24, p_argument25,
227 p_argument26, p_argument27, p_argument28, p_argument29, p_argument30,
228 p_argument31, p_argument32, p_argument33, p_argument34, p_argument35,
229 p_argument36, p_argument37, p_argument38, p_argument39, p_argument40,
230 p_argument41, p_argument42, p_argument43, p_argument44, p_argument45,
231 p_argument46, p_argument47, p_argument48, p_argument49, p_argument50,
232 p_argument51, p_argument52, p_argument53, p_argument54, p_argument55,
233 p_argument56, p_argument57, p_argument58, p_argument59, p_argument60,
234 p_argument61, p_argument62, p_argument63, p_argument64, p_argument65,
235 p_argument66, p_argument67, p_argument68, p_argument69, p_argument70,
236 p_argument71, p_argument72, p_argument73, p_argument74, p_argument75,
237 p_argument76, p_argument77, p_argument78, p_argument79, p_argument80,
238 p_argument81, p_argument82, p_argument83, p_argument84, p_argument85,
239 p_argument86, p_argument87, p_argument88, p_argument89, p_argument90,
240 p_argument91, p_argument92, p_argument93, p_argument94, p_argument95,
241 p_argument96, p_argument97, p_argument98, p_argument99, p_argument100, P_ORG_ID);
242 END;
243
244
245 --
246 -- Name
247 -- submit_mls_request
248 -- Purpose
249 -- Submits mls concurrent request to be processed by a concurrent manager
250 --
251 -- Arguments
252 -- application - Short name of application under which the program
253 -- - is registered
254 -- program - concurrent program name for which the request has
255 -- - to be submitted
256 -- description - Optional. Will be displayed along with user
257 -- - concurrent program name
258 -- start_time - Optional. Time at which the request has to start
259 -- - running
260 -- sub_request - Optional. Set to TRUE if the request is submitted
261 -- - from another running request and has to be treated
262 -- - as a sub request. Default is FALSE
263 -- argument1..100 - Optional. Arguments for the mls concurrent request
264 --
265
266 function submit_mls_request (
267 application IN varchar2 default NULL,
268 program IN varchar2 default NULL,
269 description IN varchar2 default NULL,
270 start_time IN varchar2 default NULL,
271 sub_request IN boolean default FALSE,
272 argument1 IN varchar2 default CHR(0),
273 argument2 IN varchar2 default CHR(0),
274 argument3 IN varchar2 default CHR(0),
275 argument4 IN varchar2 default CHR(0),
276 argument5 IN varchar2 default CHR(0),
277 argument6 IN varchar2 default CHR(0),
278 argument7 IN varchar2 default CHR(0),
279 argument8 IN varchar2 default CHR(0),
280 argument9 IN varchar2 default CHR(0),
281 argument10 IN varchar2 default CHR(0),
282 argument11 IN varchar2 default CHR(0),
283 argument12 IN varchar2 default CHR(0),
284 argument13 IN varchar2 default CHR(0),
285 argument14 IN varchar2 default CHR(0),
286 argument15 IN varchar2 default CHR(0),
287 argument16 IN varchar2 default CHR(0),
288 argument17 IN varchar2 default CHR(0),
289 argument18 IN varchar2 default CHR(0),
290 argument19 IN varchar2 default CHR(0),
291 argument20 IN varchar2 default CHR(0),
292 argument21 IN varchar2 default CHR(0),
293 argument22 IN varchar2 default CHR(0),
294 argument23 IN varchar2 default CHR(0),
295 argument24 IN varchar2 default CHR(0),
296 argument25 IN varchar2 default CHR(0),
297 argument26 IN varchar2 default CHR(0),
298 argument27 IN varchar2 default CHR(0),
299 argument28 IN varchar2 default CHR(0),
300 argument29 IN varchar2 default CHR(0),
301 argument30 IN varchar2 default CHR(0),
302 argument31 IN varchar2 default CHR(0),
303 argument32 IN varchar2 default CHR(0),
304 argument33 IN varchar2 default CHR(0),
305 argument34 IN varchar2 default CHR(0),
306 argument35 IN varchar2 default CHR(0),
307 argument36 IN varchar2 default CHR(0),
308 argument37 IN varchar2 default CHR(0),
309 argument38 IN varchar2 default CHR(0),
310 argument39 IN varchar2 default CHR(0),
311 argument40 IN varchar2 default CHR(0),
312 argument41 IN varchar2 default CHR(0),
313 argument42 IN varchar2 default CHR(0),
314 argument43 IN varchar2 default CHR(0),
315 argument44 IN varchar2 default CHR(0),
316 argument45 IN varchar2 default CHR(0),
317 argument46 IN varchar2 default CHR(0),
318 argument47 IN varchar2 default CHR(0),
319 argument48 IN varchar2 default CHR(0),
320 argument49 IN varchar2 default CHR(0),
321 argument50 IN varchar2 default CHR(0),
322 argument51 IN varchar2 default CHR(0),
323 argument52 IN varchar2 default CHR(0),
324 argument53 IN varchar2 default CHR(0),
325 argument54 IN varchar2 default CHR(0),
326 argument55 IN varchar2 default CHR(0),
327 argument56 IN varchar2 default CHR(0),
328 argument57 IN varchar2 default CHR(0),
329 argument58 IN varchar2 default CHR(0),
330 argument59 IN varchar2 default CHR(0),
331 argument60 IN varchar2 default CHR(0),
332 argument61 IN varchar2 default CHR(0),
333 argument62 IN varchar2 default CHR(0),
334 argument63 IN varchar2 default CHR(0),
335 argument64 IN varchar2 default CHR(0),
336 argument65 IN varchar2 default CHR(0),
337 argument66 IN varchar2 default CHR(0),
338 argument67 IN varchar2 default CHR(0),
339 argument68 IN varchar2 default CHR(0),
340 argument69 IN varchar2 default CHR(0),
341 argument70 IN varchar2 default CHR(0),
342 argument71 IN varchar2 default CHR(0),
343 argument72 IN varchar2 default CHR(0),
344 argument73 IN varchar2 default CHR(0),
345 argument74 IN varchar2 default CHR(0),
346 argument75 IN varchar2 default CHR(0),
347 argument76 IN varchar2 default CHR(0),
348 argument77 IN varchar2 default CHR(0),
349 argument78 IN varchar2 default CHR(0),
350 argument79 IN varchar2 default CHR(0),
351 argument80 IN varchar2 default CHR(0),
352 argument81 IN varchar2 default CHR(0),
353 argument82 IN varchar2 default CHR(0),
354 argument83 IN varchar2 default CHR(0),
355 argument84 IN varchar2 default CHR(0),
356 argument85 IN varchar2 default CHR(0),
357 argument86 IN varchar2 default CHR(0),
358 argument87 IN varchar2 default CHR(0),
359 argument88 IN varchar2 default CHR(0),
360 argument89 IN varchar2 default CHR(0),
361 argument90 IN varchar2 default CHR(0),
362 argument91 IN varchar2 default CHR(0),
363 argument92 IN varchar2 default CHR(0),
364 argument93 IN varchar2 default CHR(0),
365 argument94 IN varchar2 default CHR(0),
366 argument95 IN varchar2 default CHR(0),
367 argument96 IN varchar2 default CHR(0),
368 argument97 IN varchar2 default CHR(0),
369 argument98 IN varchar2 default CHR(0),
370 argument99 IN varchar2 default CHR(0),
371 argument100 IN varchar2 default CHR(0))
372 return number is
373
374 mls_exe_id number;
375 mls_exe_app_id number;
376 success boolean;
377 USER_PROG_NAME VARCHAR2(240);
378 CONC_PROG_ID NUMBER;
379 CONC_APP_ID NUMBER;
380 P_MLS_MULTIPLE_REQUESTS boolean;
381 P_MLS_LANG_FUNC_EXISTS boolean;
382 FUNC_EXISTS varchar2(1);
383 REQ_ID NUMBER;
384 OPS_REQ_MODE varchar2(30);
385 saveout char;
386 profile_buffer varchar2(80) := null;
387 default_copies number;
388 i number;
389 curr_printer varchar2(30);
390 curr_copies number;
391 curr_lang varchar2(30);
392 default_printer varchar2(30);
393 FCP_PRINTER varchar2(30);
394 curr_nls_lang varchar2(30);
395 curr_nls_terr varchar2(30);
396 curr_nls_numchar varchar2(2);
397 name varchar2(100);
398 orig_system varchar2(48);
399 orig_system_id number;
400 on_normal varchar2(1);
401 on_warning varchar2(1);
402 on_error varchar2(1);
403 schedule_type varchar2(1);
404 schedule_info varchar2(64);
405 sch_req_date date;
406 sch_end_date date;
407 requested_start date;
408
409 start_time_error exception;
410
411 begin
412
413 select MLS_EXECUTABLE_ID, MLS_EXECUTABLE_APP_ID into mls_exe_id, mls_exe_app_id
414 from fnd_concurrent_programs FCP, fnd_application FA
415 where FCP.CONCURRENT_PROGRAM_NAME = UPPER(program) AND FA.APPLICATION_SHORT_NAME = UPPER(application)
416 AND FCP.APPLICATION_ID=FA.APPLICATION_ID;
417
418 if(mls_exe_id is not null AND mls_exe_app_id is not null) then
419 P_MLS_LANG_FUNC_EXISTS :=TRUE;
420 else
421 P_MLS_LANG_FUNC_EXISTS :=FALSE;
422 end if;
423
424 if ( P_NLS_PARAMETERS_COUNT > 1 ) then
425 P_MLS_MULTIPLE_REQUESTS := TRUE;
426 else
427 P_MLS_MULTIPLE_REQUESTS := FALSE;
428 end if;
429
430 if ( P_MLS_MULTIPLE_REQUESTS or P_MLS_LANG_FUNC_EXISTS ) then
431 fnd_request.internal(critical=>null, type=>'B');
432 end if;
433
434 success := fnd_request.set_options (
435 'NO', 'NO', P_LANGUAGE,
436 P_TERRITORY, null, P_NUMERIC_CHARACTERS);
437
438 if (not success) then
439 -- fnd_message.retrieve; --Implement some error message
440 -- fnd_message.error;
441 return(null);
442 end if;
443
444 if( P_MLS_LANG_FUNC_EXISTS ) then
445 FUNC_EXISTS := 'Y';
446 else
447 FUNC_EXISTS := 'N';
448 end if;
449
450 FND_PROFILE.GET ('CONC_OPS_REQ_MODE', OPS_REQ_MODE);
451 if (ops_req_mode is null) then
452 OPS_REQ_MODE := 'EXPLICIT';
453 end if;
454
455 select fcpt.user_concurrent_program_name, fcp.concurrent_program_id, fa.application_id, DECODE(ops_req_mode,
456 'EXPLICIT', NVL(P_OPS_ID,NVL(fcp.instance_id,fnd_conc_global.ops_inst_num)),
457 -1), Printer_Name into USER_PROG_NAME, CONC_PROG_ID, CONC_APP_ID, SUBMIT_OPS_ID, FCP_PRINTER
458 from fnd_concurrent_programs fcp, fnd_concurrent_programs_tl fcpt, fnd_application fa
459 where fcp.concurrent_program_id=fcpt.concurrent_program_id and fcp.application_id=fcpt.application_id
460 and fa.application_id=fcp.application_id and fcpt.language = userenv('LANG')
461 and fcp.concurrent_program_name= upper(program) and fa.application_short_name=UPPER(application);
462
463 REQ_ID := fnd_request.submit_request(
464 'FND',
465 'FNDMLSUB',
466 USER_PROG_NAME,
467 null,
468 FALSE,
469 to_char(CONC_APP_ID),
470 to_char(CONC_PROG_ID),
471 FUNC_EXISTS,
472 chr(0), '','','','','','',
473 '','','','','','','','','','',
474 '','','','','','','','','','',
475 '','','','','','','','','','',
476 '','','','','','','','','','',
477 '','','','','','','','','','',
478 '','','','','','','','','','',
479 '','','','','','','','','','',
480 '','','','','','','','','','',
481 '','','','','','','','','','');
482
483 fnd_run_requests_insert(CONC_APP_ID,
484 CONC_PROG_ID,
485 REQ_ID,
486 0, 0, 0,
487 NULL, P_PRINT_STYLE,
488 P_SAVE_OUTPUT,
489 NULL,
490 P_LANGUAGE,
491 P_TERRITORY, P_NUMERIC_CHARACTERS,
492 argument1,
493 argument2,
494 argument3,
495 argument4,
496 argument5,
497 argument6,
498 argument7,
499 argument8,
500 argument9,
501 argument10,
502 argument11,
503 argument12,
504 argument13,
505 argument14,
506 argument15,
507 argument16,
508 argument17,
509 argument18,
510 argument19,
511 argument20,
512 argument21,
513 argument22,
514 argument23,
515 argument24,
516 argument25,
517 argument26,
518 argument27,
519 argument28,
520 argument29,
521 argument30,
522 argument31,
523 argument32,
524 argument33,
525 argument34,
526 argument35,
527 argument36,
528 argument37,
529 argument38,
530 argument39,
531 argument40,
532 argument41,
533 argument42,
534 argument43,
535 argument44,
536 argument45,
537 argument46,
538 argument47,
539 argument48,
540 argument49,
541 argument50,
542 argument51,
543 argument52,
544 argument53,
545 argument54,
546 argument55,
547 argument56,
548 argument57,
549 argument58,
550 argument59,
551 argument60,
552 argument61,
553 argument62,
554 argument63,
555 argument64,
556 argument65,
557 argument66,
558 argument67,
559 argument68,
560 argument69,
561 argument70,
562 argument71,
563 argument72,
564 argument73,
565 argument74,
566 argument75,
567 argument76,
568 argument77,
569 argument78,
570 argument79,
571 argument80,
572 argument81,
573 argument82,
574 argument83,
575 argument84,
576 argument85,
577 argument86,
578 argument87,
579 argument88,
580 argument89,
581 argument90,
582 argument91,
583 argument92,
584 argument93,
585 argument94,
586 argument95,
587 argument96,
588 argument97,
589 argument98,
590 argument99,
591 argument100);
592
593 commit;
594
595 -- Insert Languages
596
597 if ( not P_MLS_LANG_FUNC_EXISTS ) then
598 for i in 1..P_NLS_PARAMETERS_COUNT loop
599
600 curr_nls_lang := P_NLS_PARAMETERS(i).nls_lang;
601 curr_nls_terr := P_NLS_PARAMETERS(i).nls_territory;
602 curr_nls_numchar := P_NLS_PARAMETERS(i).nls_num_char;
603
604 insert into fnd_run_req_languages
605 ( parent_request_id,
606 nls_language,
607 nls_territory,
608 numeric_characters,
609 created_by,
610 creation_date,
611 last_updated_by,
612 last_update_date,
613 last_update_login)
614 values
615 ( REQ_ID,
616 curr_nls_lang,
617 curr_nls_terr,
618 curr_nls_numchar,
619 FND_GLOBAL.USER_ID, sysdate, FND_GLOBAL.USER_ID,
620 sysdate, FND_GLOBAL.CONC_LOGIN_ID);
621
622 end loop;
623 end if;
624
625 P_NLS_PARAMETERS_COUNT :=0;
626
627 -- Insert Notifications
628 if (P_NOTIFICATION_COUNT > 0) then
629 for i in 1..P_NOTIFICATION_COUNT loop
630
631 name := P_NOTIFICATIONS(i).name;
632 orig_system := P_NOTIFICATIONS(i).orig_system;
633 orig_system_id := P_NOTIFICATIONS(i).orig_system_id;
634 on_normal := P_NOTIFICATIONS(i).on_normal;
635 on_warning := P_NOTIFICATIONS(i).on_warning;
636 on_error := P_NOTIFICATIONS(i).on_error;
637
638 insert into fnd_run_req_pp_actions
639 (parent_request_id,
640 request_set_id,
641 set_application_id,
642 request_set_program_id,
643 action_type,
644 status_s_flag,
645 status_w_flag,
646 status_f_flag,
647 program_application_id,
648 program_id,
649 arguments,
650 number_of_copies,
651 sequence,
652 orig_system,
653 orig_system_id,
654 nls_language,
655 ops_instance)
656 values
657 (REQ_ID,
658 0, 0, 0,
659 2, on_normal, on_warning, on_error, null, null,
660 name, null, i,
661 orig_system, orig_system_id, P_LANGUAGE, SUBMIT_OPS_ID);
662 end loop;
663 end if;
664
665 P_NOTIFICATION_COUNT :=0;
666
667 -- Insert layout
668 if (P_LAYOUT_COUNT > 0) then
669 for i in 1..P_LAYOUT_COUNT loop
670 insert into fnd_run_req_pp_actions
671 (parent_request_id,
672 request_set_id,
673 set_application_id,
674 request_set_program_id,
675 action_type,
676 status_s_flag,
677 status_w_flag,
678 status_f_flag,
679 program_application_id,
680 program_id,
681 sequence,
682 argument1,
683 argument2,
684 argument3,
685 argument4,
686 argument5,
687 nls_language,
688 ops_instance)
689 values
690 (REQ_ID,
691 0, 0, 0,
692 6, 'Y', 'N', 'N', CONC_APP_ID, CONC_PROG_ID, i,
693 P_LAYOUTS(i).template_appl_name,
694 P_LAYOUTS(i).template_code,
695 P_LAYOUTS(i).template_language,
696 P_LAYOUTS(i).template_territory,
697 P_LAYOUTS(i).output_format,
698 P_LAYOUTS(i).nls_language,
699 SUBMIT_OPS_ID);
700 end loop;
701 end if;
702
703 P_LAYOUT_COUNT :=0;
704
705 -- Insert Printers
706
707 if (FCP_PRINTER is null) then
708 FND_PROFILE.GET ('PRINTER', default_printer);
709 else
710 default_printer := FCP_PRINTER;
711 end if;
712
713 FND_PROFILE.GET ('CONC_COPIES', profile_buffer);
714 if (profile_buffer is not null) then
715 default_copies := To_Number (profile_buffer);
716 if (default_copies < 0) then
717 default_copies := 0;
718 end if;
719 else
720 default_copies := 0;
721 end if;
722
723 if ((P_PRINTER_COUNT = 0) and (default_copies >= 0)) then
724 P_PRINTERS(1).printer := default_printer;
725 P_PRINTERS(1).copies := default_copies;
726 P_PRINTERS(1).lang := null;
727 P_PRINTER_COUNT := 1;
728 end if;
729
730 for i in 1..P_PRINTER_COUNT loop
731
732 curr_printer := P_PRINTERS(i).printer;
733 curr_copies := P_PRINTERS(i).copies;
734 curr_lang := P_PRINTERS(i).lang;
735
736 if (curr_copies is null) then
737 curr_copies := default_copies;
738 end if;
739
740 if (curr_printer is null) then
741 curr_printer := default_printer;
742 end if;
743
744 insert into fnd_run_req_pp_actions
745 (parent_request_id,
746 request_set_id,
747 set_application_id,
748 request_set_program_id,
749 action_type,
750 status_s_flag,
751 status_w_flag,
752 status_f_flag,
753 program_application_id,
754 program_id,
755 arguments,
756 number_of_copies,
757 sequence,
758 nls_language,
759 ops_instance)
760 values
761 (REQ_ID,
762 0, 0, 0,
763 1, 'Y', 'N', 'N', null, null,
764 curr_printer, curr_copies, i, curr_lang, SUBMIT_OPS_ID);
765 end loop;
766
767 return REQ_ID;
768
769 exception
770
771 when start_time_error then
772 fnd_message.set_name ('FND', 'CONC-Invalid Req Start Date');
773 fnd_message.set_token ('START_DATE', requested_start, FALSE);
774 return (0);
775
776 when no_data_found then
777 fnd_message.set_name ('FND', 'CONC-Invalid Appl Short Name');
778 fnd_message.set_token ('APPLNAME', application, FALSE);
779 return (0);
780
781 when others then
782 fnd_message.set_name ('FND', 'SQL-Generic error');
783 fnd_message.set_token ('ERRNO', sqlcode, FALSE);
784 fnd_message.set_token ('REASON', sqlerrm, FALSE);
785 fnd_message.set_token (
786 'ROUTINE', 'SUBMIT: appl_prog_error', FALSE);
787
788 return (0);
789
790 end submit_mls_request;
791
792
793 --
794 -- Name
795 -- add_notification
796 -- Purpose
797 -- Called before submission to add a user to the notify list.
798 -- Added this new method since changing the add_notification will need
799 -- generation of all calling forms.
800 -- In a major release we can merge this one with previous one with default
801 -- values.
802 --
803 -- Arguments
804 -- User - User name.
805 -- on_normal - Notify when normal completion (Values Y/N)
806 -- on_warning - Notify when request completes with warning (Y/N)
807 -- on_error - Notify when request completed with error (Y/N)
808
809 function add_notification (user in varchar2,
810 on_normal in varchar2,
811 on_warning in varchar2,
812 on_error in varchar2)
813 return boolean is
814 n_index number;
815 ret_val boolean;
816 begin
817
818 ret_val := add_notification(user);
819 if ( ret_val ) then
820
821 n_index := P_NOTIFICATION_COUNT;
822
823 P_NOTIFICATIONS(n_index).on_normal := add_notification.on_normal;
824 P_NOTIFICATIONS(n_index).on_warning := add_notification.on_warning;
825 P_NOTIFICATIONS(n_index).on_error := add_notification.on_error;
826
827 return TRUE;
828 else
829 return FALSE;
830 end if;
831
832 end;
833
834
835 --
836 -- Name
837 -- add_notification
838 -- Purpose
839 -- Called before submission to add a user to the notify list.
840 --
841 -- Arguments
842 -- User - User name.
843
844 function add_notification (user in varchar2) return boolean is
845 n_index number;
846 cursor c1( user_name varchar2) is
847 select name, orig_system, orig_system_id
848 from wf_roles
849 where name = user_name;
850 begin
851
852 -- Same user may exists in different departments(tables).
853 -- use cursor because we dont know the given user name will return one row
854 -- multiple rows.
855 -- we are considering only the first row that matched in wf_roles.
856
857 n_index := P_NOTIFICATION_COUNT + 1;
858 open c1( user );
859 fetch c1 into P_NOTIFICATIONS(n_index).name,
860 P_NOTIFICATIONS(n_index).orig_system,
861 P_NOTIFICATIONS(n_index).orig_system_id;
862
863 P_NOTIFICATIONS(n_index).on_normal := 'Y';
864 P_NOTIFICATIONS(n_index).on_warning := 'Y';
865 P_NOTIFICATIONS(n_index).on_error := 'Y';
866
867 if( c1%notfound ) then
868 fnd_message.set_name('FND', 'CONC-INVALID NOTIFY USER');
869 close c1;
870 return FALSE;
871 else
872 P_NOTIFICATION_COUNT := P_NOTIFICATION_COUNT + 1;
873 close c1;
874 return TRUE;
875 end if;
876 end;
877
878
879 --
880 -- Name
881 -- add_layout
882 -- Purpose
883 -- Called before submission to add layout options for request output.
884 --
885 -- Arguments
886 -- Template_APPL_Name - Template Application Short name.
887 -- Template_code - Template code
888 -- Template_Language - Template File language (iso value)
889 -- Template_Territory - Template File Territory (iso value)
890 -- Output Format - Output Format
891 --
892
893 function add_layout (template_appl_name in varchar2,
894 template_code in varchar2,
895 template_language in varchar2,
896 template_territory in varchar2,
897 output_format in varchar2,
898 nls_language in varchar2) return boolean is
899 n_index number;
900 begin
901 n_index := P_LAYOUT_COUNT + 1;
902 -- It is callers responsibility to provide valid values.
903 P_LAYOUTS(n_index).template_appl_name := template_appl_name;
904 P_LAYOUTS(n_index).template_code := template_code;
905 P_LAYOUTS(n_index).template_language := template_language;
906 P_LAYOUTS(n_index).template_territory := template_territory;
907 P_LAYOUTS(n_index).output_format := output_format;
908 P_LAYOUTS(n_index).nls_language := nls_language;
909 P_LAYOUT_COUNT := P_LAYOUT_COUNT + 1;
910 return (TRUE);
911 end;
912
913
914 --
915 -- Name
916 -- add_printer
917 -- Purpose
918 -- Called after set print options to add a printer to the
919 -- print list.
920 --
921 -- Arguments
922 -- printer - Printer name where the request o/p should be sent
923 -- copies - Number of copies to print
924 -- lang - Language for o/p to print
925
926 function add_printer (printer in varchar2 default null,
927 copies in number default null,
928 lang in varchar2 default null) return boolean is
929 printer_typ varchar2 (30) := null;
930 dummy_fld varchar (2);
931 print_together_error exception;
932 printer_error exception;
933 style_error exception;
934 printer_style_error exception;
935 begin
936 if (printer is not null) then -- Verify printer
937 begin
938 Select printer_type
939 Into printer_typ
940 From fnd_printer
941 Where printer_name = printer;
942
943 exception
944 when no_data_found then
945 raise printer_error;
946
947 when others then
948 raise;
949 end;
950 end if; -- Verify printer
951
952
953 if ((printer is not null) and
954 (P_PRINT_STYLE is not null)) then -- Verify printer/style combo
955 begin
956 Select 'X'
957 Into Dummy_fld
958 From Fnd_Printer_Information
959 Where Printer_Style = P_PRINT_STYLE
960 And Printer_Type = printer_typ;
961
962 exception
963 when no_data_found then
964 raise printer_style_error;
965
966 when others then
967 raise;
968 end;
969 end if; -- Verify printer/style comination
970
971 -- Add printer/copies to the list.
972 -- Note that we will attempt to process the defaults
973 -- for nulls at submission time. For now, store the
974 -- nulls.
975 P_PRINTER_COUNT := P_PRINTER_COUNT + 1;
976 P_PRINTERS(P_PRINTER_COUNT).printer := printer;
977 P_PRINTERS(P_PRINTER_COUNT).copies := copies;
978 P_PRINTERS(P_PRINTER_COUNT).lang :=lang;
979
980 return (TRUE);
981
982 exception
983 when print_together_error then
984 fnd_message.set_name ('FND', 'CONC-Invalid opt:Print Group');
985 init_pvt_vars;
986 return (FALSE);
987
988 when printer_error then
989 fnd_message.set_name ('FND', 'PRINTERS-No system printer');
990 fnd_message.set_token ('PRINTER', printer, FALSE);
991 init_pvt_vars;
992 return (FALSE);
993
994 when style_error then
995 fnd_message.set_name ('FND', 'PRT-Invalid print style');
996 fnd_message.set_token ('STYLE', P_PRINT_STYLE, FALSE);
997 init_pvt_vars;
998 return (FALSE);
999
1000 when printer_style_error then
1001 fnd_message.set_name ('FND', 'CONC-Invalid printer style');
1002 fnd_message.set_token ('STYLE', P_PRINT_STYLE, FALSE);
1003 fnd_message.set_token ('PRINTER', printer, FALSE);
1004 init_pvt_vars;
1005 return (FALSE);
1006
1007 when others then
1008 init_pvt_vars;
1009 fnd_message.set_name ('FND', 'SQL-Generic error');
1010 fnd_message.set_token ('ERRNO', sqlcode, FALSE);
1011 fnd_message.set_token ('REASON', sqlerrm, FALSE);
1012 fnd_message.set_token ('ROUTINE', 'SET_PRINT_OPTIONS', FALSE);
1013 return (FALSE);
1014
1015 end;
1016
1017 --
1018 -- Name
1019 -- set_print_options
1020 -- Purpose
1021 -- Called before submitting request if the printing of output has
1022 -- to be controlled with specific printer/style/copies etc.,
1023 --
1024 -- Arguments
1025 -- printer - Printer name where the request o/p should be sent
1026 -- style - Print style that needs to be used for printing
1027 -- copies - Number of copies to print
1028 -- save_output - Should the output file be saved after printing
1029 -- - Default is TRUE. TRUE/FALSE
1030 -- print_together - Applies only for sub requests. If 'Y', output
1031 -- - will not be printed until all the sub requests
1032 -- - complete. Default is N. Y/N
1033 -- validate_printer - Once submit function is called
1034 -- - with a specific program, if the printer specified
1035 -- - here conflicts with a printer setting at the
1036 -- - program level, one of three options is available:
1037 -- - FAIL - raise an error and fail to submit
1038 -- - SKIP - skip this print pp action, but submit anyway
1039 -- - RESOLVE - switch to the valid printer, if printer
1040 -- - and style are compatible
1041 -- - Default is RESOLVE
1042 -- lang - Language to print the o/p
1043
1044 function set_print_options (
1045 printer IN varchar2 default NULL,
1046 style IN varchar2 default NULL,
1047 copies IN number default NULL,
1048 save_output IN boolean default TRUE,
1049 print_together IN varchar2 default 'N',
1050 validate_printer IN varchar2 default 'RESOLVE',
1051 lang IN VARCHAR2 default NULL)
1052 return boolean is
1053
1054 printer_typ varchar2 (30) := null;
1055 dummy_fld varchar (2);
1056
1057 validate_printer_error exception;
1058 print_together_error exception;
1059 printer_error exception;
1060 style_error exception;
1061 printer_style_error exception;
1062 empty_array printer_tab_type;
1063 prec printer_record_type;
1064
1065 begin
1066 -- Clear any old printer options
1067 -- Just in case this was called twice.
1068 if P_PRINTER_COUNT > 0 then
1069 P_PRINTERS := empty_array;
1070 P_PRINTER_COUNT := 0;
1071 P_VALIDATE_PRINTER := 'RESOLVE';
1072 end if;
1073
1074 -- 5645007- set P_VALIDATE_PRINTER to determine
1075 -- behavior during submit if the printer specified here
1076 -- conflicts with a printer setting at the program level
1077
1078 if (UPPER(validate_printer)
1079 in ('FAIL','SKIP','RESOLVE')) then
1080 P_VALIDATE_PRINTER := UPPER(validate_printer);
1081 else
1082 raise validate_printer_error;
1083 end if;
1084
1085
1086 if (upper (print_together) not in ('Y', 'N')) then
1087 raise print_together_error;
1088 end if;
1089
1090 if (upper (print_together) = 'Y') then
1091 P_PRINT_TOGETHER := 'Y';
1092 elsif (upper (print_together) = 'N') then
1093 P_PRINT_TOGETHER := 'N';
1094 else
1095 P_PRINT_TOGETHER := NULL;
1096 end if;
1097
1098 if (save_output is null) then
1099 P_SAVE_OUTPUT := NULL;
1100 elsif (save_output) then
1101 P_SAVE_OUTPUT := 'Y';
1102 else
1103 P_SAVE_OUTPUT := 'N';
1104 end if;
1105
1106 if (printer is not null) then -- Verify printer
1107 begin
1108 Select printer_type
1109 Into printer_typ
1110 From fnd_printer
1111 Where printer_name = printer;
1112
1113 exception
1114 when no_data_found then
1115 raise printer_error;
1116
1117 when others then
1118 raise;
1119 end;
1120 end if; -- Verify printer
1121
1122
1123 if (style is not null) then -- Verify style
1124 begin
1125 Select Printer_Style_Name
1126 Into P_PRINT_STYLE
1127 From Fnd_Printer_styles
1128 Where Printer_Style_Name = style;
1129
1130 exception
1131 when no_data_found then
1132 raise style_error;
1133
1134 when others then
1135 raise;
1136 end;
1137 end if; -- Verify style
1138
1139 if ((printer is not null) and
1140 (style is not null)) then -- Verify printer/style comination
1141 begin
1142 Select 'X'
1143 Into Dummy_fld
1144 From Fnd_Printer_Information
1145 Where Printer_Style = P_PRINT_STYLE
1146 And Printer_Type = printer_typ;
1147
1148 exception
1149 when no_data_found then
1150 raise printer_style_error;
1151
1152 when others then
1153 raise;
1154 end;
1155 end if; -- Verify printer/style comination
1156
1157 -- Add printer/copies to the list.
1158 -- Note that we will attempt to process the defaults
1159 -- for nulls at submission time. For now, store the
1160 -- nulls.
1161
1162 if (copies is not null or printer is not null) then
1163 P_PRINTER_COUNT := 1;
1164
1165 -- The following inderect assignment was required to get
1166 -- the procedure to compile. The problem, for some reason
1167 -- doesn't seem to affect the other procedures in this package.
1168 prec.printer := printer;
1169 prec.copies := copies;
1170 prec.lang := lang;
1171 P_PRINTERS(1) := prec;
1172 end if;
1173
1174
1175 return (TRUE);
1176
1177 exception
1178 when validate_printer_error then
1179 fnd_message.set_name ('FND', 'CONC-Bad Validate Printer Parm');
1180 init_pvt_vars;
1181 return (FALSE);
1182
1183 when print_together_error then
1184 fnd_message.set_name ('FND', 'CONC-Invalid opt:Print Group');
1185 init_pvt_vars;
1186 return (FALSE);
1187
1188 when printer_error then
1189 fnd_message.set_name ('FND', 'PRINTERS-No system printer');
1190 fnd_message.set_token ('PRINTER', printer, FALSE);
1191 init_pvt_vars;
1192 return (FALSE);
1193
1194 when style_error then
1195 fnd_message.set_name ('FND', 'PRT-Invalid print style');
1196 fnd_message.set_token ('STYLE', style, FALSE);
1197 init_pvt_vars;
1198 return (FALSE);
1199
1200 when printer_style_error then
1201 fnd_message.set_name ('FND', 'CONC-Invalid printer style');
1202 fnd_message.set_token ('STYLE', style, FALSE);
1203 fnd_message.set_token ('PRINTER', printer, FALSE);
1204 init_pvt_vars;
1205 return (FALSE);
1206
1207 when others then
1208 init_pvt_vars;
1209 fnd_message.set_name ('FND', 'SQL-Generic error');
1210 fnd_message.set_token ('ERRNO', sqlcode, FALSE);
1211 fnd_message.set_token ('REASON', sqlerrm, FALSE);
1212 fnd_message.set_token ('ROUTINE', 'SET_PRINT_OPTIONS', FALSE);
1213 return (FALSE);
1214 end set_print_options;
1215
1216
1217 --
1218 -- Name
1219 -- add_language
1220 -- Purpose
1221 -- Called to add language for request submission.
1222 --
1223 -- Arguments
1224 -- lang - Request Language
1225 -- territory - Request Territory
1226 -- num_char - Request Numeric Characters
1227
1228 function add_language (
1229 lang IN VARCHAR2,
1230 territory IN VARCHAR2,
1231 num_char IN VARCHAR2) return boolean is
1232
1233 begin
1234
1235 P_NLS_PARAMETERS_COUNT := P_NLS_PARAMETERS_COUNT + 1;
1236
1237 P_NLS_PARAMETERS(P_NLS_PARAMETERS_COUNT).nls_lang := lang;
1238 P_NLS_PARAMETERS(P_NLS_PARAMETERS_COUNT).nls_territory := territory;
1239 P_NLS_PARAMETERS(P_NLS_PARAMETERS_COUNT).nls_num_char := num_char;
1240
1241 return (TRUE);
1242
1243 exception
1244 when others then
1245 fnd_message.set_name ('FND', 'GLI-Not found');
1246 return(FALSE);
1247
1248 end add_language;
1249
1250 function set_options (
1251 implicit IN varchar2 default 'NO',
1252 protected IN varchar2 default 'NO',
1253 language IN varchar2 default NULL,
1254 territory IN varchar2 default NULL,
1255 datagroup IN varchar2 default NULL,
1256 numeric_characters IN varchar2 default NULL) return boolean is
1257 dummy_val varchar2(30);
1258 dummy_count number := 0;
1259 nls_error exception;
1260 begin
1261 if ((implicit is null) or
1262 (upper (implicit) = 'NO')) then
1263 P_IMPLICIT := 'N';
1264 elsif (upper (implicit) = 'WARNING') then
1265 P_IMPLICIT := 'W';
1266 elsif (upper (implicit) = 'YES') then
1267 P_IMPLICIT := 'Y';
1268 elsif (upper (implicit) = 'ERROR') then
1269 P_IMPLICIT := 'E';
1270 else
1271 Fnd_Message.Set_Name ('FND', 'CONC-Bad implicit argument');
1272 init_pvt_vars;
1273 return (FALSE);
1274 end if;
1275
1276 if ( language is not null ) then
1277 begin
1278 select nls_language
1279 into dummy_val
1280 from fnd_languages
1281 where nls_language = upper(language);
1282 exception
1283 when no_data_found then
1284 raise nls_error;
1285 end;
1286 end if;
1287
1288 if ( territory is not null ) then
1289 begin
1290 select count(*)
1291 into dummy_count
1292 from fnd_territories
1293 where nls_territory = upper(territory);
1294 exception
1295 when no_data_found then
1296 raise nls_error;
1297 end;
1298 if ( dummy_count < 1 ) then
1299 raise nls_error;
1300 end if;
1301 end if;
1302
1303 if ( numeric_characters is not null ) then
1304 begin
1305 select lookup_code
1306 into dummy_val
1307 from fnd_lookup_values_vl
1308 where lookup_type = 'ICX_NUMERIC_CHARACTERS' and
1309 lookup_code = numeric_characters;
1310 exception
1311 when no_data_found then
1312 raise nls_error;
1313 end;
1314 end if;
1315
1316 P_LANGUAGE := language;
1317 P_TERRITORY := territory;
1318 P_NUMERIC_CHARACTERS := numeric_characters;
1319
1320 if (datagroup is not null) then
1321 P_DATAGROUP := datagroup;
1322 end if;
1323
1324 return (TRUE);
1325
1326 exception
1327 when nls_error then
1328 fnd_message.set_name ('FND', 'GLI-Not found');
1329 return(FALSE);
1330
1331 end set_options;
1332
1333 procedure set_dest_ops(ops_id IN number default NULL) is
1334 begin
1335 P_OPS_ID := ops_id;
1336 end;
1337
1338 procedure set_org_id(org_id IN number default NULL) is
1339 begin
1340 P_ORG_ID := org_id;
1341 end;
1342
1343 END FND_MLS_SUBMIT;