[Home] [Help]
PACKAGE BODY: APPS.HXC_ULQ_BUS
Source
1 Package Body hxc_ulq_bus as
2 /* $Header: hxculqrhi.pkb 120.2 2005/09/23 06:26:40 rchennur noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hxc_ulq_bus.'; -- Global package name
9 g_debug boolean := hr_utility.debug_enabled;
10 --
11 -- ----------------------------------------------------------------------------
12 -- |--------------------------< chk_qualifier_name >--------------------------|
13 -- ----------------------------------------------------------------------------
14 PROCEDURE chk_qualifier_name
15 (p_layout_comp_qualifier_id IN NUMBER DEFAULT NULL
16 ,p_qualifier_name IN VARCHAR2
17 )
18 IS
19 --
20 CURSOR csr_chk_qualifier_name_unique IS
21 SELECT 1
22 FROM hxc_layout_comp_qualifiers
23 WHERE qualifier_name = p_qualifier_name
24 AND (p_layout_comp_qualifier_id IS NULL
25 OR layout_comp_qualifier_id <> p_layout_comp_qualifier_id);
26 --
27 l_result NUMBER;
28 --
29 BEGIN
30 --
31 OPEN csr_chk_qualifier_name_unique;
32 --
33 FETCH csr_chk_qualifier_name_unique INTO l_result;
34 --
35 IF csr_chk_qualifier_name_unique%FOUND THEN
36 CLOSE csr_chk_qualifier_name_unique;
37 fnd_message.set_name('HXC', 'HXC_xxxxx_QUALIFIER_NAME_NOT_UNIQUE');
38 fnd_message.raise_error;
39 END IF;
40 --
41 CLOSE csr_chk_qualifier_name_unique;
42 --
43 END chk_qualifier_name;
44 --
45 -- ----------------------------------------------------------------------------
46 -- |------------------------------< chk_df >----------------------------------|
47 -- ----------------------------------------------------------------------------
48 --
49 -- Description:
50 -- Validates all the Descriptive Flexfield values.
51 --
52 -- Prerequisites:
53 -- All other columns have been validated. Must be called as the
54 -- last step from insert_validate and update_validate.
55 --
56 -- In Arguments:
57 -- p_rec
58 --
59 -- Post Success:
60 -- If the Descriptive Flexfield structure column and data values are
61 -- all valid this procedure will end normally and processing will
62 -- continue.
63 --
64 -- Post Failure:
65 -- If the Descriptive Flexfield structure column value or any of
66 -- the data values are invalid then an application error is raised as
67 -- a PL/SQL exception.
68 --
69 -- Access Status:
70 -- Internal Row Handler Use Only.
71 --
72 -- ----------------------------------------------------------------------------
73 procedure chk_df
74 (p_rec in hxc_ulq_shd.g_rec_type
75 ) is
76 --
77 l_proc varchar2(72) ;
78 --
79 begin
80 g_debug :=hr_utility.debug_enabled;
81 if g_debug then
82 l_proc := g_package || 'chk_df';
83 hr_utility.set_location('Entering:'||l_proc,10);
84 end if;
85 --
86 if ((p_rec.layout_comp_qualifier_id is not null) and (
87 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute_category, hr_api.g_varchar2) <>
88 nvl(p_rec.qualifier_attribute_category, hr_api.g_varchar2) or
89 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute1, hr_api.g_varchar2) <>
90 nvl(p_rec.qualifier_attribute1, hr_api.g_varchar2) or
91 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute2, hr_api.g_varchar2) <>
92 nvl(p_rec.qualifier_attribute2, hr_api.g_varchar2) or
93 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute3, hr_api.g_varchar2) <>
94 nvl(p_rec.qualifier_attribute3, hr_api.g_varchar2) or
95 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute4, hr_api.g_varchar2) <>
96 nvl(p_rec.qualifier_attribute4, hr_api.g_varchar2) or
97 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute5, hr_api.g_varchar2) <>
98 nvl(p_rec.qualifier_attribute5, hr_api.g_varchar2) or
99 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute6, hr_api.g_varchar2) <>
100 nvl(p_rec.qualifier_attribute6, hr_api.g_varchar2) or
101 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute7, hr_api.g_varchar2) <>
102 nvl(p_rec.qualifier_attribute7, hr_api.g_varchar2) or
103 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute8, hr_api.g_varchar2) <>
104 nvl(p_rec.qualifier_attribute8, hr_api.g_varchar2) or
105 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute9, hr_api.g_varchar2) <>
106 nvl(p_rec.qualifier_attribute9, hr_api.g_varchar2) or
107 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute10, hr_api.g_varchar2) <>
108 nvl(p_rec.qualifier_attribute10, hr_api.g_varchar2) or
109 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute11, hr_api.g_varchar2) <>
110 nvl(p_rec.qualifier_attribute11, hr_api.g_varchar2) or
111 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute12, hr_api.g_varchar2) <>
112 nvl(p_rec.qualifier_attribute12, hr_api.g_varchar2) or
113 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute13, hr_api.g_varchar2) <>
114 nvl(p_rec.qualifier_attribute13, hr_api.g_varchar2) or
115 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute14, hr_api.g_varchar2) <>
116 nvl(p_rec.qualifier_attribute14, hr_api.g_varchar2) or
117 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute15, hr_api.g_varchar2) <>
118 nvl(p_rec.qualifier_attribute15, hr_api.g_varchar2) or
119 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute16, hr_api.g_varchar2) <>
120 nvl(p_rec.qualifier_attribute16, hr_api.g_varchar2) or
121 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute17, hr_api.g_varchar2) <>
122 nvl(p_rec.qualifier_attribute17, hr_api.g_varchar2) or
123 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute18, hr_api.g_varchar2) <>
124 nvl(p_rec.qualifier_attribute18, hr_api.g_varchar2) or
125 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute19, hr_api.g_varchar2) <>
126 nvl(p_rec.qualifier_attribute19, hr_api.g_varchar2) or
127 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute20, hr_api.g_varchar2) <>
128 nvl(p_rec.qualifier_attribute20, hr_api.g_varchar2) or
129 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute21, hr_api.g_varchar2) <>
130 nvl(p_rec.qualifier_attribute21, hr_api.g_varchar2) or
131 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute22, hr_api.g_varchar2) <>
132 nvl(p_rec.qualifier_attribute22, hr_api.g_varchar2) or
133 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute23, hr_api.g_varchar2) <>
134 nvl(p_rec.qualifier_attribute23, hr_api.g_varchar2) or
135 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute24, hr_api.g_varchar2) <>
136 nvl(p_rec.qualifier_attribute24, hr_api.g_varchar2) or
137 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute25, hr_api.g_varchar2) <>
138 nvl(p_rec.qualifier_attribute25, hr_api.g_varchar2) or
139 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute26, hr_api.g_varchar2) <>
140 nvl(p_rec.qualifier_attribute26, hr_api.g_varchar2) or
141 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute27, hr_api.g_varchar2) <>
142 nvl(p_rec.qualifier_attribute27, hr_api.g_varchar2) or
143 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute28, hr_api.g_varchar2) <>
144 nvl(p_rec.qualifier_attribute28, hr_api.g_varchar2) or
145 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute29, hr_api.g_varchar2) <>
146 nvl(p_rec.qualifier_attribute29, hr_api.g_varchar2) or
147 nvl(hxc_ulq_shd.g_old_rec.qualifier_attribute30, hr_api.g_varchar2) <>
148 nvl(p_rec.qualifier_attribute30, hr_api.g_varchar2) ))
149 or (p_rec.layout_comp_qualifier_id is null) then
150 --
151 -- Only execute the validation if absolutely necessary:
152 -- a) During update, the structure column value or any
153 -- of the attribute values have actually changed.
154 -- b) During insert.
155 --
156 hr_dflex_utility.ins_or_upd_descflex_attribs
157 (p_appl_short_name => 'HXC'
158 ,p_descflex_name => 'HXC_CONFIGURABLE_UI_COMP_INFO'
159 ,p_attribute_category => p_rec.qualifier_attribute_category
160 ,p_attribute1_name => 'QUALIFIER_ATTRIBUTE1'
161 ,p_attribute1_value => p_rec.qualifier_attribute1
162 ,p_attribute2_name => 'QUALIFIER_ATTRIBUTE2'
163 ,p_attribute2_value => p_rec.qualifier_attribute2
164 ,p_attribute3_name => 'QUALIFIER_ATTRIBUTE3'
165 ,p_attribute3_value => p_rec.qualifier_attribute3
166 ,p_attribute4_name => 'QUALIFIER_ATTRIBUTE4'
167 ,p_attribute4_value => p_rec.qualifier_attribute4
168 ,p_attribute5_name => 'QUALIFIER_ATTRIBUTE5'
169 ,p_attribute5_value => p_rec.qualifier_attribute5
170 ,p_attribute6_name => 'QUALIFIER_ATTRIBUTE6'
171 ,p_attribute6_value => p_rec.qualifier_attribute6
172 ,p_attribute7_name => 'QUALIFIER_ATTRIBUTE7'
173 ,p_attribute7_value => p_rec.qualifier_attribute7
174 ,p_attribute8_name => 'QUALIFIER_ATTRIBUTE8'
175 ,p_attribute8_value => p_rec.qualifier_attribute8
176 ,p_attribute9_name => 'QUALIFIER_ATTRIBUTE9'
177 ,p_attribute9_value => p_rec.qualifier_attribute9
178 ,p_attribute10_name => 'QUALIFIER_ATTRIBUTE10'
179 ,p_attribute10_value => p_rec.qualifier_attribute10
180 ,p_attribute11_name => 'QUALIFIER_ATTRIBUTE11'
181 ,p_attribute11_value => p_rec.qualifier_attribute11
182 ,p_attribute12_name => 'QUALIFIER_ATTRIBUTE12'
183 ,p_attribute12_value => p_rec.qualifier_attribute12
184 ,p_attribute13_name => 'QUALIFIER_ATTRIBUTE13'
185 ,p_attribute13_value => p_rec.qualifier_attribute13
186 ,p_attribute14_name => 'QUALIFIER_ATTRIBUTE14'
187 ,p_attribute14_value => p_rec.qualifier_attribute14
188 ,p_attribute15_name => 'QUALIFIER_ATTRIBUTE15'
189 ,p_attribute15_value => p_rec.qualifier_attribute15
190 ,p_attribute16_name => 'QUALIFIER_ATTRIBUTE16'
191 ,p_attribute16_value => p_rec.qualifier_attribute16
192 ,p_attribute17_name => 'QUALIFIER_ATTRIBUTE17'
193 ,p_attribute17_value => p_rec.qualifier_attribute17
194 ,p_attribute18_name => 'QUALIFIER_ATTRIBUTE18'
195 ,p_attribute18_value => p_rec.qualifier_attribute18
196 ,p_attribute19_name => 'QUALIFIER_ATTRIBUTE19'
197 ,p_attribute19_value => p_rec.qualifier_attribute19
198 ,p_attribute20_name => 'QUALIFIER_ATTRIBUTE20'
199 ,p_attribute20_value => p_rec.qualifier_attribute20
200 ,p_attribute21_name => 'QUALIFIER_ATTRIBUTE21'
201 ,p_attribute21_value => p_rec.qualifier_attribute21
202 ,p_attribute22_name => 'QUALIFIER_ATTRIBUTE22'
203 ,p_attribute22_value => p_rec.qualifier_attribute22
204 ,p_attribute23_name => 'QUALIFIER_ATTRIBUTE23'
205 ,p_attribute23_value => p_rec.qualifier_attribute23
206 ,p_attribute24_name => 'QUALIFIER_ATTRIBUTE24'
207 ,p_attribute24_value => p_rec.qualifier_attribute24
208 ,p_attribute25_name => 'QUALIFIER_ATTRIBUTE25'
209 ,p_attribute25_value => p_rec.qualifier_attribute25
210 ,p_attribute26_name => 'QUALIFIER_ATTRIBUTE26'
211 ,p_attribute26_value => p_rec.qualifier_attribute26
212 ,p_attribute27_name => 'QUALIFIER_ATTRIBUTE27'
213 ,p_attribute27_value => p_rec.qualifier_attribute27
214 ,p_attribute28_name => 'QUALIFIER_ATTRIBUTE28'
215 ,p_attribute28_value => p_rec.qualifier_attribute28
216 ,p_attribute29_name => 'QUALIFIER_ATTRIBUTE29'
217 ,p_attribute29_value => p_rec.qualifier_attribute29
218 ,p_attribute30_name => 'QUALIFIER_ATTRIBUTE30'
219 ,p_attribute30_value => p_rec.qualifier_attribute30
220 );
221 end if;
222 --
223 if g_debug then
224 hr_utility.set_location(' Leaving:'||l_proc,20);
225 end if;
226 end chk_df;
227 --
228 -- ----------------------------------------------------------------------------
229 -- |-----------------------< chk_non_updateable_args >------------------------|
230 -- ----------------------------------------------------------------------------
231 -- {Start Of Comments}
232 --
233 -- Description:
234 -- This procedure is used to ensure that non updateable attributes have
235 -- not been updated. If an attribute has been updated an error is generated.
236 --
237 -- Pre Conditions:
238 -- g_old_rec has been populated with details of the values currently in
239 -- the database.
240 --
241 -- In Arguments:
242 -- p_rec has been populated with the updated values the user would like the
243 -- record set to.
244 --
245 -- Post Success:
246 -- Processing continues if all the non updateable attributes have not
247 -- changed.
248 --
249 -- Post Failure:
250 -- An application error is raised if any of the non updatable attributes
251 -- have been altered.
252 --
253 -- {End Of Comments}
254 -- ----------------------------------------------------------------------------
255 Procedure chk_non_updateable_args
256 (p_rec in hxc_ulq_shd.g_rec_type
257 ) IS
258 --
259 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
260 l_error EXCEPTION;
261 l_argument varchar2(30);
262 --
263 Begin
264 --
265 -- Only proceed with the validation if a row exists for the current
266 -- record in the hxc Schema.
267 --
268 IF NOT hxc_ulq_shd.api_updating
269 (p_layout_comp_qualifier_id => p_rec.layout_comp_qualifier_id
270 ,p_object_version_number => p_rec.object_version_number
271 ) THEN
272 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
273 fnd_message.set_token('PROCEDURE ', l_proc);
274 fnd_message.set_token('STEP ', '5');
275 fnd_message.raise_error;
276 END IF;
277 --
278 -- EDIT_HERE: Add checks to ensure non-updateable args have
279 -- not been updated.
280 --
281 EXCEPTION
282 WHEN l_error THEN
283 hr_api.argument_changed_error
284 (p_api_name => l_proc
285 ,p_argument => l_argument);
286 WHEN OTHERS THEN
287 RAISE;
288 End chk_non_updateable_args;
289 --
290 -- ----------------------------------------------------------------------------
291 -- |---------------------------< insert_validate >----------------------------|
292 -- ----------------------------------------------------------------------------
293 Procedure insert_validate
297 l_proc varchar2(72) ;
294 (p_rec in hxc_ulq_shd.g_rec_type
295 ) is
296 --
298 --
299 Begin
300 g_debug :=hr_utility.debug_enabled;
301 if g_debug then
302 l_proc := g_package||'insert_validate';
303 hr_utility.set_location('Entering:'||l_proc, 5);
304 end if;
305 --
306 -- Call all supporting business operations
307 --
308 --
309 -- EDIT_HERE: As this table does not have a mandatory business_group_id
310 -- column, ensure client_info is populated by calling a suitable
311 -- ???_???_bus.set_security_group_id procedure, or add one of the following
312 -- comments:
313 -- "-- No business group context. HR_STANDARD_LOOKUPS used for validation."
314 -- "-- CLIENT_INFO not set. No lookup validation or joins to HR_LOOKUPS."
315 --
316 -- check that qualifier name is unique
317 --
318 -- chk_qualifier_name
319 -- (p_qualifier_name => p_rec.qualifier_name
320 -- );
321 --
322 hxc_ulq_bus.chk_df(p_rec);
323 --
324 if g_debug then
325 hr_utility.set_location(' Leaving:'||l_proc, 10);
326 end if;
327 End insert_validate;
328 --
329 -- ----------------------------------------------------------------------------
330 -- |---------------------------< update_validate >----------------------------|
331 -- ----------------------------------------------------------------------------
332 Procedure update_validate
333 (p_rec in hxc_ulq_shd.g_rec_type
334 ) is
335 --
336 l_proc varchar2(72) ;
337 --
338 Begin
339 g_debug :=hr_utility.debug_enabled;
340 if g_debug then
341 l_proc := g_package||'update_validate';
342 hr_utility.set_location('Entering:'||l_proc, 5);
343 end if;
344 --
345 -- Call all supporting business operations
346 --
347 -- EDIT_HERE: As this table does not have a mandatory business_group_id
348 -- column, ensure client_info is populated by calling a suitable
349 -- ???_???_bus.set_security_group_id procedure, or add one of the following
350 -- comments:
351 -- "-- No business group context. HR_STANDARD_LOOKUPS used for validation."
352 -- "-- CLIENT_INFO not set. No lookup validation or joins to HR_LOOKUPS."
353 --
354 chk_non_updateable_args
355 (p_rec => p_rec
356 );
357 --
358 -- check that qualifier name is unique
359 --
360 -- chk_qualifier_name
361 -- (p_layout_comp_qualifier_id => p_rec.layout_comp_qualifier_id
362 -- ,p_qualifier_name => p_rec.qualifier_name
363 -- );
364 --
365 hxc_ulq_bus.chk_df(p_rec);
366 --
367 if g_debug then
368 hr_utility.set_location(' Leaving:'||l_proc, 10);
369 end if;
370 End update_validate;
371 --
372 -- ----------------------------------------------------------------------------
373 -- |---------------------------< delete_validate >----------------------------|
374 -- ----------------------------------------------------------------------------
375 Procedure delete_validate
376 (p_rec in hxc_ulq_shd.g_rec_type
377 ) is
378 --
379 l_proc varchar2(72) ;
380 --
381 Begin
382 g_debug :=hr_utility.debug_enabled;
383 if g_debug then
384 l_proc := g_package||'delete_validate';
385 hr_utility.set_location('Entering:'||l_proc, 5);
386 end if;
387 --
388 -- Call all supporting business operations
389 --
390 if g_debug then
391 hr_utility.set_location(' Leaving:'||l_proc, 10);
392 end if;
393 End delete_validate;
394 --
395 end hxc_ulq_bus;