DBA Data[Home] [Help]

PACKAGE BODY: APPS.HXC_LAYOUTS_UPLOAD_PKG

Source


4 glb_debug           VARCHAR2(32000) := NULL;
1 PACKAGE BODY hxc_layouts_upload_pkg AS
2 /* $Header: hxculaupl.pkb 120.2 2005/09/23 09:47:53 rchennur noship $ */
3 
5 l_modifier_level  hxc_layouts.modifier_level%TYPE;
6 g_debug boolean :=hr_utility.debug_enabled;
7 
8 -- =================================================================
9 -- == find_application_id
10 -- =================================================================
11 FUNCTION find_application_id
12    (p_application_short_name IN VARCHAR2
13    )
14 RETURN fnd_application.application_id%TYPE
15 IS
16 --
17 l_appl_id fnd_application.application_id%TYPE;
18 --
19 BEGIN
20    --
21    IF p_application_short_name IS NULL THEN
22       l_appl_id := NULL;
23    ELSE
24       SELECT application_id
25         INTO l_appl_id
26         FROM fnd_application
27        WHERE application_short_name = P_APPLICATION_SHORT_NAME;
28    END IF;
29    --
30    RETURN l_appl_id;
31    --
32 EXCEPTION
33   WHEN NO_DATA_FOUND then
34     FND_MESSAGE.SET_NAME('HXC','HXC_xxxxx_INVALID_APPL_NAME');
35     FND_MESSAGE.RAISE_ERROR;
36 END find_application_id;
37 
38 -- =================================================================
39 -- == find_layout_id
40 -- =================================================================
41 FUNCTION find_layout_id
42    (p_layout_name IN VARCHAR2
43    )
44 RETURN hxc_layouts.layout_id%TYPE
45 IS
46 --
47 l_layout_id HXC_LAYOUTS.LAYOUT_ID%TYPE;
48 --
49 BEGIN
50    SELECT layout_id
51      INTO l_layout_id
52      FROM hxc_layouts
53     WHERE layout_name = p_layout_name;
54    --
55    RETURN l_layout_id;
56    --
57 EXCEPTION
58   WHEN NO_DATA_FOUND THEN
59     FND_MESSAGE.SET_NAME('HXC','HXC_xxxxx_INVALID_LAYOUT');
60     FND_MESSAGE.RAISE_ERROR;
61 END find_layout_id;
62 
63 -- =================================================================
64 -- == find_component_definition_id
65 -- =================================================================
66 FUNCTION find_component_definition_id
67    (p_component_type IN VARCHAR2
68    ,p_render_type    IN VARCHAR2
69    )
70 RETURN hxc_layout_comp_definitions.layout_comp_definition_id%TYPE
71 IS
72 --
73 l_layout_comp_definition_id   hxc_layout_comp_definitions.layout_comp_definition_id%TYPE;
74 --
75 BEGIN
76    --
77    SELECT layout_comp_definition_id
78      INTO l_layout_comp_definition_id
79      FROM hxc_layout_comp_definitions
80     WHERE component_type = p_component_type
81       AND render_type = p_render_type;
82    --
83    RETURN l_layout_comp_definition_id;
84    --
85 EXCEPTION
86   WHEN NO_DATA_FOUND then
87     FND_MESSAGE.SET_NAME('HXC','HXC_xxxxx_INVALID_DEFINITION');
88     FND_MESSAGE.RAISE_ERROR;
89 END find_component_definition_id;
90 
91 -- =================================================================
92 -- == find_component_id
93 -- =================================================================
94 FUNCTION find_component_id
95    (p_component_name    IN VARCHAR2
96    ,p_layout_name       IN VARCHAR2
97    )
101 l_layout_component_id   hxc_layout_components.layout_component_id%TYPE;
98 RETURN hxc_layout_components.layout_component_id%TYPE
99 IS
100 --
102 --
103 BEGIN
104    --
105    IF p_component_name IS NULL THEN
106       l_layout_component_id := NULL;
107    ELSE
108       SELECT layout_component_id
109         INTO l_layout_component_id
110         FROM hxc_layout_components comp
111             ,hxc_layouts lay
112        WHERE component_name = p_component_name
113          AND comp.layout_id = lay.layout_id
114          AND lay.layout_name = p_layout_name;
115    END IF;
116    --
117    RETURN l_layout_component_id;
118    --
119 EXCEPTION
120   WHEN NO_DATA_FOUND then
121     FND_MESSAGE.SET_NAME('HXC','HXC_xxxxx_INVALID_COMPONENT');
122     FND_MESSAGE.SET_TOKEN('COMPONENT_NAME',glb_debug);
123     FND_MESSAGE.RAISE_ERROR;
124 END find_component_id;
125 
126 -- =================================================================
127 -- == find_comp_qualifier_id
128 -- =================================================================
129 FUNCTION find_comp_qualifier_id
130    (p_comp_qualifier_name IN VARCHAR2
131    ,p_layout_component_id IN hxc_layout_comp_qualifiers.layout_component_id%TYPE
132    )
133 RETURN hxc_layout_comp_qualifiers.layout_comp_qualifier_id%TYPE
134 IS
135 --
136 l_layout_comp_qualifier_id    hxc_layout_comp_qualifiers.layout_comp_qualifier_id%TYPE;
137 --
138 BEGIN
139    --
140    SELECT layout_comp_qualifier_id
141      INTO l_layout_comp_qualifier_id
142      FROM hxc_layout_comp_qualifiers
143     WHERE qualifier_name = p_comp_qualifier_name
144       AND layout_component_id = p_layout_component_id;
145    --
146    RETURN l_layout_comp_qualifier_id;
147    --
148 EXCEPTION
149   WHEN NO_DATA_FOUND then
150     FND_MESSAGE.SET_NAME('HXC','HXC_xxxxx_INVALID_QUALIFIER');
151     FND_MESSAGE.RAISE_ERROR;
152 END find_comp_qualifier_id;
153 
154 -- =================================================================
155 -- == load_layout_row
156 -- =================================================================
157 PROCEDURE load_layout_row
158    (p_layout_name             IN VARCHAR2
159    ,p_application_short_name  IN VARCHAR2
160    ,p_owner                   IN VARCHAR2
161    ,p_display_layout_name     IN VARCHAR2
162    ,p_layout_type             IN VARCHAR2
163    ,p_modifier_level          IN VARCHAR2 DEFAULT NULL
164    ,p_modifier_value          IN VARCHAR2 DEFAULT NULL
165    ,p_top_level_region_code   IN VARCHAR2 DEFAULT NULL
166    ,p_custom_mode             IN VARCHAR2 DEFAULT NULL
167    )
168 IS
169 --
170 l_layout_id                HXC_LAYOUTS.LAYOUT_ID%TYPE;
171 l_object_version_number    HXC_LAYOUTS.OBJECT_VERSION_NUMBER%TYPE;
172 l_application_id           FND_APPLICATION.APPLICATION_ID%TYPE;
173 l_dummy varchar2(3);
174 
175 CURSOR C_DISPLAY_NAME(p_layout_id IN NUMBER)
176 	IS
177 
178        SELECT 'yes'
179               FROM dual
180              WHERE EXISTS (SELECT 'x'
181                              FROM hxc_layouts_tl
182                             WHERE layout_id   = p_layout_id
183                             and DISPLAY_LAYOUT_NAME <> P_DISPLAY_LAYOUT_NAME  --added
184                               AND userenv('LANG') in ( language, source_lang )
185                      );
186 
187 BEGIN
188    --
189    g_debug :=hr_utility.debug_enabled;
190    if g_debug then
191    	hr_utility.set_location('Entering Load Layout Row ', 10);
192    end if;
193    --
194    -- Find the application id
195    --
196    l_application_id :=
197       find_application_id
198          (P_APPLICATION_SHORT_NAME => P_APPLICATION_SHORT_NAME
199          );
200    --
201    BEGIN
202       if g_debug then
203       	    hr_utility.set_location('In Load Layout Row ', 20);
204       end if;
205       --
206       -- check to see row exists
207       --
208       SELECT modifier_level
209             ,layout_id
210             ,object_version_number
211         INTO l_modifier_level
212             ,l_layout_id
213             ,l_object_version_number
214         FROM hxc_layouts
215        WHERE layout_name = p_layout_name
216          AND application_id = l_application_id;
217       --
218       -- Remove all components for the layout if it already exists
219       --
220       -- delete rows from HXC_LAYOUT_COMP_PROMPTS
221       DELETE FROM hxc_layout_comp_prompts
222        WHERE layout_component_id IN
223                (SELECT comp.layout_component_id
224                   FROM hxc_layout_components comp
225                  WHERE comp.layout_id = l_layout_id);
226       --
227       -- delete rows from HXC_LAYOUT_COMP_QUALIFIERS
228       DELETE FROM hxc_layout_comp_qualifiers cq
229        WHERE EXISTS
230                (SELECT comp.layout_component_id
231                   FROM hxc_layout_components comp
232                  WHERE comp.layout_id = l_layout_id
233                    AND cq.layout_component_id = comp.layout_component_id);
234       --
235       -- delete rows from HXC_LAYOUT_COMPONENTS
236       DELETE FROM hxc_layout_components
237        WHERE layout_id = l_layout_id;
238       --
239       IF ( NVL(l_modifier_level, 'ZZZ') = NVL(p_modifier_level, 'ZZZ') ) THEN
240          hxc_layouts_upload_pkg.g_force_ok   := TRUE;
241       ELSE
242          hxc_layouts_upload_pkg.g_force_ok   := FALSE;
243       END IF;
244       ---
245       l_dummy :=NULL;
246 
247              OPEN  C_DISPLAY_NAME(l_layout_id);--,language, source_lang )
251       IF ( p_custom_mode = 'FORCE' ) THEN
248              FETCH C_DISPLAY_NAME INTO l_dummy;
249        CLOSE C_DISPLAY_NAME;
250       --
252          HXC_ULA_UPD.UPD
253             (P_LAYOUT_NAME => P_LAYOUT_NAME
254             ,P_APPLICATION_ID => l_application_id
255             ,P_LAYOUT_TYPE => P_LAYOUT_TYPE
256             ,P_MODIFIER_LEVEL => P_MODIFIER_LEVEL
257             ,P_MODIFIER_VALUE => P_MODIFIER_VALUE
258             ,P_TOP_LEVEL_REGION_CODE => P_TOP_LEVEL_REGION_CODE
259             ,P_LAYOUT_ID => l_layout_id
260             ,P_OBJECT_VERSION_NUMBER => l_object_version_number
261             );
262             IF ( l_dummy = 'yes') THEN
263 
264 		    HXC_ULT_UPD.UPD_TL --added1
265 				(P_LANGUAGE_CODE => userenv('LANG')
266 				,P_LAYOUT_ID => l_layout_id
267 				,P_DISPLAY_LAYOUT_NAME => P_DISPLAY_LAYOUT_NAME
268 				);
269             END IF;
270       ELSE
271          IF hxc_layouts_upload_pkg.g_force_ok THEN
272             HXC_ULA_UPD.UPD
273                (P_LAYOUT_NAME => P_LAYOUT_NAME
274                ,P_APPLICATION_ID => l_application_id
275                ,P_LAYOUT_TYPE => P_LAYOUT_TYPE
276                ,P_MODIFIER_LEVEL => P_MODIFIER_LEVEL
277                ,P_MODIFIER_VALUE => P_MODIFIER_VALUE
278                ,P_TOP_LEVEL_REGION_CODE => P_TOP_LEVEL_REGION_CODE
279                ,P_LAYOUT_ID => l_layout_id
280                ,P_OBJECT_VERSION_NUMBER => l_object_version_number
281                );
282                IF ( l_dummy = 'yes') THEN
283 
284 		    HXC_ULT_UPD.UPD_TL --added1
285 			(P_LANGUAGE_CODE => userenv('LANG')
286 			,P_LAYOUT_ID => l_layout_id
287 			,P_DISPLAY_LAYOUT_NAME => P_DISPLAY_LAYOUT_NAME
288 			);
289             END IF;
290          END IF; -- ( l_modifier_level = p_modifier_level )
291       END IF; -- ( p_custom_mode = 'FORCE' )
292    EXCEPTION WHEN NO_DATA_FOUND THEN
293       HXC_ULA_INS.INS
294          (P_LAYOUT_NAME => P_LAYOUT_NAME
295          ,P_APPLICATION_ID => l_application_id
296          ,P_LAYOUT_TYPE => P_LAYOUT_TYPE
297          ,P_MODIFIER_LEVEL => P_MODIFIER_LEVEL
298          ,P_MODIFIER_VALUE => P_MODIFIER_VALUE
299          ,P_TOP_LEVEL_REGION_CODE => P_TOP_LEVEL_REGION_CODE
300          ,P_LAYOUT_ID => l_layout_id
301          ,P_OBJECT_VERSION_NUMBER => l_object_version_number
302          ,P_DISPLAY_LAYOUT_NAME => p_display_layout_name
303          );
304    END;
305 END LOAD_LAYOUT_ROW;
306 
307 -- =================================================================
308 -- == translate_layout_row
309 -- =================================================================
310 PROCEDURE TRANSLATE_LAYOUT_ROW
311    (P_APPLICATION_SHORT_NAME IN VARCHAR2
312    ,P_LAYOUT_NAME in VARCHAR2
313    ,P_OWNER in VARCHAR2
314    ,P_DISPLAY_LAYOUT_NAME in VARCHAR2
315    ,P_CUSTOM_MODE IN VARCHAR2
316    )
317 IS
318 --
319 l_layout_id HXC_LAYOUTS.LAYOUT_ID%TYPE;
320 l_dummy varchar2(3);
321 --
322 BEGIN
323    --
324    -- Find the Layout id
325    --
326    l_layout_id :=
327       find_layout_id
328          (P_LAYOUT_NAME => P_LAYOUT_NAME
329          );
330    --
331    BEGIN
332       -- see if there is a TL row to update
333       SELECT 'yes'
334         INTO l_dummy
335         FROM dual
336        WHERE EXISTS (SELECT 'x'
337                        FROM hxc_layouts_tl
338                       WHERE layout_id   = l_layout_id
339                       and DISPLAY_LAYOUT_NAME <> P_DISPLAY_LAYOUT_NAME  --added
340                         AND userenv('LANG') in ( language, source_lang )
341                      );
342       --
343       IF (( p_custom_mode = 'FORCE' ) or (l_dummy ='yes')) THEN
344          HXC_ULT_UPD.UPD_TL
345             (P_LANGUAGE_CODE => userenv('LANG')
346             ,P_LAYOUT_ID => l_layout_id
347             ,P_DISPLAY_LAYOUT_NAME => P_DISPLAY_LAYOUT_NAME
348             );
349       END IF;
350    EXCEPTION WHEN NO_DATA_FOUND THEN
351       --
352       -- Call the _TL row handler to insert the record
353       --
354       HXC_ULT_INS.INS_TL
355          (P_LANGUAGE_CODE => userenv('LANG')
356          ,P_LAYOUT_ID => l_layout_id
357          ,P_DISPLAY_LAYOUT_NAME => P_DISPLAY_LAYOUT_NAME
358          );
359    END;
360 END TRANSLATE_LAYOUT_ROW;
361 
362 -- =================================================================
363 -- == load_definition_row
364 -- =================================================================
365 PROCEDURE LOAD_DEFINITION_ROW
366    (P_COMPONENT_TYPE    IN VARCHAR2
367    ,P_OWNER             IN VARCHAR2
368    ,P_COMPONENT_CLASS   IN VARCHAR2
369    ,P_RENDER_TYPE       IN VARCHAR2
370    ,P_CUSTOM_MODE       IN VARCHAR2
371    )
372 IS
373 --
374 CURSOR C_COMP_DEF IS
375 SELECT layout_comp_definition_id
376        ,object_version_number
377 FROM hxc_layout_comp_definitions
378 WHERE component_type = p_component_type
379   AND render_type = p_render_type;
380 
381 
382 CURSOR C_FORCE_OK (p_layout_comp_definition_id HXC_LAYOUT_COMP_DEFINITIONS.LAYOUT_COMP_DEFINITION_ID%TYPE)
383 IS
384 SELECT 'N'
385 FROM  hxc_layout_components lc
386 WHERE lc.layout_comp_definition_id =  p_layout_comp_definition_id;
387 
388 
389 l_layout_comp_definition_id HXC_LAYOUT_COMP_DEFINITIONS.LAYOUT_COMP_DEFINITION_ID%TYPE := NULL;
390 l_object_version_number HXC_LAYOUT_COMP_DEFINITIONS.OBJECT_VERSION_NUMBER%TYPE;
391 l_force_ok VARCHAR2(1) := 'Y';
392 --
393 BEGIN
394    --
395 
396 OPEN c_comp_def;
400   raise no_data_found;
397 FETCH c_comp_def INTO l_layout_comp_definition_id,l_object_version_number;
398 IF c_comp_def%NOTFOUND
399 THEN
401 END IF;
402 CLOSE c_comp_def;
403 
404 
405 OPEN C_FORCE_OK(l_layout_comp_definition_id);
406 FETCH C_FORCE_OK INTO l_force_ok;
407 IF C_FORCE_OK%NOTFOUND
408 THEN
409   raise no_data_found;
410 END IF;
411 CLOSE C_FORCE_OK;
412 
413    --
414    IF (p_custom_mode = 'FORCE') THEN
415       --
416       -- Call the row handler to update the row
417       --
418       HXC_ULD_UPD.UPD
419          (P_COMPONENT_CLASS=>P_COMPONENT_CLASS
420          ,P_COMPONENT_TYPE => P_COMPONENT_TYPE
421          ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
422          ,p_RENDER_TYPE => p_render_type
423          ,P_OBJECT_VERSION_NUMBER  => l_object_version_number
424          );
425    END IF; -- p_custom_mode = 'FORCE'
426 EXCEPTION WHEN NO_DATA_FOUND THEN
427    IF (l_layout_comp_definition_id IS NULL) THEN
428       --
429       -- Call the row handler to insert the row
430       --
431       HXC_ULD_INS.INS
432          (P_COMPONENT_CLASS=>P_COMPONENT_CLASS
433          ,P_COMPONENT_TYPE => P_COMPONENT_TYPE
434          ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
435          ,p_RENDER_TYPE => p_render_type
436          ,P_OBJECT_VERSION_NUMBER  => l_object_version_number
437          );
438    ELSE
439       --
440       -- Call the row handler to update the row
441       --
442       HXC_ULD_UPD.UPD
443          (P_COMPONENT_CLASS=>P_COMPONENT_CLASS
444          ,P_COMPONENT_TYPE => P_COMPONENT_TYPE
445          ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
446          ,p_RENDER_TYPE => p_render_type
447          ,P_OBJECT_VERSION_NUMBER  => l_object_version_number
448          );
449    END IF;
450 END LOAD_DEFINITION_ROW;
451 
452 -- =================================================================
453 -- == load_component_row
454 -- =================================================================
455 PROCEDURE LOAD_COMPONENT_ROW
456    (P_LAYOUT_NAME                IN VARCHAR2
457    ,P_COMPONENT_NAME             IN VARCHAR2
458    ,P_OWNER                      IN VARCHAR2
459    ,P_COMPONENT_VALUE            IN VARCHAR2
460    ,P_REGION_CODE                IN VARCHAR2
461    ,P_REGION_CODE_APP_SHORT_NAME IN VARCHAR2
462    ,P_ATTRIBUTE_CODE             IN VARCHAR2
463    ,P_ATTRIBUTE_CODE_APP_SHORT_N IN VARCHAR2
464    ,P_NAME_VALUE_STRING          IN VARCHAR2
465    ,P_SEQUENCE                   IN NUMBER
466    ,P_COMPONENT_DEFINITION       IN VARCHAR2
467    ,P_RENDER_TYPE                IN VARCHAR2
468    ,P_PARENT_COMPONENT           IN VARCHAR2
469    ,P_COMPONENT_ALIAS            IN VARCHAR2
470    ,P_PARENT_BEAN                IN VARCHAR2
471    ,P_ATTRIBUTE1                 IN VARCHAR2
472    ,P_ATTRIBUTE2                 IN VARCHAR2
473    ,P_ATTRIBUTE3                 IN VARCHAR2
474    ,P_ATTRIBUTE4                 IN VARCHAR2
475    ,P_ATTRIBUTE5                 IN VARCHAR2
476    ,P_CUSTOM_MODE                IN VARCHAR2
477    )
478 IS
479 --
480 l_layout_id                   HXC_LAYOUTS.LAYOUT_ID%TYPE;
481 l_layout_comp_definition_id   HXC_LAYOUT_COMP_DEFINITIONS.LAYOUT_COMP_DEFINITION_ID%TYPE;
482 l_parent_comp_id              HXC_LAYOUT_COMPONENTS.PARENT_COMPONENT_ID%TYPE;
483 l_application_id              FND_APPLICATION.APPLICATION_ID%TYPE;
484 l_attr_application_id         FND_APPLICATION.APPLICATION_ID%TYPE;
485 l_layout_component_id         HXC_LAYOUT_COMPONENTS.LAYOUT_COMPONENT_ID%TYPE;
486 l_object_version_number       HXC_LAYOUT_COMPONENTS.OBJECT_VERSION_NUMBER%TYPE;
487 --
488 BEGIN
489    --
490    glb_debug := glb_debug || ' ' || P_COMPONENT_NAME;
491    --
492    -- Find the parent, layout and the component
493    --
494    l_layout_id :=
495       find_layout_id
496          (P_LAYOUT_NAME => P_LAYOUT_NAME
497          );
498    --
499    l_layout_comp_definition_id :=
500       find_component_definition_id
501          (P_COMPONENT_TYPE => P_COMPONENT_DEFINITION
502          ,p_render_type => p_render_type
503          );
504    --
505    l_application_id :=
506       find_application_id
507          (P_APPLICATION_SHORT_NAME => P_REGION_CODE_APP_SHORT_NAME
508          );
509    --
510    l_attr_application_id :=
511       find_application_id
512          (p_application_short_name => p_attribute_code_app_short_n
513          );
514    --
515    IF P_PARENT_COMPONENT is NULL then
516       --
517       l_parent_comp_id := NULL;
518       --
519    else
520       l_parent_comp_id :=
521          find_component_id
522             (P_COMPONENT_NAME => P_PARENT_COMPONENT
523             ,p_layout_name => p_layout_name
524             );
525    end if;
526    --
527    BEGIN
528       -- check to see row exists
529       SELECT layout_component_id
530             ,comp.object_version_number
531         INTO l_layout_component_id
532             ,l_object_version_number
533         FROM hxc_layout_components comp
534             ,hxc_layouts lay
535        WHERE component_name = P_COMPONENT_NAME
536          AND comp.layout_id = lay.layout_id
537          AND layout_name = p_layout_name;
538       --
539       IF (p_custom_mode = 'FORCE') THEN
540          HXC_ULC_UPD.UPD
541             (P_LAYOUT_ID  => l_layout_id
542             ,P_PARENT_COMPONENT_ID => l_parent_comp_id
543             ,P_SEQUENCE  => P_SEQUENCE
544             ,P_COMPONENT_NAME => P_COMPONENT_NAME
548             ,P_REGION_CODE_APP_ID => l_application_id
545             ,P_COMPONENT_VALUE => P_COMPONENT_VALUE
546             ,P_NAME_VALUE_STRING => P_NAME_VALUE_STRING
547             ,P_REGION_CODE => P_REGION_CODE
549             ,P_ATTRIBUTE_CODE => P_ATTRIBUTE_CODE
550             ,P_ATTRIBUTE_CODE_APP_ID => l_attr_application_id
551             ,P_LAYOUT_COMPONENT_ID => l_layout_component_id
552             ,P_OBJECT_VERSION_NUMBER => l_object_version_number
553             ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
554             ,P_COMPONENT_ALIAS => P_COMPONENT_ALIAS
555             ,P_PARENT_BEAN => P_PARENT_BEAN
556             ,P_ATTRIBUTE1 => P_ATTRIBUTE1
557             ,P_ATTRIBUTE2 => P_ATTRIBUTE2
558             ,P_ATTRIBUTE3 => P_ATTRIBUTE3
559             ,P_ATTRIBUTE4 => P_ATTRIBUTE4
560             ,P_ATTRIBUTE5 => P_ATTRIBUTE5
561             );
562       ELSE
563          IF hxc_layouts_upload_pkg.g_force_ok THEN
564             HXC_ULC_UPD.UPD
565                (P_LAYOUT_ID  => l_layout_id
566                ,P_PARENT_COMPONENT_ID => l_parent_comp_id
567                ,P_SEQUENCE  => P_SEQUENCE
568                ,P_COMPONENT_NAME => P_COMPONENT_NAME
569                ,P_COMPONENT_VALUE => P_COMPONENT_VALUE
570                ,P_NAME_VALUE_STRING => P_NAME_VALUE_STRING
571                ,P_REGION_CODE => P_REGION_CODE
572                ,P_REGION_CODE_APP_ID => l_application_id
573                ,P_ATTRIBUTE_CODE => P_ATTRIBUTE_CODE
574                ,P_ATTRIBUTE_CODE_APP_ID => l_attr_application_id
575                ,P_LAYOUT_COMPONENT_ID => l_layout_component_id
576                ,P_OBJECT_VERSION_NUMBER => l_object_version_number
577                ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
578                ,P_COMPONENT_ALIAS => P_COMPONENT_ALIAS
579                ,P_PARENT_BEAN => P_PARENT_BEAN
580                ,P_ATTRIBUTE1 => P_ATTRIBUTE1
581                ,P_ATTRIBUTE2 => P_ATTRIBUTE2
582                ,P_ATTRIBUTE3 => P_ATTRIBUTE3
583                ,P_ATTRIBUTE4 => P_ATTRIBUTE4
584                ,P_ATTRIBUTE5 => P_ATTRIBUTE5
585                );
586          END IF; -- hxc_layouts_upload_pkg.g_force_ok
587       END IF; -- ( p_custom_mode = 'FORCE' )
588    EXCEPTION WHEN NO_DATA_FOUND THEN
589       HXC_ULC_INS.INS
590          (P_LAYOUT_ID  => l_layout_id
591          ,P_PARENT_COMPONENT_ID => l_parent_comp_id
592          ,P_SEQUENCE  => P_SEQUENCE
593          ,P_COMPONENT_NAME => P_COMPONENT_NAME
594          ,P_COMPONENT_VALUE => P_COMPONENT_VALUE
595          ,P_NAME_VALUE_STRING => P_NAME_VALUE_STRING
596          ,P_REGION_CODE => P_REGION_CODE
597          ,P_REGION_CODE_APP_ID => l_application_id
598          ,P_ATTRIBUTE_CODE => P_ATTRIBUTE_CODE
599          ,P_ATTRIBUTE_CODE_APP_ID => l_attr_application_id
600          ,P_LAYOUT_COMPONENT_ID => l_layout_component_id
601          ,P_OBJECT_VERSION_NUMBER => l_object_version_number
602          ,P_LAYOUT_COMP_DEFINITION_ID => l_layout_comp_definition_id
603          ,P_COMPONENT_ALIAS => P_COMPONENT_ALIAS
604          ,P_PARENT_BEAN => P_PARENT_BEAN
605          ,P_ATTRIBUTE1 => P_ATTRIBUTE1
606          ,P_ATTRIBUTE2 => P_ATTRIBUTE2
607          ,P_ATTRIBUTE3 => P_ATTRIBUTE3
608          ,P_ATTRIBUTE4 => P_ATTRIBUTE4
609          ,P_ATTRIBUTE5 => P_ATTRIBUTE5
610          );
611    END;
612 END LOAD_COMPONENT_ROW;
613 
614 -- =================================================================
615 -- == load_prompt_row
616 -- =================================================================
617 PROCEDURE LOAD_PROMPT_ROW
618    (P_COMPONENT_NAME               IN VARCHAR2
619    ,P_PROMPT_ALIAS                 IN VARCHAR2
620    ,P_PROMPT_TYPE                  IN VARCHAR2
621    ,P_OWNER                        IN VARCHAR2
622    ,P_REGION_CODE                  IN VARCHAR2
623    ,P_REGION_APP_SHORT_NAME        IN VARCHAR2
624    ,P_ATTRIBUTE_CODE               IN VARCHAR2
625    ,P_ATTRIBUTE_APP_SHORT_NAME     IN VARCHAR2
626    ,p_layout_name                  IN VARCHAR2
627    ,P_CUSTOM_MODE                  IN VARCHAR2 DEFAULT NULL
628    )
629 IS
630 --
631 l_layout_component_id      HXC_LAYOUT_COMPONENTS.LAYOUT_COMPONENT_ID%TYPE;
632 l_layout_comp_prompt_id    HXC_LAYOUT_COMP_PROMPTS.LAYOUT_COMP_PROMPT_ID%TYPE;
633 l_object_version_number    HXC_LAYOUT_COMP_PROMPTS.OBJECT_VERSION_NUMBER%TYPE;
634 l_region_app_id            hxc_layout_comp_prompts.region_application_id%TYPE;
635 l_attribute_app_id         hxc_layout_comp_prompts.attribute_application_id%TYPE;
636 --
637 BEGIN
638    --
639    -- Find the component ID
640    --
641    l_layout_component_id :=
642       find_component_id
643          (P_COMPONENT_NAME => P_COMPONENT_NAME
644          ,p_layout_name => p_layout_name
645          );
646    --
647    l_region_app_id :=
648       find_application_id
649          (P_APPLICATION_SHORT_NAME => P_REGION_APP_SHORT_NAME
650          );
651    --
652    l_attribute_app_id :=
653       find_application_id
654          (P_APPLICATION_SHORT_NAME => P_ATTRIBUTE_APP_SHORT_NAME
655          );
656    --
657    BEGIN
658       -- check to see if the row exists
659       SELECT lcp.layout_comp_prompt_id
660             ,lcp.object_version_number
661       INTO  l_layout_comp_prompt_id
662             ,l_object_version_number
663       FROM  HXC_LAYOUT_COMP_PROMPTS lcp
664       WHERE lcp.prompt_alias = p_prompt_alias
665         AND lcp.prompt_type = p_prompt_type
666         AND lcp.layout_component_id = l_layout_component_id;
667 
668       IF ( p_custom_mode = 'FORCE' )
669       THEN
670          --
671          -- Use the Row handler to update the row
672          --
673          HXC_ULP_UPD.UPD
674             (P_LAYOUT_COMPONENT_ID        => l_layout_component_id
678             ,p_region_application_id      => l_region_app_id
675             ,P_PROMPT_ALIAS               => P_PROMPT_ALIAS
676             ,P_PROMPT_TYPE                => P_PROMPT_TYPE
677             ,p_region_code                => p_region_code
679             ,p_attribute_code             => p_attribute_code
680             ,p_attribute_application_id   => l_attribute_app_id
681             ,P_LAYOUT_COMP_PROMPT_ID      => l_layout_comp_prompt_id
682             ,P_OBJECT_VERSION_NUMBER      => l_object_version_number
683             );
684       ELSE
685          IF HXC_layouts_upload_pkg.g_force_ok THEN
686             HXC_ULP_UPD.UPD
687                (P_LAYOUT_COMPONENT_ID        => l_layout_component_id
688                ,P_PROMPT_ALIAS               => P_PROMPT_ALIAS
689                ,P_PROMPT_TYPE                => P_PROMPT_TYPE
690                ,p_region_code                => p_region_code
691                ,p_region_application_id      => l_region_app_id
692                ,p_attribute_code             => p_attribute_code
693                ,p_attribute_application_id   => l_attribute_app_id
694                ,P_LAYOUT_COMP_PROMPT_ID      => l_layout_comp_prompt_id
695                ,P_OBJECT_VERSION_NUMBER      => l_object_version_number
696                );
697          END IF; -- HXC_layouts_upload_pkg.g_force_ok
698       END IF; -- p_custom_mode = 'FORCE'
699    EXCEPTION WHEN NO_DATA_FOUND THEN
700       --
701       -- Use the Row handler to insert the row
702       --
703 
704       HXC_ULP_INS.INS
705          (P_LAYOUT_COMPONENT_ID        => l_layout_component_id
706          ,P_PROMPT_ALIAS               => P_PROMPT_ALIAS
707          ,P_PROMPT_TYPE                => P_PROMPT_TYPE
708          ,p_region_code                => p_region_code
709          ,p_region_application_id      => l_region_app_id
710          ,p_attribute_code             => p_attribute_code
711          ,p_attribute_application_id   => l_attribute_app_id
712          ,P_LAYOUT_COMP_PROMPT_ID      => l_layout_comp_prompt_id
713          ,P_OBJECT_VERSION_NUMBER      => l_object_version_number);
714    END;
715 END LOAD_PROMPT_ROW;
716 
717 -- =================================================================
718 -- == load_qualifier_row
719 -- =================================================================
720 PROCEDURE LOAD_QUALIFIER_ROW
721    (P_COMPONENT_NAME               IN VARCHAR2
722    ,P_QUALIFIER_NAME               IN VARCHAR2
723    ,P_OWNER                        IN VARCHAR2
724    ,P_QUALIFIER_ATTRIBUTE_CATEGORY IN VARCHAR2
725    ,P_QUALIFIER_ATTRIBUTE1         IN VARCHAR2
726    ,P_QUALIFIER_ATTRIBUTE2         IN VARCHAR2
727    ,P_QUALIFIER_ATTRIBUTE3         IN VARCHAR2
728    ,P_QUALIFIER_ATTRIBUTE4         IN VARCHAR2
729    ,P_QUALIFIER_ATTRIBUTE5         IN VARCHAR2
730    ,P_QUALIFIER_ATTRIBUTE6         IN VARCHAR2
731    ,P_QUALIFIER_ATTRIBUTE7         IN VARCHAR2
732    ,P_QUALIFIER_ATTRIBUTE8         IN VARCHAR2
733    ,P_QUALIFIER_ATTRIBUTE9         IN VARCHAR2
734    ,P_QUALIFIER_ATTRIBUTE10        IN VARCHAR2
735    ,P_QUALIFIER_ATTRIBUTE11        IN VARCHAR2
736    ,P_QUALIFIER_ATTRIBUTE12        IN VARCHAR2
737    ,P_QUALIFIER_ATTRIBUTE13        IN VARCHAR2
738    ,P_QUALIFIER_ATTRIBUTE14        IN VARCHAR2
739    ,P_QUALIFIER_ATTRIBUTE15        IN VARCHAR2
740    ,P_QUALIFIER_ATTRIBUTE16        IN VARCHAR2
741    ,P_QUALIFIER_ATTRIBUTE17        IN VARCHAR2
742    ,P_QUALIFIER_ATTRIBUTE18        IN VARCHAR2
743    ,P_QUALIFIER_ATTRIBUTE19        IN VARCHAR2
744    ,P_QUALIFIER_ATTRIBUTE20        IN VARCHAR2
745    ,P_QUALIFIER_ATTRIBUTE21        IN VARCHAR2
746    ,P_QUALIFIER_ATTRIBUTE22        IN VARCHAR2
747    ,P_QUALIFIER_ATTRIBUTE23        IN VARCHAR2
748    ,P_QUALIFIER_ATTRIBUTE24        IN VARCHAR2
749    ,P_QUALIFIER_ATTRIBUTE25        IN VARCHAR2
750    ,P_QUALIFIER_ATTRIBUTE26        IN VARCHAR2
751    ,P_QUALIFIER_ATTRIBUTE27        IN VARCHAR2
752    ,P_QUALIFIER_ATTRIBUTE28        IN VARCHAR2
753    ,P_QUALIFIER_ATTRIBUTE29        IN VARCHAR2
754    ,P_QUALIFIER_ATTRIBUTE30        IN VARCHAR2
755    ,p_layout_name                  IN VARCHAR2
756    ,P_CUSTOM_MODE IN VARCHAR2 DEFAULT NULL
757    )
758 IS
759 --
760 l_layout_component_id HXC_LAYOUT_COMPONENTS.LAYOUT_COMPONENT_ID%TYPE;
761 l_layout_comp_qualifier_id HXC_LAYOUT_COMP_QUALIFIERS.LAYOUT_COMP_QUALIFIER_ID%TYPE;
762 l_object_version_number HXC_LAYOUT_COMP_QUALIFIERS.OBJECT_VERSION_NUMBER%TYPE;
763 --
764 BEGIN
765    --
766    -- Find the component ID
767    --
768    l_layout_component_id :=
769       find_component_id
770          (P_COMPONENT_NAME => P_COMPONENT_NAME
771          ,p_layout_name => p_layout_name
772          );
773    BEGIN
774       -- check to see the row exists
775       SELECT layout_comp_qualifier_id
776             ,object_version_number
777         INTO l_layout_comp_qualifier_id
778             ,l_object_version_number
779         FROM HXC_LAYOUT_COMP_QUALIFIERS
780        WHERE qualifier_name = p_qualifier_name
781          and layout_component_id = l_layout_component_id;
782 
783       IF (p_custom_mode = 'FORCE') THEN
784          --
785          -- Use the Row handler to update the row
786          --
787          HXC_ULQ_UPD.UPD
788             (P_LAYOUT_COMPONENT_ID          => l_layout_component_id
789             ,P_QUALIFIER_NAME               => P_QUALIFIER_NAME
790             ,P_QUALIFIER_ATTRIBUTE_CATEGORY => P_QUALIFIER_ATTRIBUTE_CATEGORY
791             ,P_QUALIFIER_ATTRIBUTE1         => P_QUALIFIER_ATTRIBUTE1
792             ,P_QUALIFIER_ATTRIBUTE2         => P_QUALIFIER_ATTRIBUTE2
793             ,P_QUALIFIER_ATTRIBUTE3         => P_QUALIFIER_ATTRIBUTE3
794             ,P_QUALIFIER_ATTRIBUTE4         => P_QUALIFIER_ATTRIBUTE4
798             ,P_QUALIFIER_ATTRIBUTE8         => P_QUALIFIER_ATTRIBUTE8
795             ,P_QUALIFIER_ATTRIBUTE5         => P_QUALIFIER_ATTRIBUTE5
796             ,P_QUALIFIER_ATTRIBUTE6         => P_QUALIFIER_ATTRIBUTE6
797             ,P_QUALIFIER_ATTRIBUTE7         => P_QUALIFIER_ATTRIBUTE7
799             ,P_QUALIFIER_ATTRIBUTE9         => P_QUALIFIER_ATTRIBUTE9
800             ,P_QUALIFIER_ATTRIBUTE10        => P_QUALIFIER_ATTRIBUTE10
801             ,P_QUALIFIER_ATTRIBUTE11        => P_QUALIFIER_ATTRIBUTE11
802             ,P_QUALIFIER_ATTRIBUTE12        => P_QUALIFIER_ATTRIBUTE12
803             ,P_QUALIFIER_ATTRIBUTE13        => P_QUALIFIER_ATTRIBUTE13
804             ,P_QUALIFIER_ATTRIBUTE14        => P_QUALIFIER_ATTRIBUTE14
805             ,P_QUALIFIER_ATTRIBUTE15        => P_QUALIFIER_ATTRIBUTE15
806             ,P_QUALIFIER_ATTRIBUTE16        => P_QUALIFIER_ATTRIBUTE16
807             ,P_QUALIFIER_ATTRIBUTE17        => P_QUALIFIER_ATTRIBUTE17
808             ,P_QUALIFIER_ATTRIBUTE18        => P_QUALIFIER_ATTRIBUTE18
809             ,P_QUALIFIER_ATTRIBUTE19        => P_QUALIFIER_ATTRIBUTE19
810             ,P_QUALIFIER_ATTRIBUTE20        => P_QUALIFIER_ATTRIBUTE20
811             ,P_QUALIFIER_ATTRIBUTE21        => P_QUALIFIER_ATTRIBUTE21
812             ,P_QUALIFIER_ATTRIBUTE22        => P_QUALIFIER_ATTRIBUTE22
813             ,P_QUALIFIER_ATTRIBUTE23        => P_QUALIFIER_ATTRIBUTE23
814             ,P_QUALIFIER_ATTRIBUTE24        => P_QUALIFIER_ATTRIBUTE24
815             ,P_QUALIFIER_ATTRIBUTE25        => P_QUALIFIER_ATTRIBUTE25
816             ,P_QUALIFIER_ATTRIBUTE26        => P_QUALIFIER_ATTRIBUTE26
817             ,P_QUALIFIER_ATTRIBUTE27        => P_QUALIFIER_ATTRIBUTE27
818             ,P_QUALIFIER_ATTRIBUTE28        => P_QUALIFIER_ATTRIBUTE28
819             ,P_QUALIFIER_ATTRIBUTE29        => P_QUALIFIER_ATTRIBUTE29
820             ,P_QUALIFIER_ATTRIBUTE30        => P_QUALIFIER_ATTRIBUTE30
821             ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
822             ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
823             );
824       ELSE
825          IF HXC_layouts_upload_pkg.g_force_ok THEN
826             HXC_ULQ_UPD.UPD
827                (P_LAYOUT_COMPONENT_ID          => l_layout_component_id
828                ,P_QUALIFIER_NAME               => P_QUALIFIER_NAME
829                ,P_QUALIFIER_ATTRIBUTE_CATEGORY => P_QUALIFIER_ATTRIBUTE_CATEGORY
830                ,P_QUALIFIER_ATTRIBUTE1         => P_QUALIFIER_ATTRIBUTE1
831                ,P_QUALIFIER_ATTRIBUTE2         => P_QUALIFIER_ATTRIBUTE2
832                ,P_QUALIFIER_ATTRIBUTE3         => P_QUALIFIER_ATTRIBUTE3
833                ,P_QUALIFIER_ATTRIBUTE4         => P_QUALIFIER_ATTRIBUTE4
834                ,P_QUALIFIER_ATTRIBUTE5         => P_QUALIFIER_ATTRIBUTE5
835                ,P_QUALIFIER_ATTRIBUTE6         => P_QUALIFIER_ATTRIBUTE6
836                ,P_QUALIFIER_ATTRIBUTE7         => P_QUALIFIER_ATTRIBUTE7
837                ,P_QUALIFIER_ATTRIBUTE8         => P_QUALIFIER_ATTRIBUTE8
838                ,P_QUALIFIER_ATTRIBUTE9         => P_QUALIFIER_ATTRIBUTE9
839                ,P_QUALIFIER_ATTRIBUTE10        => P_QUALIFIER_ATTRIBUTE10
840                ,P_QUALIFIER_ATTRIBUTE11        => P_QUALIFIER_ATTRIBUTE11
841                ,P_QUALIFIER_ATTRIBUTE12        => P_QUALIFIER_ATTRIBUTE12
842                ,P_QUALIFIER_ATTRIBUTE13        => P_QUALIFIER_ATTRIBUTE13
843                ,P_QUALIFIER_ATTRIBUTE14        => P_QUALIFIER_ATTRIBUTE14
844                ,P_QUALIFIER_ATTRIBUTE15        => P_QUALIFIER_ATTRIBUTE15
845                ,P_QUALIFIER_ATTRIBUTE16        => P_QUALIFIER_ATTRIBUTE16
846                ,P_QUALIFIER_ATTRIBUTE17        => P_QUALIFIER_ATTRIBUTE17
847                ,P_QUALIFIER_ATTRIBUTE18        => P_QUALIFIER_ATTRIBUTE18
848                ,P_QUALIFIER_ATTRIBUTE19        => P_QUALIFIER_ATTRIBUTE19
849                ,P_QUALIFIER_ATTRIBUTE20        => P_QUALIFIER_ATTRIBUTE20
850                ,P_QUALIFIER_ATTRIBUTE21        => P_QUALIFIER_ATTRIBUTE21
851                ,P_QUALIFIER_ATTRIBUTE22        => P_QUALIFIER_ATTRIBUTE22
852                ,P_QUALIFIER_ATTRIBUTE23        => P_QUALIFIER_ATTRIBUTE23
853                ,P_QUALIFIER_ATTRIBUTE24        => P_QUALIFIER_ATTRIBUTE24
854                ,P_QUALIFIER_ATTRIBUTE25        => P_QUALIFIER_ATTRIBUTE25
855                ,P_QUALIFIER_ATTRIBUTE26        => P_QUALIFIER_ATTRIBUTE26
856                ,P_QUALIFIER_ATTRIBUTE27        => P_QUALIFIER_ATTRIBUTE27
857                ,P_QUALIFIER_ATTRIBUTE28        => P_QUALIFIER_ATTRIBUTE28
858                ,P_QUALIFIER_ATTRIBUTE29        => P_QUALIFIER_ATTRIBUTE29
859                ,P_QUALIFIER_ATTRIBUTE30        => P_QUALIFIER_ATTRIBUTE30
860                ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
861                ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
862                );
863          END IF; -- HXC_layouts_upload_pkg.g_force_ok
864       END IF; -- p_custom_mode = 'FORCE'
865    EXCEPTION WHEN NO_DATA_FOUND THEN
866       --
867       -- Use the Row handler to insert the row
868       --
869       HXC_ULQ_INS.INS
870          (P_LAYOUT_COMPONENT_ID          => l_layout_component_id
871          ,P_QUALIFIER_NAME               => P_QUALIFIER_NAME
872          ,P_QUALIFIER_ATTRIBUTE_CATEGORY => P_QUALIFIER_ATTRIBUTE_CATEGORY
873          ,P_QUALIFIER_ATTRIBUTE1         => P_QUALIFIER_ATTRIBUTE1
874          ,P_QUALIFIER_ATTRIBUTE2         => P_QUALIFIER_ATTRIBUTE2
875          ,P_QUALIFIER_ATTRIBUTE3         => P_QUALIFIER_ATTRIBUTE3
876          ,P_QUALIFIER_ATTRIBUTE4         => P_QUALIFIER_ATTRIBUTE4
877          ,P_QUALIFIER_ATTRIBUTE5         => P_QUALIFIER_ATTRIBUTE5
878          ,P_QUALIFIER_ATTRIBUTE6         => P_QUALIFIER_ATTRIBUTE6
879          ,P_QUALIFIER_ATTRIBUTE7         => P_QUALIFIER_ATTRIBUTE7
880          ,P_QUALIFIER_ATTRIBUTE8         => P_QUALIFIER_ATTRIBUTE8
881          ,P_QUALIFIER_ATTRIBUTE9         => P_QUALIFIER_ATTRIBUTE9
882          ,P_QUALIFIER_ATTRIBUTE10        => P_QUALIFIER_ATTRIBUTE10
883          ,P_QUALIFIER_ATTRIBUTE11        => P_QUALIFIER_ATTRIBUTE11
884          ,P_QUALIFIER_ATTRIBUTE12        => P_QUALIFIER_ATTRIBUTE12
888          ,P_QUALIFIER_ATTRIBUTE16        => P_QUALIFIER_ATTRIBUTE16
885          ,P_QUALIFIER_ATTRIBUTE13        => P_QUALIFIER_ATTRIBUTE13
886          ,P_QUALIFIER_ATTRIBUTE14        => P_QUALIFIER_ATTRIBUTE14
887          ,P_QUALIFIER_ATTRIBUTE15        => P_QUALIFIER_ATTRIBUTE15
889          ,P_QUALIFIER_ATTRIBUTE17        => P_QUALIFIER_ATTRIBUTE17
890          ,P_QUALIFIER_ATTRIBUTE18        => P_QUALIFIER_ATTRIBUTE18
891          ,P_QUALIFIER_ATTRIBUTE19        => P_QUALIFIER_ATTRIBUTE19
892          ,P_QUALIFIER_ATTRIBUTE20        => P_QUALIFIER_ATTRIBUTE20
893          ,P_QUALIFIER_ATTRIBUTE21        => P_QUALIFIER_ATTRIBUTE21
894          ,P_QUALIFIER_ATTRIBUTE22        => P_QUALIFIER_ATTRIBUTE22
895          ,P_QUALIFIER_ATTRIBUTE23        => P_QUALIFIER_ATTRIBUTE23
896          ,P_QUALIFIER_ATTRIBUTE24        => P_QUALIFIER_ATTRIBUTE24
897          ,P_QUALIFIER_ATTRIBUTE25        => P_QUALIFIER_ATTRIBUTE25
898          ,P_QUALIFIER_ATTRIBUTE26        => P_QUALIFIER_ATTRIBUTE26
899          ,P_QUALIFIER_ATTRIBUTE27        => P_QUALIFIER_ATTRIBUTE27
900          ,P_QUALIFIER_ATTRIBUTE28        => P_QUALIFIER_ATTRIBUTE28
901          ,P_QUALIFIER_ATTRIBUTE29        => P_QUALIFIER_ATTRIBUTE29
902          ,P_QUALIFIER_ATTRIBUTE30        => P_QUALIFIER_ATTRIBUTE30
903          ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
904          ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
905          );
906    END;
907 END LOAD_QUALIFIER_ROW;
908 
909 -- =================================================================
910 -- == load_rule_row
911 -- =================================================================
912 /*
913 PROCEDURE LOAD_RULE_ROW
914    (P_QUALIFIER_NAME IN VARCHAR2
915    ,P_RULE_NAME IN VARCHAR2
916    ,P_OWNER IN VARCHAR2
917    ,P_RULE_TYPE IN VARCHAR2
918    ,P_RULE_DETAIL IN VARCHAR2
919    ,P_RULE_VALUE IN VARCHAR2
920    ,P_CUSTOM_MODE IN VARCHAR2
921    )
922 IS
923 --
924 l_layout_comp_qualifier_id    HXC_LAYOUT_COMP_QUALIFIERS.LAYOUT_COMP_QUALIFIER_ID%TYPE;
925 l_layout_comp_qual_rule_id HXC_LAYOUT_COMP_QUAL_RULES.LAYOUT_COMP_QUAL_RULE_ID%TYPE;
926 l_object_version_number HXC_LAYOUT_COMP_QUAL_RULES.OBJECT_VERSION_NUMBER%TYPE;
927 --
928 BEGIN
929    --
930    -- Obtain the qualifier id
931    --
932    l_layout_comp_qualifier_id :=
933       find_comp_qualifier_id
934          (P_COMP_QUALIFIER_NAME => P_QUALIFIER_NAME
935          );
936    --
937    BEGIN
938       SELECT layout_comp_qual_rule_id
939             ,object_version_number
940         INTO l_layout_comp_qual_rule_id
941             ,l_object_version_number
942         FROM HXC_LAYOUT_COMP_QUAL_RULES
943        WHERE rule_name = p_rule_name;
944 
945       IF (p_custom_mode = 'FORCE') THEN
946          --
947          -- Use the row handler to update the rule data
948          --
949          HXC_ULR_UPD.UPD
950             (P_RULE_NAME                    => P_RULE_NAME
951             ,P_RULE_TYPE                    => P_RULE_TYPE
952             ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
953             ,P_RULE_DETAIL                  => P_RULE_DETAIL
954             ,P_RULE_VALUE                   => P_RULE_VALUE
955             ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
956             ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
957             );
958       ELSE
959          IF  HXC_layouts_upload_pkg.g_force_ok THEN
960             --
961             -- Use the row handler to update the rule data
962             --
963             HXC_ULR_UPD.UPD
964                (P_RULE_NAME                    => P_RULE_NAME
965                ,P_RULE_TYPE                    => P_RULE_TYPE
966                ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
967                ,P_RULE_DETAIL                  => P_RULE_DETAIL
968                ,P_RULE_VALUE                   => P_RULE_VALUE
969                ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
970                ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
971                );
972          END IF; -- HXC_layouts_upload_pkg.g_force_ok
973       END IF; -- p_custom_mode = 'FORCE'
974    EXCEPTION WHEN NO_DATA_FOUND THEN
975       --
976       -- Use the row handler to insert the rule data
977       --
978       HXC_ULR_INS.INS
979          (P_RULE_NAME                    => P_RULE_NAME
980          ,P_RULE_TYPE                    => P_RULE_TYPE
981          ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
982          ,P_RULE_DETAIL                  => P_RULE_DETAIL
983          ,P_RULE_VALUE                   => P_RULE_VALUE
984          ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
985          ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
986          );
987    END;
988 END LOAD_RULE_ROW;
989 */
990 -- =================================================================
991 -- == load_layout_row
992 -- =================================================================
993    PROCEDURE load_layout_row(
994       p_layout_name              IN   VARCHAR2,
995       p_application_short_name   IN   VARCHAR2,
996       p_owner                    IN   VARCHAR2,
997       p_display_layout_name      IN   VARCHAR2,
998       p_layout_type              IN   VARCHAR2,
999       p_modifier_level           IN   VARCHAR2 DEFAULT NULL,
1000       p_modifier_value           IN   VARCHAR2 DEFAULT NULL,
1001       p_top_level_region_code    IN   VARCHAR2 DEFAULT NULL,
1002       p_custom_mode              IN   VARCHAR2 DEFAULT NULL,
1003       p_last_update_date         IN   VARCHAR2
1004    )
1005    IS
1006 
1007 --
1008       l_layout_id               hxc_layouts.layout_id%TYPE;
1009       l_object_version_number   hxc_layouts.object_version_number%TYPE;
1010       l_application_id          fnd_application.application_id%TYPE;
1011       l_dummy                   VARCHAR2(3);
1012       l_last_update_date_db     DATE;
1013       l_last_updated_by_db      NUMBER(15);
1014       l_last_updated_by_f       NUMBER(15);
1015       l_last_update_date_f      DATE;
1016 
1017       CURSOR c_display_name(p_layout_id IN NUMBER)
1018       IS
1019          SELECT 'yes'
1020            FROM dual
1021           WHERE EXISTS( SELECT 'x'
1022                           FROM hxc_layouts_tl
1023                          WHERE layout_id = p_layout_id
1024                            AND display_layout_name <>
1025                                                  p_display_layout_name --added
1026                            AND userenv('LANG') IN (LANGUAGE, source_lang));
1027    BEGIN
1028       --
1029       g_debug :=hr_utility.debug_enabled;
1030       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1031       l_last_update_date_f :=
1032                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1033       if g_debug then
1034             hr_utility.set_location('Entering Load Layout Row ', 10);
1035       end if;
1036       --
1037       -- Find the application id
1038       --
1039       l_application_id :=
1040             find_application_id(
1041                p_application_short_name=> p_application_short_name
1042             );
1043 
1044       --
1045       BEGIN
1046          if g_debug then
1047          	hr_utility.set_location('In Load Layout Row ', 20);
1048          end if;
1049 
1050          --
1051          -- check to see row exists
1052          --
1053          SELECT modifier_level,
1054                 layout_id,
1055                 object_version_number,
1056                 last_update_date,
1057                 last_updated_by
1058            INTO l_modifier_level,
1059                 l_layout_id,
1060                 l_object_version_number,
1061                 l_last_update_date_db,
1062                 l_last_updated_by_db
1063            FROM hxc_layouts
1064           WHERE layout_name = p_layout_name
1065             AND application_id = l_application_id;
1066 
1067          --
1068          -- Remove all components for the layout if it already exists
1069          --
1070          -- delete rows from HXC_LAYOUT_COMP_PROMPTS
1071          DELETE FROM hxc_layout_comp_prompts
1072                WHERE layout_component_id IN (SELECT comp.layout_component_id
1073                                                FROM hxc_layout_components comp
1074                                               WHERE comp.layout_id =
1075                                                                   l_layout_id);
1076 
1077          --
1078          -- delete rows from HXC_LAYOUT_COMP_QUALIFIERS
1079          DELETE FROM hxc_layout_comp_qualifiers cq
1080                WHERE EXISTS( SELECT comp.layout_component_id
1081                                FROM hxc_layout_components comp
1082                               WHERE comp.layout_id = l_layout_id
1083                                 AND cq.layout_component_id =
1084                                                      comp.layout_component_id);
1085 
1086          --
1087          -- delete rows from HXC_LAYOUT_COMPONENTS
1088          DELETE FROM hxc_layout_components
1089                WHERE layout_id = l_layout_id;
1090 
1091          --
1092          IF (nvl(l_modifier_level, 'ZZZ') = nvl(p_modifier_level, 'ZZZ'))
1093          THEN
1094             hxc_layouts_upload_pkg.g_force_ok := TRUE;
1095          ELSE
1096             hxc_layouts_upload_pkg.g_force_ok := FALSE;
1097          END IF;
1098 
1099          ---
1100          l_dummy := NULL;
1101          OPEN c_display_name(l_layout_id); --,language, source_lang )
1102          FETCH c_display_name INTO l_dummy;
1103          CLOSE c_display_name;
1104 
1105          --
1106          IF (fnd_load_util.upload_test(
1107                 l_last_updated_by_f,
1108                 l_last_update_date_f,
1109                 l_last_updated_by_db,
1110                 l_last_update_date_db,
1111                 p_custom_mode
1112              )
1113             )
1114          THEN
1115             hxc_ula_upd.upd(
1116                p_layout_name=> p_layout_name,
1117                p_application_id=> l_application_id,
1118                p_layout_type=> p_layout_type,
1119                p_modifier_level=> p_modifier_level,
1120                p_modifier_value=> p_modifier_value,
1121                p_top_level_region_code=> p_top_level_region_code,
1122                p_layout_id=> l_layout_id,
1123                p_object_version_number=> l_object_version_number
1124             );
1125 
1126             IF (l_dummy = 'yes')
1127             THEN
1128                hxc_ult_upd.upd_tl --added1
1129                                  (
1130                   p_language_code=> userenv('LANG'),
1131                   p_layout_id=> l_layout_id,
1132                   p_display_layout_name=> p_display_layout_name
1133                );
1134             END IF;
1135          ELSE
1136             IF hxc_layouts_upload_pkg.g_force_ok
1137             THEN
1138                hxc_ula_upd.upd(
1139                   p_layout_name=> p_layout_name,
1140                   p_application_id=> l_application_id,
1141                   p_layout_type=> p_layout_type,
1142                   p_modifier_level=> p_modifier_level,
1143                   p_modifier_value=> p_modifier_value,
1144                   p_top_level_region_code=> p_top_level_region_code,
1145                   p_layout_id=> l_layout_id,
1146                   p_object_version_number=> l_object_version_number
1147                );
1148 
1149                IF (l_dummy = 'yes')
1150                THEN
1151                   hxc_ult_upd.upd_tl --added1
1152                                     (
1153                      p_language_code=> userenv('LANG'),
1154                      p_layout_id=> l_layout_id,
1155                      p_display_layout_name=> p_display_layout_name
1156                   );
1157                END IF;
1158             END IF; -- ( l_modifier_level = p_modifier_level )
1159          END IF; -- ( p_custom_mode = 'FORCE' )
1160       EXCEPTION
1161          WHEN no_data_found
1162          THEN
1163             hxc_ula_ins.ins(
1164                p_layout_name=> p_layout_name,
1165                p_application_id=> l_application_id,
1166                p_layout_type=> p_layout_type,
1167                p_modifier_level=> p_modifier_level,
1168                p_modifier_value=> p_modifier_value,
1169                p_top_level_region_code=> p_top_level_region_code,
1170                p_layout_id=> l_layout_id,
1171                p_object_version_number=> l_object_version_number,
1172                p_display_layout_name=> p_display_layout_name
1173             );
1174       END;
1175    END load_layout_row;
1176 
1177 
1178 -- =================================================================
1179 -- == translate_layout_row
1180 -- =================================================================
1181    PROCEDURE translate_layout_row(
1182       p_application_short_name   IN   VARCHAR2,
1183       p_layout_name              IN   VARCHAR2,
1184       p_owner                    IN   VARCHAR2,
1185       p_display_layout_name      IN   VARCHAR2,
1189    IS
1186       p_custom_mode              IN   VARCHAR2,
1187       p_last_update_date         IN   VARCHAR2
1188    )
1190 
1191 --
1192       l_layout_id             hxc_layouts.layout_id%TYPE;
1193       l_dummy                 VARCHAR2(3);
1194       l_last_update_date_db   DATE;
1195       l_last_updated_by_db    NUMBER(15);
1196       l_last_updated_by_f     NUMBER(15);
1197       l_last_update_date_f    DATE;
1198 
1199 --
1200    BEGIN
1201       --
1202       -- Find the Layout id
1203       --
1204       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1205       l_last_update_date_f :=
1206                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1207       l_layout_id := find_layout_id(p_layout_name => p_layout_name);
1208 
1209       --
1210       BEGIN
1211          -- see if there is a TL row to update
1212          SELECT 'yes'
1213            INTO l_dummy
1214            FROM dual
1215           WHERE EXISTS( SELECT 'x'
1216                           FROM hxc_layouts_tl
1217                          WHERE layout_id = l_layout_id
1218                            AND display_layout_name <>
1219                                                  p_display_layout_name --added
1220                            AND userenv('LANG') IN (LANGUAGE, source_lang));
1221 
1222          --
1223 	 SELECT last_update_date,
1224                 last_updated_by
1225            INTO l_last_update_date_db,
1226                 l_last_updated_by_db
1227            FROM hxc_layouts_tl
1228           WHERE layout_id = l_layout_id
1229             AND display_layout_name <> p_display_layout_name --added
1230             AND userenv('LANG') = LANGUAGE;
1231 
1232           IF (   fnd_load_util.upload_test(
1233                    l_last_updated_by_f,
1234                    l_last_update_date_f,
1235                    l_last_updated_by_db,
1236                    l_last_update_date_db,
1237                    p_custom_mode
1238                 )
1239              OR (l_dummy = 'yes')
1240             )
1241          THEN
1242             hxc_ult_upd.upd_tl(
1243                p_language_code=> userenv('LANG'),
1244                p_layout_id=> l_layout_id,
1245                p_display_layout_name=> p_display_layout_name
1246             );
1247          END IF;
1248       EXCEPTION
1249          WHEN no_data_found
1250          THEN
1251             --
1252             -- Call the _TL row handler to insert the record
1253             --
1254             hxc_ult_ins.ins_tl(
1255                p_language_code=> userenv('LANG'),
1256                p_layout_id=> l_layout_id,
1257                p_display_layout_name=> p_display_layout_name
1258             );
1259       END;
1260    END translate_layout_row;
1261 
1262 
1263 -- =================================================================
1264 -- == load_definition_row
1265 -- =================================================================
1266    PROCEDURE load_definition_row(
1267       p_component_type     IN   VARCHAR2,
1268       p_owner              IN   VARCHAR2,
1269       p_component_class    IN   VARCHAR2,
1270       p_render_type        IN   VARCHAR2,
1271       p_custom_mode        IN   VARCHAR2,
1272       p_last_update_date   IN   VARCHAR2
1273    )
1274    IS
1275 
1276 --
1277       l_last_update_date_db         DATE;
1278       l_last_updated_by_db          NUMBER(15);
1279       l_last_updated_by_f           NUMBER(15);
1280       l_last_update_date_f          DATE;
1281 
1282       CURSOR c_comp_def
1283       IS
1284          SELECT layout_comp_definition_id,
1285                 object_version_number,
1286                 last_update_date,
1287                 last_updated_by
1288            FROM hxc_layout_comp_definitions
1289           WHERE component_type = p_component_type
1290             AND render_type = p_render_type;
1291 
1292       CURSOR c_force_ok(
1293          p_layout_comp_definition_id   hxc_layout_comp_definitions.layout_comp_definition_id%TYPE
1294       )
1295       IS
1296          SELECT 'N'
1297            FROM hxc_layout_components lc
1298           WHERE lc.layout_comp_definition_id = p_layout_comp_definition_id;
1299 
1300       l_layout_comp_definition_id   hxc_layout_comp_definitions.layout_comp_definition_id%TYPE
1301                                                                       := NULL;
1302       l_object_version_number       hxc_layout_comp_definitions.object_version_number%TYPE;
1303       l_force_ok                    VARCHAR2(1)                               := 'Y';
1304 
1305 --
1306    BEGIN
1307       --
1308       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1309       l_last_update_date_f :=
1310                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1311       OPEN c_comp_def;
1312       FETCH c_comp_def INTO l_layout_comp_definition_id,
1313                             l_object_version_number,
1314                             l_last_update_date_db,
1315                             l_last_updated_by_db;
1316 
1317       IF c_comp_def%NOTFOUND
1318       THEN
1319          RAISE no_data_found;
1320       END IF;
1321 
1322       CLOSE c_comp_def;
1323       OPEN c_force_ok(l_layout_comp_definition_id);
1324       FETCH c_force_ok INTO l_force_ok;
1325 
1326       IF c_force_ok%NOTFOUND
1327       THEN
1328          RAISE no_data_found;
1329       END IF;
1330 
1331       CLOSE c_force_ok;
1332 
1333       --
1334       IF (fnd_load_util.upload_test(
1335              l_last_updated_by_f,
1336              l_last_update_date_f,
1337              l_last_updated_by_db,
1338              l_last_update_date_db,
1339              p_custom_mode
1343          --
1340           )
1341          )
1342       THEN
1344          -- Call the row handler to update the row
1345          --
1346          hxc_uld_upd.upd(
1347             p_component_class=> p_component_class,
1348             p_component_type=> p_component_type,
1349             p_layout_comp_definition_id=> l_layout_comp_definition_id,
1350             p_render_type=> p_render_type,
1351             p_object_version_number=> l_object_version_number
1352          );
1353       END IF; -- p_custom_mode = 'FORCE'
1354    EXCEPTION
1355       WHEN no_data_found
1356       THEN
1357          IF (l_layout_comp_definition_id IS NULL)
1358          THEN
1359             --
1360             -- Call the row handler to insert the row
1361             --
1362             hxc_uld_ins.ins(
1363                p_component_class=> p_component_class,
1364                p_component_type=> p_component_type,
1365                p_layout_comp_definition_id=> l_layout_comp_definition_id,
1366                p_render_type=> p_render_type,
1367                p_object_version_number=> l_object_version_number
1368             );
1369          ELSE
1370             --
1371             -- Call the row handler to update the row
1372             --
1373             hxc_uld_upd.upd(
1374                p_component_class=> p_component_class,
1375                p_component_type=> p_component_type,
1376                p_layout_comp_definition_id=> l_layout_comp_definition_id,
1377                p_render_type=> p_render_type,
1378                p_object_version_number=> l_object_version_number
1379             );
1380          END IF;
1381    END load_definition_row;
1382 
1383 
1384 -- =================================================================
1385 -- == load_component_row
1386 -- =================================================================
1387    PROCEDURE load_component_row(
1388       p_layout_name                  IN   VARCHAR2,
1389       p_component_name               IN   VARCHAR2,
1390       p_owner                        IN   VARCHAR2,
1391       p_component_value              IN   VARCHAR2,
1392       p_region_code                  IN   VARCHAR2,
1393       p_region_code_app_short_name   IN   VARCHAR2,
1394       p_attribute_code               IN   VARCHAR2,
1395       p_attribute_code_app_short_n   IN   VARCHAR2,
1396       p_name_value_string            IN   VARCHAR2,
1397       p_sequence                     IN   NUMBER,
1398       p_component_definition         IN   VARCHAR2,
1399       p_render_type                  IN   VARCHAR2,
1400       p_parent_component             IN   VARCHAR2,
1401       p_component_alias              IN   VARCHAR2,
1402       p_parent_bean                  IN   VARCHAR2,
1403       p_attribute1                   IN   VARCHAR2,
1404       p_attribute2                   IN   VARCHAR2,
1405       p_attribute3                   IN   VARCHAR2,
1406       p_attribute4                   IN   VARCHAR2,
1407       p_attribute5                   IN   VARCHAR2,
1408       p_custom_mode                  IN   VARCHAR2,
1409       p_last_update_date             IN   VARCHAR2
1410    )
1411    IS
1412 
1413 --
1414       l_layout_id                   hxc_layouts.layout_id%TYPE;
1415       l_layout_comp_definition_id   hxc_layout_comp_definitions.layout_comp_definition_id%TYPE;
1416       l_parent_comp_id              hxc_layout_components.parent_component_id%TYPE;
1417       l_application_id              fnd_application.application_id%TYPE;
1418       l_attr_application_id         fnd_application.application_id%TYPE;
1419       l_layout_component_id         hxc_layout_components.layout_component_id%TYPE;
1420       l_object_version_number       hxc_layout_components.object_version_number%TYPE;
1421 
1422 --
1423       l_last_update_date_db         DATE;
1424       l_last_updated_by_db          NUMBER(15);
1425       l_last_updated_by_f           NUMBER(15);
1426       l_last_update_date_f          DATE;
1427    BEGIN
1428       --
1429       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1430       l_last_update_date_f :=
1431                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1432       glb_debug := glb_debug || ' ' || p_component_name;
1433       --
1434       -- Find the parent, layout and the component
1435       --
1436       l_layout_id := find_layout_id(p_layout_name => p_layout_name);
1437       --
1438       l_layout_comp_definition_id :=
1439             find_component_definition_id(
1440                p_component_type=> p_component_definition,
1441                p_render_type=> p_render_type
1442             );
1443       --
1444       l_application_id :=
1445             find_application_id(
1446                p_application_short_name=> p_region_code_app_short_name
1447             );
1448       --
1449       l_attr_application_id :=
1450             find_application_id(
1451                p_application_short_name=> p_attribute_code_app_short_n
1452             );
1453 
1454       --
1455       IF p_parent_component IS NULL
1456       THEN
1457          --
1458          l_parent_comp_id := NULL;
1459       --
1460       ELSE
1461          l_parent_comp_id :=
1462                find_component_id(
1463                   p_component_name=> p_parent_component,
1464                   p_layout_name=> p_layout_name
1465                );
1466       END IF;
1467 
1468       --
1469       BEGIN
1470          -- check to see row exists
1471          SELECT layout_component_id,
1472                 comp.object_version_number,
1473                 comp.last_update_date,
1474                 comp.last_updated_by
1475            INTO l_layout_component_id,
1476                 l_object_version_number,
1477                 l_last_update_date_db,
1478                 l_last_updated_by_db
1479            FROM hxc_layout_components comp,
1480                 hxc_layouts lay
1481           WHERE component_name = p_component_name
1482             AND comp.layout_id = lay.layout_id
1483             AND layout_name = p_layout_name;
1484 
1485          --
1486          IF (fnd_load_util.upload_test(
1487                 l_last_updated_by_f,
1488                 l_last_update_date_f,
1489                 l_last_updated_by_db,
1490                 l_last_update_date_db,
1491                 p_custom_mode
1492              )
1493             )
1494          THEN
1495             hxc_ulc_upd.upd(
1496                p_layout_id=> l_layout_id,
1497                p_parent_component_id=> l_parent_comp_id,
1498                p_sequence=> p_sequence,
1499                p_component_name=> p_component_name,
1500                p_component_value=> p_component_value,
1501                p_name_value_string=> p_name_value_string,
1502                p_region_code=> p_region_code,
1503                p_region_code_app_id=> l_application_id,
1504                p_attribute_code=> p_attribute_code,
1505                p_attribute_code_app_id=> l_attr_application_id,
1506                p_layout_component_id=> l_layout_component_id,
1507                p_object_version_number=> l_object_version_number,
1508                p_layout_comp_definition_id=> l_layout_comp_definition_id,
1509                p_component_alias=> p_component_alias,
1510                p_parent_bean=> p_parent_bean,
1511                p_attribute1=> p_attribute1,
1512                p_attribute2=> p_attribute2,
1513                p_attribute3=> p_attribute3,
1514                p_attribute4=> p_attribute4,
1515                p_attribute5=> p_attribute5
1516             );
1517          ELSE
1518             IF hxc_layouts_upload_pkg.g_force_ok
1519             THEN
1520                hxc_ulc_upd.upd(
1521                   p_layout_id=> l_layout_id,
1522                   p_parent_component_id=> l_parent_comp_id,
1523                   p_sequence=> p_sequence,
1524                   p_component_name=> p_component_name,
1525                   p_component_value=> p_component_value,
1526                   p_name_value_string=> p_name_value_string,
1527                   p_region_code=> p_region_code,
1528                   p_region_code_app_id=> l_application_id,
1529                   p_attribute_code=> p_attribute_code,
1530                   p_attribute_code_app_id=> l_attr_application_id,
1531                   p_layout_component_id=> l_layout_component_id,
1532                   p_object_version_number=> l_object_version_number,
1533                   p_layout_comp_definition_id=> l_layout_comp_definition_id,
1534                   p_component_alias=> p_component_alias,
1535                   p_parent_bean=> p_parent_bean,
1536                   p_attribute1=> p_attribute1,
1537                   p_attribute2=> p_attribute2,
1538                   p_attribute3=> p_attribute3,
1539                   p_attribute4=> p_attribute4,
1540                   p_attribute5=> p_attribute5
1541                );
1542             END IF; -- hxc_layouts_upload_pkg.g_force_ok
1543          END IF; -- ( p_custom_mode = 'FORCE' )
1544       EXCEPTION
1545          WHEN no_data_found
1546          THEN
1547             hxc_ulc_ins.ins(
1548                p_layout_id=> l_layout_id,
1549                p_parent_component_id=> l_parent_comp_id,
1550                p_sequence=> p_sequence,
1551                p_component_name=> p_component_name,
1552                p_component_value=> p_component_value,
1553                p_name_value_string=> p_name_value_string,
1554                p_region_code=> p_region_code,
1555                p_region_code_app_id=> l_application_id,
1556                p_attribute_code=> p_attribute_code,
1557                p_attribute_code_app_id=> l_attr_application_id,
1558                p_layout_component_id=> l_layout_component_id,
1559                p_object_version_number=> l_object_version_number,
1560                p_layout_comp_definition_id=> l_layout_comp_definition_id,
1561                p_component_alias=> p_component_alias,
1562                p_parent_bean=> p_parent_bean,
1563                p_attribute1=> p_attribute1,
1564                p_attribute2=> p_attribute2,
1565                p_attribute3=> p_attribute3,
1566                p_attribute4=> p_attribute4,
1567                p_attribute5=> p_attribute5
1568             );
1569       END;
1570    END load_component_row;
1571 
1572 
1573 -- =================================================================
1574 -- == load_prompt_row
1575 -- =================================================================
1576    PROCEDURE load_prompt_row(
1577       p_component_name             IN   VARCHAR2,
1578       p_prompt_alias               IN   VARCHAR2,
1579       p_prompt_type                IN   VARCHAR2,
1580       p_owner                      IN   VARCHAR2,
1581       p_region_code                IN   VARCHAR2,
1582       p_region_app_short_name      IN   VARCHAR2,
1583       p_attribute_code             IN   VARCHAR2,
1584       p_attribute_app_short_name   IN   VARCHAR2,
1585       p_layout_name                IN   VARCHAR2,
1586       p_custom_mode                IN   VARCHAR2 DEFAULT NULL,
1587       p_last_update_date           IN   VARCHAR2
1588    )
1589    IS
1590 
1591 --
1592       l_layout_component_id     hxc_layout_components.layout_component_id%TYPE;
1593       l_layout_comp_prompt_id   hxc_layout_comp_prompts.layout_comp_prompt_id%TYPE;
1594       l_object_version_number   hxc_layout_comp_prompts.object_version_number%TYPE;
1595       l_region_app_id           hxc_layout_comp_prompts.region_application_id%TYPE;
1596       l_attribute_app_id        hxc_layout_comp_prompts.attribute_application_id%TYPE;
1597 
1598 --
1599       l_last_update_date_db     DATE;
1600       l_last_updated_by_db      NUMBER(15);
1601       l_last_updated_by_f       NUMBER(15);
1602       l_last_update_date_f      DATE;
1603    BEGIN
1604       --
1605       -- Find the component ID
1606       --
1607       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1608       l_last_update_date_f :=
1609                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1610       l_layout_component_id :=
1611             find_component_id(
1612                p_component_name=> p_component_name,
1613                p_layout_name=> p_layout_name
1614             );
1615       --
1616       l_region_app_id :=
1617             find_application_id(
1618                p_application_short_name=> p_region_app_short_name
1619             );
1620       --
1621       l_attribute_app_id :=
1622             find_application_id(
1623                p_application_short_name=> p_attribute_app_short_name
1624             );
1625 
1626       --
1627       BEGIN
1628          -- check to see if the row exists
1629          SELECT lcp.layout_comp_prompt_id,
1630                 lcp.object_version_number,
1631                 last_update_date,
1632                 last_updated_by
1633            INTO l_layout_comp_prompt_id,
1634                 l_object_version_number,
1635                 l_last_update_date_db,
1636                 l_last_updated_by_db
1637            FROM hxc_layout_comp_prompts lcp
1638           WHERE lcp.prompt_alias = p_prompt_alias
1639             AND lcp.prompt_type = p_prompt_type
1640             AND lcp.layout_component_id = l_layout_component_id;
1641 
1642          IF (fnd_load_util.upload_test(
1643                 l_last_updated_by_f,
1644                 l_last_update_date_f,
1645                 l_last_updated_by_db,
1646                 l_last_update_date_db,
1647                 p_custom_mode
1648              )
1649             )
1650          THEN
1651             --
1652             -- Use the Row handler to update the row
1653             --
1654             hxc_ulp_upd.upd(
1655                p_layout_component_id=> l_layout_component_id,
1656                p_prompt_alias=> p_prompt_alias,
1657                p_prompt_type=> p_prompt_type,
1658                p_region_code=> p_region_code,
1659                p_region_application_id=> l_region_app_id,
1660                p_attribute_code=> p_attribute_code,
1661                p_attribute_application_id=> l_attribute_app_id,
1662                p_layout_comp_prompt_id=> l_layout_comp_prompt_id,
1663                p_object_version_number=> l_object_version_number
1664             );
1665          ELSE
1666             IF hxc_layouts_upload_pkg.g_force_ok
1667             THEN
1668                hxc_ulp_upd.upd(
1669                   p_layout_component_id=> l_layout_component_id,
1670                   p_prompt_alias=> p_prompt_alias,
1671                   p_prompt_type=> p_prompt_type,
1672                   p_region_code=> p_region_code,
1673                   p_region_application_id=> l_region_app_id,
1674                   p_attribute_code=> p_attribute_code,
1675                   p_attribute_application_id=> l_attribute_app_id,
1676                   p_layout_comp_prompt_id=> l_layout_comp_prompt_id,
1677                   p_object_version_number=> l_object_version_number
1678                );
1679             END IF; -- HXC_layouts_upload_pkg.g_force_ok
1680          END IF; -- p_custom_mode = 'FORCE'
1681       EXCEPTION
1682          WHEN no_data_found
1683          THEN
1684             --
1685             -- Use the Row handler to insert the row
1686             --
1687 
1688             hxc_ulp_ins.ins(
1689                p_layout_component_id=> l_layout_component_id,
1690                p_prompt_alias=> p_prompt_alias,
1691                p_prompt_type=> p_prompt_type,
1692                p_region_code=> p_region_code,
1693                p_region_application_id=> l_region_app_id,
1694                p_attribute_code=> p_attribute_code,
1695                p_attribute_application_id=> l_attribute_app_id,
1696                p_layout_comp_prompt_id=> l_layout_comp_prompt_id,
1697                p_object_version_number=> l_object_version_number
1698             );
1699       END;
1700    END load_prompt_row;
1701 
1702 
1703 -- =================================================================
1704 -- == load_qualifier_row
1705 -- =================================================================
1706    PROCEDURE load_qualifier_row(
1707       p_component_name                 IN   VARCHAR2,
1708       p_qualifier_name                 IN   VARCHAR2,
1709       p_owner                          IN   VARCHAR2,
1710       p_qualifier_attribute_category   IN   VARCHAR2,
1714       p_qualifier_attribute4           IN   VARCHAR2,
1711       p_qualifier_attribute1           IN   VARCHAR2,
1712       p_qualifier_attribute2           IN   VARCHAR2,
1713       p_qualifier_attribute3           IN   VARCHAR2,
1715       p_qualifier_attribute5           IN   VARCHAR2,
1716       p_qualifier_attribute6           IN   VARCHAR2,
1717       p_qualifier_attribute7           IN   VARCHAR2,
1718       p_qualifier_attribute8           IN   VARCHAR2,
1719       p_qualifier_attribute9           IN   VARCHAR2,
1720       p_qualifier_attribute10          IN   VARCHAR2,
1721       p_qualifier_attribute11          IN   VARCHAR2,
1722       p_qualifier_attribute12          IN   VARCHAR2,
1723       p_qualifier_attribute13          IN   VARCHAR2,
1724       p_qualifier_attribute14          IN   VARCHAR2,
1725       p_qualifier_attribute15          IN   VARCHAR2,
1726       p_qualifier_attribute16          IN   VARCHAR2,
1727       p_qualifier_attribute17          IN   VARCHAR2,
1728       p_qualifier_attribute18          IN   VARCHAR2,
1729       p_qualifier_attribute19          IN   VARCHAR2,
1730       p_qualifier_attribute20          IN   VARCHAR2,
1731       p_qualifier_attribute21          IN   VARCHAR2,
1732       p_qualifier_attribute22          IN   VARCHAR2,
1733       p_qualifier_attribute23          IN   VARCHAR2,
1734       p_qualifier_attribute24          IN   VARCHAR2,
1735       p_qualifier_attribute25          IN   VARCHAR2,
1736       p_qualifier_attribute26          IN   VARCHAR2,
1737       p_qualifier_attribute27          IN   VARCHAR2,
1738       p_qualifier_attribute28          IN   VARCHAR2,
1739       p_qualifier_attribute29          IN   VARCHAR2,
1740       p_qualifier_attribute30          IN   VARCHAR2,
1741       p_layout_name                    IN   VARCHAR2,
1742       p_custom_mode                    IN   VARCHAR2 DEFAULT NULL,
1743       p_last_update_date               IN   VARCHAR2
1744    )
1745    IS
1746 
1747 --
1748       l_layout_component_id        hxc_layout_components.layout_component_id%TYPE;
1749       l_layout_comp_qualifier_id   hxc_layout_comp_qualifiers.layout_comp_qualifier_id%TYPE;
1750       l_object_version_number      hxc_layout_comp_qualifiers.object_version_number%TYPE;
1751 
1752 --
1753       l_last_update_date_db        DATE;
1754       l_last_updated_by_db         NUMBER(15);
1755       l_last_updated_by_f          NUMBER(15);
1756       l_last_update_date_f         DATE;
1757    BEGIN
1758       --
1759       l_last_updated_by_f := fnd_load_util.owner_id(p_owner);
1760       l_last_update_date_f :=
1761                        nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'), sysdate);
1762       -- Find the component ID
1763       --
1764       l_layout_component_id :=
1765             find_component_id(
1766                p_component_name=> p_component_name,
1767                p_layout_name=> p_layout_name
1768             );
1769 
1770       BEGIN
1771          -- check to see the row exists
1772          SELECT layout_comp_qualifier_id,
1773                 object_version_number,
1774                 last_update_date,
1775                 last_updated_by
1776            INTO l_layout_comp_qualifier_id,
1777                 l_object_version_number,
1778                 l_last_update_date_db,
1779                 l_last_updated_by_db
1780            FROM hxc_layout_comp_qualifiers
1781           WHERE qualifier_name = p_qualifier_name
1782             AND layout_component_id = l_layout_component_id;
1783 
1784          IF (fnd_load_util.upload_test(
1785                 l_last_updated_by_f,
1786                 l_last_update_date_f,
1787                 l_last_updated_by_db,
1788                 l_last_update_date_db,
1789                 p_custom_mode
1790              )
1791             )
1792          THEN
1793             --
1794             -- Use the Row handler to update the row
1795             --
1796             hxc_ulq_upd.upd(
1797                p_layout_component_id=> l_layout_component_id,
1798                p_qualifier_name=> p_qualifier_name,
1799                p_qualifier_attribute_category=> p_qualifier_attribute_category,
1800                p_qualifier_attribute1=> p_qualifier_attribute1,
1801                p_qualifier_attribute2=> p_qualifier_attribute2,
1802                p_qualifier_attribute3=> p_qualifier_attribute3,
1803                p_qualifier_attribute4=> p_qualifier_attribute4,
1804                p_qualifier_attribute5=> p_qualifier_attribute5,
1805                p_qualifier_attribute6=> p_qualifier_attribute6,
1806                p_qualifier_attribute7=> p_qualifier_attribute7,
1807                p_qualifier_attribute8=> p_qualifier_attribute8,
1808                p_qualifier_attribute9=> p_qualifier_attribute9,
1809                p_qualifier_attribute10=> p_qualifier_attribute10,
1810                p_qualifier_attribute11=> p_qualifier_attribute11,
1811                p_qualifier_attribute12=> p_qualifier_attribute12,
1812                p_qualifier_attribute13=> p_qualifier_attribute13,
1813                p_qualifier_attribute14=> p_qualifier_attribute14,
1814                p_qualifier_attribute15=> p_qualifier_attribute15,
1815                p_qualifier_attribute16=> p_qualifier_attribute16,
1816                p_qualifier_attribute17=> p_qualifier_attribute17,
1817                p_qualifier_attribute18=> p_qualifier_attribute18,
1818                p_qualifier_attribute19=> p_qualifier_attribute19,
1819                p_qualifier_attribute20=> p_qualifier_attribute20,
1820                p_qualifier_attribute21=> p_qualifier_attribute21,
1821                p_qualifier_attribute22=> p_qualifier_attribute22,
1822                p_qualifier_attribute23=> p_qualifier_attribute23,
1823                p_qualifier_attribute24=> p_qualifier_attribute24,
1824                p_qualifier_attribute25=> p_qualifier_attribute25,
1825                p_qualifier_attribute26=> p_qualifier_attribute26,
1826                p_qualifier_attribute27=> p_qualifier_attribute27,
1827                p_qualifier_attribute28=> p_qualifier_attribute28,
1828                p_qualifier_attribute29=> p_qualifier_attribute29,
1829                p_qualifier_attribute30=> p_qualifier_attribute30,
1830                p_layout_comp_qualifier_id=> l_layout_comp_qualifier_id,
1831                p_object_version_number=> l_object_version_number
1832             );
1833          ELSE
1834             IF hxc_layouts_upload_pkg.g_force_ok
1835             THEN
1836                hxc_ulq_upd.upd(
1837                   p_layout_component_id=> l_layout_component_id,
1838                   p_qualifier_name=> p_qualifier_name,
1839                   p_qualifier_attribute_category=> p_qualifier_attribute_category,
1840                   p_qualifier_attribute1=> p_qualifier_attribute1,
1841                   p_qualifier_attribute2=> p_qualifier_attribute2,
1842                   p_qualifier_attribute3=> p_qualifier_attribute3,
1843                   p_qualifier_attribute4=> p_qualifier_attribute4,
1844                   p_qualifier_attribute5=> p_qualifier_attribute5,
1845                   p_qualifier_attribute6=> p_qualifier_attribute6,
1846                   p_qualifier_attribute7=> p_qualifier_attribute7,
1847                   p_qualifier_attribute8=> p_qualifier_attribute8,
1848                   p_qualifier_attribute9=> p_qualifier_attribute9,
1849                   p_qualifier_attribute10=> p_qualifier_attribute10,
1850                   p_qualifier_attribute11=> p_qualifier_attribute11,
1851                   p_qualifier_attribute12=> p_qualifier_attribute12,
1852                   p_qualifier_attribute13=> p_qualifier_attribute13,
1853                   p_qualifier_attribute14=> p_qualifier_attribute14,
1854                   p_qualifier_attribute15=> p_qualifier_attribute15,
1855                   p_qualifier_attribute16=> p_qualifier_attribute16,
1856                   p_qualifier_attribute17=> p_qualifier_attribute17,
1857                   p_qualifier_attribute18=> p_qualifier_attribute18,
1858                   p_qualifier_attribute19=> p_qualifier_attribute19,
1859                   p_qualifier_attribute20=> p_qualifier_attribute20,
1860                   p_qualifier_attribute21=> p_qualifier_attribute21,
1861                   p_qualifier_attribute22=> p_qualifier_attribute22,
1862                   p_qualifier_attribute23=> p_qualifier_attribute23,
1863                   p_qualifier_attribute24=> p_qualifier_attribute24,
1864                   p_qualifier_attribute25=> p_qualifier_attribute25,
1865                   p_qualifier_attribute26=> p_qualifier_attribute26,
1866                   p_qualifier_attribute27=> p_qualifier_attribute27,
1867                   p_qualifier_attribute28=> p_qualifier_attribute28,
1868                   p_qualifier_attribute29=> p_qualifier_attribute29,
1869                   p_qualifier_attribute30=> p_qualifier_attribute30,
1870                   p_layout_comp_qualifier_id=> l_layout_comp_qualifier_id,
1871                   p_object_version_number=> l_object_version_number
1872                );
1873             END IF; -- HXC_layouts_upload_pkg.g_force_ok
1874          END IF; -- p_custom_mode = 'FORCE'
1875       EXCEPTION
1876          WHEN no_data_found
1877          THEN
1878             --
1879             -- Use the Row handler to insert the row
1880             --
1881             hxc_ulq_ins.ins(
1882                p_layout_component_id=> l_layout_component_id,
1883                p_qualifier_name=> p_qualifier_name,
1884                p_qualifier_attribute_category=> p_qualifier_attribute_category,
1885                p_qualifier_attribute1=> p_qualifier_attribute1,
1886                p_qualifier_attribute2=> p_qualifier_attribute2,
1887                p_qualifier_attribute3=> p_qualifier_attribute3,
1888                p_qualifier_attribute4=> p_qualifier_attribute4,
1889                p_qualifier_attribute5=> p_qualifier_attribute5,
1890                p_qualifier_attribute6=> p_qualifier_attribute6,
1891                p_qualifier_attribute7=> p_qualifier_attribute7,
1892                p_qualifier_attribute8=> p_qualifier_attribute8,
1893                p_qualifier_attribute9=> p_qualifier_attribute9,
1894                p_qualifier_attribute10=> p_qualifier_attribute10,
1895                p_qualifier_attribute11=> p_qualifier_attribute11,
1896                p_qualifier_attribute12=> p_qualifier_attribute12,
1897                p_qualifier_attribute13=> p_qualifier_attribute13,
1898                p_qualifier_attribute14=> p_qualifier_attribute14,
1899                p_qualifier_attribute15=> p_qualifier_attribute15,
1900                p_qualifier_attribute16=> p_qualifier_attribute16,
1901                p_qualifier_attribute17=> p_qualifier_attribute17,
1902                p_qualifier_attribute18=> p_qualifier_attribute18,
1903                p_qualifier_attribute19=> p_qualifier_attribute19,
1904                p_qualifier_attribute20=> p_qualifier_attribute20,
1905                p_qualifier_attribute21=> p_qualifier_attribute21,
1906                p_qualifier_attribute22=> p_qualifier_attribute22,
1907                p_qualifier_attribute23=> p_qualifier_attribute23,
1908                p_qualifier_attribute24=> p_qualifier_attribute24,
1909                p_qualifier_attribute25=> p_qualifier_attribute25,
1910                p_qualifier_attribute26=> p_qualifier_attribute26,
1911                p_qualifier_attribute27=> p_qualifier_attribute27,
1912                p_qualifier_attribute28=> p_qualifier_attribute28,
1913                p_qualifier_attribute29=> p_qualifier_attribute29,
1914                p_qualifier_attribute30=> p_qualifier_attribute30,
1915                p_layout_comp_qualifier_id=> l_layout_comp_qualifier_id,
1916                p_object_version_number=> l_object_version_number
1917             );
1918       END;
1919    END load_qualifier_row;
1920 -- =================================================================
1921 -- == load_rule_row
1922 -- =================================================================
1923 /*
1924 PROCEDURE LOAD_RULE_ROW
1925    (P_QUALIFIER_NAME IN VARCHAR2
1926    ,P_RULE_NAME IN VARCHAR2
1927    ,P_OWNER IN VARCHAR2
1928    ,P_RULE_TYPE IN VARCHAR2
1929    ,P_RULE_DETAIL IN VARCHAR2
1930    ,P_RULE_VALUE IN VARCHAR2
1931    ,P_CUSTOM_MODE IN VARCHAR2
1932    )
1933 IS
1934 --
1935 l_layout_comp_qualifier_id    HXC_LAYOUT_COMP_QUALIFIERS.LAYOUT_COMP_QUALIFIER_ID%TYPE;
1936 l_layout_comp_qual_rule_id HXC_LAYOUT_COMP_QUAL_RULES.LAYOUT_COMP_QUAL_RULE_ID%TYPE;
1937 l_object_version_number HXC_LAYOUT_COMP_QUAL_RULES.OBJECT_VERSION_NUMBER%TYPE;
1938 --
1939 BEGIN
1940    --
1941    -- Obtain the qualifier id
1942    --
1943    l_layout_comp_qualifier_id :=
1944       find_comp_qualifier_id
1945          (P_COMP_QUALIFIER_NAME => P_QUALIFIER_NAME
1946          );
1947    --
1948    BEGIN
1949       SELECT layout_comp_qual_rule_id
1950             ,object_version_number
1951         INTO l_layout_comp_qual_rule_id
1952             ,l_object_version_number
1953         FROM HXC_LAYOUT_COMP_QUAL_RULES
1954        WHERE rule_name = p_rule_name;
1955 
1956       IF (p_custom_mode = 'FORCE') THEN
1957          --
1958          -- Use the row handler to update the rule data
1959          --
1960          HXC_ULR_UPD.UPD
1961             (P_RULE_NAME                    => P_RULE_NAME
1962             ,P_RULE_TYPE                    => P_RULE_TYPE
1963             ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
1964             ,P_RULE_DETAIL                  => P_RULE_DETAIL
1965             ,P_RULE_VALUE                   => P_RULE_VALUE
1966             ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
1967             ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
1968             );
1969       ELSE
1970          IF  HXC_layouts_upload_pkg.g_force_ok THEN
1971             --
1972             -- Use the row handler to update the rule data
1973             --
1974             HXC_ULR_UPD.UPD
1975                (P_RULE_NAME                    => P_RULE_NAME
1976                ,P_RULE_TYPE                    => P_RULE_TYPE
1977                ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
1978                ,P_RULE_DETAIL                  => P_RULE_DETAIL
1979                ,P_RULE_VALUE                   => P_RULE_VALUE
1980                ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
1981                ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
1982                );
1983          END IF; -- HXC_layouts_upload_pkg.g_force_ok
1984       END IF; -- p_custom_mode = 'FORCE'
1985    EXCEPTION WHEN NO_DATA_FOUND THEN
1986       --
1987       -- Use the row handler to insert the rule data
1988       --
1989       HXC_ULR_INS.INS
1990          (P_RULE_NAME                    => P_RULE_NAME
1991          ,P_RULE_TYPE                    => P_RULE_TYPE
1992          ,P_LAYOUT_COMP_QUALIFIER_ID     => l_layout_comp_qualifier_id
1993          ,P_RULE_DETAIL                  => P_RULE_DETAIL
1994          ,P_RULE_VALUE                   => P_RULE_VALUE
1995          ,P_LAYOUT_COMP_QUAL_RULE_ID     => l_layout_comp_qual_rule_id
1996          ,P_OBJECT_VERSION_NUMBER        => l_object_version_number
1997          );
1998    END;
1999 END LOAD_RULE_ROW;
2000 */
2001 
2002 END hxc_layouts_upload_pkg;