1 PACKAGE BODY QP_Validate_Con AS
2 /* $Header: QPXLCONB.pls 120.1 2005/06/08 22:00:52 appldev $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Validate_Con';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 , p_CON_rec IN QP_Attributes_PUB.Con_Rec_Type
13 , p_old_CON_rec IN QP_Attributes_PUB.Con_Rec_Type :=
14 QP_Attributes_PUB.G_MISS_CON_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19
20 -- Check required attributes.
21
22 IF p_CON_rec.prc_context_id IS NULL
23 THEN
24
25 l_return_status := FND_API.G_RET_STS_ERROR;
26
27 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
28 THEN
29
30 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
31 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','attribute1');
32 OE_MSG_PUB.Add;
33
34 END IF;
35
36 END IF;
37
38 --
39 -- Check rest of required attributes here.
40 --
41
42 /*
43 if p_CON_rec.prc_context_code is not null
44 and p_CON_rec.prc_context_code <> FND_API.G_MISS_CHAR
45 and substr(p_CON_rec.prc_context_code,1,3) <> 'QP_' then
46
47 oe_debug_pub.add('Total old values' || p_CON_rec.prc_context_code);
48 l_return_status := FND_API.G_RET_STS_ERROR;
49 FND_MESSAGE.SET_NAME('QP','QP_WRONG_CONTEXT_CODE');
50 OE_MSG_PUB.Add;
51 end if;
52 */
53
54 -- Return Error if a required attribute is missing.
55
56 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
57
58 RAISE FND_API.G_EXC_ERROR;
59
60 END IF;
61
62 --
63 -- Check conditionally required attributes here.
64 --
65
66
67 --
68 -- Validate attribute dependencies here.
69 --
70
71
72 -- Done validating entity
73
74 x_return_status := l_return_status;
75
76 EXCEPTION
77
78 WHEN FND_API.G_EXC_ERROR THEN
79
80 x_return_status := FND_API.G_RET_STS_ERROR;
81
82 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
83
84 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
85
86 WHEN OTHERS THEN
87
88 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
89
90 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
91 THEN
92 OE_MSG_PUB.Add_Exc_Msg
93 ( G_PKG_NAME
94 , 'Entity'
95 );
96 END IF;
97
98 END Entity;
99
100 -- Procedure Attributes
101
102 PROCEDURE Attributes
103 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
104 , p_CON_rec IN QP_Attributes_PUB.Con_Rec_Type
105 , p_old_CON_rec IN QP_Attributes_PUB.Con_Rec_Type :=
106 QP_Attributes_PUB.G_MISS_CON_REC
107 )
108 IS
109 BEGIN
110
111 x_return_status := FND_API.G_RET_STS_SUCCESS;
112
113 -- Validate CON attributes
114
115 IF p_CON_rec.created_by IS NOT NULL AND
116 ( p_CON_rec.created_by <>
117 p_old_CON_rec.created_by OR
118 p_old_CON_rec.created_by IS NULL )
119 THEN
120 IF NOT QP_Validate.Created_By(p_CON_rec.created_by) THEN
121 x_return_status := FND_API.G_RET_STS_ERROR;
122 END IF;
123 END IF;
124
125 IF p_CON_rec.creation_date IS NOT NULL AND
126 ( p_CON_rec.creation_date <>
127 p_old_CON_rec.creation_date OR
128 p_old_CON_rec.creation_date IS NULL )
129 THEN
130 IF NOT QP_Validate.Creation_Date(p_CON_rec.creation_date) THEN
131 x_return_status := FND_API.G_RET_STS_ERROR;
132 END IF;
133 END IF;
134
135 IF p_CON_rec.enabled_flag IS NOT NULL AND
136 ( p_CON_rec.enabled_flag <>
137 p_old_CON_rec.enabled_flag OR
138 p_old_CON_rec.enabled_flag IS NULL )
139 THEN
140 IF NOT QP_Validate.Enabled(p_CON_rec.enabled_flag) THEN
141 x_return_status := FND_API.G_RET_STS_ERROR;
142 END IF;
143 END IF;
144
145 IF p_CON_rec.last_updated_by IS NOT NULL AND
146 ( p_CON_rec.last_updated_by <>
147 p_old_CON_rec.last_updated_by OR
148 p_old_CON_rec.last_updated_by IS NULL )
149 THEN
150 IF NOT QP_Validate.Last_Updated_By(p_CON_rec.last_updated_by) THEN
151 x_return_status := FND_API.G_RET_STS_ERROR;
152 END IF;
153 END IF;
154
155 IF p_CON_rec.last_update_date IS NOT NULL AND
156 ( p_CON_rec.last_update_date <>
157 p_old_CON_rec.last_update_date OR
158 p_old_CON_rec.last_update_date IS NULL )
159 THEN
160 IF NOT QP_Validate.Last_Update_Date(p_CON_rec.last_update_date) THEN
161 x_return_status := FND_API.G_RET_STS_ERROR;
162 END IF;
163 END IF;
164
165 IF p_CON_rec.last_update_login IS NOT NULL AND
166 ( p_CON_rec.last_update_login <>
167 p_old_CON_rec.last_update_login OR
168 p_old_CON_rec.last_update_login IS NULL )
169 THEN
170 IF NOT QP_Validate.Last_Update_Login(p_CON_rec.last_update_login) THEN
171 x_return_status := FND_API.G_RET_STS_ERROR;
172 END IF;
173 END IF;
174
175 IF p_CON_rec.prc_context_code IS NOT NULL AND
176 ( p_CON_rec.prc_context_code <>
177 p_old_CON_rec.prc_context_code OR
178 p_old_CON_rec.prc_context_code IS NULL )
179 THEN
180 IF NOT QP_Validate.Prc_Context_code(p_CON_rec.prc_context_code) THEN
181 x_return_status := FND_API.G_RET_STS_ERROR;
182 END IF;
183 END IF;
184
185 IF p_CON_rec.prc_context_id IS NOT NULL AND
186 ( p_CON_rec.prc_context_id <>
187 p_old_CON_rec.prc_context_id OR
188 p_old_CON_rec.prc_context_id IS NULL )
189 THEN
190 IF NOT QP_Validate.Prc_Context(p_CON_rec.prc_context_id) THEN
191 x_return_status := FND_API.G_RET_STS_ERROR;
192 END IF;
193 END IF;
194
195 IF p_CON_rec.prc_context_type IS NOT NULL AND
196 ( p_CON_rec.prc_context_type <>
197 p_old_CON_rec.prc_context_type OR
198 p_old_CON_rec.prc_context_type IS NULL )
199 THEN
200 IF NOT QP_Validate.Prc_Context_Type(p_CON_rec.prc_context_type) THEN
201 x_return_status := FND_API.G_RET_STS_ERROR;
202 END IF;
203 END IF;
204
205 IF p_CON_rec.program_application_id IS NOT NULL AND
206 ( p_CON_rec.program_application_id <>
207 p_old_CON_rec.program_application_id OR
208 p_old_CON_rec.program_application_id IS NULL )
209 THEN
210 IF NOT QP_Validate.Program_Application(p_CON_rec.program_application_id) THEN
211 x_return_status := FND_API.G_RET_STS_ERROR;
212 END IF;
213 END IF;
214
215 IF p_CON_rec.program_id IS NOT NULL AND
216 ( p_CON_rec.program_id <>
217 p_old_CON_rec.program_id OR
218 p_old_CON_rec.program_id IS NULL )
219 THEN
220 IF NOT QP_Validate.Program(p_CON_rec.program_id) THEN
221 x_return_status := FND_API.G_RET_STS_ERROR;
222 END IF;
223 END IF;
224
225 IF p_CON_rec.program_update_date IS NOT NULL AND
226 ( p_CON_rec.program_update_date <>
227 p_old_CON_rec.program_update_date OR
228 p_old_CON_rec.program_update_date IS NULL )
229 THEN
230 IF NOT QP_Validate.Program_Update_Date(p_CON_rec.program_update_date) THEN
231 x_return_status := FND_API.G_RET_STS_ERROR;
232 END IF;
233 END IF;
234
235 IF p_CON_rec.seeded_description IS NOT NULL AND
236 ( p_CON_rec.seeded_description <>
237 p_old_CON_rec.seeded_description OR
238 p_old_CON_rec.seeded_description IS NULL )
239 THEN
240 IF NOT QP_Validate.Seeded_Description(p_CON_rec.seeded_description) THEN
241 x_return_status := FND_API.G_RET_STS_ERROR;
242 END IF;
243 END IF;
244
245 IF p_CON_rec.seeded_flag IS NOT NULL AND
246 ( p_CON_rec.seeded_flag <>
247 p_old_CON_rec.seeded_flag OR
248 p_old_CON_rec.seeded_flag IS NULL )
249 THEN
250 IF NOT QP_Validate.Seeded(p_CON_rec.seeded_flag) THEN
251 x_return_status := FND_API.G_RET_STS_ERROR;
252 END IF;
253 END IF;
254
255 IF p_CON_rec.seeded_prc_context_name IS NOT NULL AND
256 ( p_CON_rec.seeded_prc_context_name <>
257 p_old_CON_rec.seeded_prc_context_name OR
258 p_old_CON_rec.seeded_prc_context_name IS NULL )
259 THEN
260 IF NOT QP_Validate.Seeded_Prc_Context_Name(p_CON_rec.seeded_prc_context_name) THEN
261 x_return_status := FND_API.G_RET_STS_ERROR;
262 END IF;
263 END IF;
264
265 IF p_CON_rec.user_description IS NOT NULL AND
266 ( p_CON_rec.user_description <>
267 p_old_CON_rec.user_description OR
268 p_old_CON_rec.user_description IS NULL )
269 THEN
270 IF NOT QP_Validate.User_Description(p_CON_rec.user_description) THEN
271 x_return_status := FND_API.G_RET_STS_ERROR;
272 END IF;
273 END IF;
274
275 IF p_CON_rec.user_prc_context_name IS NOT NULL AND
276 ( p_CON_rec.user_prc_context_name <>
277 p_old_CON_rec.user_prc_context_name OR
278 p_old_CON_rec.user_prc_context_name IS NULL )
279 THEN
280 IF NOT QP_Validate.User_Prc_Context_Name(p_CON_rec.user_prc_context_name) THEN
281 x_return_status := FND_API.G_RET_STS_ERROR;
282 END IF;
283 END IF;
284
285 IF (p_CON_rec.attribute1 IS NOT NULL AND
286 ( p_CON_rec.attribute1 <>
287 p_old_CON_rec.attribute1 OR
288 p_old_CON_rec.attribute1 IS NULL ))
289 OR (p_CON_rec.attribute10 IS NOT NULL AND
290 ( p_CON_rec.attribute10 <>
291 p_old_CON_rec.attribute10 OR
292 p_old_CON_rec.attribute10 IS NULL ))
293 OR (p_CON_rec.attribute11 IS NOT NULL AND
294 ( p_CON_rec.attribute11 <>
295 p_old_CON_rec.attribute11 OR
296 p_old_CON_rec.attribute11 IS NULL ))
297 OR (p_CON_rec.attribute12 IS NOT NULL AND
298 ( p_CON_rec.attribute12 <>
299 p_old_CON_rec.attribute12 OR
300 p_old_CON_rec.attribute12 IS NULL ))
301 OR (p_CON_rec.attribute13 IS NOT NULL AND
302 ( p_CON_rec.attribute13 <>
303 p_old_CON_rec.attribute13 OR
304 p_old_CON_rec.attribute13 IS NULL ))
305 OR (p_CON_rec.attribute14 IS NOT NULL AND
306 ( p_CON_rec.attribute14 <>
307 p_old_CON_rec.attribute14 OR
308 p_old_CON_rec.attribute14 IS NULL ))
309 OR (p_CON_rec.attribute15 IS NOT NULL AND
310 ( p_CON_rec.attribute15 <>
311 p_old_CON_rec.attribute15 OR
312 p_old_CON_rec.attribute15 IS NULL ))
313 OR (p_CON_rec.attribute2 IS NOT NULL AND
314 ( p_CON_rec.attribute2 <>
315 p_old_CON_rec.attribute2 OR
316 p_old_CON_rec.attribute2 IS NULL ))
317 OR (p_CON_rec.attribute3 IS NOT NULL AND
318 ( p_CON_rec.attribute3 <>
319 p_old_CON_rec.attribute3 OR
320 p_old_CON_rec.attribute3 IS NULL ))
321 OR (p_CON_rec.attribute4 IS NOT NULL AND
322 ( p_CON_rec.attribute4 <>
323 p_old_CON_rec.attribute4 OR
324 p_old_CON_rec.attribute4 IS NULL ))
325 OR (p_CON_rec.attribute5 IS NOT NULL AND
326 ( p_CON_rec.attribute5 <>
327 p_old_CON_rec.attribute5 OR
328 p_old_CON_rec.attribute5 IS NULL ))
329 OR (p_CON_rec.attribute6 IS NOT NULL AND
330 ( p_CON_rec.attribute6 <>
331 p_old_CON_rec.attribute6 OR
332 p_old_CON_rec.attribute6 IS NULL ))
333 OR (p_CON_rec.attribute7 IS NOT NULL AND
334 ( p_CON_rec.attribute7 <>
335 p_old_CON_rec.attribute7 OR
336 p_old_CON_rec.attribute7 IS NULL ))
337 OR (p_CON_rec.attribute8 IS NOT NULL AND
338 ( p_CON_rec.attribute8 <>
339 p_old_CON_rec.attribute8 OR
340 p_old_CON_rec.attribute8 IS NULL ))
341 OR (p_CON_rec.attribute9 IS NOT NULL AND
342 ( p_CON_rec.attribute9 <>
343 p_old_CON_rec.attribute9 OR
344 p_old_CON_rec.attribute9 IS NULL ))
345 OR (p_CON_rec.context IS NOT NULL AND
346 ( p_CON_rec.context <>
347 p_old_CON_rec.context OR
348 p_old_CON_rec.context IS NULL ))
349 THEN
350
351 -- These calls are temporarily commented out
352
353 /*
354 FND_FLEX_DESC_VAL.Set_Column_Value
355 ( column_name => 'ATTRIBUTE1'
356 , column_value => p_CON_rec.attribute1
357 );
358 FND_FLEX_DESC_VAL.Set_Column_Value
359 ( column_name => 'ATTRIBUTE10'
360 , column_value => p_CON_rec.attribute10
361 );
362 FND_FLEX_DESC_VAL.Set_Column_Value
363 ( column_name => 'ATTRIBUTE11'
364 , column_value => p_CON_rec.attribute11
365 );
366 FND_FLEX_DESC_VAL.Set_Column_Value
367 ( column_name => 'ATTRIBUTE12'
368 , column_value => p_CON_rec.attribute12
369 );
370 FND_FLEX_DESC_VAL.Set_Column_Value
371 ( column_name => 'ATTRIBUTE13'
372 , column_value => p_CON_rec.attribute13
373 );
374 FND_FLEX_DESC_VAL.Set_Column_Value
375 ( column_name => 'ATTRIBUTE14'
376 , column_value => p_CON_rec.attribute14
377 );
378 FND_FLEX_DESC_VAL.Set_Column_Value
379 ( column_name => 'ATTRIBUTE15'
380 , column_value => p_CON_rec.attribute15
381 );
382 FND_FLEX_DESC_VAL.Set_Column_Value
383 ( column_name => 'ATTRIBUTE2'
384 , column_value => p_CON_rec.attribute2
385 );
386 FND_FLEX_DESC_VAL.Set_Column_Value
387 ( column_name => 'ATTRIBUTE3'
388 , column_value => p_CON_rec.attribute3
389 );
390 FND_FLEX_DESC_VAL.Set_Column_Value
391 ( column_name => 'ATTRIBUTE4'
392 , column_value => p_CON_rec.attribute4
393 );
394 FND_FLEX_DESC_VAL.Set_Column_Value
395 ( column_name => 'ATTRIBUTE5'
396 , column_value => p_CON_rec.attribute5
397 );
398 FND_FLEX_DESC_VAL.Set_Column_Value
399 ( column_name => 'ATTRIBUTE6'
400 , column_value => p_CON_rec.attribute6
401 );
402 FND_FLEX_DESC_VAL.Set_Column_Value
403 ( column_name => 'ATTRIBUTE7'
404 , column_value => p_CON_rec.attribute7
405 );
406 FND_FLEX_DESC_VAL.Set_Column_Value
407 ( column_name => 'ATTRIBUTE8'
408 , column_value => p_CON_rec.attribute8
409 );
410 FND_FLEX_DESC_VAL.Set_Column_Value
411 ( column_name => 'ATTRIBUTE9'
412 , column_value => p_CON_rec.attribute9
413 );
414 FND_FLEX_DESC_VAL.Set_Column_Value
415 ( column_name => 'CONTEXT'
416 , column_value => p_CON_rec.context
417 );
418 */
419
420 -- Validate descriptive flexfield.
421
422 IF NOT QP_Validate.Desc_Flex( 'CON' ) THEN
423 x_return_status := FND_API.G_RET_STS_ERROR;
424 END IF;
425
426 END IF;
427
428 -- Done validating attributes
429
430 EXCEPTION
431
432 WHEN FND_API.G_EXC_ERROR THEN
433
434 x_return_status := FND_API.G_RET_STS_ERROR;
435
436 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
437
438 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
439
440 WHEN OTHERS THEN
441
442 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
443
444 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
445 THEN
446 OE_MSG_PUB.Add_Exc_Msg
447 ( G_PKG_NAME
448 , 'Attributes'
449 );
450 END IF;
451
452 END Attributes;
453
454 -- Procedure Entity_Delete
455
456 PROCEDURE Entity_Delete
457 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
458 , p_CON_rec IN QP_Attributes_PUB.Con_Rec_Type
459 )
460 IS
461 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
462 dummy varchar2(1);
463 BEGIN
464
465 -- Validate entity delete.
466
467 NULL;
468 /*
469 begin
470 select 's'
471 into dummy
472 from qp_segments_b
473 where segment_id = p_CON_rec.prc_context_id and
474 rownum = 1;
475 l_return_status := FND_API.G_RET_STS_ERROR;
476 FND_MESSAGE.SET_NAME('QP','QP_CANNOT_DELETE_CONTEXT');
477 OE_MSG_PUB.Add;
478
479 raise fnd_api.g_exc_error;
480 exception
481 when no_data_found then
482 l_return_status := FND_API.G_RET_STS_SUCCESS;
483 end;
484 */
485 x_return_status := l_return_status;
486
487 -- Done.
488
489 EXCEPTION
490
491 WHEN FND_API.G_EXC_ERROR THEN
492
493 x_return_status := FND_API.G_RET_STS_ERROR;
494
495 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
496
497 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
498
499 WHEN OTHERS THEN
500
501 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
502
503 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
504 THEN
505 OE_MSG_PUB.Add_Exc_Msg
506 ( G_PKG_NAME
507 , 'Entity_Delete'
508 );
509 END IF;
510
511 END Entity_Delete;
512
513 END QP_Validate_Con;