[Home] [Help]
PACKAGE BODY: APPS.PON_FORMS_JRAD_PVT
Source
1 PACKAGE BODY PON_FORMS_JRAD_PVT AS
2 -- $Header: PONFMJRB.pls 120.12 2010/09/30 10:35:11 irasoolm ship $
3
4 -- we will switch between 2 regions, created for LOVs
5 -- 1st region will be used for LOVs with value-set validation list type set to 'Independent' or
6 -- 'Translatable Independent'
7 -- the 2nd region will be used for LOVs with value-set validation list type set to 'table'
8
9 g_jrad_lov_path_sql CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/webui/ponFormsSqlBasedLovRN';
10 g_jrad_lov_path_tab CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/webui/ponFormsTableBasedLovRN';
11 g_jrad_lov_pkg_name CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/lov/webui/';
12 g_jrad_rgn_pkg_name CONSTANT VARCHAR2(50) := '/oracle/apps/pon/forms/jrad/webui/';
13 g_jrad_ext_poplist CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/webui/ponExtAbsPoplistRG';
14 g_jrad_ext_page_path CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/webui/ponExtAbstractTableRG';
15 g_jrad_long_tip_rgn CONSTANT VARCHAR2(60) := '/oracle/apps/pon/forms/jrad/webui/ponFormsJradLongTipRN';
16
17 g_ext_abs_vo_name CONSTANT VARCHAR2(50) := 'AbstractFieldsTableVO';
18
19 g_lov_code CONSTANT VARCHAR2(20) := 'Code';
20 g_lov_description CONSTANT VARCHAR2(20) := 'Description';
21 g_lov_meaning CONSTANT VARCHAR2(20) := 'Meaning';
22 g_lov_vset_name CONSTANT VARCHAR2(20) := 'ValueSetName';
23 g_values_viewName CONSTANT VARCHAR2(20) := 'FormFieldValuesVO';
24 g_sql_poplist_view_name CONSTANT VARCHAR2(20) := 'SqlBasedPoplistVO';
25 g_tab_poplist_view_name CONSTANT VARCHAR2(20) := 'TableBasedPoplistVO';
26
27
28 g_fnd_debug CONSTANT VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
29 g_pkg_name CONSTANT VARCHAR2(30) := 'PON_FORMS_JRAD_PVT';
30 g_module_prefix CONSTANT VARCHAR2(50) := 'pon.plsql.' || g_pkg_name || '.';
31
32 g_app_module CONSTANT VARCHAR2(60) := 'oracle.apps.pon.forms.jrad.server.FormsDynamicJradAM';
33 g_controller CONSTANT VARCHAR2(60) := 'oracle.apps.pon.forms.jrad.webui.FormsDynamicJradCO';
34 g_ext_app_module CONSTANT VARCHAR2(60) := 'oracle.apps.pon.forms.jrad.server.FormsExtAbstractTableAM';
35 g_ext_controller CONSTANT VARCHAR2(60) := 'oracle.apps.pon.forms.jrad.webui.FormsExtAbstractTableCO';
36
37 g_spacer CONSTANT VARCHAR2(3) := '---';
38 g_under_score CONSTANT VARCHAR2(3) := '_';
39
40 g_sql_pop_list_count INTEGER;
41 g_table_pop_list_count INTEGER;
42 g_lov_map_count INTEGER;
43 g_pop_list_count INTEGER;
44 g_total_image_count INTEGER;
45 g_total_element_count INTEGER;
46 g_base_language VARCHAR2(4);
47 v_date_list_count INTEGER;
48 v_table_vo_count INTEGER;
49
50
51 /*======================================================================
52 FUNCTION: ISLOVVALUESET PRIVATE
53 PARAMETERS: NONE
54 COMMENT : This function is used to escape special characters in the
55 the prompts for various fields/sections.
56 ======================================================================*/
57
58 FUNCTION isLovValueSet(p_field_code IN VARCHAR2) RETURN VARCHAR2 IS
59
60 v_ret_value VARCHAR2(1);
61 l_api_name CONSTANT VARCHAR2(30) := 'ISLOVVALUESET';
62
63 BEGIN
64 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN');
65
66 v_ret_value := 'N';
67
68 BEGIN
69 select decode(fnd_flex_value_sets.longlist_flag, 'X', 'N', 'Y') isLov
70 into v_ret_value
71 from pon_fields,
72 fnd_flex_value_sets
73 where pon_fields.value_set_name = fnd_flex_value_sets.flex_value_set_name
74 and pon_fields.value_set_name is not null
75 and pon_fields.field_code = p_field_code;
76
77 EXCEPTION
78 WHEN OTHERS THEN
79 v_ret_value := 'N';
80 END;
81
82
83 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
84
85 RETURN v_ret_value;
86
87 END isLovValueSet;
88
89
90
91 /*======================================================================
92 FUNCTION: ESCAPESPECIALCHAR PRIVATE
93 PARAMETERS: NONE
94 COMMENT : This function is used to escape special characters in the
95 the prompts for various fields/sections.
96 ======================================================================*/
97
98 FUNCTION escapeSpecialChar(p_prompt IN VARCHAR2) RETURN VARCHAR2 IS
99
100 v_ret_value VARCHAR2(120);
101 l_api_name CONSTANT VARCHAR2(30) := 'ESCAPESPECIALCHAR';
102
103 BEGIN
104 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN');
105
106 v_ret_value := replace(p_prompt, '&', '&'||'amp;');
107
108 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
109
110 RETURN v_ret_value;
111
112 END escapeSpecialChar;
113
114
115 /*======================================================================
116 FUNCTION: GETPARENTELEMENTINDEX PRIVATE
117 PARAMETERS: NONE
118 COMMENT : This function is used to determine the index of the parent
119 item in the tree of region items while creating the JRAD
120 for a form.
121 ======================================================================*/
122
123 FUNCTION getParentElementIndex (p_type IN VARCHAR2,
124 p_form_id IN NUMBER,
125 p_section_id IN NUMBER,
126 p_incl_sec_id IN NUMBER,
127 p_rept_sec_id IN NUMBER,
128 p_field_code IN VARCHAR2) RETURN VARCHAR2 IS
129
130 v_ret_value VARCHAR2(120);
131 l_api_name CONSTANT VARCHAR2(30) := 'GETPARENTELEMENTINDEX';
132
133 BEGIN
134 IF (p_type = 'FORM') THEN
135 -- no parent
136 null;
137 ELSIF (p_type = 'FORM_FIELD') THEN
138 -- parent is form
139 v_ret_value := 'FORM' || g_spacer || p_form_id || g_spacer || 0
140 || g_spacer || 0 || g_spacer || 0
141 || g_spacer || to_char(null);
142
143 ELSIF (p_type = 'NORMAL_SECTION') THEN
144 -- parent is form
145 v_ret_value := 'FORM' || g_spacer || p_form_id || g_spacer || 0
146 || g_spacer || 0 || g_spacer || 0
147 || g_spacer|| to_char(null);
148
149 ELSIF (p_type = 'SECTION_FIELD') THEN
150 -- parent is normal_section
151 v_ret_value := 'NORMAL_SECTION'
152 || g_spacer || p_form_id || g_spacer || p_section_id
153 || g_spacer || 0 || g_spacer || 0
154 || g_spacer|| to_char(null);
155
156 ELSIF (p_type = 'INNER_NORMAL_SECTION') THEN
157 -- parent is normal_section
158 v_ret_value := 'NORMAL_SECTION'
159 || g_spacer || p_form_id || g_spacer || p_section_id
160 || g_spacer || 0 || g_spacer || 0
161 || g_spacer || to_char(null);
162
163 ELSIF (p_type = 'INNER_SECTION_FIELD') THEN
164 -- parent is inner_normal_section
165 v_ret_value := 'INNER_NORMAL_SECTION'
166 || g_spacer || p_form_id || g_spacer || p_section_id
167 || g_spacer || p_incl_sec_id || g_spacer || 0
168 || g_spacer || to_char(null);
169
170 ELSIF (p_type = 'REPEAT_SECTION') THEN
171 -- parent is form
172 v_ret_value := 'FORM' || g_spacer || p_form_id || g_spacer || 0
173 || g_spacer || 0 || g_spacer || 0
174 || g_spacer || to_char(null);
175
176 ELSIF (p_type = 'INNER_REPEAT_SECTION') THEN
177 -- parent is normal_section
178 v_ret_value := 'NORMAL_SECTION'
179 || g_spacer || p_form_id || g_spacer || p_section_id
180 || g_spacer || 0 || g_spacer || 0
181 || g_spacer || to_char(null);
182
183 ELSIF (p_type = 'INNER_SECTION_REPEAT_SECTION') THEN
184 -- parent is inner_normal_section
185 v_ret_value := 'INNER_NORMAL_SECTION'
186 || g_spacer || p_form_id || g_spacer || p_section_id
187 || g_spacer || p_incl_sec_id || g_spacer || 0
188 || g_spacer || to_char(null);
189 END IF;
190
191 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
192
193 RETURN v_ret_value;
194
195 END getparentelementindex;
196
197
198
199 /*======================================================================
200 FUNCTION: GETCURRENTELEMENTINDEX PRIVATE
201 PARAMETERS: NONE
202 COMMENT : This function is used to return the index of the current
203 region item or region in the entire tree of JRAD items
204 while constructing the JRAD for a given form.
205 ======================================================================*/
206
207 FUNCTION getCurrentElementIndex(p_type IN VARCHAR2,
208 p_form_id IN NUMBER,
209 p_section_id IN NUMBER,
210 p_incl_sec_id IN NUMBER,
211 p_rept_sec_id IN NUMBER,
212 p_field_code IN VARCHAR2) RETURN VARCHAR2 IS
213
214 v_ret_value VARCHAR2(120);
215 l_api_name CONSTANT VARCHAR2(30) := 'GETCURRENTELEMENTINDEX';
216
217 BEGIN
218 v_ret_value := p_type || g_spacer || p_form_id || g_spacer || p_section_id
219 || g_spacer || p_incl_sec_id || g_spacer || p_rept_sec_id
220 || g_spacer || to_char(null);
221
222 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
223
224 RETURN v_ret_value;
225
226 END getCurrentElementIndex;
227
228 /*======================================================================
229 FUNCTION: GETDISPLAYTYPE PRIVATE
230 PARAMETERS: NONE
231 COMMENT : Since we have restrictions on the number of characters
232 that we can have in a JRAD id, we will follow a certain
233 convention to construct each JRAD element
234
235 ======================================================================*/
236
237 FUNCTION getDisplayType (p_type IN VARCHAR2) RETURN VARCHAR2 IS
238
239 v_ret_value VARCHAR2(2);
240 l_api_name CONSTANT VARCHAR2(30) := 'GETDISPLAYTYPE';
241
242 BEGIN
243
244 -- we do have the following restrictions -
245 -- we cannot have variable names starting with a number
246 -- we cannot have variables names with dashes
247 -- i.e. only alpha-numeric characters and underscores
248 -- max length for a JRAD id in PL/SQL is 60 characters
249 -- i think there's no max length for a java variable name (or atleast < 60 characters)
250
251 IF (p_type = 'FORM') THEN
252 v_ret_value := 't1';
253 ELSIF (p_type = 'FORM_FIELD') THEN
254 v_ret_value := 't2';
255 ELSIF (p_type = 'NORMAL_SECTION') THEN
256 v_ret_value := 't3';
257 ELSIF (p_type = 'SECTION_FIELD') THEN
258 v_ret_value := 't4';
259 ELSIF (p_type = 'INNER_NORMAL_SECTION') THEN
260 v_ret_value := 't5';
261 ELSIF (p_type = 'INNER_SECTION_FIELD') THEN
262 v_ret_value := 't6';
263 ELSIF (p_type = 'REPEAT_SECTION') THEN
264 v_ret_value := 't7';
265 ELSIF (p_type = 'INNER_REPEAT_SECTION') THEN
266 v_ret_value := 't8';
267 ELSIF (p_type = 'INNER_SECTION_REPEAT_SECTION') THEN
268 v_ret_value := 't9';
269 ELSE
270 v_ret_value := 't0';
271 END IF;
272
273 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
274
275 RETURN v_ret_value;
276
277 END getdisplaytype;
278
279
280 /*======================================================================
281 FUNCTION: GETDISPLAYID PRIVATE
282
283 PARAMETERS: NONE
284 COMMENT : This function simply returns the passed value or a null
285 value if the passed value is a -1
286
287 ======================================================================*/
288
289 FUNCTION getDisplayId(p_id IN NUMBER ) RETURN VARCHAR2 IS
290
291 v_ret_value VARCHAR2(10);
292 l_api_name CONSTANT VARCHAR2(30) := 'GETDISPLAYID';
293
294 BEGIN
295 IF(p_id = -1) THEN
296 v_ret_value := to_char(null);
297 ELSE
298 v_ret_value := to_char(p_id);
299 END IF;
300
301 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
302
303 RETURN v_ret_value;
304
305 END getDisplayId;
306
307
308
309 /*======================================================================
310 FUNCTION: GETJRADID PRIVATE
311 PARAMETERS: NONE
312 COMMENT : This function returns the actual JRAD id to be used while
313 creating the JRAD for a form in such a way that it will
314 always be unique in the entire hierarchy
315
316 ======================================================================*/
317
318 FUNCTION getJradId(p_type IN VARCHAR2,
319 p_form_id IN NUMBER,
320 p_section_id IN NUMBER,
321 p_incl_sec_id IN NUMBER,
322 p_rept_sec_id IN NUMBER,
323 p_field_code IN VARCHAR2) RETURN VARCHAR2 IS
324
325 -- JDR_COMPONENTS.comp_id%TYPE;
326 -- max max 60 characters
327
328 v_ret_value VARCHAR2(60);
329 l_api_name CONSTANT VARCHAR2(30) := 'GETJRADID';
330
331 BEGIN
332 v_ret_value := getDisplayType(p_type)
333 || 'FM_' || getDisplayId(p_form_id)
334 || 'TS_' || getDisplayId(p_section_id)
335 || 'IS_' || getDisplayId(p_incl_sec_id)
336 || 'RS_' || getDisplayId(p_rept_sec_id)
337 || 'FD_' || p_field_code;
338
339
340 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'RETURN VALUE=' || v_ret_value);
341
342 RETURN v_ret_value;
343
344 END getJradId;
345
346
347
348 /*======================================================================
349 PROCEDURE: CREATE_LOV PRIVATE
350 PARAMETERS:
351 COMMENT : This procedure will create an LOV map for a messageLovInput
352 field.
353 ======================================================================*/
354
355 PROCEDURE CREATE_LOV(
356 p_field_code IN VARCHAR2,
357 p_vset_name IN VARCHAR2,
358 p_mapping_field IN VARCHAR2,
359 p_validation_type IN VARCHAR2,
360 p_jrad_field_id IN VARCHAR2,
361 p_input_elem IN jdr_docbuilder.Element) IS
362
363 err_num NUMBER;
364 err_msg VARCHAR2(100);
365 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_LOV';
366 lovMap jdr_docbuilder.ELEMENT;
367
368 BEGIN
369 /*
370 we want the lookup_type to be transferred from the generated page to the lov region
371 we want the meaning to be transferred from the lov region to the generated page
372 here's how our lovMappings shud look like
373 */
374
375 -- from Meaning resultTo _NAME
376
377 lovMap := jdr_docbuilder.createElement(jdr_docbuilder.JRAD_NS, 'lovMap');
378 jdr_docbuilder.setAttribute(lovMap, 'id', 'lovMap' || g_lov_map_count);
379 jdr_docbuilder.setAttribute(lovMap, 'lovItem', g_lov_meaning);
380 jdr_docbuilder.setAttribute(lovMap, 'resultTo', p_jrad_field_id);
381 jdr_docbuilder.setAttribute(lovMap, 'criteriaFrom', p_jrad_field_id);
382 jdr_docbuilder.addChild(p_input_elem, jdr_docbuilder.JRAD_NS, 'lovMappings',lovMap);
383 g_lov_map_count := g_lov_map_count + 1;
384
385 lovMap := jdr_docbuilder.createElement(jdr_docbuilder.JRAD_NS, 'lovMap');
386 jdr_docbuilder.setAttribute(lovMap, 'id', 'lovMap' || g_lov_map_count);
387 jdr_docbuilder.setAttribute(lovMap, 'lovItem', g_lov_code);
388 jdr_docbuilder.setAttribute(lovMap, 'resultTo', p_jrad_field_id || '_FORM');
389 jdr_docbuilder.addChild(p_input_elem, jdr_docbuilder.JRAD_NS, 'lovMappings',lovMap);
390 g_lov_map_count := g_lov_map_count + 1;
391
392
393 -- from base-page EO-based VO attribute to lovItem Code
394 /*
395 lovMap := jdr_docbuilder.createElement(jdr_docbuilder.JRAD_NS, 'lovMap');
396 jdr_docbuilder.setAttribute(lovMap, 'id', 'lovMap' || g_lov_map_count);
397 jdr_docbuilder.setAttribute(lovMap, 'lovItem', g_lov_code);
398 jdr_docbuilder.setAttribute(lovMap, 'resultTo', p_mapping_field);
399 jdr_docbuilder.addChild(p_input_elem, jdr_docbuilder.JRAD_NS, 'lovMappings',lovMap);
400 g_lov_map_count := g_lov_map_count + 1;
401 */
402
403 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
404
405 EXCEPTION
406 WHEN OTHERS THEN
407 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION');
408 err_num := SQLCODE;
409 err_msg := SUBSTR(SQLERRM, 1, 100);
410
411 END CREATE_LOV;
412
413
414 /*======================================================================
415 FUNCTION: GETBASELANGUAGE PRIVATE
416 PARAMETERS: NONE
417 COMMENT : This function will get the base language of the instance,
418 We will use this base language to create the default
419 JRAD XML, although the prompts will be set dynamically
420 at run time.
421 ======================================================================*/
422
423 FUNCTION getBaseLanguage RETURN VARCHAR2 IS
424
425 v_base_language FND_LANGUAGES.LANGUAGE_CODE%TYPE;
426 l_api_name CONSTANT VARCHAR2(30) := 'GETBASELANGUAGE';
427
428 BEGIN
429 -- just initialize this local variable to a default value
430
431 V_BASE_LANGUAGE := g_base_language;
432
433 SELECT LANGUAGE_CODE
434 INTO V_BASE_LANGUAGE
435 FROM FND_LANGUAGES
436 WHERE NVL(INSTALLED_FLAG, 'X') = 'B';
437
438 RETURN V_BASE_LANGUAGE;
439
440 EXCEPTION
441 WHEN OTHERS THEN
442 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION');
443 RETURN V_BASE_LANGUAGE;
444
445 END getBaseLanguage;
446
447
448 /*======================================================================
449 FUNCTION: CREATE_ELEMENT PRIVATE
450 PARAMETERS:
451 COMMENT : Generic function to create any type of element
452 ======================================================================*/
453
454 FUNCTION CREATE_ELEMENT (
455 p_element_type IN VARCHAR2,
456 p_element_id IN VARCHAR2,
457 p_element_prompt IN VARCHAR2,
458 p_element_dataType IN VARCHAR2,
459 p_element_tipType IN VARCHAR2,
460 p_element_viewAttr IN VARCHAR2) RETURN JDR_DOCBUILDER.ELEMENT IS
461
462 v_return_jrad_element JDR_DOCBUILDER.ELEMENT;
463 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ELEMENT';
464
465 BEGIN
466
467 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN '
468 || p_element_type || ' ' || p_element_id || ' '
469 || p_element_dataType || ' ' || p_element_viewAttr);
470
471 v_return_jrad_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, p_element_type);
472 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'id', p_element_id);
473 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'viewAttr', p_element_viewAttr);
474
475 if(p_element_type <> 'formValue') then
476 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'prompt', escapespecialchar(p_element_prompt));
477 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'dataType', p_element_dataType);
478 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'cellNoWrapFormat', 'true');
479 end if;
480
481
482 if(p_element_type = 'messageStyledText') then
483 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'styleClass', 'OraDataText');
484 else
485 if(p_element_tipType = 'dateFormat') then
486 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'tipType', p_element_tipType);
487 elsif (p_element_tipType = 'longMessage') then
488 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'tipType', 'longMessage');
489 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'longTipRegion', g_jrad_long_tip_rgn);
490 end if;
491 end if;
492
493 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
494
495 return v_return_jrad_element;
496
497 END CREATE_ELEMENT;
498
499
500 /*======================================================================
501 FUNCTION: CREATE_TABLE_ELEMENT PRIVATE
502 PARAMETERS:
503 COMMENT : Generic function to create a display-only element in
504 a table
505 ======================================================================*/
506
507 FUNCTION CREATE_TABLE_ELEMENT (
508 p_element_type IN VARCHAR2,
509 p_element_id IN VARCHAR2,
510 p_element_prompt IN VARCHAR2,
511 p_element_dataType IN VARCHAR2,
512 p_element_tipType IN VARCHAR2,
513 p_element_viewAttr IN VARCHAR2) RETURN JDR_DOCBUILDER.ELEMENT IS
514
515 v_return_jrad_element JDR_DOCBUILDER.ELEMENT;
516 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TABLE_ELEMENT';
517
518 BEGIN
519
520 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN '
521 || p_element_type || ' ' || p_element_id || ' '
522 || p_element_dataType || ' ' || p_element_viewAttr);
523
524 v_return_jrad_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, p_element_type);
525 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'id', p_element_id);
526 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'viewAttr', p_element_viewAttr);
527
528 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'prompt', escapespecialchar(p_element_prompt));
529 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'dataType', p_element_dataType);
530 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'cellNoWrapFormat', 'true');
531
532 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
533
534 return v_return_jrad_element;
535
536 END CREATE_TABLE_ELEMENT;
537
538
539 /*======================================================================
540 FUNCTION: CREATE_VSET_ELEMENT PRIVATE
541 PARAMETERS:
542 COMMENT : Function to create any value-set based element in the
543 JRAD. i.e. either a messageChoice or a messageLovInput
544 Depending upon the vset definition, we will create the
545 corresponding JRAD UI element.
546 ======================================================================*/
547
548 FUNCTION create_vset_element (p_field_jrad_id IN VARCHAR2,
549 p_field_code IN VARCHAR2,
550 p_field_name IN VARCHAR2,
551 p_field_desc IN VARCHAR2,
552 p_mapping_field IN VARCHAR2,
553 p_value_set_name IN VARCHAR2,
554 p_in_table IN VARCHAR2) RETURN JDR_DOCBUILDER.ELEMENT IS
555
556 v_return_jrad_element JDR_DOCBUILDER.ELEMENT;
557 v_display_type VARCHAR2(1);
558 v_validation_type VARCHAR2(1);
559 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VSET_ELEMENT';
560 FND_FLEX_EXCEPTION EXCEPTION;
561
562 BEGIN
563
564 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN -'
565 || p_field_jrad_id || ' ' || p_field_code || ' '
566 || p_mapping_field || ' ' || p_value_set_name);
567
568 BEGIN
569
570 SELECT fnd_flex_value_sets.LONGLIST_FLAG, fnd_flex_value_sets.VALIDATION_TYPE
571 INTO v_display_type, v_validation_type
572 FROM fnd_flex_value_sets
573 WHERE fnd_flex_value_sets.FLEX_VALUE_SET_NAME = p_value_set_name;
574
575 EXCEPTION
576 WHEN OTHERS THEN
577 RAISE FND_FLEX_EXCEPTION;
578 END;
579
580 if(v_display_type = 'X') then --{
581
582 -- create a poplist
583
584 if(p_in_table = 'Y' OR nvl(p_field_desc, 'x@Y#z') = 'x@Y#z' ) then
585
586 v_return_jrad_element := create_element ('messageChoice', p_field_jrad_id,
587 p_field_name, 'VARCHAR2','none',
588 p_mapping_field);
589
590 else
591 v_return_jrad_element := create_element ('messageChoice', p_field_jrad_id,
592 p_field_name, 'VARCHAR2','longMessage',
593 p_mapping_field);
594
595
596 end if;
597
598 if((v_validation_type = 'I') OR (v_validation_type = 'X')) then --{
599 -- independent or translatable independent
600 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListViewName',g_sql_poplist_view_name || g_sql_pop_list_count);
601 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListDispAttr','Meaning');
602 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListValAttr','Code');
603 g_sql_pop_list_count := g_sql_pop_list_count + 1;
604
605 --}
606
607 elsif ((v_validation_type = 'F')) then --{
608
609 -- poplist based on a table-based validation set
610 -- need to create this VO in the middle tier, and associate that VOs attributes here
611 -- 'Code' is VALUE_COLUMN, 'Meaning' is ID_COLUMN
612
613 JDR_DOCBUILDER.setAttribute (v_return_jrad_element,'pickListViewName',g_tab_poplist_view_name||g_table_pop_list_count);
614
615 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListDispAttr','ID_COLUMN');
616 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListValAttr','VALUE_COLUMN');
617 g_table_pop_list_count := g_table_pop_list_count + 1;
618
619 end if; -- bad type done
620
621 --} -- done creating a poplist
622
623 elsif( (v_display_type = 'Y' ) OR (v_display_type = 'N')) then --{
624
625 -- list of values OR long list of values
626
627 if(p_in_table = 'Y' OR nvl(p_field_desc, 'x@Y#z') = 'x@Y#z') then
628
629 -- here we should have the JRAD field Id as the VO attribute
630 -- by default, the user will be able to search on the 'meaning' or
631 -- user-displayed value
632 -- the '_FORM' JRAD element will be based on p_mapping_field
633 v_return_jrad_element := create_element ('messageLovInput', p_field_jrad_id,
634 p_field_name, 'VARCHAR2', 'none', p_field_jrad_id || '_NAME');
635 else
636 v_return_jrad_element := create_element ('messageLovInput', p_field_jrad_id,
637 p_field_name, 'VARCHAR2', 'longMessage', p_field_jrad_id || '_NAME');
638 end if;
639
640 -- depending upon the validation_type, we will associate this lov, with a different region
641
642 if((v_validation_type = 'I') OR (v_validation_type = 'X')) then --{
643 -- refer to direct sql query
644 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'externalListOfValues', g_jrad_lov_path_sql);
645 --}
646 elsif ((v_validation_type = 'F')) then --{
647 -- create a sql query, and then create a vo
648 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'externalListOfValues', g_jrad_lov_path_tab);
649 end if;
650 --}
651
652 -- JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'unvalidated', 'false');
653
654 -- need to construct an LOV for v_form_fields_row.field_name
655 create_lov(p_field_code, p_value_set_name, p_mapping_field,
656 v_validation_type, p_field_jrad_id, v_return_jrad_element);
657 end if; --}
658
659 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
660 return v_return_jrad_element;
661
662 EXCEPTION
663 WHEN FND_FLEX_EXCEPTION THEN
664 RAISE_APPLICATION_ERROR(-20010, 'ERROR: FND FLEXFIELD VALIDATION SETS ERRROR FOR VALUE-SET ' || p_value_set_name);
665 END CREATE_VSET_ELEMENT;
666
667 /*======================================================================
668 FUNCTION: CREATE_VSET_ELEMENT_SYSFIELD PRIVATE
669 PARAMETERS:
670 COMMENT : Bug 10149273
671 Function to create any value-set based element in the
672 JRAD for system editable field. i.e. either a messageChoice or a messageLovInput
673 Depending upon the vset definition, we will create the
674 corresponding JRAD UI element.
675 ======================================================================*/
676
677 FUNCTION create_vset_element_sysfield (p_field_jrad_id IN VARCHAR2,
678 p_field_code IN VARCHAR2,
679 p_field_name IN VARCHAR2,
680 p_field_desc IN VARCHAR2,
681 p_mapping_field IN VARCHAR2,
682 p_value_set_name IN VARCHAR2,
683 p_in_table IN VARCHAR2) RETURN JDR_DOCBUILDER.ELEMENT IS
684
685 v_return_jrad_element JDR_DOCBUILDER.ELEMENT;
686 v_display_type VARCHAR2(1);
687 v_validation_type VARCHAR2(1);
688 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VSET_ELEMENT_SYSFIELD';
689 FND_FLEX_EXCEPTION EXCEPTION;
690
691 BEGIN
692
693 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN -'
694 || p_field_jrad_id || ' ' || p_field_code || ' '
695 || p_mapping_field || ' ' || p_value_set_name);
696
697 BEGIN
698
699 SELECT fnd_flex_value_sets.LONGLIST_FLAG, fnd_flex_value_sets.VALIDATION_TYPE
700 INTO v_display_type, v_validation_type
701 FROM fnd_flex_value_sets
702 WHERE fnd_flex_value_sets.FLEX_VALUE_SET_NAME = p_value_set_name;
703
704 EXCEPTION
705 WHEN OTHERS THEN
706 RAISE FND_FLEX_EXCEPTION;
707 END;
708
709 if(v_display_type = 'X') then --{
710
711 -- create a poplist
712
713 if(p_in_table = 'Y' OR nvl(p_field_desc, 'x@Y#z') = 'x@Y#z' ) then
714
715 v_return_jrad_element := create_element ('messageChoice', p_field_jrad_id,
716 p_field_name, 'VARCHAR2','none',
717 p_field_code || '_NAME' );
718
719 else
720 v_return_jrad_element := create_element ('messageChoice', p_field_jrad_id,
721 p_field_name, 'VARCHAR2','longMessage',
722 p_field_code || '_NAME' );
723
724
725 end if;
726
727 if((v_validation_type = 'I') OR (v_validation_type = 'X')) then --{
728 -- independent or translatable independent
729 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListViewName',g_sql_poplist_view_name || g_sql_pop_list_count);
730 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListDispAttr','Meaning');
731 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListValAttr','Code');
732 g_sql_pop_list_count := g_sql_pop_list_count + 1;
733
734 --}
735
736 elsif ((v_validation_type = 'F')) then --{
737
738 -- poplist based on a table-based validation set
739 -- need to create this VO in the middle tier, and associate that VOs attributes here
740 -- 'Code' is VALUE_COLUMN, 'Meaning' is ID_COLUMN
741
742 JDR_DOCBUILDER.setAttribute (v_return_jrad_element,'pickListViewName',g_tab_poplist_view_name||g_table_pop_list_count);
743
744 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListDispAttr','ID_COLUMN');
745 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'pickListValAttr','VALUE_COLUMN');
746 g_table_pop_list_count := g_table_pop_list_count + 1;
747
748 end if; -- bad type done
749
750 --} -- done creating a poplist
751
752 elsif( (v_display_type = 'Y' ) OR (v_display_type = 'N')) then --{
753
754 -- list of values OR long list of values
755
756 if(p_in_table = 'Y' OR nvl(p_field_desc, 'x@Y#z') = 'x@Y#z') then
757
758 -- here we should have the JRAD field Id as the VO attribute
759 -- by default, the user will be able to search on the 'meaning' or
760 -- user-displayed value
761 -- the '_FORM' JRAD element will be based on p_mapping_field
762 v_return_jrad_element := create_element ('messageLovInput', p_field_jrad_id,
763 p_field_name, 'VARCHAR2', 'none', p_field_code || '_NAME');
764 else
765 v_return_jrad_element := create_element ('messageLovInput', p_field_jrad_id,
766 p_field_name, 'VARCHAR2', 'longMessage', p_field_code || '_NAME');
767 end if;
768
769 -- depending upon the validation_type, we will associate this lov, with a different region
770
771 if((v_validation_type = 'I') OR (v_validation_type = 'X')) then --{
772 -- refer to direct sql query
773 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'externalListOfValues', g_jrad_lov_path_sql);
774 --}
775 elsif ((v_validation_type = 'F')) then --{
776 -- create a sql query, and then create a vo
777 JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'externalListOfValues', g_jrad_lov_path_tab);
778 end if;
779 --}
780
781 -- JDR_DOCBUILDER.setAttribute (v_return_jrad_element, 'unvalidated', 'false');
782
783 -- need to construct an LOV for v_form_fields_row.field_name
784 create_lov(p_field_code, p_value_set_name, p_mapping_field,
785 v_validation_type, p_field_jrad_id, v_return_jrad_element);
786 end if; --}
787
788 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
789 return v_return_jrad_element;
790
791 EXCEPTION
792 WHEN FND_FLEX_EXCEPTION THEN
793 RAISE_APPLICATION_ERROR(-20010, 'ERROR: FND FLEXFIELD VALIDATION SETS ERRROR FOR VALUE-SET ' || p_value_set_name);
794 END CREATE_VSET_ELEMENT_SYSFIELD;
795
796
797 /*======================================================================
798 FUNCTION: CREATE_TABLE PRIVATE
799 PARAMETERS:
800 COMMENT : This function is used to add all the columns to the table
801 of repeating section.
802 ======================================================================*/
803
804 FUNCTION CREATE_TABLE(
805 section_id IN NUMBER,
806 v_section_layout_element IN JDR_DOCBUILDER.ELEMENT,
807 p_form_ID IN NUMBER,
808 p_vocount IN INTEGER,
809 p_readonly_flag IN VARCHAR2,
810 p_row_seq_num IN NUMBER)
811 RETURN JDR_DOCBUILDER.ELEMENT IS
812
813 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TABLE';
814
815 CURSOR V_FORM_FIELDS_CURSOR(p_form_id NUMBER) is
816
817 SELECT pon_form_section_compiled.FORM_ID,
818 pon_form_section_compiled.TYPE,
819 pon_form_section_compiled.FIELD_CODE,
820 pon_form_section_compiled.MAPPING_FIELD_VALUE_COLUMN,
821 pon_form_section_compiled.REQUIRED,
822 NVL (pon_form_section_compiled.LEVEL1_SECTION_ID, -1) LEVEL1_SECTION_ID,
823 pon_forms_sections.FORM_CODE SECTION_CODE,
824 pon_fields.DATATYPE ,
825 pon_fields.VALUE_SET_NAME,
826 pon_fields.SYSTEM_FLAG,
827 pon_fields_tl.FIELD_NAME,
828 pon_fields_tl.DESCRIPTION FIELD_DESCRIPTION,
829 pon_form_section_compiled.INTERNAL_SEQUENCE_NUMBER,
830 NVL(pon_form_section_compiled.LEVEL2_SECTION_ID, -1) LEVEL2_SECTION_ID,
831 NVL(pon_form_section_compiled.REPEATING_SECTION_ID, -1) SECTION_ID
832 FROM PON_FORM_SECTION_COMPILED,
833 PON_FIELDS,
834 PON_FIELDS_TL,
835 PON_FORMS_SECTIONS
836 WHERE pon_form_section_compiled.FIELD_CODE = pon_fields.FIELD_CODE(+)
837 AND pon_form_section_compiled.FIELD_CODE = pon_fields_tl.FIELD_CODE(+)
838 AND pon_forms_sections.FORM_ID = P_FORM_ID
839 AND pon_form_section_compiled.FORM_ID = P_FORM_ID
840 AND pon_form_section_compiled.TYPE IN ('FORM_FIELD', 'REPEAT_SECTION')
841 AND pon_fields_tl.LANGUAGE(+) = g_base_language
842 ORDER BY
843 INTERNAL_SEQUENCE_NUMBER;
844
845 v_section_field_element JDR_DOCBUILDER.ELEMENT;
846 v_message_layout_element JDR_DOCBUILDER.ELEMENT;
847 v_temp_element JDR_DOCBUILDER.ELEMENT;
848 v_column_header_element JDR_DOCBUILDER.ELEMENT;
849 v_form_fields_row V_FORM_FIELDS_CURSOR%ROWTYPE;
850 v_section_title PON_FORMS_SECTIONS_TL.FORM_NAME%TYPE;
851 v_section_code PON_FORMS_SECTIONS.FORM_CODE%TYPE;
852 v_action_parameters JDR_DOCBUILDER.ELEMENT;
853 v_action_parameter JDR_DOCBUILDER.ELEMENT;
854 v_curr_formfieldvaluesvo_name VARCHAR2(20);
855 v_display_type VARCHAR2(1);
856 v_validation_type VARCHAR2(1);
857 v_jrad_field_id VARCHAR2(200);
858 v_jrad_element_id VARCHAR2(200);
859 v_LEVEL1_SECTION_ID NUMBER;
860 v_incl_section_id NUMBER;
861 v_parent_row_type PON_FORM_SECTION_COMPILED.TYPE%TYPE;
862 v_vset_element_created VARCHAR2(1);
863
864 BEGIN
865
866 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN -' || section_id);
867
868 v_curr_formfieldvaluesvo_name := g_values_viewName || p_vocount;
869
870 --
871 v_LEVEL1_SECTION_ID := -1;
872 v_incl_section_id := -1;
873 v_vset_element_created := 'N';
874
875 IF(section_id <> p_form_id) THEN
876
877 /*
878 This means we are creating the MDS region for the table associated with
879 the form
880 */
881
882 select LEVEL1_SECTION_ID , LEVEL2_SECTION_ID, type
883 into v_LEVEL1_SECTION_ID, v_incl_section_id, v_parent_row_type
884 from pon_form_section_compiled
885 where form_id = p_form_id
886 and repeating_section_id = section_id
887 and internal_sequence_number = p_row_seq_num;
888
889 END IF;
890
891 for v_form_fields_row in V_FORM_FIELDS_CURSOR(section_id) LOOP
892
893 -- repeating section within repeating section
894
895 IF (v_form_fields_row.TYPE = 'REPEAT_SECTION') THEN
896
897 /*CASE I : REPEATING SECTION WITHIN REPEATING SECTION*/
898
899 v_jrad_element_id := getJradId (v_form_fields_row.type,
900 p_form_id,
901 v_LEVEL1_SECTION_ID,
902 v_incl_section_id,
903 v_form_fields_row.section_id, -- pass the inner repeating section id
904 v_form_fields_row.field_code);
905
906 ELSE
907
908 IF(section_id <> p_form_id) THEN
909
910 /* CASE II : WE ARE GENERATING THE JRAD FOR A FORM, BUT NOW WE ARE IN THE
911 C ONTEXT OF GENERATING THE TABLE FOR A REPEATING SECTION WHICH
912 IS DIRECTLY ATTACHED TO A FORM - I.E. DISPLAYED ON THE MAIN
913 PAGE OF THE FORM - WE PASS THE FORM-ID AS THE DRIVING KEY
914 */
915
916 v_jrad_element_id := getJradId (v_form_fields_row.type,
917 p_form_id,
918 v_LEVEL1_SECTION_ID,
919 v_incl_section_id,
920 section_id,
921 v_form_fields_row.field_code);
922
923 v_jrad_field_id := v_jrad_element_id;
924
925 ELSE
926
927 /* CASE III : WE ARE GENERATING THE JRAD FOR A REPEATING SECTION - A STAND ALONE
928 JRAD: WE ARE IN THE CONTEXT OF GENERATING THE TABLE FOR A REPEATING SECTION WHICH
929 IS INSIDE ANOTHER REPEATING SECTION ATTACHED TO A FORM -
930 I.E. DISPLAYED ON A SEPARATE DRILL-DOWN PAGE OF THE FORM -
931 WE PASS THE SECTION-ID AS THE DRIVING KEY
932 */
933
934 v_jrad_element_id := getJradId (v_form_fields_row.type,
935 SECTION_ID,
936 v_LEVEL1_SECTION_ID,
937 v_incl_section_id,
938 -1,
939 v_form_fields_row.field_code);
940
941 v_jrad_field_id := v_jrad_element_id;
942
943
944 END IF;
945 END IF;
946
947 IF (v_form_fields_row.type='REPEAT_SECTION') then --{
948
949 SELECT
950 forms_tl.form_name , forms.form_code
951 INTO
952 v_section_title, v_section_code
953 FROM
954 pon_forms_sections forms,
955 pon_forms_sections_tl forms_tl
956 WHERE
957 forms.form_id = forms_tl.form_id AND
958 forms.form_id = v_form_fields_row.section_id AND
959 forms_tl.LANGUAGE = g_base_language;
960
961 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Creat image for inner repeating section '
962 || v_form_fields_row.section_id || ' ' || v_section_title);
963
964 v_section_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'image');
965 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'id', v_jrad_element_id || 'IMG' || g_total_image_count);
966 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'serverUnvalidated', 'true');
967 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'warnAboutChanges', 'false');
968
969 if(nvl(p_readonly_flag, 'N') = 'Y') then
970 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'source', 'eyeglasses_24x24_transparent.gif');
971 else
972 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'source', 'rework_enabled.gif');
973 end if;
974
975
976 v_action_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
977 JDR_DOCBUILDER.setAttribute (v_action_parameters, 'event', 'DetailsIconClicked');
978
979 -- add all the parameters we want to pass to the details page
980
981 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
982 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'FORM_FIELD_VALUES_ID');
983 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
984 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.FormFieldValueId}');
985 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
986
987 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
988 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'FORM_ID');
989 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
990 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.FormId}');
991 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
992
993
994 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
995 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'OWNING_ENTITY_CODE');
996 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
997 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.OwningEntityCode}');
998 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
999
1000
1001 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1002 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'ENTITY_PK1');
1003 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1004 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.EntityPk1}');
1005 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1006
1007 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1008 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'SECTION_ID');
1009 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1010 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.SectionId}');
1011 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1012
1013 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1014 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'PARENT_FIELD_VALUES_FK');
1015 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1016 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.ParentFieldValuesFk}');
1017 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1018
1019 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1020 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'DETAIL_SECTION_CODE');
1021 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', v_section_code);
1022 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1023
1024
1025 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1026 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'DETAIL_SECTION_ID');
1027 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', v_form_fields_row.section_id);
1028 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1029
1030
1031 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1032 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'DETAIL_JRAD_PAGE_MODE');
1033
1034 if(nvl(p_readonly_flag, 'N') = 'Y') then
1035 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'SECTION_READ_ONLY');
1036 else
1037 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'SECTION_DATA_ENTRY');
1038 end if;
1039
1040 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1041
1042
1043 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1044 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'FROM_PAGE');
1045 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'PON_FORMS_JRAD_GENX');
1046 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1047
1048 JDR_DOCBUILDER.addChild (v_section_field_element, JDR_DOCBUILDER.UI_NS,
1049 'primaryClientAction', v_action_parameters);
1050 --}
1051
1052 elsIF (v_form_fields_row.datatype='LONGTEXT') then --{
1053
1054 IF(p_readonly_flag = 'N') THEN
1055
1056 v_section_field_element := create_element ('messageTextInput', v_form_fields_row.field_code,
1057 v_form_fields_row.field_name, 'VARCHAR2',
1058 'none',v_form_fields_row.mapping_field_value_column);
1059
1060 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'maximumLength', 2000);
1061 ELSE
1062 v_section_field_element := create_table_element ('messageStyledText', v_form_fields_row.field_code,
1063 v_form_fields_row.field_name, 'VARCHAR2',
1064 'none',v_form_fields_row.mapping_field_value_column);
1065
1066
1067 END IF;
1068 --}
1069 ELSIF (v_form_fields_row.datatype='DATE') then --{
1070
1071 IF(p_readonly_flag = 'N') THEN
1072
1073 v_section_field_element := create_element ('messageTextInput', v_jrad_field_id,
1074 v_form_fields_row.field_name, 'DATE', 'dateFormat',
1075 v_form_fields_row.mapping_field_value_column);
1076
1077 v_date_list_count := v_date_list_count + 1;
1078
1079 ELSE
1080 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1081 v_form_fields_row.field_name, 'DATE', 'dateFormat',
1082 v_form_fields_row.mapping_field_value_column);
1083
1084 END IF;
1085 --}
1086 ELSIF (v_form_fields_row.datatype='DATETIME') then --{
1087
1088 IF(p_readonly_flag = 'N') THEN
1089
1090 v_section_field_element := create_element ('messageTextInput', v_jrad_field_id,
1091 v_form_fields_row.field_name, 'DATETIME','dateFormat',
1092 v_form_fields_row.mapping_field_value_column);
1093
1094 ELSE
1095
1096 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1097 v_form_fields_row.field_name, 'DATETIME','dateFormat',
1098 v_form_fields_row.mapping_field_value_column);
1099
1100
1101 END IF;
1102 --}
1103 ELSIF (v_form_fields_row.datatype='AMOUNT') then --{
1104
1105 IF(p_readonly_flag = 'N') THEN
1106
1107 v_section_field_element := create_element ('messageTextInput', v_jrad_field_id,
1108 v_form_fields_row.field_name, 'NUMBER', 'none',
1109 v_form_fields_row.mapping_field_value_column);
1110
1111 ELSE
1112
1113 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1114 v_form_fields_row.field_name, 'NUMBER', 'none',
1115 v_form_fields_row.mapping_field_value_column);
1116
1117 END IF;
1118 --}
1119 ELSIF (v_form_fields_row.datatype='NUMBER') then --{
1120
1121 IF(p_readonly_flag = 'N') THEN
1122
1123 v_section_field_element := create_element ('messageTextInput', v_jrad_field_id,
1124 v_form_fields_row.field_name, 'NUMBER', 'none',
1125 v_form_fields_row.mapping_field_value_column);
1126 ELSE
1127 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1128 v_form_fields_row.field_name, 'NUMBER', 'none',
1129 v_form_fields_row.mapping_field_value_column);
1130 END IF;
1131
1132 --}
1133 ELSIF (v_form_fields_row.datatype='TEXT' AND v_form_fields_row.value_set_name is not null) then --{
1134
1135 IF(p_readonly_flag = 'Y') THEN
1136
1137 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1138 v_form_fields_row.field_name, 'VARCHAR2','none',
1139 v_jrad_field_id || '_NAME');
1140 --v_form_fields_row.field_code || '_NAME');
1141
1142 ELSE
1143 v_section_field_element := create_vset_element (v_jrad_field_id,
1144 v_form_fields_row.field_code,
1145 v_form_fields_row.field_name,
1146 v_form_fields_row.field_description,
1147 v_form_fields_row.mapping_field_value_column,
1148 v_form_fields_row.value_set_name,
1149 'Y');
1150
1151 v_vset_element_created := 'Y';
1152
1153 END IF;
1154 --}
1155 ELSE -- TBD: Unrecognized field --{
1156
1157 IF(p_readonly_flag = 'N') THEN
1158
1159 v_section_field_element := create_element ('messageTextInput', v_jrad_field_id,
1160 v_form_fields_row.field_name, 'VARCHAR2','none',
1161 v_form_fields_row.mapping_field_value_column);
1162 ELSE
1163
1164 v_section_field_element := create_table_element ('messageStyledText', v_jrad_field_id,
1165 v_form_fields_row.field_name, 'VARCHAR2','none',
1166 v_form_fields_row.mapping_field_value_column);
1167
1168 END IF;
1169
1170 --}
1171 END IF;
1172
1173 IF (v_form_fields_row.required='Y') THEN
1174 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'required', 'yes');
1175 END IF;
1176
1177 IF (v_form_fields_row.type='REPEAT_SECTION') then
1178
1179 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
1180 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', v_jrad_element_id || '_COL');
1181 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'iconButtonFormat');
1182
1183 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'contents', v_temp_element);
1184
1185 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents', v_section_field_element);
1186
1187 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
1188 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', v_jrad_element_id || '_SCLHDR');
1189 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', escapespecialchar(v_section_title));
1190 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader', v_column_header_element);
1191 ELSE
1192 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
1193 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', v_jrad_element_id || '_COL');
1194
1195 -- need to set the column format for a 'NUMBER'
1196
1197 if ((v_form_fields_row.datatype='NUMBER') OR (v_form_fields_row.datatype='AMOUNT') ) then
1198 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'numberFormat');
1199 end if;
1200
1201 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'contents', v_temp_element);
1202
1203 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents', v_section_field_element);
1204
1205 ---- need to create a formValue element for this LOV
1206
1207 if(v_vset_element_created = 'Y' and isLovValueSet(v_form_fields_row.field_code) = 'Y') then
1208
1209 v_vset_element_created := 'N';
1210
1211 v_section_field_element := create_element ('formValue', v_jrad_element_id || '_FORM',
1212 v_form_fields_row.field_name, 'VARCHAR2', 'none',
1213 v_form_fields_row.mapping_field_value_column);
1214
1215 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'viewName', v_curr_formfieldvaluesvo_name);
1216 JDR_DOCBUILDER.addChild (v_temp_element,jdr_docbuilder.UI_NS,'contents',v_section_field_element);
1217
1218 end if;
1219 --
1220
1221 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
1222 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', v_jrad_element_id || '_SCLHDR');
1223 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', escapespecialchar(v_form_fields_row.field_name));
1224
1225 IF (v_form_fields_row.required='Y') THEN
1226 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'required', 'yes');
1227 END IF;
1228 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader', v_column_header_element);
1229 END IF;
1230
1231 END LOOP;
1232
1233 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
1234
1235 return v_section_layout_element;
1236
1237 END CREATE_TABLE;
1238
1239 /*======================================================================
1240 PROCEDURE: CREATE_REPEATING_SECTION PRIVATE
1241 PARAMETERS:
1242 COMMENT : This procedure is invoked when a repeating section is
1243 made active, in order to generate the JRAD regions for
1244 that section
1245 ======================================================================*/
1246
1247 PROCEDURE CREATE_REPEATING_SECTION(p_section_id IN NUMBER,
1248 x_result OUT NOCOPY VARCHAR2,
1249 x_error_code OUT NOCOPY VARCHAR2,
1250 x_error_message OUT NOCOPY VARCHAR2) IS
1251 rval INTEGER;
1252
1253 v_section_title PON_FORMS_SECTIONS_TL.FORM_NAME%TYPE;
1254
1255 v_section_code PON_FORMS_SECTIONS.FORM_CODE%TYPE;
1256 v_section_entry_path PON_FORMS_SECTIONS.JRAD_XML_REGION_NAME%TYPE;
1257 v_section_read_path PON_FORMS_SECTIONS.JRAD_XML_REGION_NAME_DISP%TYPE;
1258
1259
1260 v_section_element JDR_DOCBUILDER.ELEMENT;
1261 v_section_layout_element JDR_DOCBUILDER.ELEMENT;
1262 v_delete_field_element JDR_DOCBUILDER.ELEMENT;
1263 v_delete_parameter JDR_DOCBUILDER.ELEMENT;
1264 v_delete_parameters JDR_DOCBUILDER.ELEMENT;
1265 v_add_table_row_element JDR_DOCBUILDER.ELEMENT;
1266 v_table_footer_element JDR_DOCBUILDER.ELEMENT;
1267 v_section_element_rd JDR_DOCBUILDER.ELEMENT;
1268 v_section_layout_element_rd JDR_DOCBUILDER.ELEMENT;
1269 v_table_footer_element_rd JDR_DOCBUILDER.ELEMENT;
1270 v_temp_element JDR_DOCBUILDER.ELEMENT;
1271 v_column_header_element JDR_DOCBUILDER.ELEMENT;
1272 v_section_tip_element JDR_DOCBUILDER.ELEMENT;
1273 v_section_desc PON_FORMS_SECTIONS_TL.FORM_DESCRIPTION%TYPE;
1274
1275 v_view_name VARCHAR2(30);
1276
1277 mainDocBuyerEntry JDR_DOCBUILDER.DOCUMENT;
1278 mainDocReadOnly JDR_DOCBUILDER.DOCUMENT;
1279
1280 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_REPEATING_SECTION';
1281
1282 BEGIN
1283 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN-');
1284
1285 -- initialize to error
1286 x_result := fnd_api.g_ret_sts_error;
1287
1288 -- always use VO1 for independent repeating section
1289 v_view_name := g_values_viewName || '1';
1290
1291 v_section_entry_path := PON_FORMS_UTIL_PVT.getDataEntryRegionName(p_section_id);
1292 v_section_read_path := PON_FORMS_UTIL_PVT.getReadOnlyRegionName(p_section_id);
1293
1294
1295 IF (JDR_DOCBUILDER.DOCUMENTEXISTS(v_section_entry_path)=TRUE) THEN
1296 JDR_DOCBUILDER.DELETEDOCUMENT (v_section_entry_path);
1297 END IF;
1298
1299
1300 IF (JDR_DOCBUILDER.DOCUMENTEXISTS(v_section_read_path)=TRUE) THEN
1301 JDR_DOCBUILDER.DELETEDOCUMENT (v_section_read_path);
1302 END IF;
1303
1304 -- reset the top level documents
1305 mainDocBuyerEntry := NULL;
1306 mainDocReadOnly := NULL;
1307
1308
1309 -- initialize the mainDoc
1310 mainDocBuyerEntry := JDR_DOCBUILDER.createDocument (v_section_entry_path,'en-US');
1311
1312 mainDocReadOnly := JDR_DOCBUILDER.createDocument (v_section_read_path,'en-US');
1313
1314 -- initialize a few global variables
1315 g_sql_pop_list_count := 1; -- display a poplist, vo-based on direct sql query (eg. SqlPopListVO1)
1316 g_table_pop_list_count := 1; -- display a poplist, vo based on a generated sql query (eg. TablePopListVO1)
1317 g_lov_map_count := 1; -- display a lov, total number of LOVs displayed on page
1318 g_pop_list_count := 1;
1319
1320 SELECT
1321 forms_tl.form_name, forms.form_code, forms_tl.tip_text
1322 INTO v_section_title, v_section_code, v_section_desc
1323 FROM
1324 pon_forms_sections forms,
1325 pon_forms_sections_tl forms_tl
1326 WHERE
1327 forms.form_id = forms_tl.form_id AND
1328 forms.form_id = p_section_id AND
1329 forms_tl.LANGUAGE = g_base_language;
1330
1331 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1332 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_section_code);
1333 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
1334
1335 -- add a small tip element if description has been entered
1336 if(nvl(v_section_desc, 'E') <> 'E') then
1337 v_section_tip_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tip');
1338 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'id', v_section_code || '_TIP');
1339 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'text', escapespecialchar(v_section_desc));
1340 JDR_DOCBUILDER.addChild(v_section_element, jdr_docbuilder.UI_NS,'contents',v_section_tip_element);
1341 end if;
1342
1343 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
1344 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_section_code||'_table');
1345 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'viewName', v_view_name);
1346 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'width', '100%');
1347
1348 v_table_footer_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableFooter');
1349 JDR_DOCBUILDER.setAttribute (v_table_footer_element, 'id', v_section_code|| '_TABFTR');
1350 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'footer', v_table_footer_element);
1351
1352 v_add_table_row_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'addTableRow');
1353 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'id', v_section_code||'_ADDBTN');
1354 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'autoInsertion', 'false');
1355 JDR_DOCBUILDER.addChild (v_table_footer_element, JDR_DOCBUILDER.UI_NS, 'contents', v_add_table_row_element);
1356
1357 -- add all the remaining columns to this table
1358 v_section_layout_element := CREATE_TABLE(p_section_id, v_section_layout_element,p_section_id, 1, 'N', -1);
1359
1360 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
1361 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', 'columnDelete' || v_section_code);
1362 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'iconButtonFormat');
1363 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'contents', v_temp_element);
1364
1365 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
1366 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', 'columnHeader' || v_section_code);
1367 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', 'Delete');
1368 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader', v_column_header_element);
1369
1370 -- add a delete image
1371 v_delete_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,'image');
1372 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'id', 'deleteImage' || v_section_code);
1373 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'source', 'deleteicon_enabled.gif');
1374 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'warnAboutChanges', 'false');
1375 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'serverUnvalidated', 'true');
1376 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'unvalidated', 'true');
1377
1378 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents', v_delete_field_element);
1379
1380 v_delete_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
1381 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'event', 'Delete');
1382 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'unvalidated', 'true');
1383 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1384 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'Id');
1385 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value', '${oa.encrypt.' || v_view_name ||'.FormFieldValueId}');
1386 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_delete_parameter);
1387 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1388 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'ViewName');
1389 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value', v_view_name);
1390 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_delete_parameter);
1391 JDR_DOCBUILDER.addChild (v_delete_field_element, JDR_DOCBUILDER.UI_NS, 'primaryClientAction', v_delete_parameters);
1392
1393
1394 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS,'contents',v_section_layout_element);
1395
1396 JDR_DOCBUILDER.setTopLevelElement(mainDocBuyerEntry, v_section_element);
1397
1398 --------------------------------------
1399 -----READ--ONLY--REGION---START-------
1400 --------------------------------------
1401
1402 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1403 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_section_code);
1404 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
1405
1406 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
1407 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id', v_section_code||'table1');
1408 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'viewName', v_view_name);
1409 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'width', '100%');
1410
1411 v_table_footer_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableFooter');
1412 JDR_DOCBUILDER.setAttribute (v_table_footer_element_rd, 'id', v_section_code|| '_TABFTR');
1413 JDR_DOCBUILDER.addChild (v_section_layout_element_rd, JDR_DOCBUILDER.UI_NS, 'footer', v_table_footer_element_rd);
1414
1415 -- add all the remaining columns to this table
1416 v_section_layout_element_rd := CREATE_TABLE(p_section_id, v_section_layout_element_rd,p_section_id, 1, 'Y', -1);
1417 -- add the table as a child of the header section
1418 JDR_DOCBUILDER.addChild (v_section_element_rd, jdr_docbuilder.UI_NS,'contents',v_section_layout_element_rd);
1419
1420 JDR_DOCBUILDER.setTopLevelElement(mainDocReadOnly, v_section_element_rd);
1421
1422 --------------------------------------
1423 -----READ--ONLY--REGION---END---------
1424 --------------------------------------
1425
1426 rval := JDR_DOCBUILDER.save;
1427
1428 x_result := fnd_api.g_ret_sts_success;
1429
1430 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
1431
1432 EXCEPTION
1433 WHEN OTHERS THEN
1434 x_result := fnd_api.g_ret_sts_error;
1435 x_error_code := SQLCODE;
1436 x_error_message := SUBSTR(SQLERRM, 1, 100);
1437 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION - x_result=' || x_result || ' x_error_code=' || x_error_code || ' x_error_message=' || x_error_message || ' SQLERRM=' || SQLERRM);
1438
1439 end CREATE_REPEATING_SECTION;
1440
1441
1442
1443 /*=======================================================
1444 PROCEDURE: CREATE_ABSTRACT_TABLE PRIVATE
1445 PARAMETERS:
1446 COMMENT : This procedure is invoked when a abstract
1447 is made active. Using this procedure, we will
1448 generate the table to be displayed on the external
1449 supplier page containing all the negotiations with
1450 abstracts.
1451 ========================================================*/
1452 PROCEDURE CREATE_ABSTRACT_TABLE(p_form_id IN NUMBER,
1453 x_result OUT NOCOPY VARCHAR2,
1454 x_error_code OUT NOCOPY VARCHAR2,
1455 x_error_message OUT NOCOPY VARCHAR2
1456 ) IS
1457
1458 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ABSTRACT_TABLE';
1459
1460 CURSOR V_ABSTRACT_FIELDS_CURSOR IS
1461
1462 select pon_fields.field_code,
1463 pon_form_section_compiled.mapping_field_value_column,
1464 pon_fields.datatype,
1465 pon_fields.value_set_name,
1466 pon_fields.system_flag,
1467 pon_fields.system_field_lov_flag,
1468 pon_fields_tl.field_name,
1469 pon_fields_tl.description field_description,
1470 pon_forms_sections.form_id,
1471 pon_forms_sections.form_code,
1472 pon_forms_sections_tl.form_name,
1473 pon_forms_sections_tl.form_description,
1474 pon_form_section_compiled.display_on_main_page,
1475 pon_form_section_compiled.internal_sequence_number
1476 from pon_fields,
1477 pon_fields_tl,
1478 pon_forms_sections,
1479 pon_forms_sections_tl,
1480 pon_form_section_compiled
1481 where
1482 pon_forms_sections.FORM_CODE = 'ABSTRACT'
1483 and pon_forms_sections.STATUS = 'ACTIVE'
1484 and pon_forms_sections.FORM_ID = pon_form_section_compiled.FORM_ID
1485 and pon_forms_sections.FORM_ID = pon_forms_sections_tl.FORM_ID
1486 and pon_form_section_compiled.TYPE = 'FORM_FIELD'
1487 and pon_form_section_compiled.FIELD_CODE is not null
1488 and pon_form_section_compiled.FIELD_CODE = pon_fields.FIELD_CODE
1489 and pon_fields.FIELD_CODE = pon_fields_tl.FIELD_CODE
1490 and pon_fields_tl.LANGUAGE = g_base_language
1491 and pon_forms_sections_tl.LANGUAGE = g_base_language
1492 and nvl(pon_form_section_compiled.display_on_main_page, 'N') = 'Y'
1493 order by
1494 internal_sequence_number;
1495
1496 mainDoc JDR_DOCBUILDER.DOCUMENT;
1497 v_section_element JDR_DOCBUILDER.ELEMENT;
1498 v_section_layout_element JDR_DOCBUILDER.ELEMENT;
1499 v_section_field_element JDR_DOCBUILDER.ELEMENT;
1500 v_table_footer_element JDR_DOCBUILDER.ELEMENT;
1501 v_action_parameters JDR_DOCBUILDER.ELEMENT;
1502 v_action_parameter JDR_DOCBUILDER.ELEMENT;
1503 v_section_case_element JDR_DOCBUILDER.ELEMENT;
1504 v_section_link_element JDR_DOCBUILDER.ELEMENT;
1505 v_section_img_element JDR_DOCBUILDER.ELEMENT;
1506
1507 v_abstract_fields_row V_ABSTRACT_FIELDS_CURSOR%ROWTYPE;
1508 v_section_code PON_FORMS_SECTIONS.FORM_CODE%TYPE;
1509 v_curr_vo_name VARCHAR2(100);
1510 rval INTEGER;
1511
1512 BEGIN
1513
1514 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN-');
1515
1516 IF (JDR_DOCBUILDER.DOCUMENTEXISTS(g_jrad_ext_page_path)=TRUE) THEN
1517 JDR_DOCBUILDER.DELETEDOCUMENT (g_jrad_ext_page_path);
1518 END IF;
1519
1520 v_section_code := 'ABSTRACT';
1521 v_curr_vo_name := g_ext_abs_vo_name;
1522
1523 mainDoc := NULL;
1524
1525 mainDoc := JDR_DOCBUILDER.createDocument(g_jrad_ext_page_path,'en-US');
1526
1527 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'flowLayout');
1528 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_section_code);
1529 JDR_DOCBUILDER.setAttribute (v_section_element, 'amDefName', g_ext_app_module);
1530 JDR_DOCBUILDER.setAttribute (v_section_element, 'controllerClass', g_ext_controller);
1531 JDR_DOCBUILDER.setAttribute (v_section_element, 'headerDisabled', 'true');
1532
1533 JDR_DOCBUILDER.setTopLevelElement(mainDoc, v_section_element);
1534
1535 /*v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableLayout');
1536 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_section_code || '_TAB_LAYOUT');
1537 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'extends', g_jrad_ext_poplist);
1538 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'headerDisabled', 'true');
1539
1540 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS,'contents',v_section_layout_element);*/
1541
1542 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'table');
1543 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_section_code||'_table');
1544 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'width', '100%');
1545 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'shortDesc', fnd_message.get_string ('PON', 'PON_EXT_ABSTRACT_TBL_SHORTDESC'));
1546
1547 FOR v_abstract_fields_row in V_ABSTRACT_FIELDS_CURSOR LOOP --{
1548
1549 v_section_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'messageStyledText');
1550 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'id', v_abstract_fields_row.field_code);
1551 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'prompt', escapespecialchar(v_abstract_fields_row.field_name));
1552 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'dataType', 'VARCHAR2');
1553 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'viewAttr', v_abstract_fields_row.field_code || '_NAME');
1554 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'viewName', v_curr_vo_name);
1555 JDR_DOCBUILDER.addChild (v_section_layout_element, jdr_docbuilder.UI_NS,
1556 'contents',v_section_field_element);
1557
1558 END LOOP; --}
1559
1560
1561 -- after adding all the columns in the table, we need to add the following columns as well
1562 -- 'details' icon
1563 v_section_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'image');
1564
1565 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'id', 'detailImage');
1566
1567 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'source', 'eyeglasses_24x24_transparent.gif');
1568 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'warnAboutChanges', 'false');
1569 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'prompt', 'Details');
1570
1571 v_action_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
1572 JDR_DOCBUILDER.setAttribute (v_action_parameters, 'event', 'DetailsIconClicked');
1573
1574 -- add all the parameters we want to pass to the details page
1575
1576 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1577 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'FORM_ID');
1578 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', p_form_id);
1579 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1580
1581
1582 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1583 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'OWNING_ENTITY_CODE');
1584 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'PON_AUCTION_HEADERS_ALL');
1585 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1586
1587
1588 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1589 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'ENTITY_PK1');
1590 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1591 '${oa.encrypt.' || v_curr_vo_name || '.AUCTION_HEADER_ID}');
1592 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1593
1594 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1595 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'ABSTRACT_AUCTION_STATUS');
1596 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1597 '${oa.encrypt.' || v_curr_vo_name || '.NEGOTIATION_STATUS}');
1598 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1599
1600
1601 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1602 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'JRAD_PAGE_MODE');
1603 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'FORM_READ_ONLY');
1604 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1605
1606 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1607 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'ABSTRACT_PDF_FLAG');
1608 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1609 '${oa.encrypt.' || v_curr_vo_name || '.ABSTRACT_PDF_FLAG}');
1610 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1611
1612 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1613 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'ORG_ID');
1614 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1615 '${oa.encrypt.' || v_curr_vo_name || '.ORG_ID}');
1616 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1617
1618 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1619 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'DOCTYPE_ID');
1620 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value',
1621 '${oa.encrypt.' || v_curr_vo_name || '.DOCTYPE_ID}');
1622 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1623
1624 v_action_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
1625 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'key', 'FROM_PAGE');
1626 JDR_DOCBUILDER.setAttribute (v_action_parameter, 'value', 'PON_FORMS_JRAD_GENX');
1627
1628 JDR_DOCBUILDER.addChild (v_action_parameters, JDR_DOCBUILDER.UI_NS, 'parameters', v_action_parameter);
1629
1630 JDR_DOCBUILDER.addChild (v_section_field_element, JDR_DOCBUILDER.UI_NS, 'primaryClientAction', v_action_parameters);
1631
1632 JDR_DOCBUILDER.addChild (v_section_layout_element, jdr_docbuilder.UI_NS, 'contents',v_section_field_element);
1633
1634 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS, 'contents',v_section_layout_element);
1635
1636 JDR_DOCBUILDER.setTopLevelElement(mainDoc, v_section_element);
1637
1638 rval := JDR_DOCBUILDER.save;
1639
1640 x_result := fnd_api.g_ret_sts_success;
1641
1642 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
1643
1644 EXCEPTION
1645 WHEN OTHERS THEN
1646 x_result := fnd_api.g_ret_sts_error;
1647 x_error_code := SQLCODE;
1648 x_error_message := SUBSTR(SQLERRM, 1, 100);
1649 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION - x_result=' || x_result || ' x_error_code=' || x_error_code || ' x_error_message=' || x_error_message || ' SQLERRM=' || SQLERRM);
1650
1651 END CREATE_ABSTRACT_TABLE;
1652
1653 /*======================================================================
1654 PROCEDURE : CREATE_FORM PRIVATE
1655 PARAMETERS:
1656 COMMENT : This is the mother of all procedures to actually generate
1657 the JRAD for the corresponding form_id.
1658 ======================================================================*/
1659
1660 PROCEDURE CREATE_FORM(p_form_id IN NUMBER,
1661 x_result OUT NOCOPY VARCHAR2,
1662 x_error_code OUT NOCOPY VARCHAR2,
1663 x_error_message OUT NOCOPY VARCHAR2) IS
1664
1665 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_FORM';
1666
1667 CURSOR V_FORM_FIELDS_CURSOR(p_form_id NUMBER) is
1668
1669 SELECT pon_form_section_compiled.FORM_ID,
1670 pon_form_section_compiled.TYPE,
1671 pon_form_section_compiled.FIELD_CODE,
1672 pon_form_section_compiled.MAPPING_FIELD_VALUE_COLUMN,
1673 pon_form_section_compiled.REQUIRED,
1674 NVL (pon_form_section_compiled.LEVEL1_SECTION_ID, -1) SECTION_ID,
1675 pon_forms_sections.FORM_CODE SECTION_CODE,
1676 pon_fields.DATATYPE,
1677 pon_fields.SYSTEM_FLAG,
1678 pon_fields.VALUE_SET_NAME,
1679 pon_fields_tl.FIELD_NAME,
1680 pon_fields_tl.DESCRIPTION FIELD_DESCRIPTION,
1681 pon_form_section_compiled.INTERNAL_SEQUENCE_NUMBER,
1682 NVL(pon_form_section_compiled.LEVEL2_SECTION_ID, -1) LEVEL2_SECTION_ID,
1683 NVL(pon_form_section_compiled.REPEATING_SECTION_ID, -1) REPEATING_SECTION_ID,
1684 pon_form_section_compiled.EDITABLE
1685 FROM PON_FORM_SECTION_COMPILED,
1686 PON_FIELDS,
1687 PON_FIELDS_TL,
1688 PON_FORMS_SECTIONS
1689 WHERE pon_form_section_compiled.FIELD_CODE = pon_fields.FIELD_CODE(+)
1690 AND pon_form_section_compiled.FIELD_CODE = pon_fields_tl.FIELD_CODE(+)
1691 AND pon_forms_sections.FORM_ID = pon_form_section_compiled.FORM_ID
1692 AND pon_form_section_compiled.FORM_ID = P_FORM_ID
1693 AND NVL(pon_form_section_compiled.ENABLED, 'Y') = 'Y'
1694 AND pon_fields_tl.LANGUAGE(+) = g_base_language
1695 ORDER BY
1696 INTERNAL_SEQUENCE_NUMBER;
1697
1698
1699 TYPE SECTION_LAYOUT_ELEMENTS_TABLE IS TABLE OF JDR_DOCBUILDER.ELEMENT INDEX BY BINARY_INTEGER;
1700
1701 TYPE SECTION_LAYOUT_TABLE IS TABLE OF JDR_DOCBUILDER.ELEMENT INDEX BY VARCHAR2(120);
1702
1703 v_section_layout_array SECTION_LAYOUT_TABLE;
1704 v_section_layout_array_rd SECTION_LAYOUT_TABLE;
1705 v_parent_layout_array_index VARCHAR2(120);
1706 v_current_layout_array_index VARCHAR2(120);
1707
1708 v_form_fields_row V_FORM_FIELDS_CURSOR%ROWTYPE;
1709
1710 v_section_layout_element_array SECTION_LAYOUT_ELEMENTS_TABLE;
1711
1712 v_current_layout_element_index BINARY_INTEGER;
1713
1714 v_section_element_array_rd SECTION_LAYOUT_ELEMENTS_TABLE;
1715
1716 v_current_element_index_rd BINARY_INTEGER;
1717
1718
1719 v_section_element JDR_DOCBUILDER.ELEMENT;
1720 v_section_layout_element JDR_DOCBUILDER.ELEMENT;
1721 v_message_layout_element JDR_DOCBUILDER.ELEMENT;
1722 v_section_field_element JDR_DOCBUILDER.ELEMENT;
1723 v_section_tip_element JDR_DOCBUILDER.ELEMENT;
1724 v_section_tip_element_rd JDR_DOCBUILDER.ELEMENT;
1725 v_delete_field_element JDR_DOCBUILDER.ELEMENT;
1726 v_delete_parameter JDR_DOCBUILDER.ELEMENT;
1727 v_delete_parameters JDR_DOCBUILDER.ELEMENT;
1728 v_temp_element JDR_DOCBUILDER.ELEMENT;
1729 v_column_header_element JDR_DOCBUILDER.ELEMENT;
1730 v_add_table_row_element JDR_DOCBUILDER.ELEMENT;
1731 v_table_footer_element JDR_DOCBUILDER.ELEMENT;
1732
1733
1734 v_section_element_rd JDR_DOCBUILDER.ELEMENT;
1735 v_section_layout_element_rd JDR_DOCBUILDER.ELEMENT;
1736 v_section_field_element_rd JDR_DOCBUILDER.ELEMENT;
1737 v_lov_mapping_element JDR_DOCBUILDER.ELEMENT;
1738
1739 v_section_title PON_FORMS_SECTIONS_TL.FORM_NAME%TYPE;
1740 v_parent_section_code PON_FORMS_SECTIONS.FORM_CODE%TYPE;
1741 v_section_code PON_FORMS_SECTIONS.FORM_CODE%TYPE;
1742 v_section_desc PON_FORMS_SECTIONS_TL.FORM_DESCRIPTION%TYPE;
1743 v_field_jrad_id VARCHAR2(200);
1744 v_jrad_element_id VARCHAR2(200);
1745 v_section_id PON_FORMS_SECTIONS.FORM_ID%TYPE;
1746
1747 v_LEVEL1_SECTION_ID PON_FORMS_SECTIONS.FORM_ID%TYPE;
1748 v_parent_section_id PON_FORMS_SECTIONS.FORM_ID%TYPE;
1749 v_current_section_id PON_FORMS_SECTIONS.FORM_ID%TYPE;
1750
1751 v_formfieldvaluesvo_list_count INTEGER;
1752 v_form_mcl_count INTEGER;
1753 v_section_mcl_count INTEGER;
1754
1755 v_formfieldvaluesvo_name VARCHAR2(100);
1756 v_curr_formfieldvaluesvo_name VARCHAR2(100);
1757 v_top_formfieldvaluesvo_name VARCHAR2(100);
1758 v_display_type VARCHAR2(1);
1759 v_validation_type VARCHAR2(1);
1760 v_prev_record_type PON_FORM_SECTION_COMPILED.TYPE%TYPE;
1761
1762 rval INTEGER;
1763 dataEntryRegion JDR_DOCBUILDER.DOCUMENT := NULL;
1764 readOnlyRegion JDR_DOCBUILDER.DOCUMENT := NULL;
1765
1766 v_data_entry_rgn_name VARCHAR2(250);
1767 v_read_only_rgn_name VARCHAR2(250);
1768 v_vset_element_created VARCHAR2(1);
1769
1770 BEGIN
1771 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN-');
1772
1773 -- we dont need to pass the fullPathName to this procedure
1774 -- we can generate the region name here
1775
1776 v_data_entry_rgn_name := PON_FORMS_UTIL_PVT.getDataEntryRegionName(p_form_id);
1777 v_read_only_rgn_name := PON_FORMS_UTIL_PVT.getReadOnlyRegionName(p_form_id);
1778
1779 IF (JDR_DOCBUILDER.DOCUMENTEXISTS(v_data_entry_rgn_name)=TRUE) THEN --{
1780 JDR_DOCBUILDER.DELETEDOCUMENT(v_data_entry_rgn_name);
1781 END IF; --}
1782
1783 IF (JDR_DOCBUILDER.DOCUMENTEXISTS(v_read_only_rgn_name)=TRUE) THEN --{
1784 JDR_DOCBUILDER.DELETEDOCUMENT(v_read_only_rgn_name);
1785 END IF; --}
1786
1787 -- initialize the dataEntryRegion
1788 dataEntryRegion := JDR_DOCBUILDER.createDocument(v_data_entry_rgn_name,'en-US');
1789 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Step 1 - create data-entry region' || v_data_entry_rgn_name);
1790
1791 readOnlyRegion := JDR_DOCBUILDER.createDocument(v_read_only_rgn_name,'en-US');
1792
1793 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Step 2 - create read-entry region' || v_read_only_rgn_name);
1794
1795 v_current_layout_element_index := 0;
1796 v_parent_section_code := NULL;
1797 v_section_code := NULL;
1798
1799 -- initialize a few local variables
1800 v_date_list_count := 1;
1801 v_table_vo_count := 1;
1802 v_formfieldvaluesvo_list_count := 1;
1803 v_form_mcl_count := 0;
1804 v_section_mcl_count := 0;
1805 v_parent_section_id := -9999;
1806 v_LEVEL1_SECTION_ID := -9999;
1807 v_current_section_id := -9999;
1808 v_prev_record_type := 'DUMMY';
1809 v_vset_element_created := 'N';
1810
1811 v_formfieldvaluesvo_name := 'FormFieldValuesVO';
1812 v_top_formfieldvaluesvo_name := 'FormFieldValuesVO1';
1813 v_curr_formfieldvaluesvo_name := 'FormFieldValuesVO1';
1814
1815 FOR v_form_fields_row in V_FORM_FIELDS_CURSOR (p_form_id) LOOP --{
1816
1817 v_jrad_element_id := getJradId (v_form_fields_row.type,
1818 v_form_fields_row.form_id,
1819 v_form_fields_row.section_id,
1820 v_form_fields_row.LEVEL2_SECTION_ID,
1821 v_form_fields_row.repeating_section_id,
1822 v_form_fields_row.field_code);
1823
1824 IF(v_form_fields_row.type='FORM') THEN --{
1825
1826 v_parent_section_id := -1;
1827 v_current_section_id := v_form_fields_row.form_id;
1828 v_LEVEL1_SECTION_ID := -1;
1829
1830 --Create a new header section
1831 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1832 --Create a new header section for read only region
1833 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1834
1835 --get the section title
1836
1837 SELECT
1838 forms_tl.form_name, forms.form_code
1839 INTO
1840 v_section_title, v_section_code
1841 FROM
1842 pon_forms_sections forms,
1843 pon_forms_sections_tl forms_tl
1844 WHERE
1845 forms.form_id = forms_tl.form_id AND
1846 forms.form_id = v_current_section_id AND
1847 forms_tl.LANGUAGE = g_base_language;
1848
1849 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 1+ : create header region for section ' || v_section_code);
1850
1851 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
1852
1853 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
1854
1855 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
1856
1857 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
1858
1859 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 1+ - top level element is ' || v_current_section_id);
1860
1861 JDR_DOCBUILDER.setTopLevelElement(dataEntryRegion, v_section_element);
1862
1863 JDR_DOCBUILDER.setTopLevelElement(readOnlyRegion, v_section_element_rd);
1864
1865 --add the layout to the array
1866 ---
1867 v_current_layout_array_index := getCurrentElementIndex(v_form_fields_row.type, p_form_id, 0, 0, 0, null);
1868 v_section_layout_array(v_current_layout_array_index) := v_section_element;
1869
1870 ----------------------------------------------------------------------------------------
1871 -----READ-ONLY-REGION-START-------------------------------------------------------------
1872 ----------------------------------------------------------------------------------------
1873 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
1874 ----------------------------------------------------------------------------------------
1875 -----READ-ONLY-REGION-END---------------------------------------------------------------
1876 ----------------------------------------------------------------------------------------
1877
1878
1879 --}
1880
1881 ELSIF (v_form_fields_row.type='FORM_FIELD') THEN
1882 --{
1883
1884 IF(v_prev_record_type <> 'FORM_FIELD') THEN --{
1885
1886 v_parent_section_id := v_form_fields_row.form_id;
1887 v_current_section_id := v_form_fields_row.form_id;
1888 v_LEVEL1_SECTION_ID := -1;
1889
1890 --create a section layout(MCL) and add it to the new section
1891 -- create a MCL
1892 v_form_mcl_count := v_form_mcl_count + 1;
1893 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
1894 'messageComponentLayout');
1895
1896 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
1897 'messageComponentLayout');
1898
1899 v_section_mcl_count := v_section_mcl_count + 1;
1900
1901 v_curr_formfieldvaluesvo_name := v_top_formfieldvaluesvo_name;
1902
1903 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id',
1904 v_section_code||'_MCL'|| v_section_mcl_count);
1905
1906 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'columns', '2');
1907 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'rows', '1');
1908
1909 v_parent_layout_array_index := getParentElementIndex(v_form_fields_row.type, p_form_id, 0, 0, 0, null);
1910
1911 JDR_DOCBUILDER.addChild (v_section_layout_array(v_parent_layout_array_index),jdr_docbuilder.UI_NS,
1912 'contents',v_section_layout_element);
1913
1914 --------------------------------------------
1915 -----READ-ONLY-REGION-START-----------------
1916 --------------------------------------------
1917
1918 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id',
1919 v_section_code||'_MCL'|| v_section_mcl_count);
1920
1921 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'columns', '2');
1922 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'rows', '1');
1923
1924 -- add the MCL region as a child of the top-level header region
1925
1926 JDR_DOCBUILDER.addChild (v_section_layout_array_rd(v_parent_layout_array_index),jdr_docbuilder.UI_NS,
1927 'contents', v_section_layout_element_rd);
1928
1929 --------------------------------------------
1930 -----READ-ONLY-REGION-END-------------------
1931 --------------------------------------------
1932
1933
1934 END IF; --}
1935
1936 --}
1937
1938 ELSIF (v_form_fields_row.type='NORMAL_SECTION') THEN
1939 --{
1940
1941 -- this is the 1st occurence of the section_field
1942
1943 v_parent_section_id := v_form_fields_row.form_id;
1944 v_current_section_id := v_form_fields_row.section_id;
1945 v_LEVEL1_SECTION_ID := v_current_section_id;
1946
1947 -- add the mcl as a child of the header region
1948
1949 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 2+ : v_parent_section_id = '
1950 || v_parent_section_id || ' v_current_section_id = '
1951 || v_current_section_id || ' v_LEVEL1_SECTION_ID = ' || v_LEVEL1_SECTION_ID);
1952
1953 --Create a new header section
1954 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1955 --Create a new header section for the readonly region as well
1956 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
1957
1958 --get the section title
1959
1960 SELECT
1961 forms_tl.form_name, forms.form_code, forms_tl.tip_text
1962 INTO
1963 v_section_title, v_section_code, v_section_desc
1964 FROM
1965 pon_forms_sections forms,
1966 pon_forms_sections_tl forms_tl
1967 WHERE
1968 forms.form_id = forms_tl.form_id AND
1969 forms.form_id = v_current_section_id AND
1970 forms_tl.LANGUAGE = g_base_language;
1971
1972 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 2+ - create header region for section ' || v_section_code);
1973
1974 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
1975 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
1976 g_total_element_count := g_total_element_count + 1;
1977
1978 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
1979 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
1980
1981 -- add the header region of the section as a child of the toplevel header region of the form
1982 v_current_layout_array_index := getCurrentElementIndex (v_form_fields_row.type,p_form_id,v_current_section_id,
1983 0,0,null);
1984
1985 v_parent_layout_array_index := getParentElementIndex (v_form_fields_row.type,p_form_id,v_current_section_id,
1986 0,0,null);
1987 --add the layout to the array
1988 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
1989 jdr_docbuilder.UI_NS,'contents',v_section_element);
1990
1991 v_section_layout_array(v_current_layout_array_index) := v_section_element;
1992
1993 -- add a small tip element if description has been entered
1994 if(nvl(v_section_desc, 'E') <> 'E') then
1995 v_section_tip_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
1996 'tip');
1997
1998 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'id', v_jrad_element_id || '_TIP');
1999 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'text', escapespecialchar(v_section_desc));
2000 JDR_DOCBUILDER.addChild(v_section_element,
2001 jdr_docbuilder.UI_NS,'contents',v_section_tip_element);
2002
2003 else
2004 v_section_desc := to_char(null);
2005 end if;
2006
2007 ------------------------------------------
2008 ---READONLY--REGION--START----------------
2009 ------------------------------------------
2010
2011 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2012 jdr_docbuilder.UI_NS,'contents',v_section_element_rd);
2013
2014 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
2015
2016 if(nvl(v_section_desc, 'E') <> 'E') then
2017 v_section_tip_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tip');
2018 JDR_DOCBUILDER.setAttribute (v_section_tip_element_rd, 'id', v_jrad_element_id || '_TIP');
2019 JDR_DOCBUILDER.setAttribute (v_section_tip_element_rd, 'text', escapespecialchar(v_section_desc));
2020 JDR_DOCBUILDER.addChild(v_section_element_rd,
2021 jdr_docbuilder.UI_NS,'contents',v_section_tip_element_rd);
2022 else
2023 v_section_desc := to_char(null);
2024 end if;
2025
2026 --------------------------------------------
2027 -----READ-ONLY-REGION-END-------------------
2028 --------------------------------------------
2029 --}
2030
2031 ELSIF (v_form_fields_row.type='SECTION_FIELD') THEN
2032 --{
2033 -- if this is the 1st occurence of a section field, then we will need
2034 -- to create a MCL OR
2035 -- if we haven't previously created an MCL for this section
2036 -- normal adding of fields to an MCL for a section will be handled below,
2037 -- here, we will determine whether or not this field appears in a section
2038 -- apart from the remaining group of fields in the section
2039
2040 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case ' || v_form_fields_row.type || ' :-: ' || v_prev_record_type);
2041
2042 IF(v_prev_record_type <> 'SECTION_FIELD') THEN
2043 --{
2044 v_parent_section_id := v_form_fields_row.form_id;
2045 v_current_section_id := v_form_fields_row.section_id;
2046 v_LEVEL1_SECTION_ID := v_current_section_id;
2047
2048 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case '|| v_form_fields_row.type ||':+:'
2049 || v_current_section_id);
2050
2051 -- we have already created a oa:header region for this section
2052 -- but just that this field has been added to this section out-of-order
2053 -- so create a MCL
2054 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
2055 'messageComponentLayout');
2056
2057
2058 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
2059 'messageComponentLayout');
2060
2061
2062 v_section_mcl_count := v_section_mcl_count + 1;
2063
2064 v_curr_formfieldvaluesvo_name := v_top_formfieldvaluesvo_name;
2065
2066
2067 SELECT
2068 forms_tl.form_name, forms.form_code, forms_tl.tip_text
2069 INTO
2070 v_section_title, v_section_code, v_section_desc
2071 FROM
2072 pon_forms_sections forms,
2073 pon_forms_sections_tl forms_tl
2074 WHERE
2075 forms.form_id = forms_tl.form_id AND
2076 forms.form_id = v_current_section_id AND
2077 forms_tl.LANGUAGE = g_base_language;
2078
2079
2080 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id',
2081 v_section_code||'_MCL'|| v_section_mcl_count);
2082
2083 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'columns', '2');
2084 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'rows', '1');
2085
2086 -- add the MCL as a child of the header region of the section
2087 -- we have already created that oa:header region before in type='normal-section'
2088 ------------------------------------------------------------------------------------
2089 v_parent_layout_array_index :=getParentElementIndex(v_form_fields_row.type,p_form_id,v_current_section_id,
2090 0,0,null);
2091
2092 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2093 jdr_docbuilder.UI_NS,'contents',v_section_layout_element);
2094 ------------------------------------------------------------------------------------
2095
2096 -------------------------------------------
2097 -- READONLY--REGION--START-----------------
2098 -------------------------------------------
2099 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id',
2100 v_section_code||'_MCL'|| v_section_mcl_count);
2101
2102 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'columns', '2');
2103 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'rows', '1');
2104
2105 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2106 jdr_docbuilder.UI_NS,'contents',v_section_layout_element_rd);
2107
2108 --------------------------------------------
2109 -- READONLY--REGION--END--------------------
2110 --------------------------------------------
2111
2112 END IF;
2113 --}
2114 --}
2115
2116 ELSIF (v_form_fields_row.type='INNER_NORMAL_SECTION') THEN
2117 --{
2118
2119 v_parent_section_id := v_form_fields_row.section_id;
2120 v_current_section_id := v_form_fields_row.LEVEL2_SECTION_ID;
2121 v_LEVEL1_SECTION_ID := v_parent_section_id;
2122
2123 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 3+ : v_parent_section_id = '
2124 || v_parent_section_id || ' v_current_section_id = '
2125 || v_current_section_id || ' v_LEVEL1_SECTION_ID = ' || v_LEVEL1_SECTION_ID);
2126
2127 --Create a new header section
2128 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2129
2130
2131 --Create a new header section
2132 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2133
2134 --get the section title
2135
2136 SELECT
2137 forms_tl.form_name, forms.form_code, forms_tl.tip_text
2138 INTO
2139 v_section_title, v_section_code, v_section_desc
2140 FROM
2141 pon_forms_sections forms,
2142 pon_forms_sections_tl forms_tl
2143 WHERE
2144 forms.form_id = forms_tl.form_id AND
2145 forms.form_id = v_current_section_id AND
2146 forms_tl.LANGUAGE = g_base_language;
2147
2148 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 3+ : create header region for section ' || v_section_code);
2149
2150 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
2151 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
2152
2153 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
2154 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
2155
2156 ------------------------------------------------------------------------------------
2157 v_current_layout_array_index := getCurrentElementIndex(v_form_fields_row.type,p_form_id,v_parent_section_id,
2158 v_current_section_id,0,null);
2159
2160 v_parent_layout_array_index := getParentElementIndex(v_form_fields_row.type,p_form_id,v_parent_section_id,
2161 v_current_section_id,0,null);
2162
2163 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2164 jdr_docbuilder.UI_NS,'contents',v_section_element);
2165
2166 v_section_layout_array(v_current_layout_array_index) := v_section_element;
2167
2168 ------------------------------------------------------------------------------------
2169
2170 -- add a small tip element if description has been entered
2171 if(nvl(v_section_desc, 'E') <> 'E') then
2172 v_section_tip_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tip');
2173 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'id', v_jrad_element_id || '_TIP');
2174 JDR_DOCBUILDER.setAttribute (v_section_tip_element, 'text', escapespecialchar(v_section_desc));
2175 JDR_DOCBUILDER.addChild(v_section_element,
2176 jdr_docbuilder.UI_NS,'contents',v_section_tip_element);
2177
2178 else
2179 v_section_desc := to_char(null);
2180 end if;
2181 ---------------------------------------
2182 --- READ-ONLY-REGION-START-------------
2183 ---------------------------------------
2184
2185 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2186 jdr_docbuilder.UI_NS,'contents',v_section_element_rd);
2187
2188 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
2189
2190 if(nvl(v_section_desc, 'E') <> 'E') then
2191 v_section_tip_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,'tip');
2192 JDR_DOCBUILDER.setAttribute (v_section_tip_element_rd, 'id', v_jrad_element_id || '_TIP');
2193 JDR_DOCBUILDER.setAttribute (v_section_tip_element_rd, 'text', escapespecialchar(v_section_desc));
2194 JDR_DOCBUILDER.addChild(v_section_element_rd,
2195 jdr_docbuilder.UI_NS,'contents',v_section_tip_element_rd);
2196 else
2197 v_section_desc := to_char(null);
2198 end if;
2199 ---------------------------------------
2200 --- READ-ONLY-REGION-END-------------
2201 ---------------------------------------
2202 --}
2203
2204 ELSIF (v_form_fields_row.type='INNER_SECTION_FIELD') THEN
2205 --{
2206 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case ' || v_form_fields_row.type || ' :-: ' || v_prev_record_type);
2207
2208 IF(v_prev_record_type <> 'INNER_SECTION_FIELD') THEN
2209 --{
2210
2211 v_parent_section_id := v_form_fields_row.section_id;
2212 v_current_section_id := v_form_fields_row.LEVEL2_SECTION_ID;
2213 v_LEVEL1_SECTION_ID := v_parent_section_id;
2214
2215 -- we have encountered a field inside a inner section, which was
2216 -- added out-of-order from the original set of fields directly
2217 -- inside the
2218
2219 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case'||v_form_fields_row.type||':+:'||v_current_section_id);
2220
2221 --create a section layout(MCL) and add it to the new section
2222 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
2223 'messageComponentLayout');
2224
2225 --create a section layout(MCL) and add it to the new section
2226 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,
2227 'messageComponentLayout');
2228 -- increment the total number of MCLs we have created so far
2229 v_section_mcl_count := v_section_mcl_count + 1;
2230
2231 -- since we are creating a MCL for the main page normal section, the top-level
2232 -- view object should be used
2233 v_curr_formfieldvaluesvo_name := v_top_formfieldvaluesvo_name;
2234
2235 SELECT
2236 forms_tl.form_name, forms.form_code, forms_tl.tip_text
2237 INTO
2238 v_section_title, v_section_code, v_section_desc
2239 FROM
2240 pon_forms_sections forms,
2241 pon_forms_sections_tl forms_tl
2242 WHERE
2243 forms.form_id = forms_tl.form_id AND
2244 forms.form_id = v_current_section_id AND
2245 forms_tl.LANGUAGE = g_base_language;
2246
2247 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id',
2248 v_section_code||'_MCL' || v_section_mcl_count);
2249
2250 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'columns', '2');
2251 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'rows', '1');
2252
2253 ------------------------------------------------------------------------------------
2254 v_parent_layout_array_index :=getParentElementIndex(v_form_fields_row.type,p_form_id,v_parent_section_id,
2255 v_current_section_id,0,null);
2256
2257 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2258 jdr_docbuilder.UI_NS,'contents',v_section_layout_element);
2259 ------------------------------------------------------------------------------------
2260
2261 -----------------------------------
2262 -----READ-ONLY-REGION-START--------
2263 -----------------------------------
2264
2265 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id',
2266 v_section_code||'_MCL' || v_section_mcl_count);
2267
2268 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'columns', '2');
2269 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'rows', '1');
2270 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2271 jdr_docbuilder.UI_NS,'contents',v_section_layout_element_rd);
2272
2273 -----------------------------------
2274 -----READ-ONLY-REGION-END----------
2275 -----------------------------------
2276
2277 END IF;
2278 --}
2279
2280 --}
2281
2282 ELSIF (v_form_fields_row.type='REPEAT_SECTION') THEN
2283 --{
2284
2285 -- this is a repeating section inside the form
2286
2287 v_parent_section_id := v_form_fields_row.form_id;
2288 v_current_section_id := v_form_fields_row.repeating_section_id;
2289 v_LEVEL1_SECTION_ID := v_current_section_id;
2290
2291 -- create a header section
2292
2293 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2294
2295 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2296
2297 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 4+ : v_parent_section_id = '
2298 || v_parent_section_id || ' v_current_section_id = '
2299 || v_current_section_id || ' v_LEVEL1_SECTION_ID = '
2300 || v_LEVEL1_SECTION_ID);
2301
2302 -- get the section title
2303 SELECT
2304 forms_tl.form_name, forms.form_code
2305 INTO
2306 v_section_title, v_section_code
2307 FROM
2308 pon_forms_sections forms,
2309 pon_forms_sections_tl forms_tl
2310 WHERE
2311 forms.form_id = forms_tl.form_id AND
2312 forms.form_id = v_current_section_id AND
2313 forms_tl.LANGUAGE = g_base_language;
2314
2315 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 4+ : create header region for section - '
2316 || v_section_code );
2317
2318 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
2319 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
2320
2321 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
2322 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
2323
2324 -- set all table-level JRAD attributes
2325 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2326 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2327 -- increment the VO count by one
2328 v_formfieldvaluesvo_list_count := v_formfieldvaluesvo_list_count + 1;
2329 v_curr_formfieldvaluesvo_name := v_formfieldvaluesvo_name || v_formfieldvaluesvo_list_count;
2330
2331 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_jrad_element_id ||'_table');
2332 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'viewName', v_curr_formfieldvaluesvo_name);
2333 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'width', '100%');
2334
2335 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id', v_jrad_element_id ||'_table');
2336 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'viewName',
2337 v_curr_formfieldvaluesvo_name);
2338
2339 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Setting viewName for ' || v_section_code
2340 ||'_table' || ' ' || v_curr_formfieldvaluesvo_name);
2341
2342 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'width', '100%');
2343
2344 -- create a table footer, and this footer as a child of the table region
2345 v_table_footer_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableFooter');
2346 JDR_DOCBUILDER.setAttribute (v_table_footer_element, 'id', v_jrad_element_id ||'_TABFTR');
2347 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'footer',
2348 v_table_footer_element);
2349
2350 v_add_table_row_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'addTableRow');
2351 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'id', v_jrad_element_id ||'_ADDBTN');
2352 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'autoInsertion', 'false');
2353 JDR_DOCBUILDER.addChild (v_table_footer_element, JDR_DOCBUILDER.UI_NS, 'contents',
2354 v_add_table_row_element);
2355
2356 -- add all the rows in the table
2357 -- create a repeating section directly inside a form
2358
2359 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Invoke CREATE_TABLE with '
2360 || v_current_section_id || ' ' || p_form_id || ' '
2361 || v_formfieldvaluesvo_list_count);
2362
2363 v_section_layout_element := CREATE_TABLE(v_current_section_id, v_section_layout_element,
2364 p_form_id, v_formfieldvaluesvo_list_count, 'N',
2365 v_form_fields_row.internal_sequence_number);
2366
2367 v_section_layout_element_rd := CREATE_TABLE(v_current_section_id,
2368 v_section_layout_element_rd,
2369 p_form_id,
2370 v_formfieldvaluesvo_list_count,
2371 'Y', v_form_fields_row.internal_sequence_number);
2372
2373
2374 /** Adding the delete column **/
2375 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
2376 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', v_jrad_element_id || '_COLDEL');
2377 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'iconButtonFormat');
2378 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS,
2379 'contents', v_temp_element);
2380
2381 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
2382
2383 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', v_jrad_element_id || '_SCLHDR');
2384 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', 'Delete');
2385 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader',
2386 v_column_header_element);
2387
2388 v_delete_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,'image');
2389 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'id', v_jrad_element_id || '_DELIMG');
2390 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'source', 'deleteicon_enabled.gif');
2391 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'warnAboutChanges', 'false');
2392 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'serverUnvalidated', 'true');
2393 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'unvalidated', 'true');
2394 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents',
2395 v_delete_field_element);
2396
2397 v_delete_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
2398 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'event', 'Delete');
2399 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'unvalidated', 'true');
2400 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2401 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'Id');
2402
2403 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value',
2404 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.FormFieldValueId}');
2405
2406 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2407 'parameters', v_delete_parameter);
2408
2409 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2410
2411 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'ViewName');
2412
2413 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value', v_curr_formfieldvaluesvo_name);
2414 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2415 'parameters', v_delete_parameter);
2416
2417 JDR_DOCBUILDER.addChild (v_delete_field_element, JDR_DOCBUILDER.UI_NS,
2418 'primaryClientAction', v_delete_parameters);
2419
2420 /** Done: Adding delete colmn */
2421
2422 -- add the table into the header region
2423 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS,'contents',
2424 v_section_layout_element);
2425
2426 -- add the header region to its parent, since this is type='repeating_section'
2427 -- we can rest assured that the parent of this section is the top-level form
2428
2429 ---------------------------------------------------------------------------------------------------------------
2430 v_current_layout_array_index := getCurrentElementIndex(v_form_fields_row.type,p_form_id,0,0,
2431 v_current_section_id,null);
2432
2433 v_parent_layout_array_index := getParentElementIndex(v_form_fields_row.type,p_form_id,0,0,
2434 v_current_section_id,null);
2435
2436 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2437 jdr_docbuilder.UI_NS,'contents',v_section_element);
2438
2439 v_section_layout_array(v_current_layout_array_index) := v_section_element;
2440 ---------------------------------------------------------------------------------------------------------------
2441
2442 -------------------------------------
2443 -----READ-ONLY-REGION-START----------
2444 -------------------------------------
2445 JDR_DOCBUILDER.addChild (v_section_element_rd, jdr_docbuilder.UI_NS,'contents',
2446 v_section_layout_element_rd);
2447
2448
2449 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2450 jdr_docbuilder.UI_NS,'contents',v_section_element_rd);
2451
2452 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
2453
2454 -------------------------------------
2455 -----READ-ONLY-REGION-END------------
2456 -------------------------------------
2457 --}
2458
2459 ELSIF (v_form_fields_row.type='INNER_REPEAT_SECTION') THEN
2460 --{
2461
2462
2463 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 5- : v_parent_section_id = '
2464 || v_parent_section_id || ' v_current_section_id = '
2465 || v_current_section_id || ' v_LEVEL1_SECTION_ID = '
2466 || v_LEVEL1_SECTION_ID);
2467
2468 -- this is a repeating section inside a normal section
2469
2470 v_parent_section_id := v_form_fields_row.section_id;
2471 v_current_section_id := v_form_fields_row.repeating_section_id;
2472 v_LEVEL1_SECTION_ID := v_parent_section_id;
2473
2474 -- create a header region
2475 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 5+ : v_parent_section_id = '
2476 || v_parent_section_id || ' v_current_section_id = '
2477 || v_current_section_id || ' v_LEVEL1_SECTION_ID = '
2478 || v_LEVEL1_SECTION_ID);
2479
2480 -- create a table region
2481
2482 -- create a header section
2483 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2484
2485 -- create a header section
2486 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2487
2488 -- get the section title
2489
2490 SELECT
2491 forms_tl.form_name, forms.form_code
2492 INTO
2493 v_section_title, v_section_code
2494 FROM
2495 pon_forms_sections forms,
2496 pon_forms_sections_tl forms_tl
2497 WHERE
2498 forms.form_id = forms_tl.form_id AND
2499 forms.form_id = v_current_section_id AND
2500 forms_tl.LANGUAGE = g_base_language;
2501
2502 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 5+ : create header region for section - '
2503 || v_section_code );
2504
2505 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
2506 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
2507
2508 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
2509 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
2510
2511 -- set all table-level JRAD attributes
2512 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2513
2514 -- set all table-level JRAD attributes
2515 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2516
2517 -- increment the VO count by one
2518 v_formfieldvaluesvo_list_count := v_formfieldvaluesvo_list_count + 1;
2519 v_curr_formfieldvaluesvo_name := v_formfieldvaluesvo_name || v_formfieldvaluesvo_list_count;
2520
2521 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_jrad_element_id ||'_table');
2522 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'viewName', v_curr_formfieldvaluesvo_name);
2523 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'width', '100%');
2524
2525 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id', v_jrad_element_id ||'_table');
2526 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'viewName',
2527 v_curr_formfieldvaluesvo_name);
2528
2529 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Setting viewName for ' || v_section_code
2530 ||'_table' || ' as ' || v_curr_formfieldvaluesvo_name);
2531
2532
2533 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'width', '100%');
2534
2535
2536 -- create a table footer, and this footer as a child of the table region
2537 v_table_footer_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableFooter');
2538 JDR_DOCBUILDER.setAttribute (v_table_footer_element, 'id', v_jrad_element_id ||'_TABFTR');
2539
2540 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'footer',
2541 v_table_footer_element);
2542
2543 v_add_table_row_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'addTableRow');
2544 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'id', v_jrad_element_id || '_ADDBTN');
2545 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'autoInsertion', 'false');
2546 JDR_DOCBUILDER.addChild (v_table_footer_element, JDR_DOCBUILDER.UI_NS, 'contents',
2547 v_add_table_row_element);
2548
2549 -- add all the rows in the table
2550 -- create a repeating section directly inside a form
2551 -- originally passed 'v_section_code' as the 1st param
2552 v_section_layout_element := CREATE_TABLE(v_current_section_id,
2553 v_section_layout_element,
2554 p_form_id,
2555 v_formfieldvaluesvo_list_count,
2556 'N', v_form_fields_row.internal_sequence_number);
2557
2558
2559 v_section_layout_element_rd := CREATE_TABLE(v_current_section_id,
2560 v_section_layout_element_rd,
2561 p_form_id,
2562 v_formfieldvaluesvo_list_count,
2563 'Y', v_form_fields_row.internal_sequence_number);
2564
2565
2566 /** Adding the delete column **/
2567 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
2568 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', v_jrad_element_id || '_COLDEL');
2569 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'iconButtonFormat');
2570 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'contents', v_temp_element);
2571
2572 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
2573
2574 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', v_jrad_element_id || '_SCLHDR');
2575 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', 'Delete');
2576 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader',
2577 v_column_header_element);
2578
2579 v_delete_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,'image');
2580 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'id', v_jrad_element_id || '_DELIMG');
2581 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'source', 'deleteicon_enabled.gif');
2582 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'warnAboutChanges', 'false');
2583 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'serverUnvalidated', 'true');
2584 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'unvalidated', 'true');
2585
2586
2587
2588 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents',
2589 v_delete_field_element);
2590
2591 v_delete_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
2592 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'event', 'Delete');
2593 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'unvalidated', 'true');
2594 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2595 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'Id');
2596
2597 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value',
2598 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.FormFieldValueId}');
2599
2600 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2601 'parameters', v_delete_parameter);
2602
2603 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2604
2605 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'ViewName');
2606
2607 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value', v_curr_formfieldvaluesvo_name);
2608 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2609 'parameters', v_delete_parameter);
2610
2611 JDR_DOCBUILDER.addChild (v_delete_field_element, JDR_DOCBUILDER.UI_NS,
2612 'primaryClientAction', v_delete_parameters);
2613
2614 /** Done: Adding delete colmn */
2615
2616 -- add the table into the header region
2617 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS,'contents',
2618 v_section_layout_element);
2619
2620 -- add the header region to its parent, since this is type='repeating_section'
2621 -- we can rest assured that the parent of this section is the top-level form
2622
2623 ---------------------------------------------------------------------------------------------------------------
2624 v_current_layout_array_index := getCurrentElementIndex(v_form_fields_row.type,p_form_id,v_parent_section_id,0,
2625 v_current_section_id,null);
2626 v_parent_layout_array_index := getParentElementIndex (v_form_fields_row.type,p_form_id,v_parent_section_id,0,
2627 v_current_section_id,null);
2628
2629 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2630 jdr_docbuilder.UI_NS,'contents',v_section_element);
2631
2632 v_section_layout_array(v_current_layout_array_index) := v_section_element;
2633 ---------------------------------------------------------------------------------------------------------------
2634
2635 -------------------------------------
2636 -----READ-ONLY-REGION-START----------
2637 -------------------------------------
2638
2639 JDR_DOCBUILDER.addChild (v_section_element_rd, jdr_docbuilder.UI_NS,'contents',
2640 v_section_layout_element_rd);
2641
2642 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2643 jdr_docbuilder.UI_NS,'contents',v_section_element_rd);
2644
2645 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
2646
2647 -------------------------------------
2648 -----READ-ONLY-REGION-END------------
2649 -------------------------------------
2650
2651
2652 --}
2653 ELSIF (v_form_fields_row.type='INNER_SECTION_REPEAT_SECTION') THEN
2654 --{
2655
2656 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 6- : v_parent_section_id = '
2657 || v_parent_section_id || ' v_current_section_id = '
2658 || v_current_section_id || ' v_LEVEL1_SECTION_ID = '
2659 || v_LEVEL1_SECTION_ID);
2660
2661 -- this is a repeating section inside a normal section which itself
2662 -- is inside another normal section
2663
2664 v_parent_section_id := v_form_fields_row.LEVEL2_SECTION_ID;
2665 v_current_section_id := v_form_fields_row.repeating_section_id;
2666 v_LEVEL1_SECTION_ID := v_form_fields_row.section_id;
2667 -- create a header region
2668
2669 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 6+ : v_parent_section_id = '
2670 || v_parent_section_id || ' v_current_section_id = '
2671 || v_current_section_id || ' v_LEVEL1_SECTION_ID = '
2672 || v_LEVEL1_SECTION_ID);
2673
2674 v_section_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2675
2676 v_section_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'header');
2677
2678 -- get the section title
2679
2680 SELECT
2681 forms_tl.form_name, forms.form_code
2682 INTO
2683 v_section_title, v_section_code
2684 FROM
2685 pon_forms_sections forms,
2686 pon_forms_sections_tl forms_tl
2687 WHERE
2688 forms.form_id = forms_tl.form_id AND
2689 forms.form_id = v_current_section_id AND
2690 forms_tl.LANGUAGE = g_base_language;
2691
2692 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'case 4+ : create header region for section - ' || v_section_code );
2693
2694 JDR_DOCBUILDER.setAttribute (v_section_element, 'id', v_jrad_element_id);
2695 JDR_DOCBUILDER.setAttribute (v_section_element, 'text', escapespecialchar(v_section_title));
2696
2697 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'id', v_jrad_element_id);
2698 JDR_DOCBUILDER.setAttribute (v_section_element_rd, 'text', escapespecialchar(v_section_title));
2699
2700 -- set all table-level JRAD attributes
2701 v_section_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2702
2703 v_section_layout_element_rd := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'advancedTable');
2704
2705
2706
2707 -- increment the VO count by one
2708 v_formfieldvaluesvo_list_count := v_formfieldvaluesvo_list_count + 1;
2709 v_curr_formfieldvaluesvo_name := v_formfieldvaluesvo_name || v_formfieldvaluesvo_list_count;
2710
2711 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'id', v_jrad_element_id ||'_table' );
2712 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'viewName', v_curr_formfieldvaluesvo_name);
2713 JDR_DOCBUILDER.setAttribute (v_section_layout_element, 'width', '100%');
2714
2715
2716 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'id', v_jrad_element_id ||'_table');
2717 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'viewName', v_curr_formfieldvaluesvo_name);
2718
2719 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Setting viewName for ' || v_section_code||'_table' || ' as ' || v_curr_formfieldvaluesvo_name);
2720 JDR_DOCBUILDER.setAttribute (v_section_layout_element_rd, 'width', '100%');
2721
2722 -- create a table footer, and this footer as a child of the table region
2723 v_table_footer_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'tableFooter');
2724 JDR_DOCBUILDER.setAttribute (v_table_footer_element, 'id', v_jrad_element_id || '_TABFTR');
2725
2726 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS, 'footer',
2727 v_table_footer_element);
2728
2729 v_add_table_row_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'addTableRow');
2730 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'id', v_jrad_element_id ||'_ADDBTN');
2731 JDR_DOCBUILDER.setAttribute (v_add_table_row_element, 'autoInsertion', 'false');
2732 JDR_DOCBUILDER.addChild (v_table_footer_element, JDR_DOCBUILDER.UI_NS, 'contents',
2733 v_add_table_row_element);
2734
2735 -- add all the 'columns' in the table
2736 -- create a repeating section directly inside a form
2737 -- originally passed 'v_section_code' as the 1st param
2738 v_section_layout_element := CREATE_TABLE(v_current_section_id,
2739 v_section_layout_element,
2740 p_form_id,
2741 v_formfieldvaluesvo_list_count,
2742 'N', v_form_fields_row.internal_sequence_number);
2743
2744 v_section_layout_element_rd := CREATE_TABLE(v_current_section_id,
2745 v_section_layout_element_rd,
2746 p_form_id,
2747 v_formfieldvaluesvo_list_count,
2748 'Y', v_form_fields_row.internal_sequence_number);
2749
2750 /** Adding the delete column **/
2751 v_temp_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'column');
2752 JDR_DOCBUILDER.setAttribute (v_temp_element, 'id', v_jrad_element_id || '_COLDEL');
2753 JDR_DOCBUILDER.setAttribute (v_temp_element, 'columnDataFormat', 'iconButtonFormat');
2754 JDR_DOCBUILDER.addChild (v_section_layout_element, JDR_DOCBUILDER.UI_NS,
2755 'contents', v_temp_element);
2756
2757 v_column_header_element := JDR_DOCBUILDER.CREATEELEMENT (JDR_DOCBUILDER.OA_NS, 'sortableHeader');
2758
2759 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'id', v_jrad_element_id || '_SCLHDR');
2760 JDR_DOCBUILDER.setAttribute (v_column_header_element, 'prompt', 'Delete');
2761 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'columnHeader',
2762 v_column_header_element);
2763
2764 v_delete_field_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS,'image');
2765 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'id', v_jrad_element_id || '_DELIMG');
2766 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'source', 'deleteicon_enabled.gif');
2767 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'warnAboutChanges', 'false');
2768 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'serverUnvalidated', 'true');
2769 JDR_DOCBUILDER.setAttribute (v_delete_field_element, 'unvalidated', 'true');
2770 JDR_DOCBUILDER.addChild (v_temp_element, JDR_DOCBUILDER.UI_NS, 'contents', v_delete_field_element);
2771
2772 v_delete_parameters := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'fireAction');
2773 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'event', 'Delete');
2774 JDR_DOCBUILDER.setAttribute (v_delete_parameters, 'unvalidated', 'true');
2775 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2776 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'Id');
2777
2778 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value',
2779 '${oa.encrypt.' || v_curr_formfieldvaluesvo_name || '.FormFieldValueId}');
2780
2781 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2782 'parameters', v_delete_parameter);
2783
2784 v_delete_parameter := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.UI_NS, 'parameter');
2785
2786 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'key', 'ViewName');
2787
2788 JDR_DOCBUILDER.setAttribute (v_delete_parameter, 'value', v_curr_formfieldvaluesvo_name);
2789 JDR_DOCBUILDER.addChild (v_delete_parameters, JDR_DOCBUILDER.UI_NS,
2790 'parameters', v_delete_parameter);
2791
2792 JDR_DOCBUILDER.addChild (v_delete_field_element, JDR_DOCBUILDER.UI_NS,
2793 'primaryClientAction', v_delete_parameters);
2794
2795 /** Done: Adding delete colmn */
2796
2797 -- add the table into the header region
2798 JDR_DOCBUILDER.addChild (v_section_element, jdr_docbuilder.UI_NS,'contents',
2799 v_section_layout_element);
2800
2801 -- add the header region to its parent, since this is type='repeating_section'
2802 -- we can rest assured that the parent of this section is the top-level form
2803
2804 ---------------------------------------------------------------------------------------------------------------
2805 v_current_layout_array_index := getCurrentElementIndex(v_form_fields_row.type,p_form_id,v_LEVEL1_SECTION_ID,
2806 v_parent_section_id,v_current_section_id,null);
2807
2808 v_parent_layout_array_index := getParentElementIndex(v_form_fields_row.type,p_form_id,v_LEVEL1_SECTION_ID,
2809 v_parent_section_id,v_current_section_id,null);
2810
2811 JDR_DOCBUILDER.addChild(v_section_layout_array(v_parent_layout_array_index),
2812 jdr_docbuilder.UI_NS,'contents',v_section_element);
2813
2814 v_section_layout_array(v_current_layout_array_index) := v_section_element;
2815 ---------------------------------------------------------------------------------------------------------------
2816
2817 -------------------------------------
2818 -----READ-ONLY-REGION-START----------
2819 -------------------------------------
2820
2821 JDR_DOCBUILDER.addChild (v_section_element_rd, jdr_docbuilder.UI_NS,'contents',
2822 v_section_layout_element_rd);
2823
2824 JDR_DOCBUILDER.addChild(v_section_layout_array_rd(v_parent_layout_array_index),
2825 jdr_docbuilder.UI_NS,'contents',v_section_element_rd);
2826
2827 v_section_layout_array_rd(v_current_layout_array_index) := v_section_element_rd;
2828
2829 -------------------------------------
2830 -----READ-ONLY-REGION-END------------
2831 -------------------------------------
2832
2833
2834 --}
2835
2836 ELSE
2837 --{
2838 -- something really bad has happened
2839 -- do we need to take some drastic action or simply ignore this error silently
2840 null;
2841 END IF;
2842 --}
2843
2844
2845 IF (v_form_fields_row.type <>'FORM' AND
2846 v_form_fields_row.type <>'REPEAT_SECTION' AND
2847 v_form_fields_row.type <>'INNER_REPEAT_SECTION' AND
2848 v_form_fields_row.type <>'INNER_SECTION_REPEAT_SECTION' AND
2849 v_form_fields_row.type <>'NORMAL_SECTION' AND
2850 v_form_fields_row.type <>'INNER_NORMAL_SECTION' AND
2851 nvl(v_form_fields_row.field_code, 'x$#$y') <> 'x$#$y' ) THEN
2852 --{
2853
2854 -- v_field_jrad_id := v_section_code || '_' || v_form_fields_row.field_code;
2855 v_field_jrad_id := v_jrad_element_id;
2856
2857 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Creating field ' || v_field_jrad_id);
2858
2859 IF(NVL( v_form_fields_row.SYSTEM_FLAG, 'N') = 'Y' ) THEN
2860 --{
2861 /* Bug 6050403: For the TWO_PART_FLAG system field there is need to
2862 * have a checkbox instead of a text field. So we handle it separately
2863 */
2864 IF (v_form_fields_row.FIELD_CODE <> 'TWO_PART_FLAG') THEN -- {
2865 if ( (v_form_fields_row.datatype='TEXT') AND (v_form_fields_row.value_set_name is not null)) then
2866 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2867 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2868 v_field_jrad_id || '_NAME');
2869 -- bug 10149273
2870 v_section_field_element := create_vset_element_sysfield (v_field_jrad_id, v_form_fields_row.field_code,
2871 v_form_fields_row.field_name,
2872 v_form_fields_row.field_description,
2873 v_form_fields_row.mapping_field_value_column,
2874 v_form_fields_row.value_set_name, 'N');
2875 v_vset_element_created := 'Y';
2876 elsif(NVL(v_form_fields_row.EDITABLE, 'N') = 'Y') THEN
2877 if(v_form_fields_row.datatype='TEXT') then
2878 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2879 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2880 elsif(v_form_fields_row.datatype='DATE') then
2881 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'DATE', 'dateFormat', v_form_fields_row.field_code || '_NAME');
2882 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'DATE', 'none', v_form_fields_row.field_code || '_NAME');
2883 else --add more datatype here if needed
2884 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2885 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2886 end if;
2887 ELSE --noneditable
2888 if(v_form_fields_row.datatype='TEXT') then
2889 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2890 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'readOnly', 'true');
2891 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2892 elsif(v_form_fields_row.datatype='DATE') then
2893 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'DATE', 'dateFormat', v_form_fields_row.field_code || '_NAME');
2894 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'readOnly', 'true');
2895 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'DATE', 'none', v_form_fields_row.field_code || '_NAME');
2896 else --add more datatype here if needed
2897 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2898 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'readOnly', 'true');
2899 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id, v_form_fields_row.field_name, 'VARCHAR2', 'none', v_form_fields_row.field_code || '_NAME');
2900 end if;
2901 END IF;
2902 /*add by pding*/
2903 IF (v_form_fields_row.required='Y') THEN
2904 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'required','yes');
2905 END IF;
2906
2907 ELSE -- } {
2908 v_section_field_element := create_element ('messageStyledText', v_field_jrad_id,
2909 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2910 v_form_fields_row.field_code || '_NAME');
2911
2912 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2913 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2914 v_form_fields_row.field_code || '_NAME');
2915
2916 END IF; --}
2917 --}
2918
2919 ELSE
2920 --{
2921
2922 IF (v_form_fields_row.datatype='LONGTEXT') then
2923 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2924 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2925 v_form_fields_row.mapping_field_value_column);
2926
2927
2928 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'maximumLength', 2000);
2929
2930 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2931 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2932 v_form_fields_row.mapping_field_value_column);
2933
2934
2935
2936 ELSIF (v_form_fields_row.datatype='DATE') then
2937 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2938 v_form_fields_row.field_name, 'DATE', 'dateFormat',
2939 v_form_fields_row.mapping_field_value_column);
2940
2941 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2942 v_form_fields_row.field_name, 'DATE', 'none',
2943 v_form_fields_row.mapping_field_value_column);
2944
2945 ELSIF (v_form_fields_row.datatype='DATETIME') then
2946
2947 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2948 v_form_fields_row.field_name, 'DATETIME','dateFormat',
2949 v_form_fields_row.mapping_field_value_column);
2950
2951 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2952 v_form_fields_row.field_name, 'DATETIME', 'dateFormat',
2953 v_form_fields_row.mapping_field_value_column);
2954
2955 ELSIF (v_form_fields_row.datatype='AMOUNT') then
2956 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2957 v_form_fields_row.field_name, 'NUMBER', 'none',
2958 v_form_fields_row.mapping_field_value_column);
2959
2960 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2961 v_form_fields_row.field_name, 'NUMBER', 'none',
2962 v_form_fields_row.mapping_field_value_column);
2963 ELSIF (v_form_fields_row.datatype='NUMBER') then
2964
2965 IF(nvl(v_form_fields_row.field_description, 'x@Y#z') = 'x@Y#z' ) THEN
2966
2967 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2968 v_form_fields_row.field_name, 'NUMBER', 'none',
2969 v_form_fields_row.mapping_field_value_column);
2970
2971 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2972 v_form_fields_row.field_name, 'NUMBER', 'none',
2973 v_form_fields_row.mapping_field_value_column);
2974
2975 ELSE
2976 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
2977 v_form_fields_row.field_name, 'NUMBER', 'longMessage',
2978 v_form_fields_row.mapping_field_value_column);
2979
2980 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2981 v_form_fields_row.field_name, 'NUMBER', 'longMessage',
2982 v_form_fields_row.mapping_field_value_column);
2983
2984
2985 END IF;
2986
2987 ELSIF ( (v_form_fields_row.datatype='TEXT') AND (v_form_fields_row.value_set_name is not null)) then
2988
2989 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
2990 v_form_fields_row.field_name, 'VARCHAR2', 'none',
2991 v_field_jrad_id || '_NAME');
2992
2993 v_section_field_element := create_vset_element (v_field_jrad_id, v_form_fields_row.field_code,
2994 v_form_fields_row.field_name,
2995 v_form_fields_row.field_description,
2996 v_form_fields_row.mapping_field_value_column,
2997 v_form_fields_row.value_set_name, 'N');
2998 v_vset_element_created := 'Y';
2999
3000
3001 ELSE -- TBD: Unrecognized field
3002
3003 IF(nvl(v_form_fields_row.field_description, 'x@Y#z') = 'x@Y#z' ) THEN
3004
3005 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
3006 v_form_fields_row.field_name, 'VARCHAR2','none',
3007 v_form_fields_row.mapping_field_value_column);
3008 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'maximumLength', 2000);
3009
3010 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
3011 v_form_fields_row.field_name, 'VARCHAR2','none',
3012 v_form_fields_row.mapping_field_value_column);
3013 ELSE
3014 v_section_field_element := create_element ('messageTextInput', v_field_jrad_id,
3015 v_form_fields_row.field_name, 'VARCHAR2','longMessage',
3016 v_form_fields_row.mapping_field_value_column);
3017 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'maximumLength', 2000);
3018
3019 v_section_field_element_rd := create_element ('messageStyledText', v_field_jrad_id,
3020 v_form_fields_row.field_name, 'VARCHAR2','longMessage',
3021 v_form_fields_row.mapping_field_value_column);
3022
3023
3024 END IF;
3025
3026 END IF;
3027
3028 --If the field is a required field then set it accordingly.
3029 IF (v_form_fields_row.required='Y') THEN
3030 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'required','yes');
3031 END IF;
3032
3033 END IF;
3034 --} -- end if this field is not a system field
3035
3036 /*
3037 * Bug 6050403: We do not need a viewname for the two_part_flag field as the
3038 * checkbox will always remain checked. The rendered attribute will ensure that
3039 * the checkbox does not appear for non-two part rfqs
3040 */
3041 IF (v_form_fields_row.FIELD_CODE <> 'TWO_PART_FLAG') THEN -- {
3042 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'viewName', v_curr_formfieldvaluesvo_name);
3043 END IF;
3044 JDR_DOCBUILDER.addChild (v_section_layout_element,jdr_docbuilder.UI_NS,'contents',v_section_field_element);
3045 ---- need to create a formValue element for this LOV
3046
3047 if(v_vset_element_created = 'Y' and isLovValueSet(v_form_fields_row.field_code) = 'Y') then
3048
3049 v_vset_element_created := 'N';
3050
3051 -- encapsulate the formValue bean inside a messageLayout bean as
3052 -- we cannot have a formValue directly inside a messageComponentLayout
3053
3054 v_message_layout_element := JDR_DOCBUILDER.createElement (JDR_DOCBUILDER.OA_NS, 'messageLayout');
3055 JDR_DOCBUILDER.setAttribute (v_message_layout_element, 'id', v_field_jrad_id || '_MSL');
3056 JDR_DOCBUILDER.addChild (v_section_layout_element,jdr_docbuilder.UI_NS,'contents',v_message_layout_element);
3057
3058 v_section_field_element := create_element ('formValue', v_field_jrad_id || '_FORM',
3059 v_form_fields_row.field_name, 'VARCHAR2', 'none',
3060 v_form_fields_row.mapping_field_value_column);
3061
3062 JDR_DOCBUILDER.setAttribute (v_section_field_element, 'viewName', v_curr_formfieldvaluesvo_name);
3063 JDR_DOCBUILDER.addChild (v_message_layout_element,jdr_docbuilder.UI_NS,'contents',v_section_field_element);
3064
3065 end if;
3066
3067
3068 /*
3069 * Bug 6050403: We do not need a viewname for the two_part_flag field as the
3070 * checkbox will always remain checked. The rendered attribute will ensure that
3071 * the checkbox does not appear for non-two part rfqs
3072 */
3073 IF (v_form_fields_row.FIELD_CODE <> 'TWO_PART_FLAG') THEN -- {
3074 JDR_DOCBUILDER.setAttribute (v_section_field_element_rd, 'viewName', v_curr_formfieldvaluesvo_name);
3075 END IF;
3076 JDR_DOCBUILDER.addChild (v_section_layout_element_rd,jdr_docbuilder.UI_NS,'contents',v_section_field_element_rd);
3077
3078 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Setting viewname for ' || v_form_fields_row.field_code || ' as ' || v_curr_formfieldvaluesvo_name);
3079
3080 END IF; --}
3081
3082 v_prev_record_type := v_form_fields_row.type;
3083
3084 END LOOP; --}
3085
3086 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'JRAD created, now saving to JDR repository');
3087
3088 rval := JDR_DOCBUILDER.save;
3089
3090 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'Finished saving to JDR repository');
3091
3092 x_result :=fnd_api.g_ret_sts_success;
3093
3094 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
3095
3096 EXCEPTION
3097 WHEN OTHERS THEN
3098 x_result := fnd_api.g_ret_sts_error;
3099 x_error_code := SQLCODE;
3100 x_error_message := SUBSTR(SQLERRM, 1, 100);
3101 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION - x_result=' || x_result || ' x_error_code=' || x_error_code || ' x_error_message=' || x_error_message || ' SQLERRM=' || SQLERRM);
3102
3103 END CREATE_FORM;
3104
3105 /*======================================================================
3106 PROCEDURE: CREATE_ABSTRACT PRIVATE
3107 PARAMETERS:
3108 COMMENT : This procedure generates the following 3 JRAD regions for
3109 a abstract -
3110 ** Buyer entry abstract region
3111 ** Read-only abstract region
3112 ** External supplier table region
3113 This procedure is invoked when the abstract is made active
3114 ======================================================================*/
3115
3116 PROCEDURE CREATE_ABSTRACT(p_form_id IN NUMBER,
3117 x_result OUT NOCOPY VARCHAR2,
3118 x_error_code OUT NOCOPY VARCHAR2,
3119 x_error_message OUT NOCOPY VARCHAR2) IS
3120
3121 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ABSTRACT';
3122
3123 BEGIN
3124 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN-');
3125
3126 create_form(p_form_id, x_result, x_error_code, x_error_message);
3127
3128 create_abstract_table(p_form_id, x_result, x_error_code, x_error_message);
3129
3130 x_result :=fnd_api.g_ret_sts_success;
3131
3132 EXCEPTION
3133 WHEN OTHERS THEN
3134 x_result := fnd_api.g_ret_sts_error;
3135 x_error_code := SQLCODE;
3136 x_error_message := SUBSTR(SQLERRM, 1, 100);
3137 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION - x_result=' || x_result || ' x_error_code=' || x_error_code || ' x_error_message=' || x_error_message || ' SQLERRM=' || SQLERRM);
3138
3139 END;
3140
3141 /*======================================================================
3142 PROCEDURE: CREATE_JRAD PUBLIC
3143 PARAMETERS:
3144 COMMENT : Wrapper public procedure to all internal procedures. This
3145 procedure is called from the middle-tier when a form or
3146 a section or abstract is made active.
3147 ======================================================================*/
3148 PROCEDURE CREATE_JRAD( p_form_id IN NUMBER,
3149 x_result OUT NOCOPY VARCHAR2,
3150 x_error_code OUT NOCOPY VARCHAR2,
3151 x_error_message OUT NOCOPY VARCHAR2
3152 ) IS
3153
3154 v_form_type PON_FORMS_SECTIONS.TYPE%TYPE;
3155 v_is_repeating_section_flag PON_FORMS_SECTIONS.IS_REPEATING_SECTION_FLAG%TYPE;
3156 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_JRAD';
3157
3158 BEGIN
3159 -- initialize to error
3160 x_result := fnd_api.g_ret_sts_error;
3161
3162 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'BEGIN-');
3163
3164 -- the overall logic to generate jrad is as follows -
3165 -- determine whether the type is 'SECTION' or 'ABSTRACT' or 'FORM'
3166
3167 select
3168 type,
3169 nvl(is_repeating_section_flag,'N')
3170 into
3171 v_form_type,
3172 v_is_repeating_section_flag
3173 from pon_forms_sections where form_id = p_form_id;
3174
3175 -- generate the buyer data-entry page
3176 -- generate the buyer view-only page
3177
3178 -- if this is an abstract, generate the supplier external table
3179 -- initialize a few global variables
3180 g_sql_pop_list_count := 1;
3181 g_table_pop_list_count := 1;
3182 g_lov_map_count := 1;
3183 g_pop_list_count := 1;
3184 g_total_image_count := 1;
3185 g_base_language := getBaseLanguage();
3186
3187 if(v_form_type = 'FORM') then
3188 create_form(p_form_id, x_result, x_error_code, x_error_message);
3189 elsif(v_form_type = 'SECTION') then
3190 if (v_is_repeating_section_flag = 'Y') then
3191 create_repeating_section(p_form_id , x_result, x_error_code, x_error_message);
3192 else
3193 create_form(p_form_id, x_result, x_error_code, x_error_message);
3194 end if;
3195 elsif (v_form_type = 'ABSTRACT') then
3196 create_abstract(p_form_id, x_result, x_error_code, x_error_message);
3197 end if;
3198
3199 x_result := fnd_api.g_ret_sts_success;
3200
3201 PON_FORMS_UTIL_PVT.print_debug_log(l_api_name, 'END');
3202
3203 EXCEPTION
3204 WHEN OTHERS THEN
3205 x_result := fnd_api.g_ret_sts_error;
3206 x_error_code := SQLCODE;
3207 x_error_message := SUBSTR(SQLERRM, 1, 100);
3208 PON_FORMS_UTIL_PVT.print_error_log(l_api_name, 'EXCEPTION - x_result=' || x_result || ' x_error_code=' || x_error_code || ' x_error_message=' || x_error_message || ' SQLERRM=' || SQLERRM);
3209
3210 END CREATE_JRAD;
3211
3212
3213 END PON_FORMS_JRAD_PVT;