1 PACKAGE BODY ec_document AS
2 -- $Header: ECTRIGB.pls 120.2 2005/09/30 05:48:32 arsriniv ship $
3 G_PKG_NAME CONSTANT VARCHAR2(30) := 'EC_DOCUMENT';
4
5 PROCEDURE send(
6 p_api_version_number IN NUMBER,
7 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
8 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
10 x_return_status OUT NOCOPY VARCHAR2,
11 x_msg_count OUT NOCOPY NUMBER,
12 x_msg_data OUT NOCOPY VARCHAR2,
13 call_status OUT NOCOPY BOOLEAN,
14 request_id OUT NOCOPY PLS_INTEGER,
15 i_Output_Path IN VARCHAR2,
16 i_Output_Filename IN VARCHAR2 DEFAULT NULL,
17 i_Transaction_Type IN VARCHAR2,
18 i_debug_mode IN NUMBER DEFAULT NULL,
19 p_parameter1 IN VARCHAR2,
20 p_parameter2 IN VARCHAR2,
21 p_parameter3 IN VARCHAR2,
22 p_parameter4 IN VARCHAR2,
23 p_parameter5 IN VARCHAR2,
24 p_parameter6 IN VARCHAR2,
25 p_parameter7 IN VARCHAR2,
26 p_parameter8 IN VARCHAR2,
27 p_parameter9 IN VARCHAR2,
28 p_parameter10 IN VARCHAR2,
29 p_parameter11 IN VARCHAR2,
30 p_parameter12 IN VARCHAR2,
31 p_parameter13 IN VARCHAR2,
32 p_parameter14 IN VARCHAR2,
33 p_parameter15 IN VARCHAR2,
34 p_parameter16 IN VARCHAR2,
35 p_parameter17 IN VARCHAR2,
36 p_parameter18 IN VARCHAR2,
37 p_parameter19 IN VARCHAR2,
38 p_parameter20 IN VARCHAR2) IS
39
40
41 l_api_version CONSTANT NUMBER :=1.0;
42 l_api_name CONSTANT VARCHAR2(30) := 'ECSEND API';
43 rphase VARCHAR2(30);
44 rstatus VARCHAR2(30);
45 dphase VARCHAR2(30);
46 dstatus VARCHAR2(30);
47 message VARCHAR2(30);
48 p_Output_Path VARCHAR2(250);
49 p_Debug_Mode NUMBER;
50 BEGIN
51 SAVEPOINT ECSEND_PUB;
52 IF NOT fnd_api.Compatible_API_Call(l_api_version,
53 p_api_version_number,
54 l_api_name,
55 G_PKG_NAME)
56 THEN
57 RAISE fnd_api.g_exc_unexpected_error;
58 END IF;
59
60 IF fnd_api.to_Boolean(p_init_msg_list) THEN
61 fnd_msg_pub.initialize;
62 END IF;
63
64 x_return_status := fnd_api.g_ret_sts_success;
65
66 p_Output_Path := i_Output_Path;
67 IF p_Output_Path IS NULL THEN
68 -- Retrieve the system profile option ECE_OUT_FILE_PATH. This will
69 -- be the directory where the output file will be written.
70 -- NOTE: this directory must be specified in the parameter UTL_FILE_DIR in
71 -- the INIT.ORA file.
72 fnd_profile.get ( 'ECE_OUT_FILE_PATH', p_Output_Path);
73 END IF;
74
75 IF i_debug_mode IS NULL THEN
76 fnd_profile.get('ECE_' || i_Transaction_Type || '_DEBUG_MODE', p_Debug_Mode);
77 IF p_Debug_mode IS NULL THEN
78 p_Debug_Mode := 0;
79 END IF;
80 ELSE
81 p_Debug_Mode := i_debug_mode;
82 END IF;
83
84
85 request_id := fnd_request.submit_request(
86 Application => 'EC',
87 Program => 'ECTRIGO',
88 Description => 'Outbound Triggering Process',
89 argument1 => p_Output_Path,
90 argument2 => i_Output_Filename,
91 argument3 => i_Transaction_Type,
92 argument4 => p_Debug_Mode,
93 argument5 => p_parameter1,
94 argument6 => p_parameter2,
95 argument7 => p_parameter3,
96 argument8 => p_parameter4,
97 argument9 => p_parameter5,
98 argument10 => p_parameter6,
99 argument11 => p_parameter7,
100 argument12 => p_parameter8,
101 argument13 => p_parameter9,
102 argument14 => p_parameter10,
103 argument15 => p_parameter11,
104 argument16 => p_parameter12,
105 argument17 => p_parameter13,
106 argument18 => p_parameter14,
107 argument19 => p_parameter15,
108 argument20 => p_parameter16,
109 argument21 => p_parameter17,
110 argument22 => p_parameter18,
111 argument23 => p_parameter19,
112 argument24 => p_parameter20);
113
114 call_status := FND_CONCURRENT.GET_REQUEST_STATUS(request_id,
115 ' ',' ', rphase, rstatus, dphase, dstatus, message);
116
117 -- Standard check of p_commit
118 if fnd_api.to_Boolean(p_commit) then
119 COMMIT WORK;
120 end if;
121
122 -- Standard call to get message count and if count is 1, get message info.
123 fnd_msg_pub.count_and_get(
124 p_count => x_msg_count,
125 p_data => x_msg_data);
126
127 EXCEPTION
128 WHEN fnd_api.g_exc_error THEN
129 ROLLBACK TO ECSEND_PUB;
130 x_return_status := fnd_api.g_ret_sts_error;
131 fnd_msg_pub.count_and_get(p_count => x_msg_count,
132 p_data => x_msg_data);
133 WHEN fnd_api.g_exc_unexpected_error THEN
134 ROLLBACK TO ECSEND_PUB;
135 x_return_status := fnd_api.g_ret_sts_unexp_error;
136 fnd_msg_pub.count_and_get(p_count => x_msg_count,
137 p_data => x_msg_data);
138 WHEN OTHERS THEN
139 ROLLBACK TO ECSEND_PUB;
140 x_return_status := fnd_api.g_ret_sts_unexp_error;
141 IF fnd_msg_pub.Check_Msg_Level
142 (fnd_msg_pub.G_MSG_LVL_UNEXP_ERROR) THEN
143 fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name);
144 END IF;
145 fnd_msg_pub.count_and_get(p_count => x_msg_count,
146 p_data => x_msg_data);
147 END send;
148
149
150 PROCEDURE process_outbound(
151 errbuf OUT NOCOPY VARCHAR2,
152 retcode OUT NOCOPY VARCHAR2,
153 i_Output_Path IN VARCHAR2,
154 i_Output_Filename IN VARCHAR2 DEFAULT NULL,
155 i_Transaction_Type IN VARCHAR2,
156 i_debug_mode IN NUMBER DEFAULT 0,
157 parameter1 IN VARCHAR2 DEFAULT NULL,
158 parameter2 IN VARCHAR2 DEFAULT NULL,
159 parameter3 IN VARCHAR2 DEFAULT NULL,
160 parameter4 IN VARCHAR2 DEFAULT NULL,
161 parameter5 IN VARCHAR2 DEFAULT NULL,
162 parameter6 IN VARCHAR2 DEFAULT NULL,
163 parameter7 IN VARCHAR2 DEFAULT NULL,
164 parameter8 IN VARCHAR2 DEFAULT NULL,
165 parameter9 IN VARCHAR2 DEFAULT NULL,
166 parameter10 IN VARCHAR2 DEFAULT NULL,
167 parameter11 IN VARCHAR2 DEFAULT NULL,
168 parameter12 IN VARCHAR2 DEFAULT NULL,
169 parameter13 IN VARCHAR2 DEFAULT NULL,
170 parameter14 IN VARCHAR2 DEFAULT NULL,
171 parameter15 IN VARCHAR2 DEFAULT NULL,
172 parameter16 IN VARCHAR2 DEFAULT NULL,
173 parameter17 IN VARCHAR2 DEFAULT NULL,
174 parameter18 IN VARCHAR2 DEFAULT NULL,
175 parameter19 IN VARCHAR2 DEFAULT NULL,
176 parameter20 IN VARCHAR2 DEFAULT NULL) IS
177
178 i_file_id PLS_INTEGER := 0;
179 i_Filename VARCHAR2(30);
180
181 i_run_id PLS_INTEGER := 0;
182 i_count PLS_INTEGER := 0;
183 cEnabled VARCHAR2(1) := 'N';
184 ece_transaction_disabled EXCEPTION;
185 hash_value pls_integer; -- Bug 2905834
186 hash_string varchar2(3200);
187
188 cursor c_parameter_map
189 (p_transaction_type VARCHAR2) is
190 select parameter_id parm_id,
191 name parm_name,
192 datatype parm_datatype,
193 default_value
194 from ece_tran_parameters
195 where transaction_type = p_transaction_type
196 order by parameter_id, sequence_number;
197
198 cursor c_map_id(p_transaction_type VARCHAR2) is
199 select map_id, map_type from ece_mappings
200 where ece_mappings.transaction_type = p_transaction_type;
201
202 BEGIN
203 ec_debug.enable_debug(i_debug_mode);
204 ec_debug.pl(0,'EC','ECE_START_OUTBOUND_TRIG','TRANSACTION_TYPE',i_Transaction_Type);
205 if ec_debug.G_debug_level >= 2 then
206 ec_debug.push('EC_DOCUMENT.PROCESS_OUTBOUND');
207 ec_debug.pl(3, 'i_Output_Path', i_Output_Path);
208 ec_debug.pl(3, 'i_Output_Filename', i_Output_Filename);
209 ec_debug.pl(3, 'i_Transaction_Type',i_Transaction_Type);
210 ec_debug.pl(3, 'parameter1', parameter1);
211 ec_debug.pl(3, 'parameter2', parameter2);
212 ec_debug.pl(3, 'parameter3', parameter3);
213 ec_debug.pl(3, 'parameter4', parameter4);
214 ec_debug.pl(3, 'parameter5', parameter5);
215 ec_debug.pl(3, 'parameter6', parameter6);
216 ec_debug.pl(3, 'parameter7', parameter7);
217 ec_debug.pl(3, 'parameter8', parameter8);
218 ec_debug.pl(3, 'parameter9', parameter9);
219 ec_debug.pl(3, 'parameter10', parameter11);
220 ec_debug.pl(3, 'parameter11', parameter11);
221 ec_debug.pl(3, 'parameter12', parameter12);
222 ec_debug.pl(3, 'parameter13', parameter13);
223 ec_debug.pl(3, 'parameter14', parameter14);
224 ec_debug.pl(3, 'parameter15', parameter15);
225 ec_debug.pl(3, 'parameter16', parameter16);
226 ec_debug.pl(3, 'parameter17', parameter17);
227 ec_debug.pl(3, 'parameter18', parameter18);
228 ec_debug.pl(3, 'parameter19', parameter19);
229 ec_debug.pl(3, 'parameter20', parameter20);
230 ec_debug.pl(3, 'Debug Mode', i_debug_mode);
231 END if;
232
233 -- Transaction Enabled Check
234 fnd_profile.get('ECE_' || i_Transaction_Type || '_ENABLED', cEnabled);
235
236 IF cEnabled IS NULL THEN
237 ec_debug.pl(0,'EC','ECE_NO_TRANSACTION_PROFILE','TRANSACTION_TYPE',i_Transaction_Type);
238 retcode := 2;
239 raise EC_UTILS.PROGRAM_EXIT;
240 ELSIF cEnabled = 'N' THEN
241 RAISE ece_transaction_disabled;
242 END IF;
243
244 -- m_parm_tmp_tbl defined in specs as table of VARCHAR2(150)
245 -- Populate temporary stack with passed in parameters
246
247 ec_document.populate_tmp_parm_stack(
248 parameter1,parameter2,parameter3,parameter4, parameter5,
249 parameter6, parameter7,parameter8, parameter9, parameter10,
250 parameter11, parameter12, parameter13, parameter14, parameter15,
251 parameter16, parameter17, parameter18, parameter19, parameter20);
252
253 --Initialize PL/SQL table from ec_util
254 ec_utils.g_stack.DELETE;
255
256 -- Put parameter name, datatype and default values on stack
257 -- The order of parameters must be predefined both on the input side and the table
258
259 -- EC_UTILS.G_STACK
260 -- level,
261 -- variable_name
262 -- variable_value
263 -- variable_position
264 -- variable_data_type
265 BEGIN
266 FOR c_parm_map_rec IN c_parameter_map (p_transaction_type => i_Transaction_Type)
267 LOOP
268 if ec_debug.G_debug_level = 3 then
269 ec_debug.pl(3, 'parameter_id', c_parm_map_rec.parm_id);
270 ec_debug.pl(3, 'parameter_name', c_parm_map_rec.parm_name);
271 ec_debug.pl(3, 'paremeter datatype', c_parm_map_rec.parm_datatype);
272 ec_debug.pl(3, 'parameter default value', c_parm_map_rec.default_value);
273 end if;
274
275 i_count := i_count + 1;
276 ec_utils.g_stack(i_count).level := 0;
277 ec_utils.g_stack(i_count).variable_name := c_parm_map_rec.parm_name;
278 ec_utils.g_stack(i_count).data_type := c_parm_map_rec.parm_datatype;
279 ec_utils.g_stack(i_count).variable_value := c_parm_map_rec.default_value;
280
281 -- Bug 2905834
282 hash_string := to_char(0)||'-'||UPPER(c_parm_map_rec.parm_name) ;
283 hash_value := dbms_utility.get_hash_value(hash_string,1,100000);
284 ec_utils.g_stack_pos_tbl(hash_value):=i_count;
285
286 END LOOP;
287 COMMIT;
288 END;
289
290 -- Put parameter values on stack
291 -- m_parm_tmp_tbl is temporary stack that gets the input parameters.
292 -- ec_utils.g_stack is the final stack that is used by the outbound execution engine.
293
294 FOR i in 1..ec_utils.g_stack.COUNT
295 LOOP
296 IF m_parm_tmp_tbl.EXISTS(i) THEN
297
298 ec_utils.g_stack(i).variable_value := m_parm_tmp_tbl(i);
299 if ec_debug.G_debug_level = 3 then
300 ec_debug.pl(3, 'Parameter temp table value', m_parm_tmp_tbl(i));
301 ec_debug.pl(3,'g_stack_count',i);
302 ec_debug.pl(3,'g_stack.value',ec_utils.g_stack(i).variable_value);
303 end if;
304 END IF;
305 END LOOP;
306
307 ec_debug.pl(0,'EC','ECE_PARAMETER_STACK_LOADED','TRANSACTION_TYPE',i_Transaction_Type);
308
309 -- Derive output filename
310 IF fnd_global.conc_request_id IS NOT NULL THEN
311 i_file_id := fnd_global.conc_request_id;
312 ELSE
313 select ece_output_runs_s.NEXTVAL INTO i_file_id
314 FROM DUAL;
315 END IF;
316
317 IF i_Output_Filename IS NULL THEN
318 i_Filename := i_Transaction_Type || i_file_id || '.dat';
319 ELSE
320 i_Filename := i_Output_Filename;
321 END IF;
322
323 BEGIN
324 FOR map_id_rec IN c_map_id(p_transaction_type => i_Transaction_Type)
325 LOOP
326 ec_outbound.process_outbound_documents(i_Transaction_Type, map_id_rec.map_id, i_run_id);
327
328 ec_debug.pl(0,'EC','ECE_EXECUTE_OUTBOUND','TRANSACTION_TYPE',i_Transaction_Type,'MAP_ID',map_id_rec.map_id);
329
330 IF map_id_rec.map_type = 'FF' THEN
331
332 ec_outbound_stage.get_data(i_Transaction_Type, i_Filename, i_Output_Path, map_id_rec.map_id, i_run_id);
333
334 ec_debug.pl(0,'EC','ECE_EXECUTE_FLATFILE','TRANSACTION_TYPE',i_Transaction_Type,'MAP_ID',map_id_rec.map_id);
335
336 ELSE
337
338 ec_xml_utils.ec_xml_processor_out_generic(map_id_rec.map_id,i_run_id,i_Output_Path,i_Filename);
339
340 ec_debug.pl(0,'EC','ECE_EXECUTE_XML','TRANSACTION_TYPE',i_Transaction_Type,'MAP_ID',map_id_rec.map_id);
341 END IF;
342
343 END LOOP;
344 COMMIT;
345 END;
346 if ec_debug.G_debug_level >= 2 then
347 ec_debug.pl(3, 'retcode', retcode);
348 ec_debug.pl(3, 'errbuf', errbuf);
349 ec_debug.pop('EC_DOCUMENT.PROCESS_OUTBOUND');
350 end if;
351 ec_debug.pl(0,'EC','ECE_END_OUTBOUND_TRIG','TRANSACTION_TYPE',i_Transaction_Type);
352 ec_debug.disable_debug;
353
354 EXCEPTION
355 WHEN ece_transaction_disabled THEN
356 ec_debug.pl(0,'EC','ECE_TRANSACTION_DISABLED','TRANSACTION_TYPE', i_Transaction_Type);
357 retcode := 1;
358 ec_debug.disable_debug;
359 ROLLBACK WORK;
360 WHEN EC_UTILS.PROGRAM_EXIT THEN
361 ROLLBACK WORK;
362 raise;
363 WHEN OTHERS THEN
364 ROLLBACK WORK;
365 ec_debug.pl(0,'EC', 'ECE_PROGRAM_ERROR', 'PROGRESS_LEVEL', 'EC_DOCUMENT.PROCESS_OUTBOUND');
366 ec_debug.pl(0,'EC', 'ECE_ERROR_MESSAGE', 'ERROR_MESSAGE', SQLERRM);
367 retcode :=2;
368 ec_debug.disable_debug;
369
370 END process_outbound;
371
372
373 -- m_parm_tmp_tbl defined in specs
374
375 procedure populate_tmp_parm_stack(
376 parameter1 IN VARCHAR2 DEFAULT NULL,
377 parameter2 IN VARCHAR2 DEFAULT NULL,
378 parameter3 IN VARCHAR2 DEFAULT NULL,
379 parameter4 IN VARCHAR2 DEFAULT NULL,
380 parameter5 IN VARCHAR2 DEFAULT NULL,
381 parameter6 IN VARCHAR2 DEFAULT NULL,
382 parameter7 IN VARCHAR2 DEFAULT NULL,
383 parameter8 IN VARCHAR2 DEFAULT NULL,
384 parameter9 IN VARCHAR2 DEFAULT NULL,
385 parameter10 IN VARCHAR2 DEFAULT NULL,
386 parameter11 IN VARCHAR2 DEFAULT NULL,
387 parameter12 IN VARCHAR2 DEFAULT NULL,
388 parameter13 IN VARCHAR2 DEFAULT NULL,
389 parameter14 IN VARCHAR2 DEFAULT NULL,
390 parameter15 IN VARCHAR2 DEFAULT NULL,
391 parameter16 IN VARCHAR2 DEFAULT NULL,
392 parameter17 IN VARCHAR2 DEFAULT NULL,
393 parameter18 IN VARCHAR2 DEFAULT NULL,
394 parameter19 IN VARCHAR2 DEFAULT NULL,
398 BEGIN
395 parameter20 IN VARCHAR2 DEFAULT NULL) IS
396
397
399 -- Initialize temp stack
400 m_parm_tmp_tbl.DELETE;
401
402 -- Load temp stack
403 IF parameter1 is NOT NULL THEN
404 m_parm_tmp_tbl(1) := parameter1;
405 END IF;
406 IF parameter2 is NOT NULL THEN
407 m_parm_tmp_tbl(2) := parameter2;
408 END IF;
409 IF parameter3 is NOT NULL THEN
410 m_parm_tmp_tbl(3) := parameter3;
411 END IF;
412 IF parameter4 is NOT NULL THEN
413 m_parm_tmp_tbl(4) := parameter4;
414 END IF;
415 IF parameter5 is NOT NULL THEN
416 m_parm_tmp_tbl(5) := parameter5;
417 END IF;
418 IF parameter6 is NOT NULL THEN
419 m_parm_tmp_tbl(6) := parameter6;
420 END IF;
421 IF parameter7 is NOT NULL THEN
422 m_parm_tmp_tbl(7) := parameter7;
423 END IF;
424 IF parameter8 is NOT NULL THEN
425 m_parm_tmp_tbl(8) := parameter8;
426 END IF;
427 IF parameter9 is NOT NULL THEN
428 m_parm_tmp_tbl(9) := parameter9;
429 END IF;
430 IF parameter10 is NOT NULL THEN
431 m_parm_tmp_tbl(10) := parameter10;
432 END IF;
433 IF parameter11 is NOT NULL THEN
434 m_parm_tmp_tbl(11) := parameter11;
435 END IF;
436 IF parameter12 is NOT NULL THEN
437 m_parm_tmp_tbl(12) := parameter12;
438 END IF;
439 IF parameter13 is NOT NULL THEN
440 m_parm_tmp_tbl(13) := parameter13;
441 END IF;
442 IF parameter14 is NOT NULL THEN
443 m_parm_tmp_tbl(14) := parameter14;
444 END IF;
445 IF parameter15 is NOT NULL THEN
446 m_parm_tmp_tbl(15) := parameter15;
447 END IF;
448 IF parameter16 is NOT NULL THEN
449 m_parm_tmp_tbl(16) := parameter16;
450 END IF;
451 IF parameter17 is NOT NULL THEN
452 m_parm_tmp_tbl(17) := parameter17;
453 END IF;
454 IF parameter18 is NOT NULL THEN
455 m_parm_tmp_tbl(18) := parameter18;
456 END IF;
457 IF parameter19 is NOT NULL THEN
458 m_parm_tmp_tbl(19) := parameter19;
459 END IF;
460 IF parameter20 is NOT NULL THEN
461 m_parm_tmp_tbl(20) := parameter20;
462 END IF;
463 if ec_debug.G_debug_level =3 then
464 IF parameter1 is NOT NULL THEN
465 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 1',m_parm_tmp_tbl(1));
466 end if;
467 IF parameter2 is NOT NULL THEN
468 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 2',m_parm_tmp_tbl(2));
469 end if;
470 IF parameter3 is NOT NULL THEN
471 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 3',m_parm_tmp_tbl(3));
472 end if;
473 IF parameter4 is NOT NULL THEN
474 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 4',m_parm_tmp_tbl(4));
475 end if;
476 IF parameter5 is NOT NULL THEN
477 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 5',m_parm_tmp_tbl(5));
478 end if;
479 IF parameter6 is NOT NULL THEN
480 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 6',m_parm_tmp_tbl(6));
481 end if;
482 IF parameter7 is NOT NULL THEN
483 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 7',m_parm_tmp_tbl(7));
484 end if;
485 IF parameter8 is NOT NULL THEN
486 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 8',m_parm_tmp_tbl(8));
487 end if;
488 IF parameter9 is NOT NULL THEN
489 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 9',m_parm_tmp_tbl(9));
490 end if;
491 IF parameter10 is NOT NULL THEN
492 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 10',m_parm_tmp_tbl(10));
493 end if;
494 IF parameter11 is NOT NULL THEN
495 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 11',m_parm_tmp_tbl(11));
496 end if;
497 IF parameter12 is NOT NULL THEN
498 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 12',m_parm_tmp_tbl(12));
499 end if;
500 IF parameter13 is NOT NULL THEN
501 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 13',m_parm_tmp_tbl(13));
502 end if;
503 IF parameter14 is NOT NULL THEN
504 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 14',m_parm_tmp_tbl(14));
505 end if;
506 IF parameter15 is NOT NULL THEN
507 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 15',m_parm_tmp_tbl(15));
508 end if;
509 IF parameter16 is NOT NULL THEN
510 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 16',m_parm_tmp_tbl(16));
511 end if;
512 IF parameter17 is NOT NULL THEN
513 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 17',m_parm_tmp_tbl(17));
514 end if;
515 IF parameter18 is NOT NULL THEN
516 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 18',m_parm_tmp_tbl(18));
517 end if;
518 IF parameter19 is NOT NULL THEN
519 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 19',m_parm_tmp_tbl(19));
520 end if;
521 IF parameter20 is NOT NULL THEN
522 ec_debug.pl(3,'m_parm_tmp_tbl Parameter 20',m_parm_tmp_tbl(20));
523 end if;
524 end if;
525
526 END populate_tmp_parm_stack;
527
528
529 END ec_document;
530
531