DBA Data[Home] [Help]

PACKAGE BODY: APPS.EGO_ITEM_CATALOG_PUB

Source


1 PACKAGE BODY EGO_ITEM_CATALOG_PUB AS
2 /* $Header: EGOBCAGB.pls 120.7 2007/06/14 12:48:55 nshariff ship $ */
3 
4   g_pkg_name                VARCHAR2(30) := 'EGO_ITEM_CATALOG_PUB';
5   g_app_name                VARCHAR2(3)  := 'EGO';
6   g_current_user_id         NUMBER       := EGO_SCTX.Get_User_Id();
7   g_current_login_id        NUMBER       := FND_GLOBAL.Login_Id;
8   g_plsql_err               VARCHAR2(17) := 'EGO_PLSQL_ERR';
9   g_pkg_name_token          VARCHAR2(8)  := 'PKG_NAME';
10   g_api_name_token          VARCHAR2(8)  := 'API_NAME';
11   g_sql_err_msg_token       VARCHAR2(11) := 'SQL_ERR_MSG';
12 
13 
14 
15   /******************************************************************
16   ** Procedure: Set_Debug_Parameters (unexposed)
17   ** Purpose: Will take input as the debug parameters and check if
18   ** a debug session needs to be eastablished. If yes, the it will
19   ** open a debug session file and all developer messages will be
20   ** logged into a debug error file. File name will be the parameter
21   ** debug_file_name_<session_id>
22   ********************************************************************/
23   Procedure Set_Debug_Parameters(  p_debug_flag      IN VARCHAR2
24                , p_output_dir      IN VARCHAR2
25                , p_debug_filename    IN VARCHAR2
26                )
27   IS
28     l_Mesg_Token_tbl  Error_Handler.Mesg_Token_Tbl_Type;
29     l_token_Tbl   Error_Handler.Token_Tbl_Type;
30     l_return_status   VARCHAR2(1);
31     l_Debug_Flag    VARCHAR2(1) := p_debug_flag;
32   BEGIN
33 
34                     IF p_debug_flag = 'Y'
35                     THEN
36 
37           -- dbms_output.put_line('Debug is Yes ' );
38 
39                             IF trim(p_output_dir) IS NULL OR
40                                trim(p_output_dir) = ''
41                             THEN
42                                 -- If debug is Y then out dir must be
43                                 -- specified
44 
45                                 Error_Handler.Add_Error_Token
46                                 (  p_Message_text       =>
47                                    'Debug is set to Y so an output directory' ||
48                                    ' must be specified. Debug will be turned' ||
49                                    ' off since no directory is specified'
50                                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
51                                 , x_Mesg_Token_Tbl     => l_mesg_token_tbl
52                                 , p_Token_Tbl          => l_token_tbl
53                                 );
54 
55                                Ego_Catalog_Group_Err_Handler.Log_Error
56                                (  p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
57                                 , p_error_status => 'W'
58                                 , p_error_level => Error_Handler.G_BO_LEVEL
59                                );
60                               l_debug_flag := 'N';
61 
62         -- dbms_output.put_line('Reverting debug to N ' );
63 
64                             END IF;
65 
66                             IF trim(p_debug_filename) IS NULL OR
67                                trim(p_debug_filename) = ''
68                             THEN
69 
70                                 Error_Handler.Add_Error_Token
71                                 (  p_Message_text       =>
72                                    'Debug is set to Y so an output filename' ||
73                                    ' must be specified. Debug will be turned' ||
74                                    ' off since no filename is specified'
75                                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
76                                 , x_Mesg_Token_Tbl     => l_mesg_token_tbl
77                                 , p_Token_Tbl          => l_token_tbl
78                                 );
79 
80                                Ego_Catalog_Group_Err_Handler.Log_Error
81                                (  p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
82                                 , p_error_status => 'W'
83                                 , p_error_level => Error_Handler.G_BO_LEVEL
84                                );
85                               l_debug_flag := 'N';
86 
87 
88         -- dbms_output.put_line('Reverting debug to N ' );
89 
90                             END IF;
91 
92                             Error_Handler.Set_Debug(l_debug_flag);
93 
94                             IF p_debug_flag = 'Y'
95                             THEN
96                                 Error_Handler.Open_Debug_Session
97                                 (  p_debug_filename     => p_debug_filename
98                                  , p_output_dir         => p_output_dir
99                                  , x_return_status      => l_return_status
100                                  , p_mesg_token_tbl     => l_mesg_token_tbl
101                                  , x_mesg_token_tbl     => l_mesg_token_tbl
102                                  );
103 
104                                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
105                                 THEN
106                                     Error_Handler.Set_Debug('N');
107                                 END IF;
108                             END IF;
109                     END IF;
110 
111   END Set_Debug_Parameters;
112 
113 
114   /***************************************************************************
115   ** Procedure  : Process_Catalog_Groups
116   ** Purpose  : This is the exposed procedure which most applications will
117   **      call to create the catalog group hierarchy.
118   **
119   ** Return : error status
120   **      error message count
121   ****************************************************************************/
122   Procedure Process_Catalog_Groups
123   (  p_bo_identifier           IN  VARCHAR2 := 'ICG'
124    , p_api_version_number      IN  NUMBER := 1.0
125    , p_init_msg_list           IN  BOOLEAN := FALSE
126    , p_catalog_group_tbl       IN  Ego_Item_Catalog_Pub.Catalog_Group_Tbl_Type
127    , p_user_id         IN  NUMBER
128    , p_language_code       IN  VARCHAR2 := 'US'
129    , x_catalog_group_tbl       OUT NOCOPY Ego_Item_Catalog_Pub.Catalog_Group_Tbl_Type
130    , x_return_status           OUT NOCOPY VARCHAR2
131    , x_msg_count               OUT NOCOPY NUMBER
132    , p_debug                   IN  VARCHAR2 := 'N'
133    , p_output_dir              IN  VARCHAR2 := NULL
134    , p_debug_filename          IN  VARCHAR2 := 'Ego_Catalog_Grp.log'
135    ) IS
136     l_return_status   VARCHAR2(1);
137     l_other_message   VARCHAR2(30);
138     l_other_token_tbl Error_Handler.Token_Tbl_Type;
139     l_token_tbl   Error_Handler.Token_Tbl_Type;
140   BEGIN
141     --
142     -- store a global reference to the table so that other processes do not need to be
143     -- passed the whole table.
144     --
145     -- dbms_output.put_line('In record count: ' || p_catalog_group_tbl.COUNT);
146 
147     EGO_Globals.G_Catalog_Group_Tbl := p_catalog_group_tbl;
148     EGO_Globals.Set_User_Id(p_user_id);
149     EGO_Globals.Set_Language_Code(p_language_code);
150 
151     -- Initialize the Flex column holder
152     --
153                 -- Update the flex field global reference
154                 --
155 
156                 FOR i in 1..20
157                 LOOP
158                     EGO_Item_Catalog_Pub.G_KF_Segment_Values(i) := null;
159                 END LOOP;
160 
161     EGO_Globals.G_Catalog_Group_Rec := null;
162 
163                 --
164                 -- Set Business Object Idenfier in the System Information
165                 -- record.
166                 --
167                 Error_Handler.Set_Bo_Identifier
168                             (p_bo_identifier    =>  p_bo_identifier);
169 
170                 --
171                 -- Initialize the message list if the user has set the
172                 -- Init Message List parameter
173                 --
174                 IF p_init_msg_list
175                 THEN
176                         Error_Handler.Initialize;
177                 END IF;
178 
179     Set_Debug_Parameters(  p_debug_flag => p_debug
180                    , p_output_dir => p_output_dir
181                    , p_debug_filename => p_debug_filename
182              );
183 
184     if(Error_Handler.Get_Debug = 'Y')
185     then
186     Error_Handler.write_debug('Within business object public api ...');
187     -- dbms_output.put_line('Within business object public api ...');
188     end if;
189 
190     --
191     -- Call the Private API for performing further business
192     -- rules validation
193     --
194     EGO_Item_Catalog_Pvt.Process_Catalog_Groups
195     (   x_return_status          => l_return_status
196     ,   x_msg_count              => x_msg_count
197     );
198 
199     -- dbms_output.put_line('Returned from private API ...');
200 
201           IF l_return_status <> 'S'
202     THEN
203     -- Call Error Handler
204       -- dbms_output.put_line('Calling log error ...');
205             Ego_Catalog_Group_Err_Handler.Log_Error
206                 (  p_error_status   => l_return_status
207                  , p_error_scope  => Error_Handler.G_SCOPE_ALL
208                  , p_error_level  => Error_Handler.G_BO_LEVEL
209                  --, p_other_message  => 'EGO_ERROR_BUSINESS_OBJECT'
210                  --, p_other_status   => l_return_status
211                 );
212       -- dbms_output.put_line('Called log error ...');
213     END IF;
214 
215     x_return_status := l_return_status;
216           x_msg_count := Error_Handler.Get_Message_Count;
217 
218     Error_Handler.write_debug('Return status is ...'||x_return_status);
219 
220     IF Error_Handler.Get_Debug = 'Y'
221           THEN
222                   Error_Handler.Close_Debug_Session;
223           END IF;
224 
225     -- return back the table from the global reference.
226 
227     x_catalog_group_tbl := EGO_Globals.G_Catalog_Group_Tbl;
228 
229       EXCEPTION
230         WHEN EGO_Globals.G_EXC_SEV_QUIT_OBJECT THEN
231 
232         -- Call Error Handler
233 
234           Ego_Catalog_Group_Err_Handler.Log_Error
235     ( p_error_status  => Error_Handler.G_STATUS_ERROR
236     , p_error_scope   => Error_Handler.G_SCOPE_ALL
237     , p_error_level   => Error_Handler.G_BO_LEVEL
238                 , p_other_message => l_other_message
239                 , p_other_status  => Error_Handler.G_STATUS_ERROR
240     );
241 
242           x_return_status := Error_Handler.G_STATUS_ERROR;
243           x_msg_count := Error_Handler.Get_Message_Count;
244                 IF Error_Handler.Get_Debug = 'Y'
245                 THEN
246                         Error_Handler.Close_Debug_Session;
247                 END IF;
248 
249         WHEN EGO_Globals.G_EXC_UNEXP_SKIP_OBJECT THEN
250 
251         -- Call Error Handler
252 
253           Ego_Catalog_Group_Err_Handler.Log_Error
254                 ( p_error_status => Error_Handler.G_STATUS_UNEXPECTED
255                 , p_error_level => Error_Handler.G_BO_LEVEL
256                 , p_other_status => Error_Handler.G_STATUS_NOT_PICKED
257                 , p_other_message => l_other_message
258                 , p_other_token_tbl => l_token_tbl
259                 );
260 
261           x_return_status := Error_Handler.G_STATUS_UNEXPECTED;
262           x_msg_count := Error_Handler.Get_Message_Count;
263                 IF Error_Handler.Get_Debug = 'Y'
264                 THEN
265                         Error_Handler.Close_Debug_Session;
266                 END IF;
267 
268 
269 END Process_Catalog_Groups;
270 
271 
272 /* Process_Catalog_Group
273 ** Convenience method that can be called once for every catalog group in the catalog group
274 ** hierarchy
275 */
276 Procedure Process_Catalog_Group
277 (  p_Catalog_Group_Name            IN  VARCHAR2         := NULL
278  , p_Parent_Catalog_Group_Name     IN  VARCHAR2         := NULL
279  , p_Catalog_Group_Id              IN  NUMBER           := NULL
280  , p_Parent_Catalog_Group_Id       IN  NUMBER           := NULL
281  , p_Description                   IN  VARCHAR2         := NULL
282  , p_Item_Creation_Allowed_Flag    IN  VARCHAR2         := NULL
283  , p_Start_Effective_Date          IN  DATE             := NULL
284  , p_Inactive_date                 IN  DATE             := NULL
285  , p_Enabled_Flag                  IN  VARCHAR2         := NULL
286  , p_Summary_Flag                  IN  VARCHAR2         := NULL
287  , p_segment1                      IN  VARCHAR2         := NULL
288  , p_segment2                      IN  VARCHAR2         := NULL
289  , p_segment3                      IN  VARCHAR2         := NULL
290  , p_segment4                      IN  VARCHAR2         := NULL
291  , p_segment5                      IN  VARCHAR2         := NULL
292  , p_segment6                      IN  VARCHAR2         := NULL
293  , p_segment7                      IN  VARCHAR2         := NULL
294  , p_segment8                      IN  VARCHAR2         := NULL
295  , p_segment9                      IN  VARCHAR2         := NULL
296  , p_segment10                     IN  VARCHAR2         := NULL
297  , p_segment11                     IN  VARCHAR2         := NULL
298  , p_segment12                     IN  VARCHAR2         := NULL
299  , p_segment13                     IN  VARCHAR2         := NULL
300  , p_segment14                     IN  VARCHAR2         := NULL
301  , p_segment15                     IN  VARCHAR2         := NULL
302  , p_segment16                     IN  VARCHAR2         := NULL
303  , p_segment17                     IN  VARCHAR2         := NULL
304  , p_segment18                     IN  VARCHAR2         := NULL
305  , p_segment19                     IN  VARCHAR2         := NULL
306  , p_segment20                     IN  VARCHAR2         := NULL
307  , Attribute_category              IN  VARCHAR2         := NULL
308  , Attribute1                      IN  VARCHAR2         := NULL
309  , Attribute2                      IN  VARCHAR2         := NULL
310  , Attribute3                      IN  VARCHAR2         := NULL
311  , Attribute4                      IN  VARCHAR2         := NULL
312  , Attribute5                      IN  VARCHAR2         := NULL
313  , Attribute6                      IN  VARCHAR2         := NULL
314  , Attribute7                      IN  VARCHAR2         := NULL
315  , Attribute8                      IN  VARCHAR2         := NULL
316  , Attribute9                      IN  VARCHAR2         := NULL
317  , Attribute10                     IN  VARCHAR2         := NULL
318  , Attribute11                     IN  VARCHAR2         := NULL
319  , Attribute12                     IN  VARCHAR2         := NULL
320  , Attribute13                     IN  VARCHAR2         := NULL
321  , Attribute14                     IN  VARCHAR2         := NULL
322  , Attribute15                     IN  VARCHAR2         := NULL
323  , p_User_id                       IN  NUMBER
324  , p_Language_Code                 IN  VARCHAR2         := 'US'
325  , p_Transaction_Type              IN  VARCHAR2
326  , x_Return_Status                 OUT NOCOPY VARCHAR2
327  , x_msg_count                     OUT NOCOPY NUMBER
328  , p_debug                         IN  VARCHAR2 := 'N'
329  , p_output_dir                    IN  VARCHAR2 := NULL
330  , p_debug_filename                IN  VARCHAR2 := 'Ego_Catalog_Grp.log'
331  , x_catalog_group_id              OUT NOCOPY NUMBER
332  , x_catalog_group_name            OUT NOCOPY VARCHAR2
333 ) IS
334   l_catalog_group_tbl EGO_Item_Catalog_Pub.Catalog_Group_Tbl_Type;
335   x_catalog_group_tbl EGO_Item_Catalog_Pub.Catalog_Group_Tbl_Type;
336 BEGIN
337   EGO_Globals.G_Catalog_Group_Rec.catalog_group_name := p_catalog_group_name;
338   EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_name := p_parent_catalog_group_name;
339   EGO_Globals.G_Catalog_Group_Rec.catalog_group_id := p_catalog_group_id;
340   EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id := p_parent_catalog_group_id;
341   EGO_Globals.G_Catalog_Group_Rec.segment1 := p_segment1;
342   EGO_Globals.G_Catalog_Group_Rec.segment2 := p_segment2;
343   EGO_Globals.G_Catalog_Group_Rec.segment3 := p_segment3;
344   EGO_Globals.G_Catalog_Group_Rec.segment4 := p_segment4;
345   EGO_Globals.G_Catalog_Group_Rec.segment5 := p_segment5;
346   EGO_Globals.G_Catalog_Group_Rec.segment6 := p_segment6;
347   EGO_Globals.G_Catalog_Group_Rec.segment7 := p_segment7;
348   EGO_Globals.G_Catalog_Group_Rec.segment8 := p_segment8;
349   EGO_Globals.G_Catalog_Group_Rec.segment9 := p_segment9;
350   EGO_Globals.G_Catalog_Group_Rec.segment10 := p_segment10;
351   EGO_Globals.G_Catalog_Group_Rec.segment11 := p_segment11;
352   EGO_Globals.G_Catalog_Group_Rec.segment12 := p_segment12;
353   EGO_Globals.G_Catalog_Group_Rec.segment13 := p_segment13;
354   EGO_Globals.G_Catalog_Group_Rec.segment14 := p_segment14;
355   EGO_Globals.G_Catalog_Group_Rec.segment15 := p_segment15;
356   EGO_Globals.G_Catalog_Group_Rec.segment16 := p_segment16;
357   EGO_Globals.G_Catalog_Group_Rec.segment17 := p_segment17;
358   EGO_Globals.G_Catalog_Group_Rec.segment18 := p_segment18;
359   EGO_Globals.G_Catalog_Group_Rec.segment19 := p_segment19;
360   EGO_Globals.G_Catalog_Group_Rec.segment20 := p_segment20;
361   EGO_Globals.G_Catalog_Group_Rec.summary_flag  := p_summary_flag;
362   EGO_Globals.G_Catalog_Group_Rec.enabled_flag  := p_enabled_flag;
363   EGO_Globals.G_Catalog_Group_Rec.inactive_date := p_inactive_date;
364   EGO_Globals.G_Catalog_Group_Rec.item_creation_allowed_flag := p_item_creation_Allowed_flag;
365   EGO_Globals.G_Catalog_Group_Rec.description := p_description;
366   EGO_Globals.G_Catalog_Group_Rec.Transaction_Type := p_transaction_type;
367 
368   l_catalog_group_tbl(1) := EGO_Globals.G_Catalog_Group_Rec;
369 
370   -- -- dbms_output.put_line('local table count of records before start : ' || l_catalog_group_tbl.count);
371 
372   EGO_Item_Catalog_Pub.Process_Catalog_Groups
373             ( p_catalog_group_tbl => l_catalog_group_tbl
374             , p_user_id   => p_user_id
375             , p_Language_Code   => p_Language_Code
376             , x_catalog_group_tbl => x_catalog_group_tbl
377             , x_return_status   => x_return_status
378             , x_msg_count   => x_msg_count
379             , p_debug     => p_debug
380             , p_debug_filename  => p_debug_filename
381             , p_output_dir    => p_output_dir
382              );
383 
384   x_catalog_group_id   := x_catalog_group_tbl(1).catalog_group_id;
385   x_catalog_group_name := x_catalog_group_tbl(1).catalog_group_name;
386 
387 END Process_Catalog_Group;
388 
389 
390 PROCEDURE Create_Catalog_Group
391 (  p_Catalog_Group_Id              IN  NUMBER     := NULL
392  , p_Parent_Catalog_Group_Id       IN  NUMBER         := NULL
393  , p_Description                   IN  VARCHAR2   := NULL
394  , p_Item_Creation_Allowed_Flag    IN  VARCHAR2   := NULL
395  , p_Start_Effective_Date      IN  DATE   := NULL
396  , p_Inactive_date       IN  DATE   := NULL
397  , p_Enabled_Flag                  IN  VARCHAR2   := NULL
398  , p_Summary_Flag                  IN  VARCHAR2   := NULL
399  , p_segment1        IN  VARCHAR2   := NULL
400  , p_segment2        IN  VARCHAR2   := NULL
401  , p_segment3        IN  VARCHAR2   := NULL
402  , p_segment4        IN  VARCHAR2   := NULL
403  , p_segment5        IN  VARCHAR2   := NULL
404  , p_segment6        IN  VARCHAR2   := NULL
405  , p_segment7        IN  VARCHAR2   := NULL
406  , p_segment8        IN  VARCHAR2   := NULL
407  , p_segment9        IN  VARCHAR2   := NULL
408  , p_segment10         IN  VARCHAR2   := NULL
409  , p_segment11         IN  VARCHAR2   := NULL
410  , p_segment12         IN  VARCHAR2   := NULL
411  , p_segment13         IN  VARCHAR2   := NULL
412  , p_segment14         IN  VARCHAR2   := NULL
413  , p_segment15         IN  VARCHAR2   := NULL
414  , p_segment16         IN  VARCHAR2   := NULL
415  , p_segment17         IN  VARCHAR2   := NULL
416  , p_segment18         IN  VARCHAR2   := NULL
417  , p_segment19         IN  VARCHAR2   := NULL
418  , p_segment20           IN  VARCHAR2   := NULL
419  , Attribute_category            IN  VARCHAR2   := NULL
420  , Attribute1                    IN  VARCHAR2   := NULL
421  , Attribute2                    IN  VARCHAR2   := NULL
422  , Attribute3                    IN  VARCHAR2   := NULL
423  , Attribute4                    IN  VARCHAR2   := NULL
424  , Attribute5                    IN  VARCHAR2   := NULL
425  , Attribute6                    IN  VARCHAR2   := NULL
426  , Attribute7                    IN  VARCHAR2   := NULL
427  , Attribute8                    IN  VARCHAR2   := NULL
428  , Attribute9                    IN  VARCHAR2   := NULL
429  , Attribute10                   IN  VARCHAR2   := NULL
430  , Attribute11                   IN  VARCHAR2   := NULL
431  , Attribute12                   IN  VARCHAR2   := NULL
432  , Attribute13                   IN  VARCHAR2   := NULL
433  , Attribute14                   IN  VARCHAR2   := NULL
434  , Attribute15                   IN  VARCHAR2   := NULL
435  , p_Template_Id                   IN  NUMBER
436  , p_User_id               IN  NUMBER
437  , x_return_status                 OUT NOCOPY VARCHAR2
438  , x_msg_count         OUT NOCOPY NUMBER
439  , x_msg_data                      OUT NOCOPY VARCHAR2
440  , p_debug                       IN  VARCHAR2 := 'N'
441  , p_output_dir                  IN  VARCHAR2 := NULL
442  , p_debug_filename              IN  VARCHAR2 := 'Ego_Catalog_Grp.log'
443  , x_catalog_group_id              OUT NOCOPY NUMBER
444  , x_catalog_group_name            OUT NOCOPY VARCHAR2
445 )
446 
447 IS
448   l_entity_index             number;
449   l_entity_id                varchar2(2000);
450   l_message_type             varchar2(2000);
451   l_message_list             varchar2(2000);
452 BEGIN
453 
454 ---------------------------------------------------
455   -- Insert catalog group
456   EGO_Item_Catalog_Pub.Process_Catalog_Group
457         ( p_Catalog_Group_Id           => p_Catalog_Group_Id
458         , p_Parent_Catalog_Group_Id    => p_Parent_Catalog_Group_Id
459         , p_Description                => p_Description
460         , p_Item_Creation_Allowed_Flag => p_Item_Creation_Allowed_Flag
461         , p_Inactive_Date              => p_Inactive_Date
462         , p_segment1                   => p_segment1
463         , p_segment2                   => p_segment2
464         , p_segment3                   => p_segment3
465         , p_segment4                   => p_segment4
466         , p_segment5                   => p_segment5
467         , p_segment6                   => p_segment6
468         , p_segment7                   => p_segment7
469         , p_segment8                   => p_segment8
470         , p_segment9                   => p_segment9
471         , p_segment10                  => p_segment10
472         , p_segment11                  => p_segment11
473         , p_segment12                  => p_segment12
474         , p_segment13                  => p_segment13
475         , p_segment14                  => p_segment14
476         , p_segment15                  => p_segment15
477         , p_segment16                  => p_segment16
478         , p_segment17                  => p_segment17
479         , p_segment18                  => p_segment18
480         , p_segment19                  => p_segment19
481         , p_segment20                  => p_segment20
482         , p_user_id                    => p_user_id
483         , p_Language_Code              => userenv('LANG')
484         , p_Transaction_Type           => 'CREATE'
485         , x_return_status              => x_return_status
486         , x_msg_count                  => x_msg_count
487   , p_debug                      => p_debug
488         , p_output_dir                 => p_output_dir
489         , p_debug_filename             => p_debug_filename
490         , x_catalog_group_id           => x_catalog_group_id
491         , x_catalog_group_name         => x_catalog_group_name
492        );
493 
494   -- Create an association between Default Template and Catalog Group
495   IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
496      p_Template_Id is not null THEN
497 
498     INSERT INTO ego_cat_grp_templates
499     (   template_id
500       , catalog_group_id
501       , created_by
502       , creation_date
503       , last_updated_by
504       , last_update_date
505     )
506     VALUES
507     (   p_Template_Id
508       , x_catalog_group_id
509       , p_user_id
510       , sysdate
511       , p_user_id
512       , sysdate
513     );
514 
515   ELSIF x_return_status <> 'S' THEN
516     Error_Handler.Get_Message
517     (  x_message_text    => l_message_list
518      , x_entity_index   => l_entity_index
519      , x_entity_id      => l_entity_id
520      , x_message_type   => l_message_type
521      );
522 
523       x_msg_count := ERROR_HANDLER.Get_Message_Count();
524       x_msg_data := 'Executing - EGO_ITEM_CATALOG_PUB.CREATE_CATALOG_GROUP '||l_message_list;
525   END IF;
526 
527   EXCEPTION
528     WHEN OTHERS THEN
529       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
530 
531       Ego_Catalog_Group_Err_Handler.Log_Error
532       (  p_error_status => x_return_status
533        , p_error_scope  => Error_Handler.G_SCOPE_ALL
534        , p_error_level  => Error_Handler.G_BO_LEVEL
535       );
536 
537       Error_Handler.Get_Message
538       (  x_message_text    => l_message_list
539        , x_entity_index   => l_entity_index
540        , x_entity_id      => l_entity_id
541        , x_message_type   => l_message_type
542       );
543 
544       x_msg_count := ERROR_HANDLER.Get_Message_Count();
545       x_msg_data := 'Executing - EGO_ITEM_CATALOG_PUB.CREATE_CATALOG_GROUP '||l_message_list;
546 
547 END CREATE_CATALOG_GROUP;
548 
549 ---------------------------------------------------------
550 
551 PROCEDURE Update_Catalog_Group
552 (  p_Catalog_Group_Id              IN  NUMBER     := NULL
553  , p_Parent_Catalog_Group_Id       IN  NUMBER         := NULL
554  , p_Description                   IN  VARCHAR2   := NULL
555  , p_Item_Creation_Allowed_Flag    IN  VARCHAR2   := NULL
556  , p_Start_Effective_Date      IN  DATE   := NULL
557  , p_Inactive_date       IN  DATE   := NULL
558  , p_Enabled_Flag                  IN  VARCHAR2   := NULL
559  , p_Summary_Flag                  IN  VARCHAR2   := NULL
560  , p_segment1        IN  VARCHAR2   := NULL
561  , p_segment2        IN  VARCHAR2   := NULL
562  , p_segment3        IN  VARCHAR2   := NULL
563  , p_segment4        IN  VARCHAR2   := NULL
564  , p_segment5        IN  VARCHAR2   := NULL
565  , p_segment6        IN  VARCHAR2   := NULL
566  , p_segment7        IN  VARCHAR2   := NULL
567  , p_segment8        IN  VARCHAR2   := NULL
568  , p_segment9        IN  VARCHAR2   := NULL
569  , p_segment10         IN  VARCHAR2   := NULL
570  , p_segment11         IN  VARCHAR2   := NULL
571  , p_segment12         IN  VARCHAR2   := NULL
572  , p_segment13         IN  VARCHAR2   := NULL
573  , p_segment14         IN  VARCHAR2   := NULL
574  , p_segment15         IN  VARCHAR2   := NULL
575  , p_segment16         IN  VARCHAR2   := NULL
576  , p_segment17         IN  VARCHAR2   := NULL
577  , p_segment18         IN  VARCHAR2   := NULL
578  , p_segment19         IN  VARCHAR2   := NULL
579  , p_segment20           IN  VARCHAR2   := NULL
580  , Attribute_category            IN  VARCHAR2   := NULL
581  , Attribute1                    IN  VARCHAR2   := NULL
582  , Attribute2                    IN  VARCHAR2   := NULL
583  , Attribute3                    IN  VARCHAR2   := NULL
584  , Attribute4                    IN  VARCHAR2   := NULL
585  , Attribute5                    IN  VARCHAR2   := NULL
586  , Attribute6                    IN  VARCHAR2   := NULL
587  , Attribute7                    IN  VARCHAR2   := NULL
588  , Attribute8                    IN  VARCHAR2   := NULL
589  , Attribute9                    IN  VARCHAR2   := NULL
590  , Attribute10                   IN  VARCHAR2   := NULL
591  , Attribute11                   IN  VARCHAR2   := NULL
592  , Attribute12                   IN  VARCHAR2   := NULL
593  , Attribute13                   IN  VARCHAR2   := NULL
594  , Attribute14                   IN  VARCHAR2   := NULL
595  , Attribute15                   IN  VARCHAR2   := NULL
596  , p_Template_Id                   IN  NUMBER
597  , p_User_id               IN  NUMBER
598  , x_Return_Status                 OUT NOCOPY VARCHAR2
599  , x_msg_count         OUT NOCOPY NUMBER
600  , x_msg_data                      OUT NOCOPY VARCHAR2
601  , p_debug                       IN  VARCHAR2 := 'N'
602  , p_output_dir                  IN  VARCHAR2 := NULL
603  , p_debug_filename              IN  VARCHAR2 := 'Ego_Catalog_Grp.log'
604  , x_catalog_group_id              OUT NOCOPY NUMBER
605  , x_catalog_group_name            OUT NOCOPY VARCHAR2
606 )
607 
608 IS
609   l_entity_index             number;
610   l_entity_id                varchar2(2000);
611   l_message_type             varchar2(2000);
612   l_message_list             varchar2(2000);
613   v_dummy                    varchar2(1);
614 
615 BEGIN
616 
617 ---------------------------------------------------
618   -- Update catalog group
619   EGO_Item_Catalog_Pub.Process_Catalog_Group
620         ( p_Catalog_Group_Id           => p_Catalog_Group_Id
621         , p_Parent_Catalog_Group_Id    => p_Parent_Catalog_Group_Id
622         , p_Description                => p_Description
623         , p_Item_Creation_Allowed_Flag => p_Item_Creation_Allowed_Flag
624         , p_Inactive_Date              => p_Inactive_Date
625         , p_segment1                   => p_segment1
626         , p_segment2                   => p_segment2
627         , p_segment3                   => p_segment3
628         , p_segment4                   => p_segment4
629         , p_segment5                   => p_segment5
630         , p_segment6                   => p_segment6
631         , p_segment7                   => p_segment7
632         , p_segment8                   => p_segment8
633         , p_segment9                   => p_segment9
634         , p_segment10                  => p_segment10
635         , p_segment11                  => p_segment11
636         , p_segment12                  => p_segment12
637         , p_segment13                  => p_segment13
638         , p_segment14                  => p_segment14
639         , p_segment15                  => p_segment15
640         , p_segment16                  => p_segment16
641         , p_segment17                  => p_segment17
642         , p_segment18                  => p_segment18
643         , p_segment19                  => p_segment19
644         , p_segment20                  => p_segment20
645         , p_user_id                    => p_user_id
646         , p_Language_Code              => userenv('LANG')
647         , p_Transaction_Type           => 'UPDATE'
648         , x_return_status              => x_return_status
649         , x_msg_count                  => x_msg_count
650   , p_debug                      => p_debug
651         , p_output_dir                 => p_output_dir
652         , p_debug_filename             => p_debug_filename
653         , x_catalog_group_id           => x_catalog_group_id
654         , x_catalog_group_name         => x_catalog_group_name
655        );
656 
657   -- Create an association between Default Template and Catalog Group
658   IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
659 
660     -- check if catalog group is already associated with a default template
661     SELECT 'x' INTO v_dummy
662     FROM ego_cat_grp_templates
663     WHERE catalog_group_id = x_catalog_group_id;
664 
665     IF p_Template_Id is not null THEN
666 
667       -- update current association of catalog group with default template
668       UPDATE ego_cat_grp_templates
669       SET template_id = p_Template_Id
670       WHERE catalog_group_id = x_catalog_group_id;
671 
672     ELSE
673 
674       -- delete current association of catalog group with default template
675       DELETE FROM ego_cat_grp_templates
676       WHERE catalog_group_id = x_catalog_group_id;
677 
678     END IF;
679 
680   ELSIF x_return_status <> 'S' THEN
681     x_msg_count := Error_Handler.Get_Message_Count();
682 
683     Error_Handler.Get_Message
684     (  x_message_text   => l_message_list
685      , x_entity_index   => l_entity_index
686      , x_entity_id      => l_entity_id
687      , x_message_type   => l_message_type
688      );
689 
690       x_msg_count := ERROR_HANDLER.Get_Message_Count();
691       x_msg_data := 'Executing - EGO_ITEM_CATALOG_PUB.UPDATE_CATALOG_GROUP '||l_message_list;
692   END IF;
693 
694 
695 
696   EXCEPTION
697     WHEN NO_DATA_FOUND THEN
698       -- There is no current association of default template to catalog group
699       IF p_Template_Id is not null THEN
700 
701         INSERT INTO ego_cat_grp_templates
702         (   template_id
703           , catalog_group_id
704           , created_by
705           , creation_date
706           , last_updated_by
707           , last_update_date
708         )
709         VALUES
710         (   p_Template_Id
711           , x_catalog_group_id
712           , p_user_id
713           , sysdate
714           , p_user_id
715           , sysdate
716         );
717 
718 
719       END IF;
720 
721     WHEN OTHERS THEN
722       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
723 
724       Ego_Catalog_Group_Err_Handler.Log_Error
725       (  p_error_status   => x_return_status
726        , p_error_scope  => Error_Handler.G_SCOPE_ALL
727        , p_error_level  => Error_Handler.G_BO_LEVEL
728       );
729 
730       Error_Handler.Get_Message
731       (  x_message_text    => l_message_list
732        , x_entity_index   => l_entity_index
733        , x_entity_id      => l_entity_id
734        , x_message_type   => l_message_type
735       );
736 
737       x_msg_count := ERROR_HANDLER.Get_Message_Count();
738       x_msg_data := 'Executing - EGO_ITEM_CATALOG_PUB.UPDATE_CATALOG_GROUP '||l_message_list;
739 
740 END UPDATE_CATALOG_GROUP;
741 
742 ---------------------------------------------------------------
743 -- Check before deleting an attribute group assoc ----
744 ---------------------------------------------------------------
745 
746 PROCEDURE Check_Delete_AttrGroup_Assoc
747 (
748     p_api_version                   IN      NUMBER
749    ,p_association_id                IN      NUMBER
750    ,p_classification_code           IN      VARCHAR2
751    ,p_data_level                    IN      VARCHAR2
752    ,p_attr_group_id                 IN      NUMBER
753    ,p_application_id                IN      NUMBER
754    ,p_attr_group_type               IN      VARCHAR2
755    ,p_attr_group_name               IN      VARCHAR2
756    ,p_enabled_code                  IN      VARCHAR2
757    ,p_init_msg_list                 IN      VARCHAR2   := fnd_api.g_FALSE
758    ,x_ok_to_delete                  OUT     NOCOPY VARCHAR2
759    ,x_return_status                 OUT     NOCOPY VARCHAR2
760    ,x_errorcode                     OUT     NOCOPY NUMBER
761    ,x_msg_count                     OUT     NOCOPY NUMBER
762    ,x_msg_data                      OUT     NOCOPY VARCHAR2
763 )
764 IS
765 
766     l_api_version           CONSTANT NUMBER           := 1.0;
767     l_count                 VARCHAR2(3);
768     l_api_name              CONSTANT VARCHAR2(30)     := 'Check_Delete_AttrGroup_Assoc';
769     l_message               VARCHAR2(4000);
770     l_classification_codes  VARCHAR2(32767);
771     l_attr_group_id         VARCHAR2(40);
772     l_dynamic_sql           VARCHAR2(32767);
773     l_attr_display_name     VARCHAR2(250);
774     l_variant_Behaviour     VARCHAR2(10);
775     l_style_exists          VARCHAR2(1);
776 
777   BEGIN
778 
779     --Standard checks
780     IF NOT FND_API.Compatible_API_Call (l_api_version
781                                        ,p_api_version
782                                        ,l_api_name
783                                        ,g_pkg_name)
784     THEN
785       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
786     END IF;
787 
788     -- Initialize message list if p_init_msg_list is set to TRUE
789     IF FND_API.To_Boolean(p_init_msg_list) THEN
790       FND_MSG_PUB.Initialize;
791     END IF;
792 
793     SELECT
794       attr_group_disp_name INTO l_attr_display_name
795     FROM
796       ego_obj_attr_grp_assocs_v
797     WHERE association_id =  p_association_id;
798 
799     --Check if there are any entries for in EGO_PAGE_ENTRIES_V
800 
801     -- Bug - 5068278 , avoided Full Table Scans
802     SELECT COUNT(*) INTO l_count
803       FROM EGO_PAGE_ENTRIES_B A,
804                   FND_OBJECTS B ,
805                   EGO_OBJ_ATTR_GRP_ASSOCS_V C
806     WHERE C.ASSOCIATION_ID =  A.ASSOCIATION_ID
807          AND A.ASSOCIATION_ID = p_association_id
808          AND C.OBJECT_ID =  B.OBJECT_ID
809          AND B.OBJ_NAME = 'EGO_ITEM' ;
810 
811     IF (l_count > 0)
812     THEN
813       x_ok_to_delete := FND_API.G_FALSE;
814       l_message := 'EGO_ASSOCIATED_AG_IN_USE';
815       FND_MESSAGE.Set_Name(g_app_name, l_message);
816       FND_MESSAGE.Set_Token('ATTR_GROUP_NAME', l_attr_display_name);
817       FND_MSG_PUB.Add;
818       x_return_status := FND_API.G_RET_STS_ERROR;
819     END IF;
820 
821     -- now need to get all the classification code that has p_classification_code as its parent
822     IF (l_count = 0) THEN
823 
824      l_attr_group_id := p_attr_group_id || '%';
825 
826      -- check if this ag is used to create any search criterias
827 
828       l_dynamic_sql :=  'SELECT COUNT (*) '||
829                         'FROM AK_CRITERIA cols , '||
830                         '     EGO_CRITERIA_TEMPLATES_V criterions '||
831                         'WHERE cols.customization_code = criterions.customization_code '||
832                         ' AND ( criterions.classification1 IN ( SELECT item_catalog_group_id '||
833                         '              FROM mtl_item_catalog_groups_b CONNECT BY PRIOR item_catalog_group_id = '||
834                         '              parent_catalog_group_id START WITH parent_catalog_group_id = :1 ) '||
835                         '     OR criterions.classification1 = :2 ) '||
836                         '  AND cols.attribute_code LIKE :3 '||
837                         '  AND criterions.REGION_CODE LIKE ''EGO%'' '||
838                         '  AND COLS.REGION_CODE = CRITERIONS.REGION_CODE ';
839 
840      EXECUTE IMMEDIATE l_dynamic_sql INTO l_count USING p_classification_code, p_classification_code, l_attr_group_id;
841      IF (l_count > 0)
842      THEN
843        x_ok_to_delete := FND_API.G_FALSE;
844        l_message := 'EGO_ASSOCIATED_AG_IN_USE';
845        FND_MESSAGE.Set_Name(g_app_name, l_message);
846        FND_MESSAGE.Set_Token('ATTR_GROUP_NAME', l_attr_display_name);
847        FND_MSG_PUB.Add;
848        x_return_status := FND_API.G_RET_STS_ERROR;
849      END IF;
850 
851      IF (l_count = 0) THEN
852        -- check if this ag is used to create any result formats
853        l_dynamic_sql := 'SELECT COUNT(*) ' ||
854                         'FROM AK_CUSTOM_REGION_ITEMS COLS, ' ||
855                         '     EGO_RESULTS_FORMAT_V RF ' ||
856                         'WHERE cols.customization_code = RF.customization_code ' ||
857                         ' AND ( RF.classification1 IN ( SELECT item_catalog_group_id '||
858                         '              FROM mtl_item_catalog_groups_b CONNECT BY PRIOR item_catalog_group_id = '||
859                         '              parent_catalog_group_id START WITH parent_catalog_group_id = :1 ) '||
860                         '     OR RF.classification1 = :2 ) '||
861                         '  AND cols.attribute_code LIKE :3 '||
862                         '  AND RF.REGION_CODE LIKE ''EGO%'' ' ||
863                         '  AND COLS.REGION_CODE = RF.REGION_CODE ';
864 
865        EXECUTE IMMEDIATE l_dynamic_sql INTO l_count USING p_classification_code, p_classification_code, l_attr_group_id;
866        IF (l_count > 0)
867        THEN
868          x_ok_to_delete := FND_API.G_FALSE;
869          l_message := 'EGO_ASSOCIATED_AG_IN_USE';
870          FND_MESSAGE.Set_Name(g_app_name, l_message);
871          FND_MESSAGE.Set_Token('ATTR_GROUP_NAME', l_attr_display_name);
872          FND_MSG_PUB.Add;
873          x_return_status := FND_API.G_RET_STS_ERROR;
874        END IF;
875      END IF; --if no search criteria exist
876    END IF; -- no page entry exist
877 
878    -- In Case the Attribute Group is Variant in Behavior it can not be deleted if
879    -- there exists any style or SKU item for this ICC
880    BEGIN
881      SELECT VARIANT INTO l_variant_Behaviour
882      FROM EGO_FND_DSC_FLX_CTX_EXT
883      WHERE ATTR_GROUP_ID = p_attr_group_id;
884    EXCEPTION
885      WHEN OTHERS THEN
886        l_variant_Behaviour := 'N';
887    END;
888 
889    IF l_variant_Behaviour = 'Y' THEN
890      -- Style Exists check is enough for SKU Exists check,
891      -- Since SKU cannot exists with out a Style
892      l_style_exists := EGO_STYLE_SKU_ITEM_PVT.IsStyle_Item_Exist_For_ICC( p_classification_code );
893      IF l_style_exists = FND_API.G_TRUE THEN
894        x_ok_to_delete := FND_API.G_FALSE;
895        l_message := 'EGO_ASSOCIATED_AG_IN_USE';
896        FND_MESSAGE.Set_Name(g_app_name, l_message);
897        FND_MESSAGE.Set_Token('ATTR_GROUP_NAME', l_attr_display_name);
898        FND_MSG_PUB.Add;
899        x_return_status := FND_API.G_RET_STS_ERROR;
900      END IF;
901    END IF;
902 
903 
904     FND_MSG_PUB.Count_And_Get(
905         p_encoded        => FND_API.G_FALSE,
906         p_count          => x_msg_count,
907         p_data           => x_msg_data
908     );
909 
910     IF (l_message IS NULL) THEN
911       x_return_status := FND_API.G_RET_STS_SUCCESS;
912       x_ok_to_delete := FND_API.G_TRUE;
913     END IF;
914   EXCEPTION
915     WHEN OTHERS THEN
916       x_ok_to_delete := FND_API.G_FALSE;
917       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
918       FND_MESSAGE.Set_Name(g_app_name, g_plsql_err);
919       FND_MESSAGE.Set_Token(g_pkg_name_token, g_pkg_name);
920       FND_MESSAGE.Set_Token(g_api_name_token, l_api_name);
921       FND_MESSAGE.Set_Token(g_sql_err_msg_token, SQLERRM);
922       FND_MSG_PUB.Add;
923 
924 END Check_Delete_AttrGroup_Assoc;
925 ---------------------------------------------------------------
926 -- Check before deleting an attribute group assoc ----
927 ---------------------------------------------------------------
928 
929 PROCEDURE LOCK_ROW (
930   p_item_catalog_group_id          IN       NUMBER,
931   p_parent_catalog_group_id        IN       NUMBER,
932   p_item_creation_allowed_flag     IN       VARCHAR2,
933   p_inactive_date                  IN       DATE,
934   p_segment1                       IN       VARCHAR2,
935   p_segment2                       IN       VARCHAR2,
936   p_segment3                       IN       VARCHAR2,
937   p_segment4                       IN       VARCHAR2,
938   p_segment5                       IN       VARCHAR2,
939   p_segment6                       IN       VARCHAR2,
940   p_segment7                       IN       VARCHAR2,
941   p_segment8                       IN       VARCHAR2,
942   p_segment9                       IN       VARCHAR2,
943   p_segment10                      IN       VARCHAR2,
944   p_segment11                      IN       VARCHAR2,
945   p_segment12                      IN       VARCHAR2,
946   p_segment13                      IN       VARCHAR2,
947   p_segment14                      IN       VARCHAR2,
948   p_segment15                      IN       VARCHAR2,
949   p_segment16                      IN       VARCHAR2,
950   p_segment17                      IN       VARCHAR2,
951   p_segment18                      IN       VARCHAR2,
952   p_segment19                      IN       VARCHAR2,
953   p_segment20                      IN       VARCHAR2,
954   p_description                    IN       VARCHAR2
955 ) is
956   cursor c is select
957       PARENT_CATALOG_GROUP_ID,
958       ITEM_CREATION_ALLOWED_FLAG,
959       INACTIVE_DATE,
960       SUMMARY_FLAG,
961       ENABLED_FLAG,
962       START_DATE_ACTIVE,
963       END_DATE_ACTIVE,
964       SEGMENT1,
965       SEGMENT2,
966       SEGMENT3,
967       SEGMENT4,
968       SEGMENT5,
969       SEGMENT6,
970       SEGMENT7,
971       SEGMENT8,
972       SEGMENT9,
973       SEGMENT10,
974       SEGMENT11,
975       SEGMENT12,
976       SEGMENT13,
977       SEGMENT14,
978       SEGMENT15,
979       SEGMENT16,
980       SEGMENT17,
981       SEGMENT18,
982       SEGMENT19,
983       SEGMENT20,
984       ATTRIBUTE_CATEGORY,
985       ATTRIBUTE1,
986       ATTRIBUTE2,
987       ATTRIBUTE3,
988       ATTRIBUTE4,
989       ATTRIBUTE5,
990       ATTRIBUTE6,
991       ATTRIBUTE7,
992       ATTRIBUTE8,
993       ATTRIBUTE9,
994       ATTRIBUTE10,
995       ATTRIBUTE11,
996       ATTRIBUTE12,
997       ATTRIBUTE13,
998       ATTRIBUTE14,
999       ATTRIBUTE15,
1000       REQUEST_ID
1001     from MTL_ITEM_CATALOG_GROUPS_B
1002     where ITEM_CATALOG_GROUP_ID = p_item_catalog_group_id
1003     for update of ITEM_CATALOG_GROUP_ID nowait;
1004   recinfo c%rowtype;
1005 
1006   cursor c1 is select
1007       DESCRIPTION,
1008       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
1009     from MTL_ITEM_CATALOG_GROUPS_TL
1010     where ITEM_CATALOG_GROUP_ID = p_item_catalog_group_id
1011     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
1012     for update of ITEM_CATALOG_GROUP_ID nowait;
1013 
1014 
1015 BEGIN
1016 
1017 
1018   OPEN c;
1019   FETCH c into recinfo;
1020   IF (c%notfound) THEN
1021     CLOSE c;
1022     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
1023     app_exception.raise_exception;
1024   END IF;
1025   CLOSE c;
1026 
1027   IF (    ((recinfo.PARENT_CATALOG_GROUP_ID = p_parent_catalog_group_id)
1028            OR ((recinfo.PARENT_CATALOG_GROUP_ID is null) AND (p_parent_catalog_group_id is null)))
1029       AND (recinfo.ITEM_CREATION_ALLOWED_FLAG = p_item_creation_allowed_flag)
1030       AND ((recinfo.INACTIVE_DATE = p_inactive_date)
1031            OR ((recinfo.INACTIVE_DATE is null) AND (p_inactive_date is null)))
1032       AND ((recinfo.SEGMENT1 = p_segment1)
1033            or ((recinfo.SEGMENT1 is null) AND (p_segment1 is null)))
1034       AND ((recinfo.SEGMENT2 = p_segment2)
1035            or ((recinfo.SEGMENT2 is null) AND (p_segment2 is null)))
1036       AND ((recinfo.SEGMENT3 = p_segment3)
1037            or ((recinfo.SEGMENT3 is null) AND (p_segment3 is null)))
1038       AND ((recinfo.SEGMENT4 = p_segment4)
1039            or ((recinfo.SEGMENT4 is null) AND (p_segment4 is null)))
1040       AND ((recinfo.SEGMENT5 = p_segment5)
1041            or ((recinfo.SEGMENT5 is null) AND (p_segment5 is null)))
1042       AND ((recinfo.SEGMENT6 = p_segment6)
1043            or ((recinfo.SEGMENT6 is null) AND (p_segment6 is null)))
1044       AND ((recinfo.SEGMENT7 = p_segment7)
1045            or ((recinfo.SEGMENT7 is null) AND (p_segment7 is null)))
1046       AND ((recinfo.SEGMENT8 = p_segment8)
1047            or ((recinfo.SEGMENT8 is null) AND (p_segment8 is null)))
1048       AND ((recinfo.SEGMENT9 = p_segment9)
1049            or ((recinfo.SEGMENT9 is null) AND (p_segment9 is null)))
1050       AND ((recinfo.SEGMENT10 = p_segment10)
1051            or ((recinfo.SEGMENT10 is null) AND (p_segment10 is null)))
1052       AND ((recinfo.SEGMENT11 = p_segment11)
1053            or ((recinfo.SEGMENT11 is null) AND (p_segment11 is null)))
1054       AND ((recinfo.SEGMENT12 = p_segment12)
1055            or ((recinfo.SEGMENT12 is null) AND (p_segment12 is null)))
1056       AND ((recinfo.SEGMENT13 = p_segment13)
1057            or ((recinfo.SEGMENT13 is null) AND (p_segment13 is null)))
1058       AND ((recinfo.SEGMENT14 = p_segment14)
1059            or ((recinfo.SEGMENT14 is null) AND (p_segment14 is null)))
1060       AND ((recinfo.SEGMENT15 = p_segment15)
1061            or ((recinfo.SEGMENT15 is null) AND (p_segment15 is null)))
1062       AND ((recinfo.SEGMENT16 = p_segment16)
1063            or ((recinfo.SEGMENT16 is null) AND (p_segment16 is null)))
1064       AND ((recinfo.SEGMENT17 = p_segment17)
1065            or ((recinfo.SEGMENT17 is null) AND (p_segment17 is null)))
1066       AND ((recinfo.SEGMENT18 = p_segment18)
1067            or ((recinfo.SEGMENT18 is null) AND (p_segment18 is null)))
1068       AND ((recinfo.SEGMENT19 = p_segment19)
1069            or ((recinfo.SEGMENT19 is null) AND (p_segment19 is null)))
1070       AND ((recinfo.SEGMENT20 = p_segment20)
1071            or ((recinfo.SEGMENT20 is null) AND (p_segment20 is null)))
1072   ) THEN
1073     null;
1074   ELSE
1075     --failed to lock row b/c data has changed since last fetch
1076     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1077     app_exception.raise_exception;
1078   end if;
1079 
1080 
1081   for tlinfo in c1 loop
1082     if (tlinfo.BASELANG = 'Y') then
1083       if (    ((tlinfo.DESCRIPTION = p_description)
1084                or ((tlinfo.DESCRIPTION is null) AND (p_description is null)))
1085       ) then
1086         null;
1087       else
1088         --failed to lock row b/c data has changed since last fetch
1089         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1090         app_exception.raise_exception;
1091       end if;
1092     end if;
1093   end loop;
1094 
1095   return;
1096 end LOCK_ROW;
1097 
1098 
1099 
1100 
1101 
1102 
1103 END EGO_ITEM_CATALOG_PUB;