1 PACKAGE BODY EGO_ItemCat_Val_To_Id AS
2 /* $Header: EGOSVIDB.pls 120.1.12020000.3 2012/07/13 02:11:32 mshirkol ship $ */
3 /****************************************************************************
4 --
5 -- Copyright (c) 1996 Oracle Corporation, Redwood Shores, CA, USA
6 -- All rights reserved.
7 --
8 -- FILENAME
9 --
10 -- EGOSVIDB.pls
11 --
12 -- DESCRIPTION
13 --
14 -- Body of package EGO_ItemCat_Val_To_Id
15 -- Shared value-to-Id conversion package.
16 -- NOTES
17 --
18 -- HISTORY
19 -- -- 20-AUG-2002 Rahul Chitko Initial Creation
20 -- -- 09-OCT-2002 Refai Farook Modified UUI_TI_UI procedure logic to support
21 -- different combinations of key input data(group id,
22 -- name and segments)
23 ****************************************************************************/
24 G_Pkg_Name VARCHAR2(30) := 'EGO_ItemCat_Val_To_Id';
25 g_token_tbl Error_Handler.Token_Tbl_Type;
26
27
28 G_Error_Msg_Text VARCHAR2(2000);
29
30
31 /********************************************************************
32 ** Procedure: Generate_Catalog_Group_Id (Unexposed)
33 ** Purpose : Generates the next catalog group id
34 ** Returns : Catalog group id
35 **********************************************************************/
36
37 FUNCTION Generate_Catalog_Group_Id
38 RETURN NUMBER IS
39 l_ccid NUMBER;
40 BEGIN
41
42 SELECT mtl_item_catalog_groups_b_s.NEXTVAL
43 INTO l_ccid from dual;
44
45 Return l_ccid;
46
47 END;
48
49 /********************************************************************
50 ** Procedure: Check_Catalog_CCID (Unexposed)
51 ** Purpose : Checks the existence of catalog group id
52 ** Returns : TRUE if CCID exists and FALSE if not
53 **********************************************************************/
54
55
56 FUNCTION Check_Catalog_CCID
57 RETURN BOOLEAN
58 IS
59 l_ccid NUMBER;
60 BEGIN
61
62 SELECT item_catalog_group_id INTO l_ccid
63 FROM mtl_Item_Catalog_Groups_b WHERE
64 item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.catalog_group_id;
65
66 Return TRUE;
67
68 EXCEPTION WHEN OTHERS
69 THEN
70 Return FALSE;
71 END;
72
73 /********************************************************************
74 ** Procedure: Get_Catalog_Group_Id (exposed)
75 ** Purpose : Will take the concatenated segments for the catalog
76 ** group name and will return an Id. If the Id is null
77 ** that would mean the concatenated segment does not have
78 ** a corresponding record.
79 ** Returns : The procedure will perform primarily 2 operations
80 ** CHECK_COMBINATION AND FIND_COMBINATION
81 ** When invoked with CHECK_COMBINATION it would return 0 for
82 ** invalid and 1 for valid.
83 ** When invoked with FIND_COMBINATION it would return the ccid
84 ** if the find is succeessful or else return a null
85 **********************************************************************/
86
87 FUNCTION Get_Catalog_Group_Id
88 ( p_catalog_group_name IN VARCHAR2
89 , p_operation IN VARCHAR2
90 )
91 RETURN NUMBER
92 IS
93 l_delimiter varchar2(1) := FND_Flex_Ext.Get_Delimiter
94 ( application_short_name => 'INV'
95 , key_flex_code => 'MICG'
96 , structure_number => 101
97 );
98 l_segment_values FND_FLEX_EXT.SegmentArray;
99 kff fnd_flex_key_api.flexfield_type;
100 str fnd_flex_key_api.structure_type;
101 seg fnd_flex_key_api.segment_type;
102 seg_list fnd_flex_key_api.segment_list;
103 j number;
104 i number;
105 nsegs number;
106 ccid number;
107 is_valid boolean;
108 is_found boolean;
109 BEGIN
110
111 -- dbms_output.put_line('validating segments . . .operation - ' || p_operation );
112 -- dbms_output.put_line(' concat. value ' || p_catalog_group_name);
113
114 is_valid := FND_FLEX_KEYVAL.Validate_Segs
115 ( operation => p_operation
116 , appl_short_name => 'INV'
117 , key_flex_code => 'MICG'
118 , structure_number => 101
119 , concat_segments => p_catalog_group_name
120 );
121 -- dbms_output.put_line('validate segments finished');
122
123 IF (is_valid AND p_operation = 'FIND_COMBINATION') THEN
124
125 /*
126 --
127 -- Get the segment breakup and arrange the segments so that the segments can be
128 -- used while insertion or updation.
129 --
130
131 -- dbms_output.put_line('before breakup_segments. . . ');
132
133 begin
134 nsegs := fnd_flex_ext.breakup_segments
135 ( delimiter => l_delimiter
136 , concatenated_segs => p_catalog_group_name
137 , segments => l_segment_values
138 );
139 exception
140 when others then
141 -- dbms_output.put_line('error in breakup: ' || substr(sqlerrm,1,220));
142 end;
143
144 -- dbms_output.put_line('performed breakup_segments. . . ');
145
146 --
147 -- once the segments are received, then order the segments appropriatly so
148 -- they can be used anywhere.
149 --
150
151 kff := fnd_flex_key_api.find_flexfield('INV','MICG');
152 str := fnd_flex_key_api.find_structure(kff, 101);
153 fnd_flex_key_api.get_segments(kff, str, TRUE, nsegs, seg_list);
154
155 --
156 -- The segments in the seg_list array are sorted in display order.
157 -- i.e. sorted by segment number.
158 --
159 for i in 1..nsegs loop
160 seg :=
161 fnd_flex_key_api.find_segment(kff,
162 str,
163 seg_list(i));
164 j := to_number(substr(seg.column_name,8));
165 EGO_Item_Catalog_Pub.G_KF_SEGMENT_VALUES(j) := l_segment_values(i);
166 end loop;
167
168 -- dbms_output.put_line('returning ccid . . . ' || FND_FLEX_KEYVAL.Combination_ID);
169 */
170
171 return FND_FLEX_KEYVAL.Combination_ID;
172
173 ELSIF (is_valid AND p_operation = 'CHECK_SEGMENTS')
174 THEN
175
176 return 1;
177 ELSIF ( NOT is_valid AND p_operation = 'CHECK_SEGMENTS')
178 THEN
179 G_Error_Msg_Text := FND_FLEX_KEYVAL.error_message; -- bug 12380454
180 return 0;
181
182 ELSE
183 -- dbms_output.put_line('operation: ' || p_operation || ' returning NULL ' );
184 return NULL;
185
186 END IF;
187
188 END Get_Catalog_Group_Id;
189
190
191 /********************************************************************
192 ** Procedure: Get_Catalog_Group_Name (Unexposed)
193 ** Purpose : Will take the Id and return the concatenated segments
194 ** a.k.a the catalog group name. If a record is not found
195 ** then it means the id is invalid.
196 *********************************************************************/
197 FUNCTION Get_Catalog_Group_Name
198 ( p_catalog_group_id IN NUMBER)
199 RETURN VARCHAR2
200 IS
201 BEGIN
202
203 -- dbms_output.put_line('validating ID: ' || p_catalog_group_id);
204
205 if FND_Flex_KeyVal.validate_ccid(appl_short_name => 'INV',
206 key_flex_code => 'MICG',
207 structure_number => 101,
208 combination_id => p_catalog_group_id
209 )
210 THEN
211 -- dbms_output.put_line('returning name ' || FND_FLEX_KEYVAL.concatenated_values);
212 return FND_FLEX_KEYVAL.concatenated_values;
213 ELSE
214 return null;
215 END IF;
216
217 END Get_Catalog_Group_Name;
218
219
220 /*******************************************************************
221 * Procedure : Perform Segment break up and return a ccid
222 * Purpose : Performs the a breakup of the semgments are arranges
223 * the segments sequentially. If the create_new param
224 * is true then a new ccid will be returned. Else
225 * It will return 0 to indicate no errors and -1 otherwise
226 ********************************************************************/
227 FUNCTION Perform_Segment_Breakup (p_create_new BOOLEAN DEFAULT true)
228 RETURN NUMBER
229 IS
230 l_segment_values FND_FLEX_EXT.SegmentArray;
231 kff fnd_flex_key_api.flexfield_type;
232 str fnd_flex_key_api.structure_type;
233 seg fnd_flex_key_api.segment_type;
234 seg_list fnd_flex_key_api.segment_list;
235 j number;
236 i number;
237 nsegs number;
238 ccid number := 0;
239 is_valid boolean;
240 l_delimiter varchar2(1) := FND_Flex_Ext.Get_Delimiter
241 ( application_short_name => 'INV'
242 , key_flex_code => 'MICG'
243 , structure_number => 101
244 );
245 BEGIN
246 nsegs := fnd_flex_ext.breakup_segments
247 ( delimiter => l_delimiter
248 , concatenated_segs =>
249 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
250 , segments => l_segment_values
251 );
252 kff := fnd_flex_key_api.find_flexfield('INV','MICG');
253 str := fnd_flex_key_api.find_structure(kff, 101);
254 fnd_flex_key_api.get_segments(kff, str, TRUE, nsegs, seg_list);
255
256 --
257 -- The segments in the seg_list array are sorted in display order.
258 -- i.e. sorted by segment number.
259 --
260 -- dbms_output.put_line('starting with segment ordering . . .');
261
262 for i in 1..nsegs
263 loop
264 seg := fnd_flex_key_api.find_segment
265 (kff,
266 str,
267 seg_list(i));
268 j := to_number(substr(seg.column_name,8));
269 EGO_Item_Catalog_Pub.G_KF_SEGMENT_VALUES(j) :=
270 l_segment_values(i);
271 -- dbms_output.put_line('value at ' || j || ' is: ' || l_segment_values(i));
272 end loop;
273
274 IF (p_create_new)
275 THEN
276 SELECT mtl_item_catalog_groups_b_s.nextval
277 INTO ccid
278 FROM dual;
279 END IF;
280
281 return ccid;
282
283 END Perform_Segment_Breakup;
284
285 /********************************************************
286 * Function : Concatenate_Segments
287 * Purpose : Takes the individual segments and
288 * concatenates them based on the flex
289 * structure, by arranging the segments in
290 * display order and then calling the flex api.
291 * Returns : the concatenated segment value.
292 *********************************************************/
293
294 FUNCTION concatenate_segments(p_appl_short_name IN VARCHAR2,
295 p_key_flex_code IN VARCHAR2,
296 p_structure_number IN NUMBER)
297 RETURN VARCHAR2
298 IS
299
300 l_key_flex_field fnd_flex_key_api.flexfield_type;
301 l_structure_type fnd_flex_key_api.structure_type;
302 l_segment_type fnd_flex_key_api.segment_type;
303 l_segment_list fnd_flex_key_api.segment_list;
304 l_segment_array fnd_flex_ext.SegmentArray;
305 l_num_segments NUMBER;
306 l_flag BOOLEAN;
307 l_concat VARCHAR2(2000);
308 j NUMBER;
309 i NUMBER;
310 BEGIN
311
312 -- dbms_output.put_line('Performing segment concatenation . . . ');
313
314 fnd_flex_key_api.set_session_mode('seed_data');
315
316 l_key_flex_field :=
317 fnd_flex_key_api.find_flexfield(p_appl_short_name,
318 p_key_flex_code);
319
320 l_structure_type :=
321 fnd_flex_key_api.find_structure(l_key_flex_field,
322 p_structure_number);
323
324 fnd_flex_key_api.get_segments(l_key_flex_field, l_structure_type,
325 TRUE, l_num_segments, l_segment_list);
326
327
328 --
329 -- The segments in the seg_list array are sorted in display order.
330 -- i.e. sorted by segment number.
331 --
332 for i in 1..l_num_segments
333 loop
334 l_segment_type :=
335 fnd_flex_key_api.find_segment(l_key_flex_field,
336 l_structure_type,
337 l_segment_list(i));
338 j := to_number(substr(l_segment_type.column_name,8));
339 l_segment_array(i) := Ego_Item_Catalog_Pub.G_KF_SEGMENT_VALUES(j);
340 end loop;
341
342 --
343 -- Now we have the all segment values in correct order in segarray.
344 --
345 l_concat := fnd_flex_ext.concatenate_segments(l_num_segments,
346 l_segment_array,
347 l_structure_type.segment_separator);
348
349 -- dbms_output.put_line('Return from concatenate_segments ' || l_concat);
350
351 RETURN l_concat;
352
353 END concatenate_segments;
354
355 FUNCTION check_segments_populated RETURN BOOLEAN
356 IS
357 BEGIN
358 IF ( (EGO_Globals.G_Catalog_Group_Rec.Segment1 IS NOT NULL AND
359 EGO_Globals.G_Catalog_Group_Rec.Segment1 <> FND_API.G_MISS_CHAR
360 ) OR
361 (EGO_Globals.G_Catalog_Group_Rec.Segment2 IS NOT NULL AND
362 EGO_Globals.G_Catalog_Group_Rec.Segment2 <> FND_API.G_MISS_CHAR
363 ) OR
364 (EGO_Globals.G_Catalog_Group_Rec.Segment3 IS NOT NULL AND
365 EGO_Globals.G_Catalog_Group_Rec.Segment3 <> FND_API.G_MISS_CHAR
366 ) OR
367 (EGO_Globals.G_Catalog_Group_Rec.Segment4 IS NOT NULL AND
368 EGO_Globals.G_Catalog_Group_Rec.Segment4 <> FND_API.G_MISS_CHAR
369 ) OR
370 (EGO_Globals.G_Catalog_Group_Rec.Segment5 IS NOT NULL AND
371 EGO_Globals.G_Catalog_Group_Rec.Segment5 <> FND_API.G_MISS_CHAR
372 ) OR
373 (EGO_Globals.G_Catalog_Group_Rec.Segment6 IS NOT NULL AND
374 EGO_Globals.G_Catalog_Group_Rec.Segment6 <> FND_API.G_MISS_CHAR
375 ) OR
376 (EGO_Globals.G_Catalog_Group_Rec.Segment7 IS NOT NULL AND
377 EGO_Globals.G_Catalog_Group_Rec.Segment7 <> FND_API.G_MISS_CHAR
378 ) OR
379 (EGO_Globals.G_Catalog_Group_Rec.Segment8 IS NOT NULL AND
380 EGO_Globals.G_Catalog_Group_Rec.Segment8 <> FND_API.G_MISS_CHAR
381 ) OR
382 (EGO_Globals.G_Catalog_Group_Rec.Segment9 IS NOT NULL AND
383 EGO_Globals.G_Catalog_Group_Rec.Segment9 <> FND_API.G_MISS_CHAR
384 ) OR
385 (EGO_Globals.G_Catalog_Group_Rec.Segment10 IS NOT NULL AND
386 EGO_Globals.G_Catalog_Group_Rec.Segment10 <> FND_API.G_MISS_CHAR
387 ) OR
388 (EGO_Globals.G_Catalog_Group_Rec.Segment11 IS NOT NULL AND
389 EGO_Globals.G_Catalog_Group_Rec.Segment12 <> FND_API.G_MISS_CHAR
390 ) OR
391 (EGO_Globals.G_Catalog_Group_Rec.Segment13 IS NOT NULL AND
392 EGO_Globals.G_Catalog_Group_Rec.Segment13 <> FND_API.G_MISS_CHAR
393 ) OR
394 (EGO_Globals.G_Catalog_Group_Rec.Segment14 IS NOT NULL AND
395 EGO_Globals.G_Catalog_Group_Rec.Segment14 <> FND_API.G_MISS_CHAR
396 ) OR
397 (EGO_Globals.G_Catalog_Group_Rec.Segment15 IS NOT NULL AND
398 EGO_Globals.G_Catalog_Group_Rec.Segment15 <> FND_API.G_MISS_CHAR
399 ) OR
400 (EGO_Globals.G_Catalog_Group_Rec.Segment16 IS NOT NULL AND
401 EGO_Globals.G_Catalog_Group_Rec.Segment16 <> FND_API.G_MISS_CHAR
402 ) OR
403 (EGO_Globals.G_Catalog_Group_Rec.Segment17 IS NOT NULL AND
404 EGO_Globals.G_Catalog_Group_Rec.Segment17 <> FND_API.G_MISS_CHAR
405 ) OR
406 (EGO_Globals.G_Catalog_Group_Rec.Segment18 IS NOT NULL AND
407 EGO_Globals.G_Catalog_Group_Rec.Segment18 <> FND_API.G_MISS_CHAR
408 ) OR
409 (EGO_Globals.G_Catalog_Group_Rec.Segment19 IS NOT NULL AND
410 EGO_Globals.G_Catalog_Group_Rec.Segment19<> FND_API.G_MISS_CHAR
411 ) OR
412 (EGO_Globals.G_Catalog_Group_Rec.Segment20 IS NOT NULL AND
413 EGO_Globals.G_Catalog_Group_Rec.Segment20 <> FND_API.G_MISS_CHAR
414 )
415 )
416 THEN
417 return true;
418 ELSE
419 return false;
420 END IF;
421 END;
422
423
424 /*********************************************************************
425 * Procedure : EGO_ItemCatalog_UUI_To_UI
426 * Returns : None
427 * Parameters IN :
428 * Parameters OUT:
429 * Message Token Table
430 * Return Status
431 * Purpose :
432 *********************************************************************/
433 PROCEDURE EGO_ItemCatalog_UUI_To_UI
434 ( x_Mesg_Token_Tbl OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
435 , x_Return_Status OUT NOCOPY VARCHAR2
436 )
437 IS
438 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type;
439 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
440 l_result VARCHAR2(2000);
441
442 is_valid boolean;
443 is_passed boolean := false;
444 check_status number;
445 l_catalog_group_name VARCHAR2(1000);
446 concat_group_name VARCHAR2(1000);
447 BEGIN
448 x_return_status := FND_API.G_RET_STS_SUCCESS;
449
450 fnd_flex_key_api.set_session_mode('seed_data');
451 --
452 -- If the user has specified the name, id and segment then id is first
453 -- validated and rest of the values are disregarded
454 -- If the Id is not given and name and segments are given then the name
455 -- would be validated and segments would be disregarded.
456 -- Else segments will be validated.
457 --
458
459 IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NULL OR
460 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id = FND_API.G_MISS_NUM
461 ) AND
462 ( EGO_Globals.G_Catalog_Group_Rec.catalog_group_name IS NULL OR
463 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name = FND_API.G_MISS_CHAR
464 ) AND Check_Segments_Populated
465 THEN
466 is_passed := TRUE;
467
468 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name :=
469 concatenate_segments( p_appl_short_name => 'INV'
470 , p_key_flex_code => 'MICG'
471 , p_structure_number => 101
472 );
473 IF EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name IS NULL
474 THEN
475 -- dbms_output.put_line('concat group name is NULL ' );
476
477 Error_Handler.Add_Error_Token
478 ( x_mesg_token_Tbl => l_mesg_token_tbl
479 , p_application_id => 'EGO'
480 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
481 );
482 l_return_status := FND_API.G_RET_STS_ERROR;
483 ELSE
484 --
485 -- Get the corresponding Catalog group id
486 --
487 check_status :=
488 Get_Catalog_Group_Id( p_catalog_group_name =>
489 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
490 , p_operation => 'FIND_COMBINATION'
491 );
492 -- dbms_output.put_line('ccid after FIND_COMBINATION . . . ' || check_status );
493
494 IF (check_status IS NOT null)
495 THEN
496 -- if not null then the returned value is the ccid
497
498 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id := check_status;
499
500 /* It is an error if the CCID exists
501 when the transaction type is CREATE */
502
503 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type =
504 EGO_Globals.G_OPR_CREATE
505 THEN
506 Error_Handler.Add_Error_Token
507 ( x_mesg_token_Tbl => l_mesg_token_tbl
508 , p_application_id => 'EGO'
509 , p_message_name => 'EGO_CATALOG_ALREADY_EXISTS'
510 );
511 l_return_status := FND_API.G_RET_STS_ERROR;
512 END IF;
513 ELSE
514
515 -- dbms_output.put_line('Error if it is update or delete . . .');
516
517 /* It is an error if the CCID does not exist
518 when the transaction type is DELETE or UPDATE */
519
520 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type IN
521 (EGO_Globals.G_OPR_UPDATE,EGO_Globals.G_OPR_DELETE)
522 THEN
523 Error_Handler.Add_Error_Token
524 ( x_mesg_token_Tbl => l_mesg_token_tbl
525 , p_application_id => 'EGO'
526 , p_message_name => 'EGO_CATALOG_DOESNOT_EXIST'
527 );
528 l_return_status := FND_API.G_RET_STS_ERROR;
529 ELSE
530
531 /* CCID will be generated when it does not exist in the
532 case of SYNC and CREATE */
533
534 -- dbms_output.put_line('CHECK_SEGMENTS from here . . .');
535
536 check_status :=
537 Get_Catalog_Group_Id( p_catalog_group_name =>
538 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
539 , p_operation => 'CHECK_SEGMENTS'
540 );
541
542 -- if segments are valid then proceed
543
544 IF (check_status = 1)
545 THEN
546 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id :=
547 Generate_Catalog_Group_Id;
548
549 -- dbms_output.put_line('ccid assigned: ' || EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id);
550 ELSE
551 Error_Handler.Add_Error_Token
552 ( x_mesg_token_Tbl => l_mesg_token_tbl
553 , p_application_id => 'EGO'
554 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
555 );
556 l_return_status := FND_API.G_RET_STS_ERROR;
557 END IF;
558 END IF;
559 END IF;
560 END IF;
561 --
562 -- Convert Catalog_Group_Id into name
563 --
564 ELSIF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NOT NULL AND
565 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id <> FND_API.G_MISS_NUM)
566 THEN
567
568 is_passed := TRUE;
569
570 -- If the user has passed catalog_group_id with the transaction_type as 'SYNC'
571 -- then we need to derive the intended transaction_type to proceed from here
572
573 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = 'SYNC'
574 THEN
575 IF Check_Catalog_CCID THEN
576 EGO_Globals.G_Catalog_Group_Rec.Transaction_Type := EGO_Globals.G_OPR_UPDATE;
577 ELSE
578 EGO_Globals.G_Catalog_Group_Rec.Transaction_Type := EGO_Globals.G_OPR_CREATE;
579 END IF;
580 END IF;
581
582 -- dbms_output.put_line('Getting Group Name from ID ... ');
583
584 l_Catalog_Group_Name :=
585 Get_Catalog_Group_Name(p_catalog_group_id =>
586 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
587 );
588
589 /* It is an error if the group name exists
590 when the transaction type is CREATE */
591
592 IF l_Catalog_Group_Name IS NOT NULL AND EGO_Globals.G_Catalog_Group_Rec.Transaction_Type =
593 EGO_Globals.G_OPR_CREATE
594 THEN
595 Error_Handler.Add_Error_Token
596 ( x_mesg_token_Tbl => l_mesg_token_tbl
597 , p_application_id => 'EGO'
598 , p_message_name => 'EGO_CATALOG_ALREADY_EXISTS'
599 );
600 l_return_status := FND_API.G_RET_STS_ERROR;
601
602 /* It is an error if the group name does not exist
603 when the transaction type is DELETE or UPDATE */
604
605 ELSIF l_Catalog_Group_Name IS NULL AND
606 EGO_Globals.G_Catalog_Group_Rec.Transaction_Type <> EGO_Globals.G_OPR_CREATE
607 THEN
608
609 Error_Handler.Add_Error_Token
610 ( x_mesg_token_Tbl => l_mesg_token_tbl
611 , p_application_id => 'EGO'
612 , p_message_name => 'EGO_CATALOG_DOESNOT_EXIST'
613 );
614 l_return_status := FND_API.G_RET_STS_ERROR;
615
616 ELSIF EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name IS NOT NULL AND
617 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name <> FND_API.G_MISS_CHAR
618 THEN
619
620 -- As long as the group name is passed, it takes precedence over the segments
621
622 /* IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE OR
623 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name <> l_Catalog_Group_Name
624 THEN
625 -- breakup the segments and store it for use
626 -- during database writes.
627 check_status := Perform_Segment_Breakup(p_create_new => false);
628 END IF;
629 */
630 check_status := Perform_Segment_Breakup(p_create_new => false);
631
632 ELSIF (Check_Segments_Populated)
633 THEN
634 -- Verify if the concatenated value of any of the segments entered is
635 -- different than what the Id would return. If yes then the user
636 -- is attempting to rename the catalog group.
637 concat_Group_Name := concatenate_segments
638 ( p_appl_short_name => 'INV'
639 , p_key_flex_code => 'MICG'
640 , p_structure_number => 101
641 );
642 --
643 -- validate the concatenated segments
644 --
645 IF (Get_Catalog_Group_Id( p_operation => 'CHECK_SEGMENTS'
646 ,p_catalog_group_name => concat_Group_Name
647 ) = 1
648 )
649 THEN
650 -- catalog_group_name : that is fetched using the id is not the
651 -- the same as the concatenation of the segments then, the user
652 -- could be renaming the catalog group.
653
654 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE OR concat_Group_Name <> l_Catalog_Group_Name
655 THEN
656 -- dbms_output.put_line('concat group name: ' || concat_Group_Name || ' catalog group name from id: ' || l_Catalog_Group_Name);
657
658 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name :=
659 concat_Group_Name;
660 END IF;
661 ELSE
662 Error_Handler.Add_Error_Token
663 ( x_mesg_token_Tbl => l_mesg_token_tbl
664 , p_application_id => 'EGO'
665 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
666 );
667 l_return_status := FND_API.G_RET_STS_ERROR;
668 END IF;
669
670 ELSE
671 /* Default the existing segments if the current operation is not CREATE*/
672
673 -- For CREATE this is an error condition since we need either Group name or
674 -- the Segments apart from the Id
675
676 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE
677 THEN
678 Error_Handler.Add_Error_Token
679 ( x_mesg_token_Tbl => l_mesg_token_tbl
680 , p_application_id => 'EGO'
681 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
682 );
683 l_return_status := FND_API.G_RET_STS_ERROR;
684 ELSE
685 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name := l_Catalog_Group_Name;
686 check_status := Perform_Segment_Breakup(p_create_new => false);
687 END IF;
688 END IF;
689
690 -- Get Catalog Group Id using Catalog Group Name
691 --
692 ELSIF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_name IS NOT NULL AND
693 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name <> FND_API.G_MISS_CHAR)
694 THEN
695
696 is_passed := TRUE;
697
698 Error_Handler.Write_Debug('getting id for ' ||
699 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name);
700
701 -- dbms_output.put_line('getting id for ' || EGO_Globals.G_Catalog_Group_Rec.catalog_group_name);
702
703 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_id :=
704 Get_Catalog_Group_Id( p_catalog_group_name =>
705 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
706 , p_operation => 'FIND_COMBINATION'
707 );
708
709 IF (EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id IS NOT NULL)
710 THEN
711
712 check_status := Perform_Segment_Breakup(p_create_new => false);
713
714 /* It is an error if the CCID exists
715 when the transaction type is CREATE */
716
717 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE
718 THEN
719 Error_Handler.Add_Error_Token
720 ( x_mesg_token_Tbl => l_mesg_token_tbl
721 , p_application_id => 'EGO'
722 , p_message_name => 'EGO_CATALOG_ALREADY_EXISTS'
723 );
724 l_return_status := FND_API.G_RET_STS_ERROR;
725 END IF;
726 ELSE
727
728 /* It is an error if the CCID does not exist
729 when the transaction type is DELETE or UPDATE */
730
731 IF EGO_Globals.G_Catalog_Group_Rec.Transaction_Type IN
732 (EGO_Globals.G_OPR_UPDATE,EGO_Globals.G_OPR_DELETE)
733 THEN
734 Error_Handler.Add_Error_Token
735 ( x_mesg_token_Tbl => l_mesg_token_tbl
736 , p_application_id => 'EGO'
737 , p_message_name => 'EGO_CATALOG_DOESNOT_EXIST'
738 );
739 l_return_status := FND_API.G_RET_STS_ERROR;
740 ELSE
741
742 /* Validate the segments and Generate ID if the Transaction type
743 is SYNC or CREATE */
744
745 check_status :=
746 Get_Catalog_Group_Id( p_catalog_group_name =>
747 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
748 , p_operation => 'CHECK_SEGMENTS'
749 );
750 IF (check_status = 1)
751 THEN
752 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id :=
753 Perform_Segment_Breakup;
754
755 -- dbms_output.put_line('ccid assigned: ' || EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id);
756 ELSIF (check_status = 0)
757 THEN
758 Error_Handler.Add_Error_Token
759 ( x_mesg_token_Tbl => l_mesg_token_tbl
760 , p_application_id => 'EGO'
761 , p_message_text => G_Error_Msg_Text
762 );
763 l_return_status := FND_API.G_RET_STS_ERROR;
764 END IF;
765 END IF;
766 END IF;
767 END IF;
768
769 -- If there are no key values passed for this row, then raise error
770 --
771 IF NOT is_passed THEN
772 Error_Handler.Add_Error_Token
773 ( x_mesg_token_Tbl => l_mesg_token_tbl
774 , p_application_id => 'EGO'
775 , p_message_text => 'EGO_CAT_KEYCOLS_NOT_PASSED'
776 );
777 l_return_status := FND_API.G_RET_STS_ERROR;
778 END IF;
779 --
780 -- Get Parent Catalog Group Id using Parent Catalog Group Name
781 --
782 IF (EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name IS NOT NULL AND
783 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name <> FND_API.G_MISS_CHAR
784 )
785 THEN
786 EGO_Globals.G_Catalog_Group_Rec.parent_Catalog_Group_Id :=
787 Get_Catalog_Group_Id(p_catalog_group_name =>
788 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name
789 , p_operation => 'FIND_COMBINATION'
790 );
791
792 Error_Handler.Write_Debug('Parent Catalog Group Id: ' ||
793 EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id);
794
795 -- dbms_output.put_line('Parent Catalog Group Id: ' || EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id);
796
797 IF EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id IS NULL
798 THEN
799
800 -- dbms_output.put_line('Parent Catalog Group Id NOT FOUND . . . ');
801 Error_Handler.Add_Error_Token
802 ( x_mesg_token_Tbl => l_mesg_token_tbl
803 , p_application_id => 'EGO'
804 , p_message_text => G_Error_Msg_Text
805 );
806 l_return_status := FND_API.G_RET_STS_ERROR;
807 END IF;
808 END IF;
809
810 --
811 -- Convert Parent_Catalog_Group_Id into Parent_Catalog_Group_name
812 --
813 IF (EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id IS NOT NULL AND
814 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id <> FND_API.G_MISS_NUM
815 )
816 THEN
817 -- dbms_output.put_line('Getting Parent Group Name from ID ... ' || EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id);
818
819 EGO_Globals.G_Catalog_Group_Rec.parent_Catalog_Group_name :=
820 Get_Catalog_Group_Name(p_catalog_group_id =>
821 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
822 );
823
824 IF EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Name IS NULL
825 THEN
826
827 Error_Handler.Add_Error_Token
828 ( x_mesg_token_Tbl => l_mesg_token_tbl
829 , p_application_id => 'EGO'
830 , p_message_text => G_Error_Msg_Text
831 );
832 l_return_status := FND_API.G_RET_STS_ERROR;
833 END IF;
834 -- dbms_output.put_line('Getting Parent Group Name from ID ... ' || EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Name);
835
836 END IF;
837
838 -- dbms_output.put_line('UUI Conversion done . . .returning ' || l_return_status);
839 Error_Handler.Write_Debug('UUI Conversion done . . . returning ' || l_return_status) ;
840
841 x_return_status := l_return_status;
842 x_mesg_token_tbl := l_mesg_token_tbl;
843
844 END EGO_ItemCatalog_UUI_To_UI;
845
846
847 /*********************************************************************
848 * Procedure : EGO_ItemCatalog_UUI_To_UI2 (Old EGO_ItemCatalog_UUI_To_UI logic)
849 * Returns : None
850 * Parameters IN :
851 * Parameters OUT:
852 * Message Token Table
853 * Return Status
854 * Purpose :
855 *********************************************************************/
856 PROCEDURE EGO_ItemCatalog_UUI_To_UI2
857 ( x_Mesg_Token_Tbl OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
858 , x_Return_Status OUT NOCOPY VARCHAR2
859 )
860 IS
861 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type;
862 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
863 l_result VARCHAR2(2000);
864
865 is_valid boolean;
866 is_new boolean;
867 check_status number;
868 l_catalog_group_name VARCHAR2(1000);
869 concat_group_name VARCHAR2(1000);
870 BEGIN
871 x_return_status := FND_API.G_RET_STS_SUCCESS;
872 fnd_flex_key_api.set_session_mode('seed_data');
873
874
875 -- dbms_output.put_line('Performing UUI conversion . . . ');
876
877
878 --
879 -- If the user has specified the name, id and segment then id is first
880 -- validated and rest of the values are disregarded
881 -- If the Id is not given and name and segments are given then the name
882 -- would be validated and segments would be disregarded.
883 -- Else segments will be validated.
884 --
885
886 IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NULL OR
887 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id = FND_API.G_MISS_NUM
888 ) AND
889 ( EGO_Globals.G_Catalog_Group_Rec.catalog_group_name IS NULL OR
890 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name = FND_API.G_MISS_CHAR
891 ) AND check_segments_populated
892 THEN
893 -- dbms_output.put_line('Segments populated . . . ');
894 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name :=
895 concatenate_segments( p_appl_short_name => 'INV'
896 , p_key_flex_code => 'MICG'
897 , p_structure_number => 101
898 );
899 IF EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name IS NULL
900 THEN
901 -- dbms_output.put_line('concat group name is NULL ' );
902
903 Error_Handler.Add_Error_Token
904 ( x_mesg_token_Tbl => l_mesg_token_tbl
905 , p_application_id => 'EGO'
906 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
907 );
908 l_return_status := FND_API.G_RET_STS_ERROR;
909 ELSE
910 --
911 -- Get the corresponding Catalog group id
912 --
913 check_status :=
914 Get_Catalog_Group_Id( p_catalog_group_name =>
915 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
916 , p_operation => 'FIND_COMBINATION'
917 );
918 -- dbms_output.put_line('ccid after FIND_COMBINATION . . . ' || check_status );
919 IF (check_status IS NOT null)
920 THEN
921 -- if not null then the returned value is the ccid
922
923 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id := check_status;
924
925 ELSE
926 -- dbms_output.put_line('CHECK_SEGMENTS from here . . .');
927
928 check_status :=
929 Get_Catalog_Group_Id( p_catalog_group_name =>
930 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
931 , p_operation => 'CHECK_SEGMENTS'
932 );
933 -- if segments are valid then proceed
934 IF (check_status = 1)
935 THEN
936 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id :=
937 Perform_Segment_Breakup;
938 is_new := true;
939
940 -- dbms_output.put_line('ccid assigned: ' || EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id);
941 END IF;
942 END IF;
943 END IF;
944
945 END IF;
946
947 --
948 -- Convert Catalog_Group_Id into name
949 --
950 IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NOT NULL AND
951 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id <> FND_API.G_MISS_NUM
952 ) AND NOT is_new
953 THEN
954 -- dbms_output.put_line('Getting Group Name from ID ... ');
955 l_Catalog_Group_Name :=
956 Get_Catalog_Group_Name(p_catalog_group_id =>
957 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
958 );
959
960 IF l_Catalog_Group_Name IS NULL
961 THEN
962
963 Error_Handler.Add_Error_Token
964 ( x_mesg_token_Tbl => l_mesg_token_tbl
965 , p_application_id => 'EGO'
966 , p_message_text => G_Error_Msg_Text
967 );
968 l_return_status := FND_API.G_RET_STS_ERROR;
969
970 ELSE IF (EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name IS NULL OR
971 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name = FND_API.G_MISS_CHAR
972 )
973 AND
974 check_segments_populated
975 THEN
976 -- Verify if the concatenated value of any of the segments entered is
977 -- different than what the Id would return. If yes then the user
978 -- is attempting to rename the catalog group.
979 concat_Group_Name := concatenate_segments
980 ( p_appl_short_name => 'INV'
981 , p_key_flex_code => 'MICG'
982 , p_structure_number => 101
983 );
984 --
985 -- validate the concatenated segments
986 --
987 IF (Get_Catalog_Group_Id( p_operation => 'CHECK_SEGMENTS'
988 ,p_catalog_group_name => concat_Group_Name
989 ) = 1
990 )
991 THEN
992 -- catalog_group_name : that is fetched using the id is not the
993 -- the same as the concatenation of the segments then, the user
994 -- could be renaming the catalog group.
995
996 IF concat_Group_Name <> l_Catalog_Group_Name
997 THEN
998 -- dbms_output.put_line('concat group name: ' || concat_Group_Name || ' catalog group name from id: ' || l_Catalog_Group_Name);
999
1000 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name :=
1001 concat_Group_Name;
1002
1003 -- breakup the segments and store it for use
1004 -- during database writes.
1005 check_status := Perform_Segment_Breakup(p_create_new => false);
1006 END IF;
1007 ELSE
1008 Error_Handler.Add_Error_Token
1009 ( x_mesg_token_Tbl => l_mesg_token_tbl
1010 , p_application_id => 'EGO'
1011 , p_message_name => 'EGO_CAT_SEGMENTS_INVALID'
1012 );
1013 l_return_status := FND_API.G_RET_STS_ERROR;
1014 END IF;
1015 END IF;
1016
1017 END IF;
1018 END IF;
1019
1020 -- Get Catalog Group Id using Catalog Group Name
1021 --
1022 IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_name IS NOT NULL AND
1023 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name <> FND_API.G_MISS_CHAR AND
1024 EGO_Globals.G_Catalog_Group_Rec.Transaction_Type <> EGO_Globals.G_OPR_CREATE AND
1025 ( EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NULL OR
1026 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id = FND_API.G_MISS_NUM
1027 )
1028 )
1029 THEN
1030 Error_Handler.Write_Debug('getting id for ' || EGO_Globals.G_Catalog_Group_Rec.catalog_group_name);
1031 -- dbms_output.put_line('getting id for ' || EGO_Globals.G_Catalog_Group_Rec.catalog_group_name);
1032 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_id :=
1033 Get_Catalog_Group_Id( p_catalog_group_name =>
1034 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
1035 , p_operation => 'FIND_COMBINATION'
1036 );
1037
1038 --
1039 -- If the transaction type was SYNC and the previous opr. did not return
1040 -- a row then it could be a create operation
1041 --
1042
1043 if(EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id IS NULL)
1044 THEN
1045 check_status :=
1046 Get_Catalog_Group_Id( p_catalog_group_name =>
1047 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
1048 , p_operation => 'CHECK_SEGMENTS'
1049 );
1050 IF (check_status = 1)
1051 THEN
1052 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id :=
1053 Perform_Segment_Breakup;
1054
1055 -- dbms_output.put_line('ccid assigned: ' || EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id);
1056 ELSIF (check_status = 0)
1057 THEN
1058 Error_Handler.Add_Error_Token
1059 ( x_mesg_token_Tbl => l_mesg_token_tbl
1060 , p_application_id => 'EGO'
1061 , p_message_text => G_Error_Msg_Text
1062 );
1063 l_return_status := FND_API.G_RET_STS_ERROR;
1064 END IF;
1065 END IF;
1066 /* if the OPERATION IS CREATE rather than SYNC */
1067 ELSIF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_name IS NOT NULL AND
1068 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name <> FND_API.G_MISS_CHAR AND
1069 EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE AND
1070 ( EGO_Globals.G_Catalog_Group_Rec.catalog_group_id IS NULL OR
1071 EGO_Globals.G_Catalog_Group_Rec.catalog_group_id = FND_API.G_MISS_NUM
1072 )
1073 )
1074 THEN
1075 check_status :=
1076 Get_Catalog_Group_Id( p_catalog_group_name =>
1077 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
1078 , p_operation => 'FIND_COMBINATION'
1079 );
1080 IF (check_status <> null)
1081 THEN
1082 -- if not null then the returned value is the ccid
1083
1084 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id := check_status;
1085 ELSE
1086 check_status :=
1087 Get_Catalog_Group_Id( p_catalog_group_name =>
1088 EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
1089 , p_operation => 'CHECK_SEGMENTS'
1090 );
1091 -- if segments are valid then proceed
1092 IF (check_status = 1)
1093 THEN
1094 EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id :=
1095 Perform_Segment_Breakup;
1096
1097 -- dbms_output.put_line('ccid assigned: ' || EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id);
1098 ELSIF (check_status = 0)
1099 THEN
1100 Error_Handler.Add_Error_Token
1101 ( x_mesg_token_Tbl => l_mesg_token_tbl
1102 , p_application_id => 'EGO'
1103 , p_message_text => G_Error_Msg_Text
1104 );
1105 l_return_status := FND_API.G_RET_STS_ERROR;
1106 END IF;
1107 END IF;
1108 END IF;
1109
1110
1111 --
1112 -- Get Parent Catalog Group Id using Parent Catalog Group Name
1113 --
1114
1115 IF (EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name IS NOT NULL AND
1116 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name <> FND_API.G_MISS_CHAR
1117 )
1118 THEN
1119 EGO_Globals.G_Catalog_Group_Rec.parent_Catalog_Group_Id :=
1120 Get_Catalog_Group_Id(p_catalog_group_name =>
1121 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name
1122 , p_operation => 'FIND_COMBINATION'
1123 );
1124
1125 Error_Handler.Write_Debug('Parent Catalog Group Id: ' ||
1126 EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id);
1127
1128 -- dbms_output.put_line('Parent Catalog Group Id: ' || EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id);
1129
1130 IF EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Id IS NULL
1131 THEN
1132
1133 -- dbms_output.put_line('Parent Catalog Group Id NOT FOUND . . . ');
1134 Error_Handler.Add_Error_Token
1135 ( x_mesg_token_Tbl => l_mesg_token_tbl
1136 , p_application_id => 'EGO'
1137 , p_message_text => G_Error_Msg_Text
1138 );
1139 l_return_status := FND_API.G_RET_STS_ERROR;
1140 END IF;
1141 END IF;
1142
1143 --
1144 -- Convert Parent_Catalog_Group_Id into Parent_Catalog_Group_name
1145 --
1146 IF (EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id IS NOT NULL AND
1147 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id <> FND_API.G_MISS_NUM
1148 )
1149 THEN
1150 -- dbms_output.put_line('Getting Parent Group Name from ID ... ' || EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id);
1151
1152 EGO_Globals.G_Catalog_Group_Rec.parent_Catalog_Group_name :=
1153 Get_Catalog_Group_Name(p_catalog_group_id =>
1154 EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
1155 );
1156
1157 IF EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Name IS NULL
1158 THEN
1159
1160 Error_Handler.Add_Error_Token
1161 ( x_mesg_token_Tbl => l_mesg_token_tbl
1162 , p_application_id => 'EGO'
1163 , p_message_text => G_Error_Msg_Text
1164 );
1165 l_return_status := FND_API.G_RET_STS_ERROR;
1166 END IF;
1167 -- dbms_output.put_line('Getting Parent Group Name from ID ... ' || EGO_Globals.G_Catalog_Group_Rec.Parent_Catalog_Group_Name);
1168 END IF;
1169
1170 -- dbms_output.put_line('UUI Conversion done . . .returning ' || l_return_status);
1171 Error_Handler.Write_Debug('UUI Conversion done . . . returning ' || l_return_status) ;
1172
1173 x_return_status := l_return_status;
1174 x_mesg_token_tbl := l_mesg_token_tbl;
1175
1176 END EGO_ItemCatalog_UUI_To_UI2;
1177
1178 /*********************************************************************
1179 * Procedure : EGO_ItemCatalog_VID
1180 * Returns : None
1181 * Parameters IN :
1182 * Parameters OUT:
1183 * Return Status
1184 * Message Token Table
1185 * Purpose :
1186 *********************************************************************/
1187 PROCEDURE EGO_ItemCatalog_VID
1188 ( x_Return_Status OUT NOCOPY VARCHAR2
1189 , x_Mesg_Token_Tbl OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
1190 )
1191 IS
1192 l_return_status VARCHAR2(1):=FND_API.G_RET_STS_SUCCESS;
1193 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type;
1194 l_err_text VARCHAR2(2000);
1195 l_Token_Tbl Error_Handler.Token_Tbl_Type;
1196 BEGIN
1197
1198 Error_Handler.Write_Debug('VID conversion . . . ');
1199
1200 x_return_status := l_return_status;
1201 x_mesg_token_tbl := l_mesg_token_tbl;
1202
1203 END EGO_ItemCatalog_VID;
1204
1205 END EGO_ItemCat_Val_To_Id;