DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_ACTIVITYSUPN_PUB

Source


1 PACKAGE BODY EAM_ActivitySupn_PUB AS
2 /* $Header: EAMPASRB.pls 120.2 2005/11/25 10:01:56 sshahid noship $ */
3 
4 /*
5 --      API name        : EAM_ActivitySupn_PUB
6 --      Type            : Public
7 --      Function        : Insert, update and validation of the activity suppression
8 --      Pre-reqs        : None.
9 */
10 
11 /* for de-bugging */
12 /* g_sr_no		number ; */
13 
14 
15 /*
16 This procedure inserts a record in the eam_suppression_relations table
17      Parameters      :
18      IN              :          P_API_VERSION	IN	NUMBER			,
19 				P_INIT_MSG_LIST	IN	VARCHAR2 := FND_API.G_FALSE	,
20 				P_COMMIT	IN  	VARCHAR2 := FND_API.G_FALSE	,
21 				P_VALIDATION_LEVEL	IN  	NUMBER   := FND_API.G_VALID_LEVEL_FULL	,
22 				P_PARENT_ASSOCIATION_ID IN	NUMBER    ,
23 				P_CHILD_ASSOCIATION_ID  IN	NUMBER    ,
24 				P_TMPL_FLAG		IN	VARCHAR2 DEFAULT NULL,
25 				P_DESCRIPTION		IN	VARCHAR2 DEFAULT NULL,
26 				P_ATTRIBUTE_CATEGORY    IN	VARCHAR2 DEFAULT NULL,
27 				P_ATTRIBUTE1            IN	VARCHAR2 DEFAULT NULL,
28 				P_ATTRIBUTE2            IN	VARCHAR2 DEFAULT NULL,
29 				P_ATTRIBUTE3            IN	VARCHAR2 DEFAULT NULL,
30 				P_ATTRIBUTE4            IN	VARCHAR2 DEFAULT NULL,
31 				P_ATTRIBUTE5            IN	VARCHAR2 DEFAULT NULL,
32 				P_ATTRIBUTE6            IN	VARCHAR2 DEFAULT NULL,
33 				P_ATTRIBUTE7            IN	VARCHAR2 DEFAULT NULL,
34 				P_ATTRIBUTE8            IN	VARCHAR2 DEFAULT NULL,
35 				P_ATTRIBUTE9            IN	VARCHAR2 DEFAULT NULL,
36 				P_ATTRIBUTE10           IN	VARCHAR2 DEFAULT NULL,
37 				P_ATTRIBUTE11           IN	VARCHAR2 DEFAULT NULL,
38 				P_ATTRIBUTE12           IN	VARCHAR2 DEFAULT NULL,
39 				P_ATTRIBUTE13           IN	VARCHAR2 DEFAULT NULL,
40 				P_ATTRIBUTE14           IN	VARCHAR2 DEFAULT NULL,
41 				P_ATTRIBUTE15           IN	VARCHAR2 DEFAULT NULL,
42 
43 		OUT         :	x_return_status    OUT NOCOPY    VARCHAR2(1)
44 				x_msg_count        OUT NOCOPY    NUMBER
45                                 x_msg_data         OUT NOCOPY    VARCHAR2 (2000)
46 		Version :       Current version: 1.0
47 				Initial version: 1.0
48 */
49 
50 PROCEDURE Insert_ActivitySupn
51 (
52 	p_api_version		IN	NUMBER			,
53 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE	,
54 	p_commit	    	IN  	VARCHAR2 := FND_API.G_FALSE	,
55 	p_validation_level	IN  	NUMBER   := FND_API.G_VALID_LEVEL_FULL,
56 	x_return_status		OUT	NOCOPY VARCHAR2	,
57 	x_msg_count		OUT	NOCOPY NUMBER	,
58 	x_msg_data		OUT	NOCOPY VARCHAR2	,
59 	p_parent_association_id IN	NUMBER    ,
60 	p_child_association_id  IN	NUMBER    ,
61 	p_tmpl_flag		IN	VARCHAR2 DEFAULT NULL,
62 	p_description		IN	VARCHAR2 DEFAULT NULL,
63 	p_attribute_category    IN	VARCHAR2 DEFAULT NULL,
64 	p_attribute1            IN	VARCHAR2 DEFAULT NULL,
65 	p_attribute2            IN	VARCHAR2 DEFAULT NULL,
66 	p_attribute3            IN	VARCHAR2 DEFAULT NULL,
67 	p_attribute4            IN	VARCHAR2 DEFAULT NULL,
68 	p_attribute5            IN	VARCHAR2 DEFAULT NULL,
69 	p_attribute6            IN	VARCHAR2 DEFAULT NULL,
70 	p_attribute7            IN	VARCHAR2 DEFAULT NULL,
71 	p_attribute8            IN	VARCHAR2 DEFAULT NULL,
72 	p_attribute9            IN	VARCHAR2 DEFAULT NULL,
73 	p_attribute10           IN	VARCHAR2 DEFAULT NULL,
74 	p_attribute11           IN	VARCHAR2 DEFAULT NULL,
75 	p_attribute12           IN	VARCHAR2 DEFAULT NULL,
76 	p_attribute13           IN	VARCHAR2 DEFAULT NULL,
77 	p_attribute14           IN	VARCHAR2 DEFAULT NULL,
78 	p_attribute15           IN	VARCHAR2 DEFAULT NULL
79 )
80 IS
81 l_api_name			CONSTANT VARCHAR2(30)	:='insert activity suppression';
82 l_api_version           	CONSTANT NUMBER 		:= 1.0;
83 l_validated			boolean;
84 x_error_segments        NUMBER;
85 x_error_message         VARCHAR2(5000);
86 BEGIN
87 
88 	/* Standard Start of API savepoint */
89 	SAVEPOINT Insert_ActivitySupn_PUB;
90 
91 	/* Standard call to check for call compatibility. */
92 	IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
93         	    	    	    	 	p_api_version        	,
94    	       	    	 			l_api_name 	    	,
95 		    	    	    	    	G_PKG_NAME
96 					   )
97 	THEN
98 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
99 	END IF;
100 
101 	/* Initialize message list if p_init_msg_list is set to TRUE. */
102 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
103 		FND_MSG_PUB.initialize;
104 	END IF;
105 	/* Initialize API return status to success */
106 	x_return_status := FND_API.G_RET_STS_SUCCESS;
107 
108 	/* API body */
109 
110 /* Start validation calls */
111 
112 	l_validated := Validate_AssociationId (p_parent_association_id);
113 	if (not l_validated) then
114 		--raise_error('Parent association is NOT valid');
115 		raise_error('EAM_INVALID_PARENT_ASSOC_ID');
116         end if;
117 
118 	l_validated := Validate_AssociationId (p_child_association_id);
119 	if (not l_validated) then
120 		--raise_error('Child association is NOT valid');
121 		raise_error('EAM_INVALID_CHILD_ASSOC_ID');
122         end if;
123 
124 	/* Validate the tmpl_falg value */
125 	l_validated := EAM_COMMON_UTILITIES_PVT.validate_boolean_flag(p_tmpl_flag);
126 	IF (not l_validated) THEN
127 		raise_error ('EAM_INVALID_TMPL_FLAG');
128 	END IF;
129 
130 	l_validated := Validate_MaintainedObjUnique (p_parent_association_id,
131 							p_child_association_id,
132 							p_tmpl_flag);
133 	if (not l_validated) then
134 		--raise_error('Asset NOT Unique');
135 		raise_error('EAM_DUPLICATE_ASSET');
136         end if;
137 
138 	/* l_validated := Validate_ParentChildAssets (p_parent_association_id,
139 							p_child_association_id);
140 	*/
141 
142 	l_validated := eam_pm_suppressions.check_no_loop (p_parent_association_id,
143 							p_child_association_id);
144 	if (not l_validated) then
145 		--raise_error('Child activity cannot suppress its Parent activity');
146 		raise_error('EAM_INVALID_SUPPRESSION');
147         end if;
148 
149 	/* Validating the DFF */
150 
151 	l_validated := EAM_COMMON_UTILITIES_PVT.validate_desc_flex_field (
152 			p_app_short_name	=>	'EAM',
153 			p_desc_flex_name	=>	'EAM_SUPPRESSIONS',
154 			p_ATTRIBUTE_CATEGORY    =>	p_attribute_category ,
155 			p_ATTRIBUTE1            =>	p_attribute1          ,
156 			p_ATTRIBUTE2            =>	p_attribute2           ,
157 			p_ATTRIBUTE3            =>	p_attribute3            ,
158 			p_ATTRIBUTE4            =>	p_attribute4            ,
159 			p_ATTRIBUTE5            =>	p_attribute5            ,
160 			p_ATTRIBUTE6            =>	p_attribute6            ,
161 			p_ATTRIBUTE7            =>	p_attribute7            ,
162 			p_ATTRIBUTE8            =>	p_attribute8            ,
163 			p_ATTRIBUTE9            =>	p_attribute9            ,
164 			p_ATTRIBUTE10           =>	p_attribute10           ,
165 			p_ATTRIBUTE11           =>	p_attribute11           ,
166 			p_ATTRIBUTE12           =>	p_attribute12           ,
167 			p_ATTRIBUTE13           =>	p_attribute13           ,
168 			p_ATTRIBUTE14           =>	p_attribute14           ,
169 			p_ATTRIBUTE15           =>	p_attribute15 ,
170 			x_error_segments	=>	x_error_segments ,
171 			x_error_message		=>	x_error_message);
172 
173 	IF (not l_validated) THEN
174 
175 		  FND_MESSAGE.SET_NAME('EAM', 'EAM_INVALID_DESC_FLEX');
176 		  FND_MESSAGE.SET_TOKEN('ERROR_MSG', x_error_message);
177 		  FND_MSG_PUB.Add;
178 		  RAISE FND_API.G_EXC_ERROR;
179 
180         END IF;
181 
182 	/* Validate the parent and childs asset-activity combination does not exists */
183 
184 	l_validated := Validate_SuppressionRecord (p_parent_association_id,
185 						p_child_association_id );
186 	IF l_validated THEN
187 		raise_error ('EAM_DUPLICATE_SUPPRESSION');
188 	END IF;
189 
190 
191 	/* End validation calls */
192 
193 
194 		INSERT INTO eam_suppression_relations
195 		(
196 			parent_association_id   ,
197 			child_association_id	,
198 /*	(ignored)	day_tolerance		,
199 	(ignored)	runtime_tolerance	,
200 */
201 			tmpl_flag	,
202 			description     ,
203 			created_by      ,
204 			creation_date   ,
205 			last_update_login     ,
206 			last_update_date      ,
207 			last_updated_by       ,
208 			attribute_category    ,
209 			attribute1	,
210 			attribute2	,
211 			attribute3	,
212 			attribute4	,
213 			attribute5	,
214 			attribute6	,
215 			attribute7	,
216 			attribute8	,
217 			attribute9	,
218 			attribute10	,
219 			attribute11	,
220 			attribute12	,
221 			attribute13	,
222 			attribute14	,
223 			attribute15
224 		)
225 		VALUES
226 		(
227 			p_parent_association_id	,
228 			p_child_association_id  ,
229 			p_tmpl_flag		,
230 			p_description		,
231 			FND_GLOBAL.USER_ID	,
232 			SYSDATE			,
233 			FND_GLOBAL.LOGIN_ID	,
234 			SYSDATE			,
235 			FND_GLOBAL.USER_ID	,
236 			p_attribute_category    ,
237 			p_attribute1            ,
238 			p_attribute2            ,
239 			p_attribute3            ,
240 			p_attribute4            ,
241 			p_attribute5            ,
242 			p_attribute6            ,
243 			p_attribute7            ,
244 			p_attribute8            ,
245 			p_attribute9            ,
246 			p_attribute10           ,
247 			p_attribute11           ,
248 			p_attribute12           ,
249 			p_attribute13           ,
250 			p_attribute14           ,
251 			p_attribute15
252 		);
253 
254 	/* Standard check of p_commit. */
255 	IF FND_API.TO_BOOLEAN( P_COMMIT ) THEN
256 		COMMIT WORK;
257 	END IF;
258 	-- Standard call to get message count and if count is 1, get message info.
259 	FND_MSG_PUB.get
260     	(  	p_msg_index_out         	=>      x_msg_count ,
261         	p_data          	=>      x_msg_data
262     	);
263 
264 EXCEPTION
265 	WHEN FND_API.G_EXC_ERROR THEN
266 		ROLLBACK TO Insert_ActivitySupn_PUB;
267 		x_return_status := FND_API.G_RET_STS_ERROR ;
268 		FND_MSG_PUB.get
269     		(  	p_msg_index_out        	=>      x_msg_count ,
270         		p_data         	=>      x_msg_data
271     		);
272 
273 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
274 		ROLLBACK TO Insert_ActivitySupn_PUB;
275 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
276 		FND_MSG_PUB.get
277     		(  	p_msg_index_out        	=>      x_msg_count ,
278         		p_data         	=>      x_msg_data
279     		);
280 
281 	WHEN OTHERS THEN
282 		ROLLBACK TO Insert_ActivitySupn_PUB;
283 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
284 
285   		IF FND_MSG_PUB.Check_Msg_Level
286 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
287 		THEN
288         		FND_MSG_PUB.Add_Exc_Msg
289     	    		(	G_PKG_NAME ,
290     	    			l_api_name
291 	    		);
292 		END IF;
293 
294 		FND_MSG_PUB.get
295     		(  	p_msg_index_out        	=>      x_msg_count ,
296         		p_data         	=>      x_msg_data
297     		);
298 
299 END Insert_ActivitySupn;
300 
301 
302 /*
303 This procedure updates a record in the eam_asset_meters table
304       Parameters      :
305       IN              :         P_API_VERSION           IN	NUMBER			,
306 				P_INIT_MSG_LIST	    IN	VARCHAR2 := FND_API.G_FALSE	,
307 				P_COMMIT	    	    IN  	VARCHAR2 := FND_API.G_FALSE	,
308 				P_VALIDATION_LEVEL	    IN  	NUMBER   := FND_API.G_VALID_LEVEL_FULL	,
309 				X_RETURN_STATUS	    OUT	NOCOPY VARCHAR2	 ,
310 				X_MSG_COUNT	    OUT	NOCOPY NUMBER	 ,
311 				X_MSG_DATA	    	    OUT	NOCOPY VARCHAR2  ,
312 				P_PARENT_ASSOCIATION_ID IN    NUMBER    ,
313 				P_CHILD_ASSOCIATION_ID  IN    NUMBER    ,
314 				P_TMPL_FLAG	    IN	VARCHAR2 DEFAULT NULL,
315 				P_DESCRIPTION	    IN    VARCHAR2 DEFAULT NULL,
316 				P_ATTRIBUTE_CATEGORY   IN    VARCHAR2 DEFAULT NULL,
317 				P_ATTRIBUTE1           IN    VARCHAR2 DEFAULT NULL,
318 				P_ATTRIBUTE2           IN    VARCHAR2 DEFAULT NULL,
319 				P_ATTRIBUTE3           IN    VARCHAR2 DEFAULT NULL,
320 				P_ATTRIBUTE4           IN    VARCHAR2 DEFAULT NULL,
321 				P_ATTRIBUTE5           IN    VARCHAR2 DEFAULT NULL,
322 				P_ATTRIBUTE6           IN    VARCHAR2 DEFAULT NULL,
323 				P_ATTRIBUTE7           IN    VARCHAR2 DEFAULT NULL,
324 				P_ATTRIBUTE8           IN    VARCHAR2 DEFAULT NULL,
325 				P_ATTRIBUTE9           IN    VARCHAR2 DEFAULT NULL,
326 				P_ATTRIBUTE10          IN    VARCHAR2 DEFAULT NULL,
327 				P_ATTRIBUTE11          IN    VARCHAR2 DEFAULT NULL,
328 				P_ATTRIBUTE12          IN    VARCHAR2 DEFAULT NULL,
329 				P_ATTRIBUTE13          IN    VARCHAR2 DEFAULT NULL,
330 				P_ATTRIBUTE14          IN    VARCHAR2 DEFAULT NULL,
331 				P_ATTRIBUTE15          IN    VARCHAR2 DEFAULT NULL
332 
333 
334       OUT             :       x_return_status    OUT NOCOPY    VARCHAR2(1)
335                               x_msg_count        OUT NOCOPY    NUMBER
336                               x_msg_data         OUT NOCOPY    VARCHAR2 (2000)
337       Version :       Current version: 1.0
338                       Initial version: 1.0
339 */
340 PROCEDURE Update_ActivitySupn
341 (
342 	p_api_version		IN	NUMBER			,
343 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE	,
344 	p_commit	    	IN  	VARCHAR2 := FND_API.G_FALSE	,
345 	p_validation_level	IN  	NUMBER   := FND_API.G_VALID_LEVEL_FULL,
346 	x_return_status		OUT	NOCOPY  VARCHAR2 ,
347 	x_msg_count		OUT	NOCOPY  NUMBER	  ,
348 	x_msg_data		OUT	NOCOPY  VARCHAR2 ,
349 	p_parent_association_id IN	NUMBER    ,
350 	p_child_association_id  IN	NUMBER    ,
351 	p_tmpl_flag		IN	VARCHAR2 DEFAULT NULL,
352 	p_description		IN	VARCHAR2 DEFAULT NULL,
353 	p_attribute_category	IN	VARCHAR2 DEFAULT NULL,
354 	p_attribute1		IN	VARCHAR2 DEFAULT NULL,
355 	p_attribute2		IN	VARCHAR2 DEFAULT NULL,
356 	p_attribute3		IN	VARCHAR2 DEFAULT NULL,
357 	p_attribute4		IN	VARCHAR2 DEFAULT NULL,
358 	p_attribute5		IN	VARCHAR2 DEFAULT NULL,
359 	p_attribute6		IN	VARCHAR2 DEFAULT NULL,
360 	p_attribute7		IN	VARCHAR2 DEFAULT NULL,
361 	p_attribute8		IN	VARCHAR2 DEFAULT NULL,
362 	p_attribute9		IN	VARCHAR2 DEFAULT NULL,
363 	p_attribute10		IN	VARCHAR2 DEFAULT NULL,
364 	p_attribute11		IN	VARCHAR2 DEFAULT NULL,
365 	p_attribute12		IN	VARCHAR2 DEFAULT NULL,
366 	p_attribute13		IN	VARCHAR2 DEFAULT NULL,
367 	p_attribute14		IN	VARCHAR2 DEFAULT NULL,
368 	p_attribute15		IN	VARCHAR2 DEFAULT NULL
369 )
370 IS
371 l_api_name			CONSTANT VARCHAR2(30)	:='update activity suppression';
372 l_api_version           	CONSTANT NUMBER 		:= 1.0;
373 l_validated			boolean;
374 x_error_segments        NUMBER;
375 x_error_message         VARCHAR2(5000);
376 BEGIN
377 
378 	/* Standard Start of API savepoint */
379 	SAVEPOINT Update_ActivitySupn_PUB;
380 	/* Standard call to check for call compatibility. */
384 		    	    	    	    	G_PKG_NAME
381 	IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
382         	    	    	    	 	p_api_version        	,
383    	       	    	 			l_api_name 	    	,
385 					   )
386 	THEN
387 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
388 	END IF;
389 
390 	/* Initialize message list if p_init_msg_list is set to TRUE. */
391 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
392 		FND_MSG_PUB.initialize;
393 	END IF;
394 	/* Initialize API return status to success */
395 	x_return_status := FND_API.G_RET_STS_SUCCESS;
396 
397 	/* API body */
398 	/* validation calls */
399 	l_validated := Validate_SuppressionRecord (p_parent_association_id,
400 						   p_child_association_id);
401 	if (not l_validated) then
402 		--raise_error('NO_RECORD FOR UPDATE');
403 		raise_error('EAM_RECORD_DOES_NOT_EXIST');
404         end if;
405 
406 	/* Validating the DFF */
407 
408 	l_validated := EAM_COMMON_UTILITIES_PVT.validate_desc_flex_field (
409 			p_app_short_name	=>	'EAM',
410 			p_desc_flex_name	=>	'EAM_SUPPRESSIONS',
411 			p_ATTRIBUTE_CATEGORY    =>	p_attribute_category ,
412 			p_ATTRIBUTE1            =>	p_attribute1          ,
413 			p_ATTRIBUTE2            =>	p_attribute2           ,
414 			p_ATTRIBUTE3            =>	p_attribute3            ,
415 			p_ATTRIBUTE4            =>	p_attribute4            ,
416 			p_ATTRIBUTE5            =>	p_attribute5            ,
417 			p_ATTRIBUTE6            =>	p_attribute6            ,
418 			p_ATTRIBUTE7            =>	p_attribute7            ,
419 			p_ATTRIBUTE8            =>	p_attribute8            ,
420 			p_ATTRIBUTE9            =>	p_attribute9            ,
421 			p_ATTRIBUTE10           =>	p_attribute10           ,
422 			p_ATTRIBUTE11           =>	p_attribute11           ,
423 			p_ATTRIBUTE12           =>	p_attribute12           ,
424 			p_ATTRIBUTE13           =>	p_attribute13           ,
425 			p_ATTRIBUTE14           =>	p_attribute14           ,
426 			p_ATTRIBUTE15           =>	p_attribute15 ,
427 			x_error_segments	=>	x_error_segments ,
428 			x_error_message		=>	x_error_message);
429 	IF (not l_validated) THEN
430 		IF (not l_validated) THEN
431 		  FND_MESSAGE.SET_NAME('EAM', 'EAM_INVALID_DESC_FLEX');
432 		  FND_MESSAGE.SET_TOKEN('ERROR_MSG', x_error_message);
433 		  FND_MSG_PUB.Add;
434 		  RAISE FND_API.G_EXC_ERROR;
435 		END IF;
436         END IF;
437 
438 	l_validated := eam_pm_suppressions.check_no_loop (p_parent_association_id,
439 							p_child_association_id);
440 	if (not l_validated) then
441 		--raise_error('Child activity cannot suppress its Parent activity');
442 		raise_error('EAM_INVALID_SUPPRESSION');
443         end if;
444 
445 	/* validation calls finish */
446 
447 
448 		UPDATE
449 			eam_suppression_relations
450 		SET
451 			description		= p_description	,
452 			attribute_category	= p_attribute_category	,
453 			attribute1		= p_attribute1	,
454 			attribute2		= p_attribute2	,
455 			attribute3		= p_attribute3	,
456 			attribute4		= p_attribute4	,
457 			attribute5		= p_attribute5	,
458 			attribute6		= p_attribute6	,
459 			attribute7		= p_attribute7	,
460 			attribute8		= p_attribute8	,
461 			attribute9		= p_attribute9	,
462 			attribute10		= p_attribute10	,
463 			attribute11		= p_attribute11	,
464 			attribute12		= p_attribute12	,
465 			attribute13		= p_attribute13	,
466 			attribute14		= p_attribute14	,
467 			attribute15		= p_attribute15
468 		WHERE
469 			parent_association_id = p_parent_association_id
470 		AND
471 			child_association_id  = p_child_association_id ;
472 	/* Standard check of p_commit. */
473 	IF FND_API.TO_BOOLEAN( P_COMMIT ) THEN
474 		COMMIT WORK;
475 	END IF;
476 	-- Standard call to get message count and if count is 1, get message info.
477 	FND_MSG_PUB.get
478     	(  	p_msg_index_out         	=>      x_msg_count ,
479         	p_data          	=>      x_msg_data
480     	);
481 
482 EXCEPTION
483 	WHEN FND_API.G_EXC_ERROR THEN
484 		ROLLBACK TO Update_ActivitySupn_PUB;
485 		x_return_status := FND_API.G_RET_STS_ERROR ;
486 		FND_MSG_PUB.get
487     		(  	p_msg_index_out        	=>      x_msg_count ,
488         		p_data         	=>      x_msg_data
489     		);
490 
491 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
492 		ROLLBACK TO Update_ActivitySupn_PUB;
493 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
494 		FND_MSG_PUB.get
495     		(  	p_msg_index_out        	=>      x_msg_count ,
496         		p_data         	=>      x_msg_data
497     		);
498 
499 	WHEN OTHERS THEN
500 		ROLLBACK TO Update_ActivitySupn_PUB;
501 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
502 
503   		IF FND_MSG_PUB.Check_Msg_Level
504 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
505 		THEN
506         		FND_MSG_PUB.Add_Exc_Msg
507     	    		(	G_PKG_NAME ,
508     	    			l_api_name
509 	    		);
510 		END IF;
511 
512 		FND_MSG_PUB.get
513     		(  	p_msg_index_out        	=>      x_msg_count ,
514         		p_data         	=>      x_msg_data
515     		);
516 
517 END Update_ActivitySupn;
518 
519 /* Functions */
520 /* validate org eam enabled */
521 FUNCTION Validate_EamEnabled (p_organization_id NUMBER)
522 	RETURN boolean
523 IS
524 /*	l_status varchar2 (10);*/
525 
526 	l_boolean NUMBER;
527 	l_return_status VARCHAR2 (10);
528 	l_msg_count NUMBER;
529 	l_msg_data VARCHAR2(5000);
530 BEGIN
531 
532 	/*SELECT 'Enabled' INTO l_status
533 	FROM mtl_parameters
534 	WHERE organization_id = p_organization_id
535 	AND NVL(EAM_ENABLED_FLAG, 'N') = 'Y';
536 
537 	IF (l_status = 'Enabled') THEN
538 		RETURN true;
539 	ELSE
543 	eam_common_utilities_pvt.verify_org (
540 		RETURN false;
541 	END IF;*/
542 
544                       p_resp_id		=> NULL,
545                       p_resp_app_id	=> 401,
546                       p_org_id		=> p_organization_id,
547                       p_init_msg_list	=> FND_API.G_FALSE,
548                       x_boolean		=> l_boolean,
549                       x_return_status	=> l_return_status,
550                       x_msg_count	=> l_msg_count,
551                       x_msg_data	=> l_msg_data);
552 /* x_return_status := fnd_api.g_ret_sts_success; */
553 	IF (l_return_status = fnd_api.g_ret_sts_success) THEN
554 		RETURN true;
555 	ELSE
556 		RETURN false;
557 	END IF;
558 
559 END Validate_EamEnabled;
560 
561 /* CHECK THE SUPPRESSION RECORD EXISTS, FOR UPDATE CASE */
562 FUNCTION Validate_SuppressionRecord (p_parent_association_id NUMBER,
563 					p_child_association_id NUMBER)
564 	RETURN boolean
565 IS
566 	l_status varchar2(10);
567 BEGIN
568 	SELECT 'Exists' INTO l_status
569 	FROM eam_suppression_relations
570 	WHERE parent_association_id = p_parent_association_id
571 	AND child_association_id = p_child_association_id;
572 
573 	IF (l_status = 'Exists') THEN
574 		RETURN true;
575 	ELSE
576 		RETURN false;
577 	END IF;
578 EXCEPTION
579 WHEN no_data_found THEN
580 	RETURN false;
581 
582 END Validate_SuppressionRecord ;
583 
584 /* CHECK THE PARENT ASSOCIATION ID AND CHILD ASSOCIATION ID SHOULD NOT INTERCHANGE */
585 FUNCTION Validate_ParentChildAssets (p_parent_association_id NUMBER,
586 					p_child_association_id NUMBER)
587 	RETURN boolean
588 IS
589 	l_count number;
590 	l_status varchar2(10);
591 BEGIN
592 
593 	SELECT count(*) INTO l_count
594 	FROM eam_suppression_relations a, eam_suppression_relations b
595 	WHERE a.parent_association_id = b.child_association_id
596 	AND a.child_association_id = b.parent_association_id
597 	AND a.parent_association_id = p_parent_association_id
598 	AND a.child_association_id  = p_child_association_id;
599 
600 	IF (l_count = 0) THEN
601 		RETURN true;
602 	ELSE
603 		RETURN false;
604 	END IF;
605 EXCEPTION
606 WHEN no_data_found THEN
607 	RETURN false;
608 END Validate_ParentChildAssets ;
609 
610 
611 /* For checking the association_id exists in the mtl_eam_asset_activities table */
612 FUNCTION Validate_AssociationId (p_association_id NUMBER)
613 	RETURN boolean
614 IS
615 	l_status varchar2(10);
616 BEGIN
617 
618 	SELECT 'Exists' INTO l_status
619 	FROM  mtl_eam_asset_activities
620 	WHERE ACTIVITY_ASSOCIATION_ID = p_association_id;
621 
622 	if (l_status = 'Exists') then
623 		RETURN true;
624 	else
625 		RETURN false;
626 	end if;
627 EXCEPTION
628 WHEN no_data_found THEN
629 	RETURN false;
630 END Validate_AssociationId ;
631 
632 
633 /* For checking the asset/item is the same for both parent and child activity association */
634 FUNCTION Validate_MaintainedObjUnique (p_parent_association_id NUMBER,
635 					p_child_association_id number,
636 					p_tmpl_flag varchar2)
637 	RETURN boolean
638 IS
639 	l_parent_assoc number;
640 	l_child_assoc number;
641 	l_parent_organization_id number;
642 	l_child_organization_id number;
643 	l_parent_ser_num VARCHAR2(30) := null;
644 	l_child_ser_num VARCHAR2(30) := null;
645 
646 	l_parent_object_id number;
647 	l_parent_object_type number;
648 	l_child_object_id number;
649 	l_child_object_type number;
650 
651 	l_status varchar2(10);
652 	l_tmpl_flag_p char (1);
653 	l_tmpl_flag_c char (1);
654 
655 BEGIN
656 /*
657 
658 --commented out this section to use Maintenance Object ID and Type
659 
660 	IF p_tmpl_flag = 'Y' THEN
661 		SELECT inventory_item_id , organization_id , tmpl_flag
662 		INTO l_parent_assoc , l_parent_organization_id, l_tmpl_flag_p
663 		FROM mtl_eam_asset_activities
664 		WHERE activity_association_id = p_parent_association_id;
665 
666 		SELECT inventory_item_id , organization_id , tmpl_flag
667 		INTO l_child_assoc , l_child_organization_id, l_tmpl_flag_c
668 		FROM mtl_eam_asset_activities
669 		WHERE activity_association_id = p_child_association_id;
670 	ELSE
671 		SELECT inventory_item_id , serial_number , organization_id, tmpl_flag
672 		INTO l_parent_assoc , l_parent_ser_num , l_parent_organization_id, l_tmpl_flag_p
673 		FROM mtl_eam_asset_activities
674 		WHERE activity_association_id = p_parent_association_id;
675 
676 		SELECT inventory_item_id , serial_number , organization_id, tmpl_flag
677 		INTO l_child_assoc , l_child_ser_num , l_child_organization_id, l_tmpl_flag_c
678 		FROM mtl_eam_asset_activities
679 		WHERE activity_association_id = p_child_association_id;
680 	END IF;
681 
682 	IF (l_parent_assoc = l_child_assoc AND
683 		l_parent_organization_id = l_child_organization_id) THEN
684 --		IF (NOT p_tmpl_flag = 'Y') THEN
685 		IF ((l_tmpl_flag_p IS NULL OR l_tmpl_flag_p IN ('N'))
686 		AND (l_tmpl_flag_c IS NULL OR l_tmpl_flag_c IN ('N'))
687 		AND  p_tmpl_flag IN ('N') ) THEN
688 
689 			IF (l_parent_ser_num = l_child_ser_num) THEN
690 				RETURN true;
691 			ELSE
692 				RETURN false;
693 			END IF;
694 --		 ELSIF (l_parent_ser_num IS NULL AND l_child_ser_num IS NULL) THEN
695 
696 		ELSIF (l_tmpl_flag_p in ( 'Y' ) AND l_tmpl_flag_c in ( 'Y' ) AND p_tmpl_flag in ('Y')) THEN
697 			RETURN true;
698                 ELSE
699 		        -- Bug # 3518888
700                         RAISE_ERROR('EAM_IAA_INV_TEML_FLAG');
701 		END IF;
702 
703 	ELSE
704 		RETURN false;
705 	END IF;
706 */
707 
711 	WHERE activity_association_id = p_parent_association_id;
708 	select maintenance_object_id, maintenance_object_type, tmpl_flag
709 	into l_parent_object_id, l_parent_object_type, l_tmpl_flag_p
710 	from  mtl_eam_asset_activities
712 
713 	select maintenance_object_id, maintenance_object_type, tmpl_flag
714 	into l_child_object_id, l_child_object_type, l_tmpl_flag_c
715 	from  mtl_eam_asset_activities
716 	WHERE activity_association_id = p_child_association_id;
717 
718 
719 	IF (((l_tmpl_flag_p IS NULL OR l_tmpl_flag_p IN ('N'))
720 		AND (l_tmpl_flag_c IS NULL OR l_tmpl_flag_c IN ('N'))
721 		AND  p_tmpl_flag IN ('N')) or
722 
723 		(l_tmpl_flag_p in ( 'Y' ) AND l_tmpl_flag_c in ( 'Y' ) AND p_tmpl_flag in ('Y'))) then
724 
725 		IF (l_parent_object_id = l_child_object_id AND
726 			l_parent_object_type = l_child_object_type) THEN
727 			RETURN true;
728 		ELSE
729 			RETURN false;
730 		END IF;
731 	ELSE
732 		        -- Bug # 3518888
733                 RAISE_ERROR('EAM_IAA_INV_TEML_FLAG');
734 	END IF;
735 
736 EXCEPTION
737 	WHEN no_data_found THEN
738 		RETURN false;
739 
740 END Validate_MaintainedObjUnique ;
741 
742 
743 /* private procedure for raising exceptions */
744 
745 PROCEDURE RAISE_ERROR (ERROR VARCHAR2)
746 IS
747 BEGIN
748 	FND_MESSAGE.SET_NAME ('EAM', ERROR);
749         FND_MSG_PUB.ADD;
750         RAISE FND_API.G_EXC_ERROR;
751 END;
752 
753 PROCEDURE print_log(info varchar2) is
754 PRAGMA  AUTONOMOUS_TRANSACTION;
755 l_dummy number;
756 BEGIN
757 /*
758 if (g_sr_no is null or g_sr_no<0) then
759 		g_sr_no := 0;
760 	end if;
761 
762 	g_sr_no := g_sr_no+1;
763 
764 	INSERT into temp_isetup_api(msg,sr_no)
765 	VALUES (info,g_sr_no);
766 
767 	commit;
768 */
769 FND_FILE.PUT_LINE(FND_FILE.LOG, info);
770 
771 END;
772 
773 END EAM_ActivitySupn_PUB;