DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_VALIDATE_RES

Source


1 PACKAGE BODY WIP_Validate_Res AS
2 /* $Header: WIPLRESB.pls 115.11 2002/11/28 11:43:17 rmahidha ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'WIP_Validate_Res';
7 
8 --  Procedure Entity
9 
10 PROCEDURE Entity
11 (   x_return_status                 OUT NOCOPY VARCHAR2
12 ,   p_validation_level		    IN  NUMBER DEFAULT NULL
13 ,   p_Res_rec                       IN  WIP_Transaction_PUB.Res_Rec_Type
14 ,   p_old_Res_rec                   IN  WIP_Transaction_PUB.Res_Rec_Type
15 )
16 IS
17    l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18    l_dummy                       VARCHAR2(10) := NULL;
19 BEGIN
20 
21     IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) = WIP_Transaction_PVT.NONE then
22         x_return_status := l_return_status;
23 	return;
24     END IF;
25 
26     --  Check required Resource/OSP attributes.
27 
28     IF  p_Res_rec.acct_period_id IS NULL
29     THEN
30         l_return_status := FND_API.G_RET_STS_ERROR;
31 
32 	WIP_Globals.Add_Error_Message(
33 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
34 				      p_token1_name    => 'ATTRIBUTE',
35 				      p_token1_value   => 'acct_period_id');
36     END IF;
37 
38     IF  p_Res_rec.autocharge_type IS NULL
39     THEN
40         l_return_status := FND_API.G_RET_STS_ERROR;
41 
42 	WIP_Globals.Add_Error_Message(
43 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
44 				      p_token1_name    => 'ATTRIBUTE',
45 				      p_token1_value   => 'autocharge_type');
46     END IF;
47 
48     IF  p_Res_rec.basis_type IS NULL
49     THEN
50         l_return_status := FND_API.G_RET_STS_ERROR;
51 
52 	WIP_Globals.Add_Error_Message(
53 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
54 				      p_token1_name    => 'ATTRIBUTE',
55 				      p_token1_value   => 'basis_type');
56     END IF;
57 
58     IF  p_Res_rec.department_code IS NULL
59     THEN
60         l_return_status := FND_API.G_RET_STS_ERROR;
61 
62 	WIP_Globals.Add_Error_Message(
63 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
64 				      p_token1_name    => 'ATTRIBUTE',
65 				      p_token1_value   => 'department_code');
66     END IF;
67 
68     IF  p_Res_rec.department_id IS NULL
69     THEN
70         l_return_status := FND_API.G_RET_STS_ERROR;
71 
72 	WIP_Globals.Add_Error_Message(
73 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
74 				      p_token1_name    => 'ATTRIBUTE',
75 				      p_token1_value   => 'department_id');
76     END IF;
77 
78     IF  p_Res_rec.entity_type IS NULL
79     THEN
80         l_return_status := FND_API.G_RET_STS_ERROR;
81 
82 	WIP_Globals.Add_Error_Message(
83 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
84 				      p_token1_name    => 'ATTRIBUTE',
85 				      p_token1_value   => 'entity_type');
86     END IF;
87 
88     IF  p_Res_rec.last_updated_by_name IS NULL
89     THEN
90         l_return_status := FND_API.G_RET_STS_ERROR;
91 
92 	WIP_Globals.Add_Error_Message(
93 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
94 				      p_token1_name    => 'ATTRIBUTE',
95 				      p_token1_value   => 'last_updated_by_name');
96     END IF;
97 
98     IF  p_Res_rec.operation_seq_num IS NULL
99     THEN
100         l_return_status := FND_API.G_RET_STS_ERROR;
101 
102 	WIP_Globals.Add_Error_Message(
103 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
104 				      p_token1_name    => 'ATTRIBUTE',
105 				      p_token1_value   => 'operation_seq_num');
106     END IF;
107 
108     IF  p_Res_rec.organization_code IS NULL
109     THEN
110         l_return_status := FND_API.G_RET_STS_ERROR;
111 
112 	WIP_Globals.Add_Error_Message(
113 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
114 				      p_token1_name    => 'ATTRIBUTE',
115 				      p_token1_value   => 'organization_code');
116     END IF;
117 
118     IF  p_Res_rec.organization_id IS NULL
119     THEN
120         l_return_status := FND_API.G_RET_STS_ERROR;
121 
122 	WIP_Globals.Add_Error_Message(
123 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
124 				      p_token1_name    => 'ATTRIBUTE',
125 				      p_token1_value   => 'organization_id');
126     END IF;
127 
128     IF  p_Res_rec.primary_item_id IS NULL
129     THEN
130         l_return_status := FND_API.G_RET_STS_ERROR;
131 
132 	WIP_Globals.Add_Error_Message(
133 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
134 				      p_token1_name    => 'ATTRIBUTE',
135 				      p_token1_value   => 'primary_item_id');
136     END IF;
137 
138     IF  p_Res_rec.primary_quantity IS NULL
139     THEN
140         l_return_status := FND_API.G_RET_STS_ERROR;
141 
142 	WIP_Globals.Add_Error_Message(
143 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
144 				      p_token1_name    => 'ATTRIBUTE',
145 				      p_token1_value   => 'primary_quantity');
146     END IF;
147 
148     IF  p_Res_rec.primary_uom IS NULL
149     THEN
150         l_return_status := FND_API.G_RET_STS_ERROR;
151 
152 	WIP_Globals.Add_Error_Message(
153 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
154 				      p_token1_name    => 'ATTRIBUTE',
155 				      p_token1_value   => 'primary_uom');
156     END IF;
157 
158     IF  p_Res_rec.process_phase IS NULL
159     THEN
160         l_return_status := FND_API.G_RET_STS_ERROR;
161 
162 	WIP_Globals.Add_Error_Message(
163 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
164 				      p_token1_name    => 'ATTRIBUTE',
165 				      p_token1_value   => 'process_phase');
166     END IF;
167 
168     IF  p_Res_rec.process_status IS NULL
169     THEN
170         l_return_status := FND_API.G_RET_STS_ERROR;
171 
172 	WIP_Globals.Add_Error_Message(
173 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
174 				      p_token1_name    => 'ATTRIBUTE',
175 				      p_token1_value   => 'process_status');
176     END IF;
177 
178     IF  p_Res_rec.resource_code IS NULL
179     THEN
180         l_return_status := FND_API.G_RET_STS_ERROR;
181 
182 	WIP_Globals.Add_Error_Message(
183 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
184 				      p_token1_name    => 'ATTRIBUTE',
185 				      p_token1_value   => 'resource_code');
186     END IF;
187 
188     IF  p_Res_rec.resource_id IS NULL
189     THEN
190         l_return_status := FND_API.G_RET_STS_ERROR;
191 
192 	WIP_Globals.Add_Error_Message(
193 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
194 				      p_token1_name    => 'ATTRIBUTE',
195 				      p_token1_value   => 'resource_id');
196     END IF;
197 
198     IF  p_Res_rec.resource_seq_num IS NULL
199     THEN
200         l_return_status := FND_API.G_RET_STS_ERROR;
201 
202 	WIP_Globals.Add_Error_Message(
203 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
204 				      p_token1_name    => 'ATTRIBUTE',
205 				      p_token1_value   => 'resource_seq_num');
206     END IF;
207 
208     IF  p_Res_rec.standard_rate_flag IS NULL
209     THEN
210         l_return_status := FND_API.G_RET_STS_ERROR;
211 
212 	WIP_Globals.Add_Error_Message(
213 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
214 				      p_token1_name    => 'ATTRIBUTE',
215 				      p_token1_value   => 'standard_rate_flag');
216     END IF;
217 
218     IF  p_Res_rec.transaction_date IS NULL
219     THEN
220         l_return_status := FND_API.G_RET_STS_ERROR;
221 
222 	WIP_Globals.Add_Error_Message(
223 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
224 				      p_token1_name    => 'ATTRIBUTE',
225 				      p_token1_value   => 'transaction_date');
226     END IF;
227 
228     IF  p_Res_rec.transaction_quantity IS NULL
229     THEN
230         l_return_status := FND_API.G_RET_STS_ERROR;
231 
232 	WIP_Globals.Add_Error_Message(
233 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
234 				      p_token1_name    => 'ATTRIBUTE',
235 				      p_token1_value   => 'transaction_quantity');
236     END IF;
237 
238     IF  p_Res_rec.transaction_type IS NULL
239     THEN
240         l_return_status := FND_API.G_RET_STS_ERROR;
241 
242 	WIP_Globals.Add_Error_Message(
243 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
244 				      p_token1_name    => 'ATTRIBUTE',
245 				      p_token1_value   => 'transaction_type');
246     END IF;
247 
248     IF  p_Res_rec.usage_rate_or_amount IS NULL
249     THEN
250         l_return_status := FND_API.G_RET_STS_ERROR;
251 
252 	WIP_Globals.Add_Error_Message(
253 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
254 				      p_token1_name    => 'ATTRIBUTE',
255 				      p_token1_value   => 'usage_rate_or_amount');
256     END IF;
257 
258     IF  p_Res_rec.wip_entity_id IS NULL
259     THEN
260         l_return_status := FND_API.G_RET_STS_ERROR;
261 
262 	WIP_Globals.Add_Error_Message(
263 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
264 				      p_token1_name    => 'ATTRIBUTE',
265 				      p_token1_value   => 'wip_entity_id');
266     END IF;
267 
268     IF  p_Res_rec.wip_entity_name IS NULL
269     THEN
270         l_return_status := FND_API.G_RET_STS_ERROR;
271 
272 	WIP_Globals.Add_Error_Message(
273 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
274 				      p_token1_name    => 'ATTRIBUTE',
275 				      p_token1_value   => 'wip_entity_name');
276     END IF;
277 
278 
279 
280     IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) <= WIP_Transaction_PVT.REQUIRED THEN
281         x_return_status := l_return_status;
282 	return;
283     END IF;
284 
285 
286     --
287     --  Check conditionally required attributes here.
288     --
289 
290     IF  p_Res_rec.repetitive_schedule_id IS NOT NULL
291       AND p_Res_rec.line_id IS NULL
292     THEN
293         l_return_status := FND_API.G_RET_STS_ERROR;
294 
295 	WIP_Globals.Add_Error_Message(
296 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
297 				      p_token1_name    => 'ATTRIBUTE',
298 				      p_token1_value   => 'line_id');
299     END IF;
300 
301 
302     IF  p_Res_rec.repetitive_schedule_id IS NOT NULL
303       AND p_Res_rec.line_code IS NULL
304     THEN
305         l_return_status := FND_API.G_RET_STS_ERROR;
306 
307 	WIP_Globals.Add_Error_Message(
308 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
309 				      p_token1_name    => 'ATTRIBUTE',
310 				      p_token1_value   => 'line_code');
311     END IF;
312 
313 
314     IF  p_Res_rec.project_id IS NOT NULL
315       AND p_Res_rec.task_id IS NULL
316     THEN
317        BEGIN
318 	  SELECT  'VALID'
319 	    INTO     l_dummy
320 	    FROM     mtl_parameters mp
321 	    WHERE    mp.organization_id = p_Res_rec.organization_id
322 	    AND      mp.project_reference_enabled = 1
323 	    AND      mp.project_control_level = 2;
324        EXCEPTION
325 	  WHEN OTHERS THEN
326 	     l_return_status := FND_API.G_RET_STS_ERROR;
327 
328 	     WIP_Globals.Add_Error_Message(
329 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
330 				      p_token1_name    => 'ATTRIBUTE',
331 				      p_token1_value   => 'project_id');
332        END;
333     END IF;
334 
335     IF  p_Res_rec.activity_id IS NOT NULL
336       AND p_Res_rec.activity_name IS NULL
337     THEN
338         l_return_status := FND_API.G_RET_STS_ERROR;
339 
340 	WIP_Globals.Add_Error_Message(
341 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
342 				      p_token1_name    => 'ATTRIBUTE',
343 				      p_token1_value   => 'activity_name');
344     END IF;
345 
346 
347     -- check the following attributes if OSP transaction
348     IF  p_Res_rec.transaction_type = WIP_CONSTANTS.OSP_TXN then
349 
350         IF  p_Res_rec.po_header_id IS NULL
351         THEN
352             l_return_status := FND_API.G_RET_STS_ERROR;
353 
354 	    WIP_Globals.Add_Error_Message(
355 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
356 				      p_token1_name    => 'ATTRIBUTE',
357 				      p_token1_value   => 'po_header_id');
358         END IF;
359 
360 
361         IF  p_Res_rec.po_line_id IS NULL
362         THEN
363             l_return_status := FND_API.G_RET_STS_ERROR;
364 
365 	    WIP_Globals.Add_Error_Message(
366 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
367 				      p_token1_name    => 'ATTRIBUTE',
368 				      p_token1_value   => 'po_line_id');
369         END IF;
370 
371 
372         IF  p_Res_rec.rcv_transaction_id IS NULL
373         THEN
374             l_return_status := FND_API.G_RET_STS_ERROR;
375 
376 	    WIP_Globals.Add_Error_Message(
377 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
378 				      p_token1_name    => 'ATTRIBUTE',
379 				      p_token1_value   => 'rcv_transaction_id');
380         END IF;
381 
382         IF  p_Res_rec.source_code IS NULL
383         THEN
384             l_return_status := FND_API.G_RET_STS_ERROR;
385 
386 	    WIP_Globals.Add_Error_Message(
387 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
388 				      p_token1_name    => 'ATTRIBUTE',
389 				      p_token1_value   => 'source_code');
390         END IF;
391 
392         IF  p_Res_rec.source_line_id IS NULL
393         THEN
394             l_return_status := FND_API.G_RET_STS_ERROR;
395 
396 	    WIP_Globals.Add_Error_Message(
397 				      p_message_name   => 'WIP_ATTRIBUTE_REQUIRED',
398 				      p_token1_name    => 'ATTRIBUTE',
399 				      p_token1_value   => 'source_line_id');
400         END IF;
401 
402     END IF;
403     --  Return Error if a required attribute is missing.
404 
405     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
406         RAISE FND_API.G_EXC_ERROR;
407     END IF;
408 
409     --  Do any other specific entity validations here.
410 
411     --  Done validating entity
412 
413     x_return_status := l_return_status;
414 
415 EXCEPTION
416 
417     WHEN FND_API.G_EXC_ERROR THEN
418 
419         x_return_status := FND_API.G_RET_STS_ERROR;
420 
421     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
422 
423         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
424 
425     WHEN OTHERS THEN
426 
427         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
428 
429         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
430         THEN
431             FND_MSG_PUB.Add_Exc_Msg
432             (   G_PKG_NAME
433             ,   'Entity'
434             );
435         END IF;
436 
437 END Entity;
438 
439 --  Procedure Attributes
440 
441 PROCEDURE Attributes
442 (   x_return_status                 OUT NOCOPY VARCHAR2
443 ,   p_validation_level		    IN  NUMBER DEFAULT NULL
444 ,   p_Res_rec                       IN  WIP_Transaction_PUB.Res_Rec_Type
445 ,   p_old_Res_rec                   IN  WIP_Transaction_PUB.Res_Rec_Type
446 )
447 IS
448 BEGIN
449 
450     x_return_status := FND_API.G_RET_STS_SUCCESS;
451 
452     IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) = WIP_Transaction_PVT.NONE then
453 	return;
454     END IF;
455 
456     --  Validate Resource attributes
457 
458     IF  p_Res_rec.acct_period_id IS NOT NULL AND
459         (   p_Res_rec.acct_period_id <>
460             p_old_Res_rec.acct_period_id OR
461             p_old_Res_rec.acct_period_id IS NULL )
462     THEN
463        IF NOT WIP_Validate.Acct_Period(p_Res_rec.acct_period_id,
464 				       p_Res_rec.organization_id) THEN
465             x_return_status := FND_API.G_RET_STS_ERROR;
466         END IF;
467     END IF;
468 
469     IF  p_Res_rec.activity_id IS NOT NULL AND
470         (   p_Res_rec.activity_id <>
471             p_old_Res_rec.activity_id OR
472             p_old_Res_rec.activity_id IS NULL )
473     THEN
474         IF NOT WIP_Validate.Activity(p_Res_rec.activity_id) THEN
475             x_return_status := FND_API.G_RET_STS_ERROR;
476         END IF;
477     END IF;
478 
479     IF  p_Res_rec.activity_name IS NOT NULL AND
480         (   p_Res_rec.activity_name <>
481             p_old_Res_rec.activity_name OR
482             p_old_Res_rec.activity_name IS NULL )
483     THEN
484         IF NOT WIP_Validate.Activity_Name(p_Res_rec.activity_name) THEN
485             x_return_status := FND_API.G_RET_STS_ERROR;
486         END IF;
487     END IF;
488 
489     IF  p_Res_rec.actual_resource_rate IS NOT NULL AND
490         (   p_Res_rec.actual_resource_rate <>
491             p_old_Res_rec.actual_resource_rate OR
492             p_old_Res_rec.actual_resource_rate IS NULL )
493     THEN
494         IF NOT WIP_Validate.Actual_Resource_Rate(p_Res_rec.actual_resource_rate) THEN
495             x_return_status := FND_API.G_RET_STS_ERROR;
496         END IF;
497     END IF;
498 
499     IF  p_Res_rec.autocharge_type IS NOT NULL AND
500         (   p_Res_rec.autocharge_type <>
501             p_old_Res_rec.autocharge_type OR
502             p_old_Res_rec.autocharge_type IS NULL )
503     THEN
504         IF NOT WIP_Validate.Autocharge_Type(p_Res_rec.autocharge_type) THEN
505             x_return_status := FND_API.G_RET_STS_ERROR;
506         END IF;
507     END IF;
508 
509     IF  p_Res_rec.basis_type IS NOT NULL AND
510         (   p_Res_rec.basis_type <>
511             p_old_Res_rec.basis_type OR
512             p_old_Res_rec.basis_type IS NULL )
513     THEN
514         IF NOT WIP_Validate.Basis_Type(p_Res_rec.basis_type) THEN
515             x_return_status := FND_API.G_RET_STS_ERROR;
516         END IF;
517     END IF;
518 
519     IF  p_Res_rec.completion_transaction_id IS NOT NULL AND
520         (   p_Res_rec.completion_transaction_id <>
521             p_old_Res_rec.completion_transaction_id OR
522             p_old_Res_rec.completion_transaction_id IS NULL )
523     THEN
524         IF NOT WIP_Validate.Completion_Transaction(p_Res_rec.completion_transaction_id) THEN
525             x_return_status := FND_API.G_RET_STS_ERROR;
526         END IF;
527     END IF;
528 
529     /*
530     IF  p_Res_rec.created_by IS NOT NULL AND
531         (   p_Res_rec.created_by <>
532             p_old_Res_rec.created_by OR
533             p_old_Res_rec.created_by IS NULL )
534     THEN
535         IF NOT WIP_Validate.Created_By(p_Res_rec.created_by) THEN
536             x_return_status := FND_API.G_RET_STS_ERROR;
537         END IF;
538     END IF;
539       */
540 
541     IF  p_Res_rec.created_by_name IS NOT NULL AND
542         (   p_Res_rec.created_by_name <>
543             p_old_Res_rec.created_by_name OR
544             p_old_Res_rec.created_by_name IS NULL )
545     THEN
546         IF NOT WIP_Validate.Created_By_Name(p_Res_rec.created_by_name) THEN
547             x_return_status := FND_API.G_RET_STS_ERROR;
548         END IF;
549     END IF;
550 
551     /*
552     IF  p_Res_rec.creation_date IS NOT NULL AND
553         (   p_Res_rec.creation_date <>
554             p_old_Res_rec.creation_date OR
555             p_old_Res_rec.creation_date IS NULL )
556     THEN
557         IF NOT WIP_Validate.Creation_Date(p_Res_rec.creation_date) THEN
558             x_return_status := FND_API.G_RET_STS_ERROR;
559         END IF;
560       END IF;
561       */
562 
563     IF  p_Res_rec.currency_actual_rsc_rate IS NOT NULL AND
564         (   p_Res_rec.currency_actual_rsc_rate <>
565             p_old_Res_rec.currency_actual_rsc_rate OR
566             p_old_Res_rec.currency_actual_rsc_rate IS NULL )
567     THEN
568         IF NOT WIP_Validate.Currency_Actual_Rsc_Rate(p_Res_rec.currency_actual_rsc_rate) THEN
569             x_return_status := FND_API.G_RET_STS_ERROR;
570         END IF;
571     END IF;
572 
573     IF  p_Res_rec.currency_code IS NOT NULL AND
574         (   p_Res_rec.currency_code <>
575             p_old_Res_rec.currency_code OR
576             p_old_Res_rec.currency_code IS NULL )
577     THEN
578         IF NOT WIP_Validate.Currency(p_Res_rec.currency_code) THEN
579             x_return_status := FND_API.G_RET_STS_ERROR;
580         END IF;
581     END IF;
582 
583     IF  p_Res_rec.currency_conversion_date IS NOT NULL AND
584         (   p_Res_rec.currency_conversion_date <>
585             p_old_Res_rec.currency_conversion_date OR
586             p_old_Res_rec.currency_conversion_date IS NULL )
587     THEN
588         IF NOT WIP_Validate.Currency_Conversion_Date(p_Res_rec.currency_conversion_date) THEN
589             x_return_status := FND_API.G_RET_STS_ERROR;
590         END IF;
591     END IF;
592 
593     IF  p_Res_rec.currency_conversion_rate IS NOT NULL AND
594         (   p_Res_rec.currency_conversion_rate <>
595             p_old_Res_rec.currency_conversion_rate OR
596             p_old_Res_rec.currency_conversion_rate IS NULL )
597     THEN
598         IF NOT WIP_Validate.Currency_Conversion_Rate(p_Res_rec.currency_conversion_rate) THEN
599             x_return_status := FND_API.G_RET_STS_ERROR;
600         END IF;
601     END IF;
602 
603     IF  p_Res_rec.currency_conversion_type IS NOT NULL AND
604         (   p_Res_rec.currency_conversion_type <>
605             p_old_Res_rec.currency_conversion_type OR
606             p_old_Res_rec.currency_conversion_type IS NULL )
607     THEN
608         IF NOT WIP_Validate.Currency_Conversion_Type(p_Res_rec.currency_conversion_type) THEN
609             x_return_status := FND_API.G_RET_STS_ERROR;
610         END IF;
611     END IF;
612 
613     IF  p_Res_rec.department_code IS NOT NULL AND
614         (   p_Res_rec.department_code <>
615             p_old_Res_rec.department_code OR
616             p_old_Res_rec.department_code IS NULL )
617     THEN
618         IF NOT WIP_Validate.Department_Code(p_Res_rec.department_code, p_Res_rec.organization_id) THEN
619             x_return_status := FND_API.G_RET_STS_ERROR;
620         END IF;
621     END IF;
622 
623     IF  p_Res_rec.department_id IS NOT NULL AND
624         (   p_Res_rec.department_id <>
625             p_old_Res_rec.department_id OR
626             p_old_Res_rec.department_id IS NULL )
627     THEN
628         IF NOT WIP_Validate.Department_Id(p_Res_rec.department_id, p_Res_rec.organization_id) THEN
629             x_return_status := FND_API.G_RET_STS_ERROR;
630         END IF;
631     END IF;
632 
633     IF  p_Res_rec.employee_id IS NOT NULL AND
634         (   p_Res_rec.employee_id <>
635             p_old_Res_rec.employee_id OR
636             p_old_Res_rec.employee_id IS NULL )
637     THEN
638         IF NOT WIP_Validate.Employee(p_Res_rec.employee_id) THEN
639             x_return_status := FND_API.G_RET_STS_ERROR;
640         END IF;
641     END IF;
642 
643     IF  p_Res_rec.employee_num IS NOT NULL AND
644         (   p_Res_rec.employee_num <>
645             p_old_Res_rec.employee_num OR
646             p_old_Res_rec.employee_num IS NULL )
647     THEN
648         IF NOT WIP_Validate.Employee_Num(p_Res_rec.employee_num) THEN
649             x_return_status := FND_API.G_RET_STS_ERROR;
650         END IF;
651     END IF;
652 
653     IF  p_Res_rec.entity_type IS NOT NULL AND
654         (   p_Res_rec.entity_type <>
655             p_old_Res_rec.entity_type OR
656             p_old_Res_rec.entity_type IS NULL )
657     THEN
658         IF NOT WIP_Validate.Entity_Type(p_Res_rec.entity_type) THEN
659             x_return_status := FND_API.G_RET_STS_ERROR;
660         END IF;
661     END IF;
662 
663     IF  p_Res_rec.group_id IS NOT NULL AND
664         (   p_Res_rec.group_id <>
665             p_old_Res_rec.group_id OR
666             p_old_Res_rec.group_id IS NULL )
667     THEN
668         IF NOT WIP_Validate.Group_Id(p_Res_rec.group_id) THEN
669             x_return_status := FND_API.G_RET_STS_ERROR;
670         END IF;
671     END IF;
672 
673     /*
674     IF  p_Res_rec.last_updated_by IS NOT NULL AND
675         (   p_Res_rec.last_updated_by <>
676             p_old_Res_rec.last_updated_by OR
677             p_old_Res_rec.last_updated_by IS NULL )
678     THEN
679         IF NOT WIP_Validate.Last_Updated_By(p_Res_rec.last_updated_by) THEN
680             x_return_status := FND_API.G_RET_STS_ERROR;
681         END IF;
682     END IF;
683       */
684 
685     IF  p_Res_rec.last_updated_by_name IS NOT NULL AND
686         (   p_Res_rec.last_updated_by_name <>
687             p_old_Res_rec.last_updated_by_name OR
688             p_old_Res_rec.last_updated_by_name IS NULL )
689     THEN
690         IF NOT WIP_Validate.Last_Updated_By_Name(p_Res_rec.last_updated_by_name) THEN
691             x_return_status := FND_API.G_RET_STS_ERROR;
692         END IF;
693     END IF;
694 
695     /*
696     IF  p_Res_rec.last_update_date IS NOT NULL AND
697         (   p_Res_rec.last_update_date <>
698             p_old_Res_rec.last_update_date OR
699             p_old_Res_rec.last_update_date IS NULL )
700     THEN
701         IF NOT WIP_Validate.Last_Update_Date(p_Res_rec.last_update_date) THEN
702             x_return_status := FND_API.G_RET_STS_ERROR;
703         END IF;
704     END IF;
705 
706     IF  p_Res_rec.last_update_login IS NOT NULL AND
707         (   p_Res_rec.last_update_login <>
708             p_old_Res_rec.last_update_login OR
709             p_old_Res_rec.last_update_login IS NULL )
710     THEN
711         IF NOT WIP_Validate.Last_Update_Login(p_Res_rec.last_update_login) THEN
712             x_return_status := FND_API.G_RET_STS_ERROR;
713         END IF;
714     END IF;
715       */
716 
717     IF  p_Res_rec.line_code IS NOT NULL AND
718         (   p_Res_rec.line_code <>
719             p_old_Res_rec.line_code OR
720             p_old_Res_rec.line_code IS NULL )
721     THEN
722         IF NOT WIP_Validate.Line(p_Res_rec.line_code) THEN
723             x_return_status := FND_API.G_RET_STS_ERROR;
724         END IF;
725     END IF;
726 
727     IF  p_Res_rec.line_id IS NOT NULL AND
728         (   p_Res_rec.line_id <>
729             p_old_Res_rec.line_id OR
730             p_old_Res_rec.line_id IS NULL )
731     THEN
732         IF NOT WIP_Validate.Line(p_Res_rec.line_id) THEN
733             x_return_status := FND_API.G_RET_STS_ERROR;
734         END IF;
735     END IF;
736 
737     IF  p_Res_rec.move_transaction_id IS NOT NULL AND
738         (   p_Res_rec.move_transaction_id <>
739             p_old_Res_rec.move_transaction_id OR
740             p_old_Res_rec.move_transaction_id IS NULL )
741     THEN
742         IF NOT WIP_Validate.Move_Transaction(p_Res_rec.move_transaction_id) THEN
743             x_return_status := FND_API.G_RET_STS_ERROR;
744         END IF;
745     END IF;
746 
747     IF  p_Res_rec.operation_seq_num IS NOT NULL AND
748         (   p_Res_rec.operation_seq_num <>
749             p_old_Res_rec.operation_seq_num OR
750             p_old_Res_rec.operation_seq_num IS NULL )
751     THEN
752         IF NOT WIP_Validate.Operation_Seq_Num(p_Res_rec.operation_seq_num) THEN
753             x_return_status := FND_API.G_RET_STS_ERROR;
754         END IF;
755     END IF;
756 
757     IF  p_Res_rec.organization_code IS NOT NULL AND
758         (   p_Res_rec.organization_code <>
759             p_old_Res_rec.organization_code OR
760             p_old_Res_rec.organization_code IS NULL )
761     THEN
762         IF NOT WIP_Validate.Organization(p_Res_rec.organization_id) THEN
763             x_return_status := FND_API.G_RET_STS_ERROR;
764         END IF;
765     END IF;
766 
767     IF  p_Res_rec.organization_id IS NOT NULL AND
768         (   p_Res_rec.organization_id <>
769             p_old_Res_rec.organization_id OR
770             p_old_Res_rec.organization_id IS NULL )
771     THEN
772         IF NOT WIP_Validate.Organization(p_Res_rec.organization_id) THEN
773             x_return_status := FND_API.G_RET_STS_ERROR;
774         END IF;
775     END IF;
776 
777     IF  p_Res_rec.po_header_id IS NOT NULL AND
778         (   p_Res_rec.po_header_id <>
779             p_old_Res_rec.po_header_id OR
780             p_old_Res_rec.po_header_id IS NULL )
781     THEN
782         IF NOT WIP_Validate.Po_Header(p_Res_rec.po_header_id) THEN
783             x_return_status := FND_API.G_RET_STS_ERROR;
784         END IF;
785     END IF;
786 
787     IF  p_Res_rec.po_line_id IS NOT NULL AND
788         (   p_Res_rec.po_line_id <>
789             p_old_Res_rec.po_line_id OR
790             p_old_Res_rec.po_line_id IS NULL )
791     THEN
792         IF NOT WIP_Validate.Po_Line(p_Res_rec.po_line_id) THEN
793             x_return_status := FND_API.G_RET_STS_ERROR;
794         END IF;
795     END IF;
796 
797     IF  p_Res_rec.primary_item_id IS NOT NULL AND
798         (   p_Res_rec.primary_item_id <>
799             p_old_Res_rec.primary_item_id OR
800             p_old_Res_rec.primary_item_id IS NULL )
801     THEN
802        IF NOT WIP_Validate.Primary_Item(p_Res_rec.primary_item_id,
803 					p_Res_rec.organization_id) THEN
804             x_return_status := FND_API.G_RET_STS_ERROR;
805         END IF;
806     END IF;
807 
808     IF  p_Res_rec.primary_quantity IS NOT NULL AND
809         (   p_Res_rec.primary_quantity <>
810             p_old_Res_rec.primary_quantity OR
811             p_old_Res_rec.primary_quantity IS NULL )
812     THEN
813         IF NOT WIP_Validate.Primary_Quantity(p_Res_rec.primary_quantity) THEN
814             x_return_status := FND_API.G_RET_STS_ERROR;
815         END IF;
816     END IF;
817 
818     IF  p_Res_rec.primary_uom IS NOT NULL AND
819         (   p_Res_rec.primary_uom <>
820             p_old_Res_rec.primary_uom OR
821             p_old_Res_rec.primary_uom IS NULL )
822     THEN
823         IF NOT WIP_Validate.Primary_Uom(p_Res_rec.primary_uom) THEN
824             x_return_status := FND_API.G_RET_STS_ERROR;
825         END IF;
826     END IF;
827 
828     IF  p_Res_rec.primary_uom_class IS NOT NULL AND
829         (   p_Res_rec.primary_uom_class <>
830             p_old_Res_rec.primary_uom_class OR
831             p_old_Res_rec.primary_uom_class IS NULL )
832     THEN
833         IF NOT WIP_Validate.Primary_Uom_Class(p_Res_rec.primary_uom_class) THEN
834             x_return_status := FND_API.G_RET_STS_ERROR;
835         END IF;
836     END IF;
837 
838     IF  p_Res_rec.process_phase IS NOT NULL AND
839         (   p_Res_rec.process_phase <>
840             p_old_Res_rec.process_phase OR
841             p_old_Res_rec.process_phase IS NULL )
842     THEN
843         IF NOT WIP_Validate.Process_Phase(p_Res_rec.process_phase, 'WIP_RESOURCE_PROCESS_PHASE') THEN
844             x_return_status := FND_API.G_RET_STS_ERROR;
845         END IF;
846     END IF;
847 
848     IF  p_Res_rec.process_status IS NOT NULL AND
849         (   p_Res_rec.process_status <>
850             p_old_Res_rec.process_status OR
851             p_old_Res_rec.process_status IS NULL )
852     THEN
853         IF NOT WIP_Validate.Process_Status(p_Res_rec.process_status) THEN
854             x_return_status := FND_API.G_RET_STS_ERROR;
855         END IF;
856     END IF;
857 
858     /*
859     IF  p_Res_rec.program_application_id IS NOT NULL AND
860         (   p_Res_rec.program_application_id <>
861             p_old_Res_rec.program_application_id OR
862             p_old_Res_rec.program_application_id IS NULL )
863     THEN
864         IF NOT WIP_Validate.Program_Application(p_Res_rec.program_application_id) THEN
865             x_return_status := FND_API.G_RET_STS_ERROR;
866         END IF;
867     END IF;
868 
869     IF  p_Res_rec.program_id IS NOT NULL AND
870         (   p_Res_rec.program_id <>
871             p_old_Res_rec.program_id OR
872             p_old_Res_rec.program_id IS NULL )
873     THEN
874         IF NOT WIP_Validate.Program(p_Res_rec.program_id) THEN
875             x_return_status := FND_API.G_RET_STS_ERROR;
876         END IF;
877     END IF;
878 
879     IF  p_Res_rec.program_update_date IS NOT NULL AND
880         (   p_Res_rec.program_update_date <>
881             p_old_Res_rec.program_update_date OR
882             p_old_Res_rec.program_update_date IS NULL )
883     THEN
884         IF NOT WIP_Validate.Program_Update_Date(p_Res_rec.program_update_date) THEN
885             x_return_status := FND_API.G_RET_STS_ERROR;
886         END IF;
887     END IF;
888       */
889 
890     IF  p_Res_rec.project_id IS NOT NULL AND
891         (   p_Res_rec.project_id <>
892             p_old_Res_rec.project_id OR
893             p_old_Res_rec.project_id IS NULL )
894     THEN
895        IF NOT WIP_Validate.Project(p_Res_rec.project_id,
896 				   p_Res_rec.organization_id) THEN
897             x_return_status := FND_API.G_RET_STS_ERROR;
898         END IF;
899     END IF;
900 
901     IF  p_Res_rec.rcv_transaction_id IS NOT NULL AND
902         (   p_Res_rec.rcv_transaction_id <>
903             p_old_Res_rec.rcv_transaction_id OR
904             p_old_Res_rec.rcv_transaction_id IS NULL )
905     THEN
906         --rcv_transaction_id is the transaction_id. we actually need to
907         --validate against the rcv_transactions_interface table and thus
908         --need to pass the interface_transaction_id...source line id should
909         --always be populated if rcv_transaction_id is populated
910         IF NOT WIP_Validate.Rcv_Transaction(p_Res_rec.source_line_id) THEN
911             x_return_status := FND_API.G_RET_STS_ERROR;
912         END IF;
913     END IF;
914 
915     IF  p_Res_rec.reason_id IS NOT NULL AND
916         (   p_Res_rec.reason_id <>
917             p_old_Res_rec.reason_id OR
918             p_old_Res_rec.reason_id IS NULL )
919     THEN
920         IF NOT WIP_Validate.Reason(p_Res_rec.reason_id) THEN
921             x_return_status := FND_API.G_RET_STS_ERROR;
922         END IF;
923     END IF;
924 
925     IF  p_Res_rec.reason_name IS NOT NULL AND
926         (   p_Res_rec.reason_name <>
927             p_old_Res_rec.reason_name OR
928             p_old_Res_rec.reason_name IS NULL )
929     THEN
930         IF NOT WIP_Validate.Reason_Name(p_Res_rec.reason_name) THEN
931             x_return_status := FND_API.G_RET_STS_ERROR;
932         END IF;
933     END IF;
934 
935     IF  p_Res_rec.receiving_account_id IS NOT NULL AND
936         (   p_Res_rec.receiving_account_id <>
937             p_old_Res_rec.receiving_account_id OR
938             p_old_Res_rec.receiving_account_id IS NULL )
939     THEN
940         IF NOT WIP_Validate.Receiving_Account(p_Res_rec.receiving_account_id) THEN
941             x_return_status := FND_API.G_RET_STS_ERROR;
942         END IF;
943     END IF;
944 
945     IF  p_Res_rec.reference IS NOT NULL AND
946         (   p_Res_rec.reference <>
947             p_old_Res_rec.reference OR
948             p_old_Res_rec.reference IS NULL )
949     THEN
950         IF NOT WIP_Validate.Reference(p_Res_rec.reference) THEN
951             x_return_status := FND_API.G_RET_STS_ERROR;
952         END IF;
953     END IF;
954 
955     IF  p_Res_rec.repetitive_schedule_id IS NOT NULL AND
956         (   p_Res_rec.repetitive_schedule_id <>
957             p_old_Res_rec.repetitive_schedule_id OR
958             p_old_Res_rec.repetitive_schedule_id IS NULL )
959     THEN
960         IF NOT WIP_Validate.Repetitive_Schedule(p_Res_rec.repetitive_schedule_id) THEN
961             x_return_status := FND_API.G_RET_STS_ERROR;
962         END IF;
963     END IF;
964 
965     /*
966     IF  p_Res_rec.request_id IS NOT NULL AND
967         (   p_Res_rec.request_id <>
968             p_old_Res_rec.request_id OR
969             p_old_Res_rec.request_id IS NULL )
970     THEN
971         IF NOT WIP_Validate.Request(p_Res_rec.request_id) THEN
972             x_return_status := FND_API.G_RET_STS_ERROR;
973         END IF;
974     END IF;
975       */
976 
977     IF  p_Res_rec.resource_code IS NOT NULL AND
978         (   p_Res_rec.resource_code <>
979             p_old_Res_rec.resource_code OR
980             p_old_Res_rec.resource_code IS NULL )
981     THEN
982         IF NOT WIP_Validate.Resource_Code(p_Res_rec.resource_code, p_Res_rec.organization_id) THEN
983             x_return_status := FND_API.G_RET_STS_ERROR;
984         END IF;
985     END IF;
986 
987     IF  p_Res_rec.resource_id IS NOT NULL AND
988         (   p_Res_rec.resource_id <>
989             p_old_Res_rec.resource_id OR
990             p_old_Res_rec.resource_id IS NULL )
991     THEN
992         IF NOT WIP_Validate.Resource_Id(p_Res_rec.resource_id) THEN
993             x_return_status := FND_API.G_RET_STS_ERROR;
994         END IF;
995     END IF;
996 
997     IF  p_Res_rec.resource_seq_num IS NOT NULL AND
998         (   p_Res_rec.resource_seq_num <>
999             p_old_Res_rec.resource_seq_num OR
1000             p_old_Res_rec.resource_seq_num IS NULL )
1001     THEN
1002         IF NOT WIP_Validate.Resource_Seq_Num(p_Res_rec.resource_seq_num) THEN
1003             x_return_status := FND_API.G_RET_STS_ERROR;
1004         END IF;
1005     END IF;
1006 
1007     IF  p_Res_rec.resource_type IS NOT NULL AND
1008         (   p_Res_rec.resource_type <>
1009             p_old_Res_rec.resource_type OR
1010             p_old_Res_rec.resource_type IS NULL )
1011     THEN
1012         IF NOT WIP_Validate.Resource_Type(p_Res_rec.resource_type) THEN
1013             x_return_status := FND_API.G_RET_STS_ERROR;
1014         END IF;
1015     END IF;
1016 
1017     /*
1018     IF  p_Res_rec.source_code IS NOT NULL AND
1019         (   p_Res_rec.source_code <>
1020             p_old_Res_rec.source_code OR
1021             p_old_Res_rec.source_code IS NULL )
1022     THEN
1023         IF NOT WIP_Validate.Source(p_Res_rec.source_code) THEN
1024             x_return_status := FND_API.G_RET_STS_ERROR;
1025         END IF;
1026     END IF;
1027 
1028     IF  p_Res_rec.source_line_id IS NOT NULL AND
1029         (   p_Res_rec.source_line_id <>
1030             p_old_Res_rec.source_line_id OR
1031             p_old_Res_rec.source_line_id IS NULL )
1032     THEN
1033         IF NOT WIP_Validate.Source_Line(p_Res_rec.source_line_id) THEN
1034             x_return_status := FND_API.G_RET_STS_ERROR;
1035         END IF;
1036     END IF;
1037       */
1038     IF  p_Res_rec.standard_rate_flag IS NOT NULL AND
1039         (   p_Res_rec.standard_rate_flag <>
1040             p_old_Res_rec.standard_rate_flag OR
1041             p_old_Res_rec.standard_rate_flag IS NULL )
1042     THEN
1043         IF NOT WIP_Validate.Standard_Rate(p_Res_rec.standard_rate_flag) THEN
1044             x_return_status := FND_API.G_RET_STS_ERROR;
1045         END IF;
1046     END IF;
1047 
1048     IF  p_Res_rec.task_id IS NOT NULL AND
1049         (   p_Res_rec.task_id <>
1050             p_old_Res_rec.task_id OR
1051             p_old_Res_rec.task_id IS NULL )
1052     THEN
1053        IF NOT WIP_Validate.Task(p_Res_rec.task_id,
1054 				p_Res_rec.project_id,
1055 				p_Res_rec.organization_id) THEN
1056             x_return_status := FND_API.G_RET_STS_ERROR;
1057         END IF;
1058     END IF;
1059 
1060     /*
1061     IF  p_Res_rec.transaction_date IS NOT NULL AND
1062         (   p_Res_rec.transaction_date <>
1063             p_old_Res_rec.transaction_date OR
1064             p_old_Res_rec.transaction_date IS NULL )
1065     THEN
1066         IF NOT WIP_Validate.Transaction_Date(p_Res_rec.transaction_date) THEN
1067             x_return_status := FND_API.G_RET_STS_ERROR;
1068         END IF;
1069     END IF;
1070       */
1071 
1072     IF  p_Res_rec.transaction_id IS NOT NULL AND
1073         (   p_Res_rec.transaction_id <>
1074             p_old_Res_rec.transaction_id OR
1075             p_old_Res_rec.transaction_id IS NULL )
1076     THEN
1077         IF NOT WIP_Validate.Transaction(p_Res_rec.transaction_id) THEN
1078             x_return_status := FND_API.G_RET_STS_ERROR;
1079         END IF;
1080     END IF;
1081 
1082     /*
1083     IF  p_Res_rec.transaction_quantity IS NOT NULL AND
1084         (   p_Res_rec.transaction_quantity <>
1085             p_old_Res_rec.transaction_quantity OR
1086             p_old_Res_rec.transaction_quantity IS NULL )
1087     THEN
1088         IF NOT WIP_Validate.Transaction_Quantity(p_Res_rec.transaction_quantity) THEN
1089             x_return_status := FND_API.G_RET_STS_ERROR;
1090         END IF;
1091     END IF;
1092       */
1093 
1094     IF  p_Res_rec.transaction_type IS NOT NULL AND
1095         (   p_Res_rec.transaction_type <>
1096             p_old_Res_rec.transaction_type OR
1097             p_old_Res_rec.transaction_type IS NULL )
1098     THEN
1099         IF NOT WIP_Validate.Transaction_Type(p_Res_rec.transaction_type, 'WIP_TRANSACTION_TYPE' ) THEN
1100             x_return_status := FND_API.G_RET_STS_ERROR;
1101         END IF;
1102     END IF;
1103 
1104     IF  p_Res_rec.transaction_uom IS NOT NULL AND
1105         (   p_Res_rec.transaction_uom <>
1106             p_old_Res_rec.transaction_uom OR
1107             p_old_Res_rec.transaction_uom IS NULL )
1108     THEN
1109         IF NOT WIP_Validate.Transaction_Uom(p_Res_rec.transaction_uom) THEN
1110             x_return_status := FND_API.G_RET_STS_ERROR;
1111         END IF;
1112     END IF;
1113 
1114     IF  p_Res_rec.usage_rate_or_amount IS NOT NULL AND
1115         (   p_Res_rec.usage_rate_or_amount <>
1116             p_old_Res_rec.usage_rate_or_amount OR
1117             p_old_Res_rec.usage_rate_or_amount IS NULL )
1118     THEN
1119         IF NOT WIP_Validate.Usage_Rate_Or_Amount(p_Res_rec.usage_rate_or_amount) THEN
1120             x_return_status := FND_API.G_RET_STS_ERROR;
1121         END IF;
1122     END IF;
1123 
1124     IF  p_Res_rec.wip_entity_id IS NOT NULL AND
1125         (   p_Res_rec.wip_entity_id <>
1126             p_old_Res_rec.wip_entity_id OR
1127             p_old_Res_rec.wip_entity_id IS NULL )
1128     THEN
1129         IF NOT WIP_Validate.Wip_Entity(p_Res_rec.wip_entity_id) THEN
1130             x_return_status := FND_API.G_RET_STS_ERROR;
1131         END IF;
1132     END IF;
1133 
1134     IF  p_Res_rec.wip_entity_name IS NOT NULL AND
1135         (   p_Res_rec.wip_entity_name <>
1136             p_old_Res_rec.wip_entity_name OR
1137             p_old_Res_rec.wip_entity_name IS NULL )
1138     THEN
1139        IF NOT WIP_Validate.Wip_Entity_Name(p_Res_rec.wip_entity_name,
1140 					   p_Res_rec.organization_id) THEN
1141             x_return_status := FND_API.G_RET_STS_ERROR;
1142         END IF;
1143     END IF;
1144 
1145     IF  (p_Res_rec.attribute1 IS NOT NULL AND
1146         (   p_Res_rec.attribute1 <>
1147             p_old_Res_rec.attribute1 OR
1148             p_old_Res_rec.attribute1 IS NULL ))
1149     OR  (p_Res_rec.attribute10 IS NOT NULL AND
1150         (   p_Res_rec.attribute10 <>
1151             p_old_Res_rec.attribute10 OR
1152             p_old_Res_rec.attribute10 IS NULL ))
1153     OR  (p_Res_rec.attribute11 IS NOT NULL AND
1154         (   p_Res_rec.attribute11 <>
1155             p_old_Res_rec.attribute11 OR
1156             p_old_Res_rec.attribute11 IS NULL ))
1157     OR  (p_Res_rec.attribute12 IS NOT NULL AND
1158         (   p_Res_rec.attribute12 <>
1159             p_old_Res_rec.attribute12 OR
1160             p_old_Res_rec.attribute12 IS NULL ))
1161     OR  (p_Res_rec.attribute13 IS NOT NULL AND
1162         (   p_Res_rec.attribute13 <>
1163             p_old_Res_rec.attribute13 OR
1164             p_old_Res_rec.attribute13 IS NULL ))
1165     OR  (p_Res_rec.attribute14 IS NOT NULL AND
1166         (   p_Res_rec.attribute14 <>
1167             p_old_Res_rec.attribute14 OR
1168             p_old_Res_rec.attribute14 IS NULL ))
1169     OR  (p_Res_rec.attribute15 IS NOT NULL AND
1170         (   p_Res_rec.attribute15 <>
1171             p_old_Res_rec.attribute15 OR
1172             p_old_Res_rec.attribute15 IS NULL ))
1173     OR  (p_Res_rec.attribute2 IS NOT NULL AND
1174         (   p_Res_rec.attribute2 <>
1175             p_old_Res_rec.attribute2 OR
1176             p_old_Res_rec.attribute2 IS NULL ))
1177     OR  (p_Res_rec.attribute3 IS NOT NULL AND
1178         (   p_Res_rec.attribute3 <>
1179             p_old_Res_rec.attribute3 OR
1180             p_old_Res_rec.attribute3 IS NULL ))
1181     OR  (p_Res_rec.attribute4 IS NOT NULL AND
1182         (   p_Res_rec.attribute4 <>
1183             p_old_Res_rec.attribute4 OR
1184             p_old_Res_rec.attribute4 IS NULL ))
1185     OR  (p_Res_rec.attribute5 IS NOT NULL AND
1186         (   p_Res_rec.attribute5 <>
1187             p_old_Res_rec.attribute5 OR
1188             p_old_Res_rec.attribute5 IS NULL ))
1189     OR  (p_Res_rec.attribute6 IS NOT NULL AND
1190         (   p_Res_rec.attribute6 <>
1191             p_old_Res_rec.attribute6 OR
1192             p_old_Res_rec.attribute6 IS NULL ))
1193     OR  (p_Res_rec.attribute7 IS NOT NULL AND
1194         (   p_Res_rec.attribute7 <>
1195             p_old_Res_rec.attribute7 OR
1196             p_old_Res_rec.attribute7 IS NULL ))
1197     OR  (p_Res_rec.attribute8 IS NOT NULL AND
1198         (   p_Res_rec.attribute8 <>
1199             p_old_Res_rec.attribute8 OR
1200             p_old_Res_rec.attribute8 IS NULL ))
1201     OR  (p_Res_rec.attribute9 IS NOT NULL AND
1202         (   p_Res_rec.attribute9 <>
1203             p_old_Res_rec.attribute9 OR
1204             p_old_Res_rec.attribute9 IS NULL ))
1205     OR  (p_Res_rec.attribute_category IS NOT NULL AND
1206         (   p_Res_rec.attribute_category <>
1207             p_old_Res_rec.attribute_category OR
1208             p_old_Res_rec.attribute_category IS NULL ))
1209     THEN
1210 
1211     --  These calls are temporarily commented out
1212 	NULL;
1213 /*
1214         FND_FLEX_DESC_VAL.Set_Column_Value
1215         (   column_name                   => 'ATTRIBUTE1'
1216         ,   column_value                  => p_Res_rec.attribute1
1217         );
1218         FND_FLEX_DESC_VAL.Set_Column_Value
1219         (   column_name                   => 'ATTRIBUTE10'
1220         ,   column_value                  => p_Res_rec.attribute10
1221         );
1222         FND_FLEX_DESC_VAL.Set_Column_Value
1223         (   column_name                   => 'ATTRIBUTE11'
1224         ,   column_value                  => p_Res_rec.attribute11
1225         );
1226         FND_FLEX_DESC_VAL.Set_Column_Value
1227         (   column_name                   => 'ATTRIBUTE12'
1228         ,   column_value                  => p_Res_rec.attribute12
1229         );
1230         FND_FLEX_DESC_VAL.Set_Column_Value
1231         (   column_name                   => 'ATTRIBUTE13'
1232         ,   column_value                  => p_Res_rec.attribute13
1233         );
1234         FND_FLEX_DESC_VAL.Set_Column_Value
1235         (   column_name                   => 'ATTRIBUTE14'
1236         ,   column_value                  => p_Res_rec.attribute14
1237         );
1238         FND_FLEX_DESC_VAL.Set_Column_Value
1239         (   column_name                   => 'ATTRIBUTE15'
1240         ,   column_value                  => p_Res_rec.attribute15
1241         );
1242         FND_FLEX_DESC_VAL.Set_Column_Value
1243         (   column_name                   => 'ATTRIBUTE2'
1244         ,   column_value                  => p_Res_rec.attribute2
1245         );
1246         FND_FLEX_DESC_VAL.Set_Column_Value
1247         (   column_name                   => 'ATTRIBUTE3'
1248         ,   column_value                  => p_Res_rec.attribute3
1249         );
1250         FND_FLEX_DESC_VAL.Set_Column_Value
1251         (   column_name                   => 'ATTRIBUTE4'
1252         ,   column_value                  => p_Res_rec.attribute4
1253         );
1254         FND_FLEX_DESC_VAL.Set_Column_Value
1255         (   column_name                   => 'ATTRIBUTE5'
1256         ,   column_value                  => p_Res_rec.attribute5
1257         );
1258         FND_FLEX_DESC_VAL.Set_Column_Value
1259         (   column_name                   => 'ATTRIBUTE6'
1260         ,   column_value                  => p_Res_rec.attribute6
1261         );
1262         FND_FLEX_DESC_VAL.Set_Column_Value
1263         (   column_name                   => 'ATTRIBUTE7'
1264         ,   column_value                  => p_Res_rec.attribute7
1265         );
1266         FND_FLEX_DESC_VAL.Set_Column_Value
1267         (   column_name                   => 'ATTRIBUTE8'
1268         ,   column_value                  => p_Res_rec.attribute8
1269         );
1270         FND_FLEX_DESC_VAL.Set_Column_Value
1271         (   column_name                   => 'ATTRIBUTE9'
1272         ,   column_value                  => p_Res_rec.attribute9
1273         );
1274         FND_FLEX_DESC_VAL.Set_Column_Value
1275         (   column_name                   => 'ATTRIBUTE_CATEGORY'
1276         ,   column_value                  => p_Res_rec.attribute_category
1277         );
1278 
1279         --  Validate descriptive flexfield.
1280 
1281         IF NOT WIP_Validate.Desc_Flex( 'OSP' ) THEN
1282             x_return_status := FND_API.G_RET_STS_ERROR;
1283         END IF;
1284 
1285 */
1286     END IF;
1287 
1288     --  Done validating attributes
1289 
1290 EXCEPTION
1291 
1292     WHEN FND_API.G_EXC_ERROR THEN
1293 
1294         x_return_status := FND_API.G_RET_STS_ERROR;
1295 
1296     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1297 
1298         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1299 
1300     WHEN OTHERS THEN
1301 
1302         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1303 
1304         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1305         THEN
1306             FND_MSG_PUB.Add_Exc_Msg
1307             (   G_PKG_NAME
1308             ,   'Attributes'
1309             );
1310         END IF;
1311 
1312 END Attributes;
1313 
1314 END WIP_Validate_Res;