[Home] [Help]
PACKAGE BODY: APPS.EAM_ASSETATTR_GRP_PUB
Source
1 PACKAGE BODY EAM_ASSETATTR_GRP_PUB AS
2 /* $Header: EAMPAAGB.pls 120.3 2005/12/12 01:31:05 sshahid ship $ */
3 /*
4 --Start of comments
5 -- API name : EAM_ASSETATTR_GRP_PUB
6 -- Type : Public
7 -- Function : Insert, update and validation of the asset attribute assignemnt data
8 -- Pre-reqs : None.
9 */
10
11 /* This procedure inserts a record in the mtl_eam_asset_attr_groups table
12 -- Parameters :
13 -- IN : P_API_VERSION IN NUMBER REQUIRED
14 -- P_INIT_MSG_LIST IN VARCHAR2 OPTIONAL
15 -- DEFAULT = FND_API.G_FALSE
16 -- P_COMMIT IN VARCHAR2 OPTIONAL
17 -- DEFAULT = FND_API.G_FALSE
18 -- P_VALIDATION_LEVEL IN NUMBER OPTIONAL
19 -- DEFAULT = FND_API.G_VALID_LEVEL_FULL
20 -- P_APPLICATION_ID IN NUMBER
21 -- P_DESCRIPTIVE_FLEXFIELD_NAME IN VARCHAR2
22 -- DEFAULT NULL
23 -- P_DESC_FLEX_CONTEXT_CODE IN VARCHAR2
24 -- DEFAULT NULL
25 -- P_ORGANIZATION_ID IN NUMBER
26 -- P_INVENTORY_ITEM_ID IN NUMBER
27 -- P_ENABLED_FLAG IN VARCHAR2
28 -- DEFAULT NULL
29 -- P_CREATION_ORGANIZATION_ID IN NUMBER
30 --
31 -- OUT : x_return_status OUT NOCOPY VARCHAR2(1)
32 -- x_msg_count OUT NOCOPY NUMBER
33 -- x_msg_data OUT NOCOPY VARCHAR2 (2000)
34 -- Version : Current version: 1.0
35 -- Initial version: 1.0
36 --
37 -- Notes
38 --
39 -- End of comments
40
41 */
42 /* for de-bugging */
43 /*g_sr_no number ;*/
44
45 PROCEDURE INSERT_ASSETATTR_GRP
46 ( P_API_VERSION IN NUMBER ,
47 P_INIT_MSG_LIST IN VARCHAR2:= FND_API.G_FALSE ,
48 P_COMMIT IN VARCHAR2:= FND_API.G_FALSE ,
49 P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
50 X_RETURN_STATUS OUT NOCOPY VARCHAR2 ,
51 X_MSG_COUNT OUT NOCOPY NUMBER ,
52 X_MSG_DATA OUT NOCOPY VARCHAR2 ,
53 P_APPLICATION_ID IN NUMBER DEFAULT 401 ,
54 P_DESCRIPTIVE_FLEXFIELD_NAME IN VARCHAR2 DEFAULT 'MTL_EAM_ASSET_ATTR_VALUES',
55 P_DESC_FLEX_CONTEXT_CODE IN VARCHAR2 ,
56 P_ORGANIZATION_ID IN NUMBER ,
57 P_INVENTORY_ITEM_ID IN NUMBER ,
58 P_ENABLED_FLAG IN VARCHAR2 DEFAULT 'Y',
59 P_CREATION_ORGANIZATION_ID IN NUMBER ,
60 X_NEW_ASSOCIATION_ID OUT NOCOPY NUMBER
61 )
62
63 IS
64
65 l_api_name CONSTANT VARCHAR2(30) :='INSERT_ASSETATTR_GRP';
66 l_api_version CONSTANT NUMBER := 1.0;
67 l_association_id number;
68 l_validated boolean;
69 l_item_type number;
70 l_exists boolean;
71 l_org_id number;
72 l_creation_organization_id number;
73 l_boolean number;
74
75
76 BEGIN
77
78 /* Standard Start of API savepoint */
79 SAVEPOINT INSERT_ASSETATTR_GRP_PUB;
80
81 /* Standard call to check for call compatibility. */
82 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
83 p_api_version ,
84 l_api_name ,
85 G_PKG_NAME
86 )
87 THEN
88 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
89 END IF;
90
91 /* Initialize message list if p_init_msg_list is set to TRUE. */
92 IF FND_API.to_Boolean( p_init_msg_list ) THEN
93 FND_MSG_PUB.initialize;
94 END IF;
95
96 /* Initialize API return status to success */
97 x_return_status := FND_API.G_RET_STS_SUCCESS;
98
99 /* API body */
100 /* Start validation calls */
101
102 /* for creation_organization_id = organization_id */
103 l_org_id := P_ORGANIZATION_ID;
104
105 if (P_CREATION_ORGANIZATION_ID IS NOT NULL) then
106 if P_CREATION_ORGANIZATION_ID <> P_ORGANIZATION_ID then
107 fnd_message.set_name('EAM', 'EAM_ABO_INVALID_CR_ORG_ID');
108 fnd_msg_pub.add;
109 RAISE fnd_api.g_exc_error;
110 else
111 l_creation_organization_id := P_ORGANIZATION_ID;
112 end if;
113 else
114 l_creation_organization_id := P_ORGANIZATION_ID;
115 end if;
116 if l_creation_organization_id is not null then
117 /* EAM enabled check */
118 EAM_COMMON_UTILITIES_PVT.verify_org(
119 p_resp_id => NULL,
120 p_resp_app_id => 401,
121 p_org_id => l_creation_organization_id,
122 x_boolean => l_boolean,
123 x_return_status => x_return_status,
124 x_msg_count => x_msg_count ,
125 x_msg_data => x_msg_data);
126 if l_boolean = 0
127 then
128 fnd_message.set_name('EAM', 'EAM_ABO_INVALID_ORG_ID');
129 fnd_msg_pub.add;
130 RAISE fnd_api.g_exc_error;
131 end if;
132 end if;
133
134 /* validate item id; get item type */
135
136 l_item_type:=get_item_type(p_creation_organization_id, p_inventory_item_id);
137 if (l_item_type is null) then
138 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
139 /*elsif (l_item_type=1 and p_organization_id is null) then
140 raise_error('EAM_ASSET_ORG_ID_REQ');
141 elsif (l_item_type=3 and p_organization_id is not null) then
142 raise_error('EAM_REBUILD_ORG_ID_NOT_NULL');
143 */
144 elsif (l_item_type<>3 and l_item_type<>1) then
145 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
146 end if;
147
148 /* -- Bug # 3518888 : Creation org id need to be validated irrespective of item type
149 --if (l_item_type=1) then
150 l_validated := VALIDATE_EAM_ENABLED (P_creation_ORGANIZATION_ID);
151 if (not l_validated) then
152 --raise_error('NOT_EAM_ENABLED');
153 raise_error ('EAM_ABO_INVALID_CR_ORG_ID');
154 end if;
155 --end if;*/
156
157 /* validate that the row does not already exist */
158 l_exists:=validate_row_exists
159 (p_item_type => l_item_type,
160 p_creation_organization_id => p_creation_organization_id,
161 p_inventory_item_id => p_inventory_item_id,
162 P_DESC_FLEX_CONTEXT_CODE => P_DESC_FLEX_CONTEXT_CODE);
163
164 if (l_exists) then
165 raise_error('EAM_AAG_EXISTS');
166 end if;
167
168 /*
169 if p_organization_id IS NOT NULL then
170 if (p_organization_id <> p_creation_organization_id) then
171 raise_error('EAM_ORG_ID_INCONSISTENT');
172 end if;
173 end if;
174 */
175 l_validated := VALIDATE_DESC_FLEX_FIELD_NAME (P_DESCRIPTIVE_FLEXFIELD_NAME);
176 if (not l_validated) then
177 --raise_error('DFF NOT MTL_EAM_ASSET_ATTR_VALUES');
178 raise_error('EAM_INVALID_DFF_NAME');
179 end if;
180
181
182 l_validated := CHECK_DESC_FLEX_CONTEXT_CODE (P_DESC_FLEX_CONTEXT_CODE , P_APPLICATION_ID);
183 if (not l_validated) then
184 --raise_error('BAD DFF CODE');
185 raise_error ('EAM_INVALID_DFF_CODE');
186 end if;
187
188
189
190 l_validated := VALIDATE_FLAG_FIELD (P_ENABLED_FLAG);
191 if (not l_validated) then
192 --raise_error('BAD ENABLED_FLAG');
193 raise_error('EAM_INVALID_ENABLED_FLAG');
194 end if;
195
196 /* this is already validated earlier
197 l_validated := VALIDATE_ITEM_ID (P_INVENTORY_ITEM_ID , P_ORGANIZATION_ID);
198 if (not l_validated) then
199 -- raise_error('BAD INVENTORY_ITEM_ID');
200 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
201 end if;
202 */
203 /* End validation calls */
204
205 SELECT MTL_EAM_ASSET_ATTR_GROUPS_S.NEXTVAL INTO L_ASSOCIATION_ID FROM DUAL;
206
207 X_NEW_ASSOCIATION_ID := L_ASSOCIATION_ID;
208
209
210 INSERT INTO MTL_EAM_ASSET_ATTR_GROUPS
211 (
212 ASSOCIATION_ID ,
213 APPLICATION_ID ,
214 DESCRIPTIVE_FLEXFIELD_NAME ,
215 DESCRIPTIVE_FLEX_CONTEXT_CODE ,
216 ORGANIZATION_ID ,
217 INVENTORY_ITEM_ID ,
218 LAST_UPDATED_BY ,
219 LAST_UPDATE_DATE ,
220 CREATED_BY ,
221 CREATION_DATE ,
222 LAST_UPDATE_LOGIN ,
223 ENABLED_FLAG ,
224 CREATION_ORGANIZATION_ID
225 )
226 VALUES
227 (
228 L_ASSOCIATION_ID ,
229 P_APPLICATION_ID ,
230 P_DESCRIPTIVE_FLEXFIELD_NAME ,
231 P_DESC_FLEX_CONTEXT_CODE ,
232 P_ORGANIZATION_ID ,
233 P_INVENTORY_ITEM_ID ,
234 FND_GLOBAL.USER_ID ,
235 SYSDATE ,
236 FND_GLOBAL.LOGIN_ID ,
237 SYSDATE ,
238 FND_GLOBAL.USER_ID ,
239 P_ENABLED_FLAG ,
240 p_creation_organization_id
241 );
242
243 /* Standard check of p_commit. */
244 IF FND_API.TO_BOOLEAN( P_COMMIT ) THEN
245 COMMIT WORK;
246 END IF;
247 -- Standard call to get message count and if count is 1, get message info.
248 FND_MSG_PUB.GET
249 ( p_msg_index_out => x_msg_count ,
250 p_data => x_msg_data
251 );
252
253 EXCEPTION
254 WHEN FND_API.G_EXC_ERROR THEN
255 ROLLBACK TO INSERT_ASSETATTR_GRP_PUB;
256 x_return_status := FND_API.G_RET_STS_ERROR ;
257 FND_MSG_PUB.Get
258 ( p_msg_index_out => x_msg_count ,
259 p_data => x_msg_data
260 );
261
262 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
263 ROLLBACK TO INSERT_ASSETATTR_GRP_PUB;
264 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
265 FND_MSG_PUB.get
266 ( p_msg_index_out => x_msg_count ,
267 p_data => x_msg_data
268 );
269
270 WHEN OTHERS THEN
271 ROLLBACK TO INSERT_ASSETATTR_GRP_PUB;
272 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
273
274 IF FND_MSG_PUB.Check_Msg_Level
275 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
276 THEN
277 FND_MSG_PUB.Add_Exc_Msg
278 ( G_PKG_NAME ,
279 l_api_name
280 );
281 END IF;
282
283 FND_MSG_PUB.get
284 ( p_msg_index_out => x_msg_count ,
285 p_data => x_msg_data
286 );
287
288 END INSERT_ASSETATTR_GRP;
289
290 /*
291 This procedure updates a record in the mtl_eam_asset_attr_groups table
292 -- Parameters :
293 -- IN : P_API_VERSION IN NUMBER REQUIRED
294 -- P_INIT_MSG_LIST IN VARCHAR2 OPTIONAL
295 -- DEFAULT = FND_API.G_FALSE
296 -- P_COMMIT IN VARCHAR2 OPTIONAL
297 -- DEFAULT = FND_API.G_FALSE
298 -- P_VALIDATION_LEVEL IN NUMBER OPTIONAL
299 -- DEFAULT = FND_API.G_VALID_LEVEL_FULL
300 -- P_APPLICATION_ID IN NUMBER
301 -- P_DESCRIPTIVE_FLEXFIELD_NAME IN VARCHAR2
302 -- DEFAULT NULL
303 -- P_DESC_FLEX_CONTEXT_CODE IN VARCHAR2
304 -- DEFAULT NULL
305 -- P_ORGANIZATION_ID IN NUMBER
306 -- P_INVENTORY_ITEM_ID IN NUMBER
307 -- P_ENABLED_FLAG IN VARCHAR2
308 -- DEFAULT NULL
309 -- P_CREATION_ORGANIZATION_ID IN NUMBER
310 --
311 -- OUT : x_return_status OUT NOCOPY VARCHAR2(1)
312 -- x_msg_count OUT NOCOPY NUMBER
313 -- x_msg_data OUT NOCOPY VARCHAR2 (2000)
314 -- Version : Current version: 1.0
315 -- Initial version: 1.0
316 --
317 -- Notes
318 */
319
320 PROCEDURE UPDATE_ASSETATTR_GRP
321 ( P_API_VERSION IN NUMBER ,
322 P_INIT_MSG_LIST IN VARCHAR2:= FND_API.G_FALSE ,
323 P_COMMIT IN VARCHAR2:= FND_API.G_FALSE ,
324 P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
325 X_RETURN_STATUS OUT NOCOPY VARCHAR2 ,
326 X_MSG_COUNT OUT NOCOPY NUMBER ,
327 X_MSG_DATA OUT NOCOPY VARCHAR2 ,
328 P_ASSOCIATION_ID IN NUMBER ,
329 P_APPLICATION_ID IN NUMBER DEFAULT 401 ,
330 P_DESCRIPTIVE_FLEXFIELD_NAME IN VARCHAR2 DEFAULT 'MTL_EAM_ASSET_ATTR_VALUES',
331 P_DESC_FLEX_CONTEXT_CODE IN VARCHAR2 ,
332 P_ORGANIZATION_ID IN NUMBER ,
333 P_INVENTORY_ITEM_ID IN NUMBER ,
334 P_ENABLED_FLAG IN VARCHAR2 DEFAULT 'Y',
335 P_CREATION_ORGANIZATION_ID IN NUMBER
336 )
337 IS
338 l_validated boolean;
339 l_api_name CONSTANT VARCHAR2(30) :='UPDATE asset attr';
340 l_api_version CONSTANT NUMBER := 1.0;
341 l_item_type number;
342 l_exists boolean;
343 l_org_id number;
344 l_creation_organization_id number;
345 l_boolean number;
346
347 BEGIN
348
349 SAVEPOINT UPDATE_ASSETATTR_GRP_PUB;
350 x_return_status := FND_API.G_RET_STS_SUCCESS;
351 --x_return_status := 'success';
352
353 /* API body */
354 /* Start validation calls */
355
356 /* for creation_organization_id = organization_id */
357 l_org_id := P_ORGANIZATION_ID;
358 if (P_CREATION_ORGANIZATION_ID IS NOT NULL) then
359 if P_CREATION_ORGANIZATION_ID <> P_ORGANIZATION_ID then
360 fnd_message.set_name('EAM', 'EAM_ABO_INVALID_CR_ORG_ID');
361 fnd_msg_pub.add;
362 RAISE fnd_api.g_exc_error;
363 else
364 l_creation_organization_id := P_ORGANIZATION_ID;
365 end if;
366 else
367 l_creation_organization_id := P_ORGANIZATION_ID;
368 end if;
369 if l_creation_organization_id is not null then
370 /* EAM enabled check */
371 EAM_COMMON_UTILITIES_PVT.verify_org(
372 p_resp_id => NULL,
373 p_resp_app_id => 401,
374 p_org_id => l_creation_organization_id,
375 x_boolean => l_boolean,
376 x_return_status => x_return_status,
377 x_msg_count => x_msg_count ,
378 x_msg_data => x_msg_data);
379 if l_boolean = 0
380 then
381 fnd_message.set_name('EAM', 'EAM_ABO_INVALID_ORG_ID');
382 fnd_msg_pub.add;
383 RAISE fnd_api.g_exc_error;
384 end if;
385 end if;
386
387 /* validate inventory item id; get item type */
388 l_item_type:=get_item_type(p_creation_organization_id, p_inventory_item_id);
389 if (l_item_type is null) then
390 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
391 /*elsif (l_item_type=1 and p_organization_id is null) then
392 raise_error('EAM_ASSET_ORG_ID_REQ');
393 elsif (l_item_type=3 and p_organization_id is not null) then
394 raise_error('EAM_REBUILD_ORG_ID_NOT_NULL');
395 */
396 elsif (l_item_type<>1 and l_item_type<>3) then
397 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
398 end if;
399
400 /* -- Bug # 3518888 : Creation org id need to be validated irrespective of item type
401 --if (l_item_type=1) then
402 l_validated := VALIDATE_EAM_ENABLED (P_creation_ORGANIZATION_ID);
403 if (not l_validated) then
407 --end if;
404 --raise_error('NOT_EAM_ENABLED');
405 raise_error ('EAM_ABO_INVALID_CR_ORG_ID');
406 end if;
408 */
409
410 /* validate that the row does not already exist */
411
412 /* Validate that the row exists */
413 l_exists:=validate_row_exists
414 (p_item_type => l_item_type,
415 p_creation_organization_id => p_creation_organization_id,
416 p_inventory_item_id => p_inventory_item_id,
417 P_DESC_FLEX_CONTEXT_CODE => P_DESC_FLEX_CONTEXT_CODE,
418 p_association_id=>p_association_id);
419
420 if (not l_exists) then
421 raise_error('EAM_ROW_NOT_EXISTS');
422 end if;
423
424
425 l_validated := VALIDATE_DESC_FLEX_FIELD_NAME (P_DESCRIPTIVE_FLEXFIELD_NAME);
426 if (not l_validated) then
427 -- raise_error('DFF NOT MTL_EAM_ASSET_ATTR_VALUES');
428 raise_error('EAM_INVALID_DFF_NAME');
429 end if;
430
431
432 l_validated := CHECK_DESC_FLEX_CONTEXT_CODE (P_DESC_FLEX_CONTEXT_CODE , P_APPLICATION_ID);
433 if (not l_validated) then
434 --raise_error('BAD DFF CODE');
435 raise_error ('EAM_INVALID_DFF_CODE');
436 end if;
437
438
439
440 l_validated := VALIDATE_FLAG_FIELD (P_ENABLED_FLAG);
441 if (not l_validated) then
442 --raise_error('BAD ENABLED_FLAG');
443 raise_error('EAM_INVALID_ENABLED_FLAG');
444 end if;
445
446 /* This is already validated earlier
447 l_validated := VALIDATE_ITEM_ID (P_INVENTORY_ITEM_ID , P_ORGANIZATION_ID);
448 if (not l_validated) then
449 --raise_error('BAD INVENTORY_ITEM_ID');
450 raise_error('EAM_ABO_INVALID_INV_ITEM_ID');
451 end if;
452 */
453 /* Standard Start of API savepoint */
454
455
456 UPDATE MTL_EAM_ASSET_ATTR_GROUPS SET
457 APPLICATION_ID = P_APPLICATION_ID ,
458 DESCRIPTIVE_FLEXFIELD_NAME = P_DESCRIPTIVE_FLEXFIELD_NAME ,
459 DESCRIPTIVE_FLEX_CONTEXT_CODE = P_DESC_FLEX_CONTEXT_CODE ,
460 /* ORGANIZATION_ID = P_ORGANIZATION_ID ,
461 */ INVENTORY_ITEM_ID = P_INVENTORY_ITEM_ID ,
462 ENABLED_FLAG = P_ENABLED_FLAG
463 /*, CREATION_ORGANIZATION_ID= x_creation_organization_id
464 */
465 WHERE
466 ASSOCIATION_ID = P_ASSOCIATION_ID
467 and creation_organization_id=p_creation_organization_id
468 and inventory_item_id=p_inventory_item_id
469 and descriptive_flex_context_code=p_desc_flex_context_code;
470
471
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_ASSETATTR_GRP_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_ASSETATTR_GRP_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_ASSETATTR_GRP_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_ASSETATTR_GRP;
518
519
520 /* VALIDATION 1 */
521
522 FUNCTION VALIDATE_DESC_FLEX_FIELD_NAME
523 ( P_DESCRIPTIVE_FLEXFIELD_NAME VARCHAR2)
524 RETURN BOOLEAN
525 IS
526 BEGIN
527 IF (p_descriptive_flexfield_name is null or
528 P_DESCRIPTIVE_FLEXFIELD_NAME <> 'MTL_EAM_ASSET_ATTR_VALUES')
529 THEN
530 RETURN FALSE;
531 ELSE
532 RETURN TRUE;
533 END IF;
534 END VALIDATE_DESC_FLEX_FIELD_NAME;
535
536
537 /* VALIDATION 2 */
538
539 FUNCTION CHECK_DESC_FLEX_CONTEXT_CODE
540 (P_DESC_FLEX_CONTEXT_CODE VARCHAR2,
541 P_APPLICATION_ID NUMBER)
542 RETURN BOOLEAN
543 IS
544 L_STATUS NUMBER;
545 BEGIN
546 SELECT
547 count(*) INTO L_status
548 FROM
549 FND_DESCR_FLEX_CONTEXTS_VL
550 WHERE
551 DESCRIPTIVE_FLEXFIELD_NAME = 'MTL_EAM_ASSET_ATTR_VALUES'
552 AND
553 ENABLED_FLAG = 'Y'
554 AND
555 APPLICATION_ID = P_APPLICATION_ID
556 AND
557 DESCRIPTIVE_FLEX_CONTEXT_CODE = P_DESC_FLEX_CONTEXT_CODE;
558
559 IF L_status > 0
560 THEN
561 RETURN TRUE;
562 ELSE
563 RETURN FALSE;
564 END IF;
565 EXCEPTION
566 when no_data_found then
567 return false;
568 END CHECK_DESC_FLEX_CONTEXT_CODE;
569
570
574 (P_ORGANIZATION_ID NUMBER)
571 /* VALIDATION 3 */
572
573 FUNCTION VALIDATE_EAM_ENABLED
575 RETURN BOOLEAN
576 IS
577 L_STATUS NUMBER;
578 BEGIN
579 SELECT count(*) INTO L_status
580 FROM wip_eam_PARAMETERS
581 WHERE ORGANIZATION_ID = P_ORGANIZATION_ID;
582
583
584 IF L_status > 0
585 THEN
586 RETURN TRUE;
587 ELSE
588 RETURN FALSE;
589 END IF;
590 END VALIDATE_EAM_ENABLED;
591
592
593 /* VALIDATION 4 */
594
595 FUNCTION VALIDATE_FLAG_FIELD
596 (P_ENABLED_FLAG VARCHAR2)
597 RETURN BOOLEAN
598 IS
599 BEGIN
600 -- Bug # 3518888
601 IF P_ENABLED_FLAG IN ('Y', 'N')THEN
602 RETURN TRUE;
603 ELSE
604 RETURN FALSE;
605 END IF;
606 END VALIDATE_FLAG_FIELD;
607
608
609
610 /* VALIDATION 5 */
611
612 FUNCTION VALIDATE_ITEM_ID
613 (P_INVENTORY_ITEM_ID NUMBER,
614 P_ORGANIZATION_ID NUMBER)
615 RETURN BOOLEAN
616 IS
617 L_STATUS NUMBER;
618 BEGIN
619 SELECT count(*) INTO L_status
620 FROM
621 MTL_SYSTEM_ITEMS_KFV
622 WHERE
623 INVENTORY_ITEM_ID = P_INVENTORY_ITEM_ID
624 AND
625 ORGANIZATION_ID = P_ORGANIZATION_ID
626 AND
627 (EAM_ITEM_TYPE = 1 or EAM_ITEM_TYPE=3);
628
629 IF L_STATUS >0
630 THEN
631 RETURN TRUE;
632 ELSE
633 RETURN FALSE;
634 END IF;
635
636 END VALIDATE_ITEM_ID;
637
638
639 /* get item type. 1=asset, 3=rebuildable */
640 FUNCTION get_item_type
641 (p_creation_organization_id in number,
642 p_inventory_item_id in number)
643 return number
644 is
645 l_eam_item_type number;
646 begin
647 select eam_item_type into l_eam_item_type
648 from mtl_system_items
649 where inventory_item_id=p_inventory_item_id
650 and rownum=1;
651
652 return l_eam_item_type;
653 exception
654 when no_data_found then
655 return null;
656 end get_item_type;
657
658
659 FUNCTION validate_row_exists
660 (p_item_type in number,
661 p_creation_organization_id in number,
662 p_inventory_item_id in number,
663 P_DESC_FLEX_CONTEXT_CODE in varchar2,
664 p_association_id in number default null)
665 return boolean
666 is
667 l_association_id number;
668 begin
669 /*
670 if (p_item_type=1) then
671 select association_id into l_association_id
672 from mtl_eam_asset_attr_groups
673 where creation_organization_id=p_creation_organization_id
674 and inventory_item_id=p_inventory_item_id
675 and descriptive_flex_context_code=p_desc_flex_context_code;
676 elsif (p_item_type=3) then
677 */
678 select association_id into l_association_id
679 from mtl_eam_asset_attr_groups
680 where inventory_item_id=p_inventory_item_id
681 and descriptive_flex_context_code=p_desc_flex_context_code;
682 --end if;
683
684 if (l_association_id is null) then
685 return false;
686 elsif (p_association_id is not null and
687 l_association_id <> p_association_id) then
688 return false;
689 else
690 return true;
691 end if;
695 end;
692 exception
693 when no_data_found then
694 return false;
696
697
698
699 /* private procedure for raising exceptions */
700
701 PROCEDURE RAISE_ERROR (ERROR VARCHAR2)
702 IS
703 BEGIN
704 FND_MESSAGE.SET_NAME ('EAM', ERROR);
705 FND_MSG_PUB.ADD;
706 RAISE FND_API.G_EXC_ERROR;
707
708 END;
709
710 PROCEDURE print_log(info varchar2) is
711 PRAGMA AUTONOMOUS_TRANSACTION;
712 l_dummy number;
713 BEGIN
714 /*
715 if (g_sr_no is null or g_sr_no<0) then
716 g_sr_no := 0;
717 end if;
718
719 g_sr_no := g_sr_no+1;
720
721 INSERT into temp_isetup_api(msg,sr_no)
722 VALUES (info,g_sr_no);
723
724 commit;
725 */
726 FND_FILE.PUT_LINE(FND_FILE.LOG, info);
727
728 END;
729
730 END EAM_ASSETATTR_GRP_PUB;