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