DBA Data[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;