DBA Data[Home] [Help]

PACKAGE BODY: APPS.EGO_CATALOG_GROUP_UTIL

Source


1 PACKAGE BODY EGO_Catalog_Group_Util AS
2 /* $Header: EGOUCAGB.pls 120.2 2006/08/01 10:42:02 srajapar noship $ */
3 /****************************************************************************
4 --
5 --  Copyright (c) 1996 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      ENGUBOMB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EGO_Catalog_Group_Util
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --  02-JUL-1999 Rahul Chitko    Initial Creation
20 --  18-FEB-2003 Refai Farook  Propagation of end date to the recursive childs
21 --        (Update_Row procedure)
22 --  19-DEC-2003 Sridhar R       Bug 3324531
23 --                              removed references to bom_globals
24 --
25 ****************************************************************************/
26 
27 G_PKG_NAME      CONSTANT VARCHAR2(30) := 'EGO_Catalog_Group_Util';
28 
29   /*********************************************************************
30   * Procedure     : Query_Row
31   * Parameters OUT:
32   * Purpose       : Procedure will query the database record, seperate the
33   *     values into exposed columns and unexposed columns and
34   *     return with those records.
35   ***********************************************************************/
36   PROCEDURE Query_Row
37   (  x_mesg_token_tbl  OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
38    , x_Return_status   OUT NOCOPY VARCHAR2
39   )
40   IS
41     l_return_status   VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
42     l_dummy     varchar2(10);
43   BEGIN
44     Error_Handler.Write_Debug('Performing Query Row for catalog group ' ||
45             EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name);
46 
47     SELECT  item_catalog_group_id
48     , parent_catalog_group_id
49     , summary_flag
50     , enabled_flag
51     , inactive_date
52     , item_creation_Allowed_flag
53     , description
54     , segment1
55     , segment2
56     , segment3
57     , segment4
58     , segment5
59     , segment6
60     , segment7
61     , segment8
62     , segment9
63     , segment10
64     , segment11
65     , segment12
66     , segment13
67     , segment14
68     , segment15
69     , segment16
70     , segment17
71     , segment18
72     , segment19
73     , segment20
74     , attribute_category
75     , attribute1
76     , attribute2
77     , attribute3
78     , attribute4
79     , attribute5
80     , attribute6
81     , attribute7
82     , attribute8
83     , attribute9
84     , attribute10
85     , attribute11
86     , attribute12
87     , attribute13
88     , attribute14
89     , attribute15
90     INTO  EGO_Globals.G_Old_Catalog_Group_Rec.catalog_group_id
91     , EGO_Globals.G_Old_Catalog_Group_Rec.parent_catalog_group_id
92     , EGO_Globals.G_Old_Catalog_Group_Rec.summary_flag
93     , EGO_Globals.G_Old_Catalog_Group_Rec.enabled_flag
94     , EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date
95     , EGO_Globals.G_Old_Catalog_Group_Rec.Item_Creation_Allowed_Flag
96     , EGO_Globals.G_Old_Catalog_Group_Rec.Description
97     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment1
98     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment2
99     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment3
100     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment4
101     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment5
102     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment6
103     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment7
104     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment8
105     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment9
106     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment10
107     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment11
108     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment12
109     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment13
110     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment14
111     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment15
112     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment16
113     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment17
114     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment18
115     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment19
116     , EGO_Globals.G_Old_Catalog_Group_Rec.Segment20
117     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute_category
118     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute1
119     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute2
120     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute3
121     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute4
122     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute5
123     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute6
124     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute7
125     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute8
126     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute9
127     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute10
128     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute11
129     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute12
130     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute13
131     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute14
132     , EGO_Globals.G_Old_Catalog_Group_Rec.attribute15
133     FROM  mtl_item_catalog_groups_vl
134     WHERE item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.catalog_group_id;
135 
136 -- Bug 3324531
137 -- changed the global Bom_Globals.G_RECORD_FOUND to EGO_Globals.G_RECORD_FOUND
138     x_return_status  := EGO_Globals.G_RECORD_FOUND;
139 
140     EXCEPTION
141     WHEN NO_DATA_FOUND THEN
142 -- Bug 3324531
143 -- changed the global Bom_Globals.G_RECORD_NOT_FOUND to EGO_Globals.G_RECORD_NOT_FOUND
144       x_return_status := EGO_Globals.G_RECORD_NOT_FOUND;
145     WHEN OTHERS THEN
146       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
147 
148   END Query_Row;
149 
150   /********************************************************************
151   * Procedure : Insert_Row
152   * Parameters IN :
153   * Parameters OUT: Message Token Table
154   *     Return Status
155   * Purpose :
156   *********************************************************************/
157   PROCEDURE Insert_Row
158         (  x_mesg_token_Tbl OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
159          , x_return_Status  OUT NOCOPY VARCHAR2
160          )
161   IS
162     l_UserId        NUMBER := FND_GLOBAL.User_Id;
163     l_LanguageCode  VARCHAR2(4) := EGO_Globals.Get_Language_Code;
164 
165   BEGIN
166 
167     Error_Handler.Write_Debug('Inserting Catalog Group . . . ');
168     -- dbms_output.put_line('Inserting Catalog Group . . . ID' || EGO_Globals.G_Catalog_Group_Rec.catalog_group_id);
169 
170     INSERT INTO mtl_Item_Catalog_Groups_b
171     (  item_catalog_group_id
172      , parent_catalog_group_id
173      , summary_flag
174      , enabled_flag
175      , inactive_date
176      , item_creation_Allowed_Flag
177      , segment1
178      , segment2
179      , segment3
180      , segment4
181      , segment5
182      , segment6
183      , segment7
184      , segment8
185      , segment9
186      , segment10
187      , segment11
188      , segment12
189      , segment13
190      , segment14
191      , segment15
192      , segment16
193      , segment17
194      , segment18
195      , segment19
196      , segment20
197      , attribute_category
198      , attribute1
199      , attribute2
200      , attribute3
201      , attribute4
202      , attribute5
203      , attribute6
204      , attribute7
205      , attribute8
206      , attribute9
207      , attribute10
208      , attribute11
209      , attribute12
210      , attribute13
211      , attribute14
212      , attribute15
213      , creation_date
214      , created_by
215      , last_update_date
216      , last_updated_by
217      , last_update_login
218      )
219     VALUES
220     (  EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
221      , EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
222      , EGO_Globals.G_Catalog_Group_Rec.summary_flag
223      , EGO_Globals.G_Catalog_Group_Rec.enabled_flag
224      , EGO_Globals.G_Catalog_Group_Rec.inactive_date
225      , EGO_Globals.G_Catalog_Group_Rec.Item_Creation_Allowed_Flag
226      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(1)
227      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(2)
228      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(3)
229      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(4)
230      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(5)
231      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(6)
232      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(7)
233      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(8)
234      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(9)
235      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(10)
236      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(11)
237      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(12)
238      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(13)
239      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(14)
240      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(15)
241      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(16)
242      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(17)
243      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(18)
244      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(19)
245      , EGO_Item_Catalog_Pub.G_KF_Segment_Values(20)
246      , EGO_Globals.G_Catalog_Group_Rec.attribute_category
247      , EGO_Globals.G_Catalog_Group_Rec.attribute1
248      , EGO_Globals.G_Catalog_Group_Rec.attribute2
249      , EGO_Globals.G_Catalog_Group_Rec.attribute3
250      , EGO_Globals.G_Catalog_Group_Rec.attribute4
251      , EGO_Globals.G_Catalog_Group_Rec.attribute5
252      , EGO_Globals.G_Catalog_Group_Rec.attribute6
253      , EGO_Globals.G_Catalog_Group_Rec.attribute7
254      , EGO_Globals.G_Catalog_Group_Rec.attribute8
255      , EGO_Globals.G_Catalog_Group_Rec.attribute9
256      , EGO_Globals.G_Catalog_Group_Rec.attribute10
257      , EGO_Globals.G_Catalog_Group_Rec.attribute11
258      , EGO_Globals.G_Catalog_Group_Rec.attribute12
259      , EGO_Globals.G_Catalog_Group_Rec.attribute13
260      , EGO_Globals.G_Catalog_Group_Rec.attribute14
261      , EGO_Globals.G_Catalog_Group_Rec.attribute15
262      , SYSDATE
263      , FND_Global.User_Id
264      , SYSDATE
265      , FND_Global.User_Id
266      , FND_Global.User_Id
267     );
268 
269 
270     -- dbms_output.put_line('Inserting into TL table . . .');
271     /* ---------------------------------------------------------------
272     **
273     ** Insert data into the translation table
274     **
275     ** ---------------------------------------------------------------*/
276 
277     INSERT INTO Mtl_Item_Catalog_Groups_TL
278     (  Item_Catalog_Group_Id
279      , Language
280      , Source_Lang
281      , Created_By
282      , Creation_Date
283      , Last_Updated_By
284      , Last_Update_Date
285      , Description
286      )
287     SELECT EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
288          , lang.language_code
289          , l_LanguageCode
290          , l_UserId
291          , SYSDATE
292          , l_UserId
293          , SYSDATE
294          , EGO_Globals.G_Catalog_Group_Rec.description
295       FROM FND_LANGUAGES lang
296      WHERE lang.installed_flag in ('I', 'B')
297        AND NOT EXISTS
298            ( SELECT NULL
299                FROM Mtl_Item_Catalog_Groups_tl TL
300               WHERE tl.item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
301                 AND tl.language = lang.language_code
302             );
303     -- call the sync Catalog Group function.
304     EGO_BROWSE_PVT.Sync_ICG_Denorm_Hier_Table
305         (p_catalog_group_id => EGO_Globals.G_Catalog_Group_Rec.catalog_group_id
306         ,p_old_parent_id    => NULL
307         ,x_return_status    => x_return_status
308         );
309 
310     EXCEPTION
311     WHEN OTHERS THEN
312       Error_Handler.Add_Error_Token
313       (  p_message_name => NULL
314        , p_application_id     => 'EGO'
315        , p_message_text => G_PKG_NAME ||
316               ' :Inserting Record ' ||
317               SQLERRM
318        , x_mesg_token_Tbl => x_mesg_token_tbl
319       );
320       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
321 
322   END Insert_Row;
323 
324   /********************************************************************
325   * Procedure     : Update_Row
326   * Parameters IN : BOM Header exposed column record
327   *                 BOM Header unexposed column record
328   * Parameters OUT: Message Token Table
329   *                 Return Status
330   * Purpose       : Procedure will perfrom an Update into the
331   *                 BOM_Bill_Of_Materials table.
332   *********************************************************************/
333   PROCEDURE Update_Row
334   (  x_mesg_token_Tbl     OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
335    , x_return_Status      OUT NOCOPY VARCHAR2
336    )
337   IS
338 
339     l_old_parent_id   NUMBER;
340 
341     CURSOR c1(p_item_catalog_group_id NUMBER) IS
342     SELECT item_catalog_group_id FROM mtl_item_catalog_groups_b
343     CONNECT BY PRIOR item_catalog_group_id = parent_catalog_group_id
344     START WITH item_catalog_group_id = p_item_catalog_group_id;
345 
346   BEGIN
347 
348     --
349     -- User can update the inactive date, description and choose to rename the
350     -- the catalog group.
351     --
352     Error_Handler.Write_Debug('Updating catalog group . . . ');
353 
354     SELECT parent_catalog_group_id
355     INTO   l_old_parent_id
356     FROM   mtl_item_catalog_groups_b
357     WHERE  item_catalog_group_id =
358                EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id;
359 
360     UPDATE mtl_item_catalog_groups_b
361        SET Item_Creation_Allowed_Flag = EGO_Globals.G_Catalog_Group_Rec.Item_Creation_Allowed_Flag
362           , parent_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
363           , Segment1 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(1)
364           , Segment2 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(2)
365           , Segment3 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(3)
366           , Segment4 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(4)
367           , Segment5 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(5)
368           , Segment6 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(6)
369           , Segment7 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(7)
370           , Segment8 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(8)
371           , Segment9 = EGO_Item_Catalog_Pub.G_KF_Segment_Values(9)
372           , Segment10= EGO_Item_Catalog_Pub.G_KF_Segment_Values(10)
373           , Segment11= EGO_Item_Catalog_Pub.G_KF_Segment_Values(11)
374           , Segment12= EGO_Item_Catalog_Pub.G_KF_Segment_Values(12)
375           , Segment13= EGO_Item_Catalog_Pub.G_KF_Segment_Values(13)
376           , Segment14= EGO_Item_Catalog_Pub.G_KF_Segment_Values(14)
377           , Segment15= EGO_Item_Catalog_Pub.G_KF_Segment_Values(15)
378           , Segment16= EGO_Item_Catalog_Pub.G_KF_Segment_Values(16)
379           , Segment17= EGO_Item_Catalog_Pub.G_KF_Segment_Values(17)
380           , Segment18= EGO_Item_Catalog_Pub.G_KF_Segment_Values(18)
381           , Segment19= EGO_Item_Catalog_Pub.G_KF_Segment_Values(19)
382           , Segment20= EGO_Item_Catalog_Pub.G_KF_Segment_Values(20)
383           , description    = EGO_Globals.G_Catalog_Group_Rec.description
384           , last_update_date =  SYSDATE
385           , last_updated_by = FND_Global.User_Id
386           , last_update_login = FND_Global.User_Id
387           , attribute_category = EGO_Globals.G_Catalog_Group_Rec.attribute_category
388           , attribute1 = EGO_Globals.G_Catalog_Group_Rec.attribute1
389           , attribute2 = EGO_Globals.G_Catalog_Group_Rec.attribute2
390           , attribute3 = EGO_Globals.G_Catalog_Group_Rec.attribute3
391           , attribute4 = EGO_Globals.G_Catalog_Group_Rec.attribute4
392           , attribute5 = EGO_Globals.G_Catalog_Group_Rec.attribute5
393           , attribute6 = EGO_Globals.G_Catalog_Group_Rec.attribute6
394           , attribute7 = EGO_Globals.G_Catalog_Group_Rec.attribute7
395           , attribute8 = EGO_Globals.G_Catalog_Group_Rec.attribute8
396           , attribute9 = EGO_Globals.G_Catalog_Group_Rec.attribute9
397           , attribute10= EGO_Globals.G_Catalog_Group_Rec.attribute10
398           , attribute11= EGO_Globals.G_Catalog_Group_Rec.attribute11
399           , attribute12= EGO_Globals.G_Catalog_Group_Rec.attribute12
400           , attribute13= EGO_Globals.G_Catalog_Group_Rec.attribute13
401           , attribute14= EGO_Globals.G_Catalog_Group_Rec.attribute14
402           , attribute15= EGO_Globals.G_Catalog_Group_Rec.attribute15
403     WHERE item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id;
404 
405 
406     /* Update the TL table description */
407 
408     UPDATE  Mtl_Item_Catalog_Groups_TL
409       SET  description        = EGO_Globals.G_Catalog_Group_Rec.description
410          , last_updated_by    = FND_Global.User_Id
411          , last_update_date   = SYSDATE
412     WHERE  item_catalog_group_id =
413                      EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id
414       AND  LANGUAGE = EGO_Globals.Get_Language_Code;
415 
416     /* Update for the end date */
417 
418     IF EGO_Globals.G_Catalog_Group_Rec.inactive_date IS NOT NULL
419     THEN
420       -- If old end date is null or the old end date is
421       -- different from the new end date
422 
423       IF EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date IS NULL
424          OR (EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date IS NOT NULL AND
425                   trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
426                                  trunc(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date))
427       THEN
428         /* Propagate the new end date to all the recursive childs of this catalog */
429         FOR r1 IN c1(EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id)
430         LOOP
431           UPDATE mtl_item_catalog_groups_b
432           SET inactive_date = EGO_Globals.G_Catalog_Group_Rec.inactive_date
433           WHERE item_catalog_group_id = r1.item_catalog_group_id;
434         END LOOP;
435       END IF;
436 
437     ELSE
438       -- If there exists an end date and the new end date is null
439 
440       IF trunc(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date) IS NOT NULL
441       THEN
442         /* Propagate null (remove end date) to all the recursive childs */
443         FOR r1 IN c1(EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id)
444         LOOP
445           UPDATE mtl_item_catalog_groups_b
446           SET inactive_date = null
447           WHERE item_catalog_group_id = r1.item_catalog_group_id;
448         END LOOP;
449       END IF;
450 
451     END IF;
452 
453     IF NVL(l_old_parent_id,-1) <>
454        NVL(EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id,-1) THEN
455       EGO_BROWSE_PVT.Sync_ICG_Denorm_Hier_Table
456         (p_catalog_group_id => EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id
457         ,p_old_parent_id    => l_old_parent_id
458         ,x_return_status    => x_return_status
459         );
460     END IF;
461 
462   EXCEPTION
463     WHEN OTHERS THEN
464       -- dbms_output.put_line('Error while updating : ' || SQLERRM);
465 
466       Error_Handler.Add_Error_Token
467       (  p_message_name       => NULL
468        , p_application_id     => 'EGO'
469        , p_message_text       => G_PKG_NAME ||
470                                ' :Updating Record ' ||
471                                SQLERRM
472        , x_mesg_token_Tbl     => x_mesg_token_tbl
473       );
474       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
475 
476   END Update_Row;
477 
478 
479   /********************************************************************
480   * Procedure     : Delete_Row
481   * Parameters IN :
482   * Parameters OUT: Message Token Table
483   *                 Return Status
484   * Purpose       : Procedure will perfrom an Delete
485   *********************************************************************/
486   PROCEDURE Delete_Row
487   (  x_mesg_token_Tbl     OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
488    , x_return_Status      OUT NOCOPY VARCHAR2
489    )
490   IS
491     l_mesg_token_tbl  Error_Handler.Mesg_Token_Tbl_Type;
492 
493   BEGIN
494 
495     /* Delete from TL */
496 
497     DELETE FROM mtl_item_catalog_groups_tl WHERE
498       item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id
499       AND  LANGUAGE = EGO_Globals.Get_Language_Code;
500 
501     /* Delete from base table */
502 
503     DELETE FROM mtl_item_catalog_groups_b WHERE
504       item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Id;
505 
506     EGO_BROWSE_PVT.Reload_ICG_Denorm_Hier_Table (x_return_status => x_return_status);
507 
508     EXCEPTION WHEN OTHERS
509     THEN
510       -- dbms_output.put_line('Error while deleting : ' || SQLERRM);
511 
512       Error_Handler.Add_Error_Token
513       (  p_message_name       => NULL
514        , p_application_id     => 'EGO'
515        , p_message_text       => G_PKG_NAME ||
516                                 ' :Deleting Record ' ||
517                                 SQLERRM
518        , x_mesg_token_Tbl     => x_mesg_token_tbl
519       );
520       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
521 
522   END Delete_Row;
523 
524   /*********************************************************************
525   * Procedure : Perform_Writes
526   * Parameters IN :
527   * Parameters OUT: Messgae Token Table
528   *     Return Status
529   * Purpose : This is the only procedure that the user will have
530   *     access to when he/she needs to perform any kind of
531   *     writes to the catalog groups table.
532   *********************************************************************/
533   PROCEDURE Perform_Writes
534   (  x_mesg_token_tbl OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
535    , x_return_status  OUT NOCOPY VARCHAR2
536   )
537   IS
538     l_Mesg_Token_tbl  Error_Handler.Mesg_Token_Tbl_Type;
539     l_return_status   VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
540   BEGIN
541     IF EGO_Globals.G_Catalog_Group_Rec.transaction_type = EGO_GLOBALS.G_OPR_CREATE
542     THEN
543       -- dbms_output.put_line('Inserting row . . . ');
544       Insert_Row
545         (  x_mesg_token_Tbl => l_mesg_token_tbl
546          , x_return_Status  => l_return_status
547         );
548     ELSIF EGO_Globals.G_Catalog_Group_Rec.transaction_type =
549               EGO_GLOBALS.G_OPR_UPDATE
550     THEN
551       -- dbms_output.put_line('Updating row . . . ');
552       Update_Row
553         (  x_mesg_token_Tbl     => l_mesg_token_tbl
554          , x_return_Status      => l_return_status
555         );
556 
557     ELSIF EGO_Globals.G_Catalog_Group_Rec.transaction_type =
558               EGO_GLOBALS.G_OPR_DELETE
559     THEN
560       -- dbms_output.put_line('Deleting row . . . ');
561       Delete_Row
562         (  x_mesg_token_Tbl     => l_mesg_token_tbl
563          , x_return_Status      => l_return_status
564         );
565     END IF;
566 
567     x_return_status := l_return_status;
568     x_mesg_token_tbl := l_mesg_token_tbl;
569 
570   END Perform_Writes;
571 
572 
573 END EGO_Catalog_Group_Util;