DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_TEMPLATE_WINDOWS_API

Source


1 Package Body hr_template_windows_api as
2 /* $Header: hrtwuapi.pkb 115.5 2003/03/06 17:15:52 adhunter noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_template_windows_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< copy_template_window >--------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure copy_template_window
13   (p_validate                      in     boolean  default false
14   ,p_effective_date                in     date
15   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
16   ,p_template_window_id_from       in     number
17   ,p_form_template_id              in     number
18   ,p_template_window_id_to           out nocopy  number
19   ,p_object_version_number           out nocopy  number
20   ) is
21   --
22   -- Declare cursors and local variables
23   --
24 
25   CURSOR cur_form_window
26   IS
27   SELECT twn.form_window_id
28   FROM hr_template_windows twn
29   WHERE twn.template_window_id = p_template_window_id_from;
30 
31   CURSOR cur_tmplt_canvas
32   IS
33   SELECT tcn.template_canvas_id
34   FROM hr_template_canvases tcn
35   WHERE tcn.template_window_id = p_template_window_id_from;
36 
37   l_temp number;
38 
39   CURSOR cur_api_val
40   IS
41   SELECT 1 from dual where exists(   --added line for 2832106
42    SELECT source_form_template_id
43    FROM hr_source_form_templates hsf
44    WHERE hsf.form_template_id_to = p_form_template_id);
45 
46   l_template_canvas_id_to number;
47   l_ovn_canvas number;
48   l_form_window_id number;
49   l_window_property_id number;
50   l_template_window_id_to number;
51   l_object_version_number number;
52   l_language_code fnd_languages.language_code%TYPE;
53 
54   l_proc                varchar2(72) := g_package||'copy_template_window';
55 begin
56   hr_utility.set_location('Entering:'|| l_proc, 10);
57   --
58   -- Issue a savepoint
59   --
60   savepoint copy_template_window;
61   --
62   -- Truncate the time portion from all IN date parameters
63   --
64      -- p_effective_date := TRUNC(p_effective_date);
65   --
66   -- Validate the language parameter. l_language_code should be passed
67   -- instead of p_language_code from now on, to allow an IN OUT parameter to
68   -- be passed through.
69   --
70   l_language_code := p_language_code;
71   hr_api.validate_language_code(p_language_code => l_language_code);
72   --
73   hr_utility.set_location(l_proc, 20);
74   --
75   --
76   -- Call Before Process User Hook
77   --
78   begin
79     hr_template_windows_api_bk1.copy_template_window_b
80       (p_effective_date               => TRUNC(p_effective_date)
81       ,p_language_code                => l_language_code
82       ,p_template_window_id_from      => p_template_window_id_from
83       ,p_form_template_id             => p_form_template_id);
84   exception
85     when hr_api.cannot_find_prog_unit then
86       hr_api.cannot_find_prog_unit_error
87         (p_module_name => 'copy_template_window'
88         ,p_hook_type   => 'BP'
89         );
90   end;
91   --
92   -- Validation in addition to Row Handlers
93   --
94   hr_utility.set_location('At:'|| l_proc, 15);
95 
96      OPEN cur_api_val;
97      FETCH cur_api_val INTO l_temp;
98      IF (cur_api_val%NOTFOUND AND
99          hr_form_templates_api.g_session_mode <> 'SEED_DATA') THEN
100          CLOSE cur_api_val;
101        -- error message
102        fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
103        fnd_message.set_token('PROCEDURE', l_proc);
104        fnd_message.set_token('STEP','10');
105        fnd_message.raise_error;
106      END IF;
107      CLOSE cur_api_val;
108   --
109   --
110   -- Process Logic
111 
112   hr_utility.set_location('At:'|| l_proc, 20);
113 
114   OPEN cur_form_window;
115   FETCH cur_form_window INTO l_form_window_id;
116   CLOSE cur_form_window;
117 
118   hr_utility.set_location('At:'|| l_proc, 25);
119 
120   hr_twn_ins.ins( p_form_template_id             => p_form_template_id
121             ,p_form_window_id               => l_form_window_id
122             ,p_template_window_id           => l_template_window_id_to
123             ,p_object_version_number        => l_object_version_number);
124 
125   hr_utility.set_location('At:'|| l_proc, 30);
126 
127   hr_window_properties_bsi.copy_window_property(
128             p_effective_date                => TRUNC(p_effective_date)
129             ,p_language_code                => l_language_code
130             ,p_template_window_id_from      => p_template_window_id_from
131             ,p_template_window_id_to        => l_template_window_id_to
132             ,p_window_property_id           => l_window_property_id);
133 
134   hr_utility.set_location('At:'|| l_proc, 35);
135 
136   FOR cur_rec in cur_tmplt_canvas LOOP
137 
138     hr_template_canvases_api.copy_template_canvas(
139                p_effective_date                => TRUNC(p_effective_date)
140                ,p_language_code                 => l_language_code
141                ,p_template_canvas_id_from      => cur_rec.template_canvas_id
142                ,p_template_window_id           => l_template_window_id_to
143                ,p_template_canvas_id_to        => l_template_canvas_id_to
144                ,p_object_version_number        => l_ovn_canvas);
145   END LOOP;
146   --
147   -- Call After Process User Hook
148   --
149   hr_utility.set_location('At:'|| l_proc, 40);
150 
151   begin
152     hr_template_windows_api_bk1.copy_template_window_a
153       (p_effective_date               => TRUNC(p_effective_date)
154       ,p_language_code                => l_language_code
155       ,p_template_window_id_from      => p_template_window_id_from
156       ,p_form_template_id             => p_form_template_id
157       ,p_template_window_id_to        => l_template_window_id_to
158       ,p_object_version_number        => l_object_version_number);
159   exception
160     when hr_api.cannot_find_prog_unit then
161       hr_api.cannot_find_prog_unit_error
162         (p_module_name => 'copy_template_window'
163         ,p_hook_type   => 'AP'
164         );
165   end;
166   --
167   -- When in validation only mode raise the Validate_Enabled exception
168   --
169   if p_validate then
170     raise hr_api.validate_enabled;
171   end if;
172   --
173   -- Set all output arguments
174   --
175   p_template_window_id_to        := l_template_window_id_to;
176   p_object_version_number        := l_object_version_number;
177   --
178   hr_utility.set_location(' Leaving:'||l_proc, 70);
179 exception
180   when hr_api.validate_enabled then
181     --
182     -- As the Validate_Enabled exception has been raised
183     -- we must rollback to the savepoint
184     --
185     rollback to copy_template_window;
186     --
187     -- Only set output warning arguments
188     -- (Any key or derived arguments must be set to null
189     -- when validation only mode is being used.)
190     --
191     p_template_window_id_to        := null;
192     p_object_version_number  := null;
193     hr_utility.set_location(' Leaving:'||l_proc, 80);
194   when others then
195     --
196     -- A validation or unexpected error has occured
197     --
198     p_template_window_id_to        := null;
199     p_object_version_number  := null;
200 
201     rollback to copy_template_window;
202     hr_utility.set_location(' Leaving:'||l_proc, 90);
203     raise;
204 end copy_template_window;
205 --
206 -- ----------------------------------------------------------------------------
207 -- |--------------------------< create_template_window >----------------------|
208 -- ----------------------------------------------------------------------------
209 --
210 procedure create_template_window
211   (p_validate                        in boolean  default false
212   ,p_effective_date                  in date
213   ,p_language_code                   in varchar2 default hr_api.userenv_lang
214   ,p_form_template_id                in number
215   ,p_form_window_id                  in number
216   ,p_height                          in number default hr_api.g_number
217   ,p_title                           in varchar2 default hr_api.g_varchar2
218   ,p_width                           in number default hr_api.g_number
219   ,p_x_position                      in number default hr_api.g_number
220   ,p_y_position                      in number default hr_api.g_number
221   ,p_information_category            in varchar2 default hr_api.g_varchar2
222   ,p_information1                    in varchar2 default hr_api.g_varchar2
223   ,p_information2                    in varchar2 default hr_api.g_varchar2
224   ,p_information3                    in varchar2 default hr_api.g_varchar2
225   ,p_information4                    in varchar2 default hr_api.g_varchar2
226   ,p_information5                    in varchar2 default hr_api.g_varchar2
227   ,p_information6                    in varchar2 default hr_api.g_varchar2
228   ,p_information7                    in varchar2 default hr_api.g_varchar2
229   ,p_information8                    in varchar2 default hr_api.g_varchar2
230   ,p_information9                    in varchar2 default hr_api.g_varchar2
231   ,p_information10                   in varchar2 default hr_api.g_varchar2
232   ,p_information11                   in varchar2 default hr_api.g_varchar2
233   ,p_information12                   in varchar2 default hr_api.g_varchar2
234   ,p_information13                   in varchar2 default hr_api.g_varchar2
235   ,p_information14                   in varchar2 default hr_api.g_varchar2
236   ,p_information15                   in varchar2 default hr_api.g_varchar2
237   ,p_information16                   in varchar2 default hr_api.g_varchar2
238   ,p_information17                   in varchar2 default hr_api.g_varchar2
239   ,p_information18                   in varchar2 default hr_api.g_varchar2
240   ,p_information19                   in varchar2 default hr_api.g_varchar2
241   ,p_information20                   in varchar2 default hr_api.g_varchar2
242   ,p_information21                   in varchar2 default hr_api.g_varchar2
243   ,p_information22                   in varchar2 default hr_api.g_varchar2
244   ,p_information23                   in varchar2 default hr_api.g_varchar2
245   ,p_information24                   in varchar2 default hr_api.g_varchar2
246   ,p_information25                   in varchar2 default hr_api.g_varchar2
247   ,p_information26                   in varchar2 default hr_api.g_varchar2
248   ,p_information27                   in varchar2 default hr_api.g_varchar2
249   ,p_information28                   in varchar2 default hr_api.g_varchar2
250   ,p_information29                   in varchar2 default hr_api.g_varchar2
251   ,p_information30                   in varchar2 default hr_api.g_varchar2
252   ,p_template_window_id                out nocopy number
253   ,p_object_version_number             out nocopy number
254   ) is
255   --
256   -- Declare cursors and local variables
257   --
258   l_temp number;
259 
260   CURSOR cur_api_val
261   IS
262   SELECT 1 from dual where exists(   --added line for 2832106, removed unnecessary joins
263    SELECT source_form_template_id
264    FROM hr_source_form_templates hsf
265    --     ,hr_template_windows_b htw
266    --     ,hr_template_canvases_b htc
267    --     ,hr_template_tab_pages_b http
268    WHERE hsf.form_template_id_to = p_form_template_id);
269 
270   CURSOR csr_form_canvases
271     (p_form_window_id IN NUMBER
272     )
273   IS
274     SELECT fcn.form_canvas_id
275       FROM hr_form_canvases_b fcn
276      WHERE fcn.canvas_type = 'CONTENT'
277        AND fcn.form_window_id = p_form_window_id;
278 
279   l_window_property_id number;
280   l_template_window_id number;
281   l_object_version_number number;
282   l_proc                varchar2(72) := g_package||'create_template_window';
283   l_language_code fnd_languages.language_code%TYPE;
284   l_template_canvas_id number;
285   l_tcn_object_version_number number;
286 
287 begin
288   hr_utility.set_location('Entering:'|| l_proc, 10);
289   --
290   -- Issue a savepoint
291   --
292   savepoint create_template_window;
293   --
294   -- Truncate the time portion from all IN date parameters
295   --
296     -- p_effective_date := TRUNC(p_effective_date);
297   --
298   -- Validate the language parameter. l_language_code should be passed
299   -- instead of p_language_code from now on, to allow an IN OUT parameter to
300   -- be passed through.
301   --
302   l_language_code := p_language_code;
303   hr_api.validate_language_code(p_language_code => l_language_code);
304   --
305   hr_utility.set_location(l_proc, 20);
306   --
307   --
308   -- Call Before Process User Hook
309   --
310   begin
311     hr_template_windows_api_bk2.create_template_window_b
312       (p_effective_date                  => TRUNC(p_effective_date)
313       ,p_language_code                   => l_language_code
314       ,p_form_template_id                => p_form_template_id
315       ,p_form_window_id                  => p_form_window_id
316       ,p_height                          => p_height
317       ,p_title                           => p_title
318       ,p_width                           => p_width
319       ,p_x_position                      => p_x_position
320       ,p_y_position                      => p_y_position
321       ,p_information_category            => p_information_category
322       ,p_information1                    => p_information1
323       ,p_information2                    => p_information2
324       ,p_information3                    => p_information3
325       ,p_information4                    => p_information4
326       ,p_information5                    => p_information5
327       ,p_information6                    => p_information6
328       ,p_information7                    => p_information7
329       ,p_information8                    => p_information8
330       ,p_information9                    => p_information9
331       ,p_information10                   => p_information10
332       ,p_information11                   => p_information11
333       ,p_information12                   => p_information12
334       ,p_information13                   => p_information13
335       ,p_information14                   => p_information14
336       ,p_information15                   => p_information15
337       ,p_information16                   => p_information16
338       ,p_information17                   => p_information17
339       ,p_information18                   => p_information18
340       ,p_information19                   => p_information19
341       ,p_information20                   => p_information20
342       ,p_information21                   => p_information21
343       ,p_information22                   => p_information22
344       ,p_information23                   => p_information23
345       ,p_information24                   => p_information24
346       ,p_information25                   => p_information25
347       ,p_information26                   => p_information26
348       ,p_information27                   => p_information27
349       ,p_information28                   => p_information28
350       ,p_information29                   => p_information29
351       ,p_information30                   => p_information30);
352 
353   exception
354     when hr_api.cannot_find_prog_unit then
355       hr_api.cannot_find_prog_unit_error
356         (p_module_name => 'create_template_window'
357         ,p_hook_type   => 'BP'
358         );
359   end;
360   --
361   -- Validation in addition to Row Handlers
362   --
363   hr_utility.set_location('At:'|| l_proc, 15);
364 
365      OPEN cur_api_val;
366      FETCH cur_api_val INTO l_temp;
367      IF (cur_api_val%NOTFOUND AND
368          hr_form_templates_api.g_session_mode <> 'SEED_DATA') THEN
369          CLOSE cur_api_val;
370        -- error message
371        fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
372        fnd_message.set_token('PROCEDURE', l_proc);
373        fnd_message.set_token('STEP','10');
374        fnd_message.raise_error;
375      END IF;
376      CLOSE cur_api_val;
377   --
378   --
379   -- Process Logic
380   --
381   hr_utility.set_location('At:'|| l_proc, 20);
382 
383   hr_twn_ins.ins( p_form_template_id             => p_form_template_id
384                   ,p_form_window_id               => p_form_window_id
385                   ,p_template_window_id           => l_template_window_id
386                   ,p_object_version_number        => l_object_version_number);
387 
388   hr_utility.set_location('At:'|| l_proc, 25);
389 
390   hr_window_properties_bsi.copy_window_property(
391             p_effective_date                => TRUNC(p_effective_date)
392             ,p_language_code                => l_language_code
393             ,p_form_window_id               => p_form_window_id
394             ,p_template_window_id           => l_template_window_id
395             ,p_height                       => p_height
396             ,p_title                        => p_title
397             ,p_width                        => p_width
398             ,p_x_position                   => p_x_position
399             ,p_y_position                   => p_y_position
400             ,p_information_category         => p_information_category
401             ,p_information1                 => p_information1
402             ,p_information2                 => p_information2
403             ,p_information3                 => p_information3
404             ,p_information4                 => p_information4
405             ,p_information5                 => p_information5
406             ,p_information6                 => p_information6
407             ,p_information7                 => p_information7
408             ,p_information8                 => p_information8
409             ,p_information9                 => p_information9
410             ,p_information10                => p_information10
411             ,p_information11                => p_information11
412             ,p_information12                => p_information12
413             ,p_information13                => p_information13
414             ,p_information14                => p_information14
415             ,p_information15                => p_information15
416             ,p_information16                => p_information16
417             ,p_information17                => p_information17
418             ,p_information18                => p_information18
419             ,p_information19                => p_information19
420             ,p_information20                => p_information20
421             ,p_information21                => p_information21
422             ,p_information22                => p_information22
423             ,p_information23                => p_information23
424             ,p_information24                => p_information24
425             ,p_information25                => p_information25
426             ,p_information26                => p_information26
427             ,p_information27                => p_information27
428             ,p_information28                => p_information28
429             ,p_information29                => p_information29
430             ,p_information30                => p_information30
431             ,p_window_property_id           => l_window_property_id);
432 
433   --
434   -- Create content canvases
435   --
436   FOR l_form_canvas IN csr_form_canvases(p_form_window_id)
437   LOOP
438     hr_template_canvases_api.create_template_canvas
439       (p_effective_date                   => TRUNC(p_effective_date)
440       ,p_template_window_id               => l_template_window_id
441       ,p_form_canvas_id                   => l_form_canvas.form_canvas_id
442       ,p_height                           => p_height
443       ,p_width                            => p_width
444       ,p_template_canvas_id               => l_template_canvas_id
445       ,p_object_version_number            => l_tcn_object_version_number
446       );
447   END LOOP;
448   --
449   -- Call After Process User Hook
450   --
451   hr_utility.set_location('At:'|| l_proc, 30);
452 
453   begin
454     hr_template_windows_api_bk2.create_template_window_a
455       (p_effective_date                  => TRUNC(p_effective_date)
456       ,p_language_code                   => l_language_code
457       ,p_form_template_id                => p_form_template_id
458       ,p_form_window_id                  => p_form_window_id
459       ,p_height                          => p_height
460       ,p_title                           => p_title
461       ,p_width                           => p_width
462       ,p_x_position                      => p_x_position
463       ,p_y_position                      => p_y_position
464       ,p_information_category            => p_information_category
465       ,p_information1                    => p_information1
466       ,p_information2                    => p_information2
467       ,p_information3                    => p_information3
468       ,p_information4                    => p_information4
469       ,p_information5                    => p_information5
470       ,p_information6                    => p_information6
471       ,p_information7                    => p_information7
472       ,p_information8                    => p_information8
473       ,p_information9                    => p_information9
474       ,p_information10                   => p_information10
475       ,p_information11                   => p_information11
476       ,p_information12                   => p_information12
477       ,p_information13                   => p_information13
478       ,p_information14                   => p_information14
479       ,p_information15                   => p_information15
480       ,p_information16                   => p_information16
481       ,p_information17                   => p_information17
482       ,p_information18                   => p_information18
483       ,p_information19                   => p_information19
484       ,p_information20                   => p_information20
485       ,p_information21                   => p_information21
486       ,p_information22                   => p_information22
487       ,p_information23                   => p_information23
488       ,p_information24                   => p_information24
489       ,p_information25                   => p_information25
490       ,p_information26                   => p_information26
491       ,p_information27                   => p_information27
492       ,p_information28                   => p_information28
493       ,p_information29                   => p_information29
494       ,p_information30                   => p_information30
495       ,p_template_window_id              => l_template_window_id
496       ,p_object_version_number           => l_object_version_number);
497   exception
498     when hr_api.cannot_find_prog_unit then
499       hr_api.cannot_find_prog_unit_error
500         (p_module_name => 'create_template_window'
501         ,p_hook_type   => 'AP'
502         );
503   end;
504   --
505   -- When in validation only mode raise the Validate_Enabled exception
506   --
507   if p_validate then
508     raise hr_api.validate_enabled;
509   end if;
510   --
511   -- Set all output arguments
512   --
513     p_template_window_id              := l_template_window_id;
514     p_object_version_number           := l_object_version_number;
515   --
516   hr_utility.set_location(' Leaving:'||l_proc, 70);
517 exception
518   when hr_api.validate_enabled then
519     --
520     -- As the Validate_Enabled exception has been raised
521     -- we must rollback to the savepoint
522     --
523     rollback to create_template_window;
524     --
525     -- Only set output warning arguments
526     -- (Any key or derived arguments must be set to null
527     -- when validation only mode is being used.)
528     --
529     p_template_window_id     := null;
530     p_object_version_number  := null;
531     hr_utility.set_location(' Leaving:'||l_proc, 80);
532   when others then
533     --
534     -- A validation or unexpected error has occured
535     --
536     p_template_window_id     := null;
537     p_object_version_number  := null;
538 
539     rollback to create_template_window;
540     hr_utility.set_location(' Leaving:'||l_proc, 90);
541     raise;
542 end create_template_window;
543 --
544 -- ----------------------------------------------------------------------------
545 -- |--------------------------< delete_template_window >----------------------|
546 -- ----------------------------------------------------------------------------
547 --
548 procedure delete_template_window
549   (p_validate                      in     boolean  default false
550   ,p_template_window_id            in     number
551   ,p_object_version_number         in     number
552   ,p_delete_children_flag          in     varchar2 default 'N'
553   ) is
554   --
555   -- Declare cursors and local variables
556   --
557 
558   CURSOR csr_template_canvases
559   IS
560     SELECT tcn.template_canvas_id
561           ,tcn.object_version_number
562       FROM hr_template_canvases_b tcn
563           ,hr_form_canvases_b fcn
564      WHERE tcn.template_window_id = p_template_window_id
565        AND tcn.form_canvas_id = fcn.form_canvas_id
566        AND fcn.canvas_type = 'CONTENT';
567 
568   CURSOR cur_tmplt_canvas
569   IS
570   SELECT template_canvas_id
571   ,object_version_number
572   FROM hr_template_canvases
573   WHERE template_window_id = p_template_window_id;
574 
575   l_temp number;
576 
577   CURSOR cur_api_val
578   IS
579   SELECT 1 from dual where exists(   --added line for 2832106
580    SELECT source_form_template_id
581    FROM hr_source_form_templates hsf
582         ,hr_template_windows_b htw
583    WHERE hsf.form_template_id_to = htw.form_template_id
584    AND htw.template_window_id = p_template_window_id);
585 
586 l_proc                varchar2(72) := g_package||'delete_template_window';
587 begin
588   hr_utility.set_location('Entering:'|| l_proc, 10);
589   --
590   -- Issue a savepoint
591   --
592   savepoint delete_template_window;
593   --
594   -- Call Before Process User Hook
595   --
596   begin
597     hr_template_windows_api_bk3.delete_template_window_b
598       (p_template_window_id              => p_template_window_id
599       ,p_object_version_number           => p_object_version_number
600       ,p_delete_children_flag            => p_delete_children_flag);
601   exception
602     when hr_api.cannot_find_prog_unit then
603       hr_api.cannot_find_prog_unit_error
604         (p_module_name => 'delete_template_window'
605         ,p_hook_type   => 'BP'
606         );
607   end;
608   --
609   -- Validation in addition to Row Handlers
610   --
611   hr_utility.set_location('At:'|| l_proc, 35);
612 
613      OPEN cur_api_val;
614      FETCH cur_api_val INTO l_temp;
615      IF (cur_api_val%NOTFOUND AND
616          hr_form_templates_api.g_session_mode <> 'SEED_DATA') THEN
617          CLOSE cur_api_val;
618        -- error message
619        fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
620        fnd_message.set_token('PROCEDURE', l_proc);
621        fnd_message.set_token('STEP','10');
622        fnd_message.raise_error;
623      END IF;
624      CLOSE cur_api_val;
625   --
626   --
627   -- Process Logic
628   --
629   hr_utility.set_location('At:'|| l_proc, 40);
630 
631   hr_twn_shd.lck( p_template_window_id           => p_template_window_id
632              ,p_object_version_number        => p_object_version_number);
633 
634   hr_utility.set_location('At:'|| l_proc, 45);
635 
636   --
637   -- Delete content canvases
638   --
639   FOR l_template_canvas IN csr_template_canvases
640   LOOP
641     hr_template_canvases_api.delete_template_canvas
642       (p_template_canvas_id      => l_template_canvas.template_canvas_id
643       ,p_object_version_number   => l_template_canvas.object_version_number
644       ,p_delete_children_flag    => p_delete_children_flag
645       );
646   END LOOP;
647   --
648   IF p_delete_children_flag = 'Y'  THEN
649     FOR cur_rec IN cur_tmplt_canvas LOOP
650       hr_template_canvases_api.delete_template_canvas(
651                 p_template_canvas_id           => cur_rec.template_canvas_id
652                 ,p_object_version_number        => cur_rec.object_version_number
653                 ,p_delete_children_flag         => p_delete_children_flag);
654     END LOOP;
655   END IF;
656   hr_utility.set_location('At:'|| l_proc, 50);
657 
658   hr_window_properties_bsi.delete_window_property(
659              p_template_window_id           => p_template_window_id);
660 
661   hr_utility.set_location('At:'|| l_proc, 55);
662 
663   hr_twn_del.del( p_template_window_id           => p_template_window_id
664                  ,p_object_version_number        => p_object_version_number);
665 
666   hr_utility.set_location('At:'|| l_proc, 60);
667 
668   --
669   -- Call After Process User Hook
670   --
671   begin
672     hr_template_windows_api_bk3.delete_template_window_a
673       (p_template_window_id              => p_template_window_id
674       ,p_object_version_number           => p_object_version_number
675       ,p_delete_children_flag            => p_delete_children_flag);
676   exception
677     when hr_api.cannot_find_prog_unit then
678       hr_api.cannot_find_prog_unit_error
679         (p_module_name => 'delete_template_window'
680         ,p_hook_type   => 'AP'
681         );
682   end;
683   --
684   -- When in validation only mode raise the Validate_Enabled exception
685   --
686   if p_validate then
687     raise hr_api.validate_enabled;
688   end if;
689   --
690   hr_utility.set_location(' Leaving:'||l_proc, 70);
691 exception
692   when hr_api.validate_enabled then
693     --
694     -- As the Validate_Enabled exception has been raised
695     -- we must rollback to the savepoint
696     --
697     rollback to delete_template_window;
698     --
699     -- Only set output warning arguments
700     -- (Any key or derived arguments must be set to null
701     -- when validation only mode is being used.)
702     --
703     hr_utility.set_location(' Leaving:'||l_proc, 80);
704   when others then
705     --
706     -- A validation or unexpected error has occured
707     --
708     rollback to delete_template_window;
709     hr_utility.set_location(' Leaving:'||l_proc, 90);
710     raise;
711 end delete_template_window;
712 --
713 -- ----------------------------------------------------------------------------
714 -- |--------------------------< update_template_window >----------------------|
715 -- ----------------------------------------------------------------------------
716 --
717 procedure update_template_window
718   (p_validate                        in boolean  default false
719   ,p_effective_date                  in date
720   ,p_language_code                   in varchar2 default hr_api.userenv_lang
721   ,p_template_window_id              in number
722   ,p_object_version_number           in out nocopy number
723   ,p_height                          in number default hr_api.g_number
724   ,p_title                           in varchar2 default hr_api.g_varchar2
725   ,p_width                           in number default hr_api.g_number
726   ,p_x_position                      in number default hr_api.g_number
727   ,p_y_position                      in number default hr_api.g_number
728   ,p_information_category            in varchar2 default hr_api.g_varchar2
729   ,p_information1                    in varchar2 default hr_api.g_varchar2
730   ,p_information2                    in varchar2 default hr_api.g_varchar2
731   ,p_information3                    in varchar2 default hr_api.g_varchar2
732   ,p_information4                    in varchar2 default hr_api.g_varchar2
733   ,p_information5                    in varchar2 default hr_api.g_varchar2
734   ,p_information6                    in varchar2 default hr_api.g_varchar2
735   ,p_information7                    in varchar2 default hr_api.g_varchar2
736   ,p_information8                    in varchar2 default hr_api.g_varchar2
737   ,p_information9                    in varchar2 default hr_api.g_varchar2
738   ,p_information10                   in varchar2 default hr_api.g_varchar2
739   ,p_information11                   in varchar2 default hr_api.g_varchar2
740   ,p_information12                   in varchar2 default hr_api.g_varchar2
741   ,p_information13                   in varchar2 default hr_api.g_varchar2
742   ,p_information14                   in varchar2 default hr_api.g_varchar2
743   ,p_information15                   in varchar2 default hr_api.g_varchar2
744   ,p_information16                   in varchar2 default hr_api.g_varchar2
745   ,p_information17                   in varchar2 default hr_api.g_varchar2
746   ,p_information18                   in varchar2 default hr_api.g_varchar2
747   ,p_information19                   in varchar2 default hr_api.g_varchar2
748   ,p_information20                   in varchar2 default hr_api.g_varchar2
749   ,p_information21                   in varchar2 default hr_api.g_varchar2
750   ,p_information22                   in varchar2 default hr_api.g_varchar2
751   ,p_information23                   in varchar2 default hr_api.g_varchar2
752   ,p_information24                   in varchar2 default hr_api.g_varchar2
753   ,p_information25                   in varchar2 default hr_api.g_varchar2
754   ,p_information26                   in varchar2 default hr_api.g_varchar2
755   ,p_information27                   in varchar2 default hr_api.g_varchar2
756   ,p_information28                   in varchar2 default hr_api.g_varchar2
757   ,p_information29                   in varchar2 default hr_api.g_varchar2
758   ,p_information30                   in varchar2 default hr_api.g_varchar2
759   ) is
760   --
761   -- Declare cursors and local variables
762   --
763 
764   CURSOR cur_tmplt_canvas
765   IS
766   SELECT tcn.template_canvas_id
767   ,tcn.object_version_number
768   ,twn.height
769   ,twn.width
770   FROM hr_template_windows twn
771   ,hr_form_canvases fcn
772   ,hr_template_canvases tcn
773   WHERE twn.template_window_id = p_template_window_id
774   AND fcn.canvas_type = 'CONTENT'
775   AND fcn.form_canvas_id = tcn.form_canvas_id
776   AND tcn.template_window_id = p_template_window_id;
777 
778   l_temp number;
779 
780   CURSOR cur_api_val
781   IS
782   SELECT 1 from dual where exists(   --added line for 2832106, removed unnecessary joins
783    SELECT source_form_template_id
784    FROM hr_source_form_templates hsf
785         ,hr_template_windows_b htw
786    --     ,hr_template_canvases_b htc
787    --     ,hr_template_tab_pages_b http
788    WHERE hsf.form_template_id_to = htw.form_template_id
789    AND htw.template_window_id = p_template_window_id);
790 
791   l_proc                varchar2(72) := g_package||'update_template_window';
792   l_object_version_number number;
793   l_language_code fnd_languages.language_code%TYPE;
794 
795 begin
796   hr_utility.set_location('Entering:'|| l_proc, 10);
797   --
798   -- Issue a savepoint
799   --
800   savepoint update_template_window;
801   --
802   -- Truncate the time portion from all IN date parameters
803   --
804      -- p_effective_date := TRUNC(p_effective_date);
805      l_object_version_number := p_object_version_number;
806   --
807   -- Validate the language parameter. l_language_code should be passed
808   -- instead of p_language_code from now on, to allow an IN OUT parameter to
809   -- be passed through.
810   --
811   l_language_code := p_language_code;
812   hr_api.validate_language_code(p_language_code => l_language_code);
813   --
814   hr_utility.set_location(l_proc, 20);
815   --
816   --
817   -- Call Before Process User Hook
818   --
819   begin
820     hr_template_windows_api_bk4.update_template_window_b
821       (p_effective_date                 => TRUNC(p_effective_date)
822       ,p_language_code                  => l_language_code
823       ,p_template_window_id             => p_template_window_id
824       ,p_object_version_number          => l_object_version_number
825       ,p_height                         => p_height
826       ,p_title                          => p_title
827       ,p_width                          => p_width
828       ,p_x_position                     => p_x_position
829       ,p_y_position                     => p_y_position
830       ,p_information_category           => p_information_category
831       ,p_information1                   => p_information1
832       ,p_information2                   => p_information2
833       ,p_information3                   => p_information3
834       ,p_information4                   => p_information4
835       ,p_information5                   => p_information5
836       ,p_information6                   => p_information6
837       ,p_information7                   => p_information7
838       ,p_information8                   => p_information8
839       ,p_information9                   => p_information9
840       ,p_information10                  => p_information10
841       ,p_information11                  => p_information11
842       ,p_information12                  => p_information12
843       ,p_information13                  => p_information13
844       ,p_information14                  => p_information14
845       ,p_information15                  => p_information15
846       ,p_information16                  => p_information16
847       ,p_information17                  => p_information17
848       ,p_information18                  => p_information18
849       ,p_information19                  => p_information19
850       ,p_information20                  => p_information20
851       ,p_information21                  => p_information21
852       ,p_information22                  => p_information22
853       ,p_information23                  => p_information23
854       ,p_information24                  => p_information24
855       ,p_information25                  => p_information25
856       ,p_information26                  => p_information26
857       ,p_information27                  => p_information27
858       ,p_information28                  => p_information28
859       ,p_information29                  => p_information29
860       ,p_information30                  => p_information30);
861   exception
862     when hr_api.cannot_find_prog_unit then
863       hr_api.cannot_find_prog_unit_error
864         (p_module_name => 'update_template_window'
865         ,p_hook_type   => 'BP'
866         );
867   end;
868   --
869   -- Validation in addition to Row Handlers
870   --
871   hr_utility.set_location('At:'|| l_proc, 15);
872 
873      OPEN cur_api_val;
874      FETCH cur_api_val INTO l_temp;
875      IF (cur_api_val%NOTFOUND AND
876          hr_form_templates_api.g_session_mode <> 'SEED_DATA') THEN
877          CLOSE cur_api_val;
878        -- error message
879        fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
880        fnd_message.set_token('PROCEDURE', l_proc);
881        fnd_message.set_token('STEP','10');
882        fnd_message.raise_error;
883      END IF;
884      CLOSE cur_api_val;
885   --
886   --
887   -- Process Logic
888   --
889   hr_utility.set_location('At:'|| l_proc, 20);
890 
891   hr_twn_shd.lck( p_template_window_id           => p_template_window_id
892              ,p_object_version_number        => p_object_version_number);
893 
894   hr_utility.set_location('At:'|| l_proc, 25);
895 
896   hr_window_properties_bsi.update_window_property(
897              p_effective_date                => TRUNC(p_effective_date)
898              ,p_language_code                => l_language_code
899              ,p_template_window_id           => p_template_window_id
900              ,p_height                       => p_height
901              ,p_title                        => p_title
902              ,p_width                        => p_width
903              ,p_x_position                   => p_x_position
904              ,p_y_position                   => p_y_position
905              ,p_information_category         => p_information_category
906              ,p_information1                 => p_information1
907              ,p_information2                 => p_information2
908              ,p_information3                 => p_information3
909              ,p_information4                 => p_information4
910              ,p_information5                 => p_information5
911              ,p_information6                 => p_information6
912              ,p_information7                 => p_information7
913              ,p_information8                 => p_information8
914              ,p_information9                 => p_information9
915              ,p_information10                => p_information10
916              ,p_information11                => p_information11
917              ,p_information12                => p_information12
918              ,p_information13                => p_information13
919              ,p_information14                => p_information14
920              ,p_information15                => p_information15
921              ,p_information16                => p_information16
922              ,p_information17                => p_information17
923              ,p_information18                => p_information18
924              ,p_information19                => p_information19
925              ,p_information20                => p_information20
926              ,p_information21                => p_information21
927              ,p_information22                => p_information22
928              ,p_information23                => p_information23
929              ,p_information24                => p_information24
930              ,p_information25                => p_information25
931              ,p_information26                => p_information26
932              ,p_information27                => p_information27
933              ,p_information28                => p_information28
934              ,p_information29                => p_information29
935              ,p_information30                => p_information30);
936 
937   hr_utility.set_location('At:'|| l_proc, 30);
938 
939   FOR cur_rec IN cur_tmplt_canvas LOOP
940 
941     hr_template_canvases_api.update_template_canvas(
942               p_effective_date                => TRUNC(p_effective_date)
943               ,p_template_canvas_id            => cur_rec.template_canvas_id
944               ,p_height                       => cur_rec.height
945               ,p_width                        => cur_rec.width
946               ,p_object_version_number        => cur_rec.object_version_number);
947 
948   END LOOP;
949 
950   hr_utility.set_location('At:'|| l_proc, 35);
951 
952   --
953   -- Call After Process User Hook
954   --
955   begin
956     hr_template_windows_api_bk4.update_template_window_a
957       (p_effective_date                 => TRUNC(p_effective_date)
958       ,p_language_code                  => l_language_code
959       ,p_template_window_id             => p_template_window_id
960       ,p_object_version_number          => l_object_version_number
961       ,p_height                         => p_height
962       ,p_title                          => p_title
963       ,p_width                          => p_width
964       ,p_x_position                     => p_x_position
965       ,p_y_position                     => p_y_position
966       ,p_information_category           => p_information_category
967       ,p_information1                   => p_information1
968       ,p_information2                   => p_information2
969       ,p_information3                   => p_information3
970       ,p_information4                   => p_information4
971       ,p_information5                   => p_information5
972       ,p_information6                   => p_information6
973       ,p_information7                   => p_information7
974       ,p_information8                   => p_information8
975       ,p_information9                   => p_information9
976       ,p_information10                  => p_information10
977       ,p_information11                  => p_information11
978       ,p_information12                  => p_information12
979       ,p_information13                  => p_information13
980       ,p_information14                  => p_information14
981       ,p_information15                  => p_information15
982       ,p_information16                  => p_information16
983       ,p_information17                  => p_information17
984       ,p_information18                  => p_information18
985       ,p_information19                  => p_information19
986       ,p_information20                  => p_information20
987       ,p_information21                  => p_information21
988       ,p_information22                  => p_information22
989       ,p_information23                  => p_information23
990       ,p_information24                  => p_information24
991       ,p_information25                  => p_information25
992       ,p_information26                  => p_information26
993       ,p_information27                  => p_information27
994       ,p_information28                  => p_information28
995       ,p_information29                  => p_information29
996       ,p_information30                  => p_information30);
997   exception
998     when hr_api.cannot_find_prog_unit then
999       hr_api.cannot_find_prog_unit_error
1000         (p_module_name => 'update_template_window'
1001         ,p_hook_type   => 'AP'
1002         );
1003   end;
1004   --
1005   -- When in validation only mode raise the Validate_Enabled exception
1006   --
1007   if p_validate then
1008     raise hr_api.validate_enabled;
1009   end if;
1010   --
1011   -- Set all output arguments
1012   --
1013   p_object_version_number  := l_object_version_number;
1014   --
1015   hr_utility.set_location(' Leaving:'||l_proc, 70);
1016 exception
1017   when hr_api.validate_enabled then
1018     --
1019     -- As the Validate_Enabled exception has been raised
1020     -- we must rollback to the savepoint
1021     --
1022     rollback to update_template_window;
1023     --
1024     -- Only set output warning arguments
1025     -- (Any key or derived arguments must be set to null
1026     -- when validation only mode is being used.)
1027     --
1028     hr_utility.set_location(' Leaving:'||l_proc, 80);
1029   when others then
1030     --
1031     -- A validation or unexpected error has occured
1032     --
1033     rollback to update_template_window;
1034     hr_utility.set_location(' Leaving:'||l_proc, 90);
1035     raise;
1036 end update_template_window;
1037 --
1038 end hr_template_windows_api;