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