[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;