DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_APP_API_HOOK_CALL_INTERNAL

Source


1 Package Body hr_app_api_hook_call_internal as
2 /* $Header: peahcbsi.pkb 115.4 2002/12/05 12:51:46 apholt noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_app_api_hook_call_internal.';
7 --
8 -- ------------------------------------------------------------------------
9 -- |--------------------< create_app_api_hook_call >----------------------|
10 -- ------------------------------------------------------------------------
11 --
12 procedure create_app_api_hook_call
13   (p_validate                     in     boolean  default false,
14    p_effective_date               in     date,
15    p_api_hook_id                  in     number,
16    p_api_hook_call_type           in     varchar2,
17    p_sequence                     in     number,
18    p_application_id               in     number,
19    p_app_install_status           in     varchar2,
20    p_enabled_flag                 in     varchar2  default 'N',
21    p_call_package                 in     varchar2  default null,
22    p_call_procedure               in     varchar2  default null,
23    p_api_hook_call_id             out nocopy    number,
24    p_object_version_number        out nocopy    number) is
25   --
26   -- Declare cursors and local variables
27   --
28   l_effective_date      date;
29   --
30   --
31   -- Out variables
32   --
33   l_api_hook_call_id           hr_api_hook_calls.api_hook_call_id%TYPE;
34   l_object_version_number      hr_api_hook_calls.object_version_number%TYPE;
35 
36   l_legislation_code           hr_api_hook_calls.legislation_code%TYPE := null;
37   l_encoded_error              hr_api_hook_calls.encoded_error%TYPE := null;
38   l_status                     hr_api_hook_calls.status%TYPE := 'N';
39   l_pre_processor_date         hr_api_hook_calls.pre_processor_date%TYPE := null;
40   --
41   l_proc                       varchar2(72) :=   g_package
42                                               || 'create_app_api_hook_call';
43   --
44   -- Declare a cursor that will check whether the passed
45   -- in hook package and hook procedure form a unique combination
46 
47    cursor csr_valid_combo is
48    select api_hook_call_id, object_version_number
49      from hr_api_hook_calls
50    where api_hook_id = p_api_hook_id
51    and   nvl(application_id,hr_api.g_number)
52        = nvl(p_application_id,hr_api.g_number)
53    and   nvl(call_package, hr_api.g_varchar2)
54        = nvl(p_call_package,hr_api.g_varchar2)
55    and   nvl(call_procedure, hr_api.g_varchar2)
56        = nvl(p_call_procedure, hr_api.g_varchar2)
57    and   legislation_code IS NULL;
58 
59 begin
60   hr_utility.set_location('Entering:'|| l_proc, 5);
61   --
62   -- Set l_effective_date equal to truncated version of p_effective_date for
63   -- API work. Stops dates being passed to row handlers with time portion.
64   --
65   l_effective_date := trunc(p_effective_date);
66   --
67   -- Issue a savepoint if operating in validation only mode.
68   --
69   savepoint create_app_api_hook_call;
70   --
71   hr_utility.set_location(l_proc, 10);
72   --
73   -- Validation in addition to Table Handlers
74   --
75   if (p_application_id is NULL) then
76     --
77     hr_utility.set_message(800, 'PER_289090_AHC_APP_ID_NULL');
78     hr_utility.raise_error;
79     --
80   end if;
81   --
82   if (p_app_install_status is NULL) then
83     --
84     hr_utility.set_message(800,'PER_289091_AHC_INST_STAT_NULL');
85     hr_utility.raise_error;
86     --
87   end if;
88   --
89   -- Process Logic
90   ----------------------------------------------------------------------------
91   -- Check for combination of hook call id, app_id, call pack, call proc --
92   ----------------------------------------------------------------------------
93   open csr_valid_combo;
94   fetch csr_valid_combo into l_api_hook_call_id, l_object_version_number;
95 
96     -- Only call row handler code if the row doesn't already exist.
97     if csr_valid_combo%notfound then
98     --
99     -- Insert the hook row.
100     --
101       hr_ahc_ins.ins
102       (
103        p_api_hook_call_id             => l_api_hook_call_id ,
104        p_effective_date               => l_effective_date,
105        p_api_hook_id                  => p_api_hook_id,
106        p_api_hook_call_type           => p_api_hook_call_type,
107        p_legislation_code             => l_legislation_code,
108        p_sequence                     => p_sequence,
109        p_enabled_flag                 => p_enabled_flag,
110        p_call_package                 => p_call_package,
111        p_call_procedure               => p_call_procedure,
112        p_pre_processor_date           => l_pre_processor_date,
113        p_encoded_error                => l_encoded_error,
114        p_status                       => l_status,
115        p_object_version_number        => l_object_version_number,
116        p_application_id               => p_application_id,
117        p_app_install_status           => p_app_install_status
118       );
119     --
120     end if;
121 
122   close csr_valid_combo;
123 
124   hr_utility.set_location(l_proc, 20);
125   --
126   -- When in validation only mode raise the Validate_Enabled exception
127   --
128   if p_validate then
129     raise hr_api.validate_enabled;
130   end if;
131   --
132   -- Set all output arguments
133   --
134   p_api_hook_call_id := l_api_hook_call_id;
135   p_object_version_number := l_object_version_number;
136   --
137   hr_utility.set_location(' Leaving:'||l_proc, 100);
138 exception
139   when hr_api.validate_enabled then
140     --
141     -- As the Validate_Enabled exception has been raised
142     -- we must rollback to the savepoint
143     --
144     ROLLBACK TO create_app_api_hook_call;
145     --
146     -- Only set output warning arguments
147     -- (Any key or derived arguments must be set to null
148     -- when validation only mode is being used.)
149     --
150     p_api_hook_call_id  := null;
151     p_object_version_number := null;
152   when others then
153     ROLLBACK TO create_app_api_hook_call;
154     p_api_hook_call_id  := null;
155     p_object_version_number := null;
156     RAISE;
157 end create_app_api_hook_call;
158 --
159 --
160 -- ---------------------------------------------------------------------------
161 -- |--------------------------< delete_app_api_hook_call >-------------------|
162 -- ---------------------------------------------------------------------------
163 --
164 procedure delete_app_api_hook_call
165   (p_validate                           in     boolean  default false,
166    p_api_hook_call_id                   in     number,
167    p_object_version_number              in     number)  is
168   --
169   l_proc                   varchar2(72) := g_package||'delete_app_api_hook_call';
170   --
171   -- Cursor to check application_id
172   CURSOR csr_check_app IS
173    SELECT 'Y'
174      FROM hr_api_hook_calls
175     WHERE api_hook_call_id = p_api_hook_call_id
176       AND application_id IS NOT NULL;
177   --
178   -- Cursor to check hook call exists
179   CURSOR csr_check_exists IS
180    SELECT 'Y'
181      FROM hr_api_hook_calls
182     WHERE api_hook_call_id = p_api_hook_call_id;
183   --
184   l_exists varchar2(1);
185   --
186 begin
187   hr_utility.set_location('Entering:'|| l_proc, 5);
188   --
189   -- Issue a savepoint if operating in validation only mode.
190   --
191   savepoint delete_app_api_hook_call;
192   --
193   hr_utility.set_location(l_proc, 10);
194   --
195   -- Validation in addition to Table Handlers
196   --
197   -- Ensure the hook call definition specified  is an application specific
198   -- hook call, and that application_id is null.
199   OPEN csr_check_app;
200   FETCH csr_check_app INTO l_exists;
201   IF csr_check_app%NOTFOUND THEN
202      CLOSE csr_check_app;
203      -- api_hook_call_id specified does not reference an application hook call
204      --
205      -- Check if hook exists at all.
206      OPEN csr_check_exists;
207      FETCH csr_check_exists INTO l_exists;
208      IF csr_check_exists%NOTFOUND THEN
209         -- Hook does not exist at all.
210          CLOSE csr_check_exists;
211          hr_utility.set_message(800,'PER_289096_AHC_HOOK_NOT_EXIST');
212          hr_utility.raise_error;
213      ELSE
214          -- Hook exists, but is not application hook.
215          CLOSE csr_check_exists;
216          hr_utility.set_message(800,'PER_289092_AHC_NOT_APPL_HOOK');
217          hr_utility.raise_error;
218      END IF;
219   END IF;
220   CLOSE csr_check_app;
221   --
222   --
223   -- Process Logic
224   --
225     hr_ahc_del.del
226       (p_api_hook_call_id                => p_api_hook_call_id,
227        p_object_version_number           => p_object_version_number);
228   --
229   hr_utility.set_location(l_proc, 20);
230   --
231   -- When in validation only mode raise the Validate_Enabled exception
232   --
233   if p_validate then
234     raise hr_api.validate_enabled;
235   end if;
236   --
237   hr_utility.set_location(' Leaving:'||l_proc, 100);
238 exception
239   when hr_api.validate_enabled then
240     --
241     -- As the Validate_Enabled exception has been raised
242     -- we must rollback to the savepoint
243     --
244     ROLLBACK TO delete_app_api_hook_call;
245   when others then
246     ROLLBACK TO delete_app_api_hook_call;
247     raise;
248 end delete_app_api_hook_call;
249 --
250 --
251 -- ------------------------------------------------------------------------
252 -- |---------------------< update_app_api_hook_call >-------------------------|
253 -- ------------------------------------------------------------------------
254 --
255 procedure update_app_api_hook_call
256   (p_validate                     in     boolean  default false,
257    p_effective_date               in     date,
258    p_api_hook_call_id             in     number,
259    p_object_version_number        in out nocopy number,
260    p_sequence                     in     number    default hr_api.g_number,
261    p_app_install_status           in     varchar2  default hr_api.g_varchar2,
262    p_enabled_flag                 in     varchar2  default hr_api.g_varchar2,
263    p_call_package                 in     varchar2  default hr_api.g_varchar2,
264    p_call_procedure               in     varchar2  default hr_api.g_varchar2,
265    p_pre_processor_date           in     date      default hr_api.g_date,
266    p_encoded_error                in     varchar2  default hr_api.g_varchar2,
267    p_status                       in     varchar2  default hr_api.g_varchar2
268    ) is
269   --
270   -- Declare cursors and local variables
271   --
272   l_effective_date      date;
273   --
274   -- Out variables
275   --
276   l_object_version_number      hr_api_hook_calls.object_version_number%TYPE;
277 
278   l_proc                       varchar2(72) := g_package||'update_app_api_hook_call';
279   --
280   -- Cursor to check application_id
281   CURSOR csr_check_app IS
282    SELECT 'Y'
283      FROM hr_api_hook_calls
284     WHERE api_hook_call_id = p_api_hook_call_id
285       AND application_id IS NOT NULL;
286   --
287   -- Cursor to check hook call exists
288   CURSOR csr_check_exists IS
289    SELECT 'Y'
290      FROM hr_api_hook_calls
291     WHERE api_hook_call_id = p_api_hook_call_id;
292   --
293   l_exists varchar2(1);
294   --
295 begin
296   hr_utility.set_location('Entering:'|| l_proc, 5);
297   --
298   -- Set l_effective_date equal to truncated version of p_effective_date for
299   -- API work. Stops dates being passed to row handlers with time portion.
300   --
301   l_effective_date := trunc(p_effective_date);
302   --
303   -- Capture the in value for the object version number
304   --
305   l_object_version_number := p_object_version_number;
306   --
307   -- Issue a savepoint if operating in validation only mode.
308   --
309   savepoint update_app_api_hook_call;
310   --
311   hr_utility.set_location(l_proc, 10);
312   --
313   -- Validation in addition to Table Handlers
314   --
315   -- Ensure the hook call definition specified  is an application specific
316   -- hook call, and that application_id is null.
317   OPEN csr_check_app;
318   FETCH csr_check_app INTO l_exists;
319   IF csr_check_app%NOTFOUND THEN
320      CLOSE csr_check_app;
321      -- api_hook_call_id specified does not reference an application hook call
322      -- Check if hook exists
323      OPEN csr_check_exists;
324      FETCH csr_check_exists INTO l_exists;
325      IF csr_check_exists%NOTFOUND THEN
326         CLOSE csr_check_exists;
327         -- Hook call does not exist at all
328         hr_utility.set_message(800,'PER_289096_AHC_HOOK_NOT_EXIST');
329         hr_utility.raise_error;
330      ELSE
331         CLOSE csr_check_exists;
332         -- Hook call exists, but does not reference Application Hook call.
333         hr_utility.set_message(800,'PER_289092_AHC_NOT_APPL_HOOK');
334         hr_utility.raise_error;
335      END IF;
336   END IF;
337   CLOSE csr_check_app;
338   --
339   -- Update the hook call row
340   --
341   hr_ahc_upd.upd
342   (
343   p_api_hook_call_id             => p_api_hook_call_id ,
344   p_effective_date               => l_effective_date,
345   p_sequence                     => p_sequence,
346   p_enabled_flag                 => p_enabled_flag,
347   p_call_package                 => p_call_package,
348   p_call_procedure               => p_call_procedure,
349   p_pre_processor_date           => p_pre_processor_date,
350   p_encoded_error                => p_encoded_error,
351   p_status                       => p_status,
352   p_object_version_number        => p_object_version_number
353   );
354   --
355   hr_utility.set_location(l_proc, 20);
356   --
357   -- When in validation only mode raise the Validate_Enabled exception
358   --
359   if p_validate then
360     raise hr_api.validate_enabled;
361   end if;
362   --
363   -- Set all output arguments
364   --
365   p_object_version_number := l_object_version_number;
366   --
367   hr_utility.set_location(' Leaving:'||l_proc, 100);
368 exception
369   when hr_api.validate_enabled then
370     --
371     -- Only set output warning arguments
372     -- (Any key or derived arguments must be set to null
373     -- when validation only mode is being used.)
374     --
375     p_object_version_number := l_object_version_number;
376     --
377     -- As the Validate_Enabled exception has been raised
378     -- we must rollback to the savepoint
379     --
380     ROLLBACK TO update_app_api_hook_call;
381     --
382   when others then
383     ROLLBACK TO update_app_api_hook_call;
384     p_object_version_number :=null;
385     RAISE;
386 end update_app_api_hook_call;
387 --
388 end hr_app_api_hook_call_internal;