[Home] [Help]
PACKAGE BODY: APPS.EGO_AG_BULKLOAD_PVT
Source
1 PACKAGE BODY ego_ag_bulkload_pvt AS
2 /* $Header: EGOVAGBB.pls 120.16 2011/06/16 01:06:26 trudave noship $ */
3
4 /*This Procedure is used to initialize certain column values in the interface table.
5 Used in the interface flow.
6 x_return_status OUT NOCOPY parameter that returns the status*/
7 PROCEDURE Initialize
8 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
9 IS
10 lv_smt NUMBER; --Statement counter
11
12 lv_proc VARCHAR2(30) := 'Initialize';
13 BEGIN
14 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered Initialize procedure');
15
16 x_return_status := G_RET_STS_SUCCESS;
17
18 lv_smt := 1;
19
20 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
21
22 /*Sets the EGO application ID*/
23 SELECT application_id
24 INTO g_ego_application_id
25 FROM fnd_application
26 WHERE application_short_name = 'EGO';
27
28 lv_smt := 2;
29
30 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
31
32 /*Sets the Transaction_id and upper case the transaction_type*/
33 UPDATE ego_attr_groups_interface
34 SET transaction_id = mtl_system_items_interface_s.nextval,
35 transaction_type = Upper(transaction_type),
36 application_id = g_ego_application_id,
37 created_by = G_USER_ID,
38 creation_date = SYSDATE,
39 last_updated_by = G_USER_ID,
40 last_update_date = SYSDATE,
41 last_update_login = G_LOGIN_ID,
42 request_id = G_REQUEST_ID,
43 program_application_id = G_PROG_APPL_ID,
44 program_id = G_PROGRAM_ID,
45 program_update_date = SYSDATE
46 WHERE transaction_id IS NULL
47 AND process_status = G_PROCESS_RECORD
48 AND ((G_SET_PROCESS_ID IS NULL)
49 OR (set_process_id = G_SET_PROCESS_ID));
50
51 SELECT COUNT(1) INTO G_AG_COUNT
52 FROM ego_attr_groups_interface
53 WHERE process_status = G_PROCESS_RECORD
54 AND ((G_SET_PROCESS_ID IS NULL)
55 OR (set_process_id = G_SET_PROCESS_ID));
56
57 lv_smt := 3;
58
59 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
60
61 UPDATE ego_attr_groups_dl_interface
62 SET transaction_id = mtl_system_items_interface_s.nextval,
63 transaction_type = Upper(transaction_type),
64 application_id = g_ego_application_id,
65 created_by = G_USER_ID,
66 creation_date = SYSDATE,
67 last_updated_by = G_USER_ID,
68 last_update_date = SYSDATE,
69 last_update_login = G_LOGIN_ID,
70 request_id = G_REQUEST_ID,
71 program_application_id = G_PROG_APPL_ID,
72 program_id = G_PROGRAM_ID,
73 program_update_date = SYSDATE
74 WHERE transaction_id IS NULL
75 AND process_status = G_PROCESS_RECORD
76 AND ((G_SET_PROCESS_ID IS NULL)
77 OR (set_process_id = G_SET_PROCESS_ID));
78
79 SELECT COUNT(1) INTO G_DL_COUNT
80 FROM ego_attr_groups_dl_interface
81 WHERE process_status = G_PROCESS_RECORD
82 AND ((G_SET_PROCESS_ID IS NULL)
83 OR (set_process_id = G_SET_PROCESS_ID));
84
85 lv_smt := 4;
86
87 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
88
89 UPDATE ego_attr_group_cols_intf
90 SET transaction_id = mtl_system_items_interface_s.nextval,
91 transaction_type = Upper(transaction_type),
92 application_id = g_ego_application_id,
93 created_by = G_USER_ID,
94 creation_date = SYSDATE,
95 last_updated_by = G_USER_ID,
96 last_update_date = SYSDATE,
97 last_update_login = G_LOGIN_ID,
98 request_id = G_REQUEST_ID,
99 program_application_id = G_PROG_APPL_ID,
100 program_id = G_PROGRAM_ID,
101 program_update_date = SYSDATE
102 WHERE transaction_id IS NULL
103 AND process_status = G_PROCESS_RECORD
104 AND ((G_SET_PROCESS_ID IS NULL)
105 OR (set_process_id = G_SET_PROCESS_ID));
106
107 SELECT COUNT(1) INTO G_ATTR_COUNT
108 FROM ego_attr_group_cols_intf
109 WHERE process_status = G_PROCESS_RECORD
110 AND ((G_SET_PROCESS_ID IS NULL)
111 OR (set_process_id = G_SET_PROCESS_ID));
112
113 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Initialize procedure');
114 EXCEPTION
115 WHEN OTHERS THEN
116 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Initialize - Exception when others'||SQLERRM);
117
118 x_return_status := G_RET_STS_UNEXP_ERROR;
119
120 x_return_msg := 'ego_ag_bulkload_pvt.initialize - '||SQLERRM;
121
122 RETURN;
123 END initialize;
124
125 /*This procedure is used to validate the transaction type for all the interface tables.
126 Used in the interface flow.
127 x_return_status OUT NOCOPY parameter that returns the status*/
128 PROCEDURE Validate_transaction_type
129 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
130 IS
131 lv_smt NUMBER; --Statement counter
132
133 lv_proc VARCHAR2(30) := 'Validate_transaction_type';
134 BEGIN
135 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered Validate_transaction_type');
136
137 x_return_status := G_RET_STS_SUCCESS;
138
139 /* Update the interface records with process_status 3 and insert into
140 MTL_INTERFACE_ERRORS if TRANSACTION_TYPE passed is incorrect*/
141 G_MESSAGE_NAME := 'EGO_TRANS_TYPE_INVALID';
142
143 fnd_message.Set_name('EGO','EGO_TRANS_TYPE_INVALID');
144
145 G_MESSAGE_TEXT := fnd_message.get;
146
147 lv_smt := 1;
148
149 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
150
151 INSERT INTO mtl_interface_errors
152 (transaction_id,
153 unique_id,
154 organization_id,
155 column_name,
156 table_name,
157 bo_identifier,
158 entity_identifier,
159 message_name,
160 error_message,
161 last_update_date,
162 last_updated_by,
163 creation_date,
164 created_by,
165 last_update_login,
166 request_id,
167 program_application_id,
168 program_id,
169 program_update_date)
170 SELECT transaction_id,
171 mtl_system_items_interface_s.nextval,
172 NULL,
173 NULL,
174 G_ENTITY_AG_TAB,
175 G_BO_IDENTIFIER_AG,
176 G_ENTITY_AG,
177 G_MESSAGE_NAME,
178 G_MESSAGE_TEXT,
179 Nvl(last_update_date,SYSDATE),
180 Nvl(last_updated_by,G_USER_ID),
181 Nvl(creation_date,SYSDATE),
182 Nvl(created_by,G_USER_ID),
183 Nvl(last_update_login,G_USER_ID),
184 G_REQUEST_ID,
185 Nvl(program_application_id,G_PROG_APPL_ID),
186 Nvl(program_id,G_PROGRAM_ID),
187 Nvl(program_update_date,SYSDATE)
188 FROM ego_attr_groups_interface
189 WHERE (transaction_type IS NULL
190 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
191 AND transaction_id IS NOT NULL
192 AND process_status = G_PROCESS_RECORD
193 AND ((G_SET_PROCESS_ID IS NULL)
194 OR (set_process_id = G_SET_PROCESS_ID));
195
196 UPDATE ego_attr_groups_interface
197 SET process_status = G_ERROR_RECORD,
198 last_updated_by = G_USER_ID,
199 last_update_date = SYSDATE,
200 last_update_login = G_LOGIN_ID
201 WHERE (transaction_type IS NULL
202 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
203 AND transaction_id IS NOT NULL
204 AND process_status = G_PROCESS_RECORD
205 AND ((G_SET_PROCESS_ID IS NULL)
206 OR (set_process_id = G_SET_PROCESS_ID));
207
208 lv_smt := 2;
209
210 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
211
212 INSERT INTO mtl_interface_errors
213 (transaction_id,
214 unique_id,
215 organization_id,
216 column_name,
217 table_name,
218 bo_identifier,
219 entity_identifier,
220 message_name,
221 error_message,
222 last_update_date,
223 last_updated_by,
224 creation_date,
225 created_by,
226 last_update_login,
227 request_id,
228 program_application_id,
229 program_id,
230 program_update_date)
231 SELECT transaction_id,
232 mtl_system_items_interface_s.nextval,
233 NULL,
234 NULL,
235 G_ENTITY_DL_TAB,
236 G_BO_IDENTIFIER_AG,
237 G_ENTITY_DL,
238 G_MESSAGE_NAME,
239 G_MESSAGE_TEXT,
240 Nvl(last_update_date,SYSDATE),
241 Nvl(last_updated_by,G_USER_ID),
242 Nvl(creation_date,SYSDATE),
243 Nvl(created_by,G_USER_ID),
244 Nvl(last_update_login,G_USER_ID),
245 G_REQUEST_ID,
246 Nvl(program_application_id,G_PROG_APPL_ID),
247 Nvl(program_id,G_PROGRAM_ID),
248 Nvl(program_update_date,SYSDATE)
249 FROM ego_attr_groups_dl_interface
250 WHERE (transaction_type IS NULL
251 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
252 AND transaction_id IS NOT NULL
253 AND process_status = G_PROCESS_RECORD
254 AND ((G_SET_PROCESS_ID IS NULL)
255 OR (set_process_id = G_SET_PROCESS_ID));
256
257 UPDATE ego_attr_groups_dl_interface
258 SET process_status = G_ERROR_RECORD,
259 last_updated_by = G_USER_ID,
260 last_update_date = SYSDATE,
261 last_update_login = G_LOGIN_ID
262 WHERE (transaction_type IS NULL
263 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
264 AND transaction_id IS NOT NULL
265 AND process_status = G_PROCESS_RECORD
266 AND ((G_SET_PROCESS_ID IS NULL)
267 OR (set_process_id = G_SET_PROCESS_ID));
268
269 lv_smt := 3;
270
271 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
272
273 INSERT INTO mtl_interface_errors
274 (transaction_id,
275 unique_id,
276 organization_id,
277 column_name,
278 table_name,
279 bo_identifier,
280 entity_identifier,
281 message_name,
282 error_message,
283 last_update_date,
284 last_updated_by,
285 creation_date,
286 created_by,
287 last_update_login,
288 request_id,
289 program_application_id,
290 program_id,
291 program_update_date)
292 SELECT transaction_id,
293 mtl_system_items_interface_s.nextval,
294 NULL,
295 NULL,
296 G_ENTITY_ATTR_TAB,
297 G_BO_IDENTIFIER_AG,
298 G_ENTITY_ATTR,
299 G_MESSAGE_NAME,
300 G_MESSAGE_TEXT,
301 Nvl(last_update_date,SYSDATE),
302 Nvl(last_updated_by,G_USER_ID),
303 Nvl(creation_date,SYSDATE),
304 Nvl(created_by,G_USER_ID),
305 Nvl(last_update_login,G_USER_ID),
306 G_REQUEST_ID,
307 Nvl(program_application_id,G_PROG_APPL_ID),
308 Nvl(program_id,G_PROGRAM_ID),
309 Nvl(program_update_date,SYSDATE)
310 FROM ego_attr_group_cols_intf
311 WHERE (transaction_type IS NULL
312 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
313 AND transaction_id IS NOT NULL
314 AND process_status = G_PROCESS_RECORD
315 AND ((G_SET_PROCESS_ID IS NULL)
316 OR (set_process_id = G_SET_PROCESS_ID));
317
318 UPDATE ego_attr_group_cols_intf
319 SET process_status = G_ERROR_RECORD,
320 last_updated_by = G_USER_ID,
321 last_update_date = SYSDATE,
322 last_update_login = G_LOGIN_ID
323 WHERE (transaction_type IS NULL
324 OR transaction_type NOT IN (G_OPR_CREATE,G_OPR_UPDATE,G_OPR_DELETE,G_OPR_SYNC))
325 AND transaction_id IS NOT NULL
326 AND process_status = G_PROCESS_RECORD
327 AND ((G_SET_PROCESS_ID IS NULL)
328 OR (set_process_id = G_SET_PROCESS_ID));
329
330 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Validatetransactiontype');
331 EXCEPTION
332 WHEN OTHERS THEN
333 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Validate_transaction_type Exception when others'||SQLERRM);
334
335 x_return_status := G_RET_STS_UNEXP_ERROR;
336
337 x_return_msg := 'ego_ag_bulkload_pvt.Validate_transaction_type - '||SQLERRM;
338
339 RETURN;
340 END Validate_transaction_type;
341
342 /*This procedure is used to bulk validate attribute groups.
343 Used in the interface flow.
344 x_return_status OUT NOCOPY parameter that returns the status*/
345 PROCEDURE bulk_validate_attr_groups
346 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
347 IS
348 lv_smt NUMBER; --Statement counter
349
350 lv_proc VARCHAR2(30) := 'bulk_validate_attr_groups';
351 BEGIN
352 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered bulk_validate_attr_groups');
353
354 x_return_status := G_RET_STS_SUCCESS;
355
356 Value_to_id_ag(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
357
358 Value_to_id_dl(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
359
360 construct_attr_groups(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
361
362 construct_ag_data_level(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
363
364 lv_smt := 1;
365
366 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
367
368 /* Update the interface records with process_status 3 and insert into
369 MTL_INTERFACE_ERRORS if internal name or the display name for AG is not
370 provided in the CREATE flow*/
371 G_MESSAGE_NAME := 'EGO_AG_MANDATORY';
372
373 fnd_message.Set_name('EGO','EGO_AG_MANDATORY');
374
375 G_MESSAGE_TEXT := fnd_message.get;
376
377 INSERT INTO mtl_interface_errors
378 (transaction_id,
379 unique_id,
380 organization_id,
381 column_name,
382 table_name,
383 bo_identifier,
384 entity_identifier,
385 message_name,
386 error_message,
387 last_update_date,
388 last_updated_by,
389 creation_date,
390 created_by,
391 last_update_login,
392 request_id,
393 program_application_id,
394 program_id,
395 program_update_date)
396 SELECT eagi.transaction_id,
397 mtl_system_items_interface_s.nextval,
398 NULL,
399 NULL,
400 G_ENTITY_AG_TAB,
401 G_BO_IDENTIFIER_AG,
402 G_ENTITY_AG,
403 G_MESSAGE_NAME,
404 G_MESSAGE_TEXT,
405 Nvl(last_update_date,SYSDATE),
406 Nvl(last_updated_by,G_USER_ID),
407 Nvl(creation_date,SYSDATE),
408 Nvl(created_by,G_USER_ID),
409 Nvl(last_update_login,G_USER_ID),
410 G_REQUEST_ID,
411 Nvl(program_application_id,G_PROG_APPL_ID),
412 Nvl(program_id,G_PROGRAM_ID),
413 Nvl(program_update_date,SYSDATE)
414 FROM ego_attr_groups_interface eagi
415 WHERE (attr_group_name IS NULL
416 OR attr_group_disp_name IS NULL)
417 AND transaction_id IS NOT NULL
418 AND transaction_type = G_OPR_CREATE
419 AND process_status = G_PROCESS_RECORD
420 AND ((G_SET_PROCESS_ID IS NULL)
421 OR (set_process_id = G_SET_PROCESS_ID));
422
423 UPDATE ego_attr_groups_interface
424 SET process_status = G_ERROR_RECORD,
425 last_updated_by = G_USER_ID,
426 last_update_date = SYSDATE,
427 last_update_login = G_LOGIN_ID
428 WHERE (attr_group_name IS NULL
429 OR attr_group_disp_name IS NULL)
430 AND transaction_id IS NOT NULL
431 AND transaction_type = G_OPR_CREATE
432 AND process_status = G_PROCESS_RECORD
433 AND ((G_SET_PROCESS_ID IS NULL)
434 OR (set_process_id = G_SET_PROCESS_ID));
435
436 lv_smt := 9;
437
438 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 9');
439
440 /* Update the interface records with process_status 3 and insert into
441 MTL_INTERFACE_ERRORS if Attribute Group Type in the AG interface table is other than EGO_ITEMMGMT_GROUP*/
442 G_MESSAGE_NAME := 'EGO_AG_TYPE_INVALID';
443
444 fnd_message.Set_name('EGO','EGO_AG_TYPE_INVALID');
445
446 G_MESSAGE_TEXT := fnd_message.get;
447
448 INSERT INTO mtl_interface_errors
449 (transaction_id,
450 unique_id,
451 organization_id,
452 column_name,
453 table_name,
454 bo_identifier,
455 entity_identifier,
456 message_name,
457 error_message,
458 last_update_date,
459 last_updated_by,
460 creation_date,
461 created_by,
462 last_update_login,
463 request_id,
464 program_application_id,
465 program_id,
466 program_update_date)
467 SELECT eagi.transaction_id,
468 mtl_system_items_interface_s.nextval,
469 NULL,
470 NULL,
471 G_ENTITY_AG_TAB,
472 G_BO_IDENTIFIER_AG,
473 G_ENTITY_ATTR,
474 G_MESSAGE_NAME,
475 G_MESSAGE_TEXT,
476 Nvl(last_update_date,SYSDATE),
477 Nvl(last_updated_by,G_USER_ID),
478 Nvl(creation_date,SYSDATE),
479 Nvl(created_by,G_USER_ID),
480 Nvl(last_update_login,G_USER_ID),
481 G_REQUEST_ID,
482 Nvl(program_application_id,G_PROG_APPL_ID),
483 Nvl(program_id,G_PROGRAM_ID),
484 Nvl(program_update_date,SYSDATE)
485 FROM ego_attr_groups_interface eagi
486 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
487 AND transaction_id IS NOT NULL
488 AND process_status = G_PROCESS_RECORD
489 AND ((G_SET_PROCESS_ID IS NULL)
490 OR (set_process_id = G_SET_PROCESS_ID));
491
492 UPDATE ego_attr_groups_interface
493 SET process_status = G_ERROR_RECORD,
494 last_updated_by = G_USER_ID,
495 last_update_date = SYSDATE,
496 last_update_login = G_LOGIN_ID
497 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
498 AND transaction_id IS NOT NULL
499 AND process_status = G_PROCESS_RECORD
500 AND ((G_SET_PROCESS_ID IS NULL)
501 OR (set_process_id = G_SET_PROCESS_ID));
502
503 lv_smt := 10;
504
505 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 10');
506
507 /* Update the interface records with process_status 3 and insert into
508 MTL_INTERFACE_ERRORS if Attribute Group Type in the DL interface is other than EGO_ITEMMGMT_GROUP*/
509 G_MESSAGE_NAME := 'EGO_AG_TYPE_INVALID';
510
511 fnd_message.Set_name('EGO','EGO_AG_TYPE_INVALID');
512
513 G_MESSAGE_TEXT := fnd_message.get;
514
515 INSERT INTO mtl_interface_errors
516 (transaction_id,
517 unique_id,
518 organization_id,
519 column_name,
520 table_name,
521 bo_identifier,
522 entity_identifier,
523 message_name,
524 error_message,
525 last_update_date,
526 last_updated_by,
527 creation_date,
528 created_by,
529 last_update_login,
530 request_id,
531 program_application_id,
532 program_id,
533 program_update_date)
534 SELECT eagi.transaction_id,
535 mtl_system_items_interface_s.nextval,
536 NULL,
537 NULL,
538 G_ENTITY_DL_TAB,
539 G_BO_IDENTIFIER_AG,
540 G_ENTITY_DL,
541 G_MESSAGE_NAME,
542 G_MESSAGE_TEXT,
543 Nvl(last_update_date,SYSDATE),
544 Nvl(last_updated_by,G_USER_ID),
545 Nvl(creation_date,SYSDATE),
546 Nvl(created_by,G_USER_ID),
547 Nvl(last_update_login,G_USER_ID),
548 G_REQUEST_ID,
549 Nvl(program_application_id,G_PROG_APPL_ID),
550 Nvl(program_id,G_PROGRAM_ID),
551 Nvl(program_update_date,SYSDATE)
552 FROM ego_attr_groups_dl_interface eagi
553 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
554 AND transaction_id IS NOT NULL
555 AND process_status = G_PROCESS_RECORD
556 AND ((G_SET_PROCESS_ID IS NULL)
557 OR (set_process_id = G_SET_PROCESS_ID));
558
559 UPDATE ego_attr_groups_dl_interface
560 SET process_status = G_ERROR_RECORD,
561 last_updated_by = G_USER_ID,
562 last_update_date = SYSDATE,
563 last_update_login = G_LOGIN_ID
564 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
565 AND transaction_id IS NOT NULL
566 AND process_status = G_PROCESS_RECORD
567 AND ((G_SET_PROCESS_ID IS NULL)
568 OR (set_process_id = G_SET_PROCESS_ID));
569
570 lv_smt := 2; --Added for 9625957
571
572 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
573
574 /* Update the interface records with process_status 3 and insert into
575 MTL_INTERFACE_ERRORS if Attribute Group Type in the DL interface is other than EGO_ITEMMGMT_GROUP*/
576 G_MESSAGE_NAME := 'EGO_DL_MANDATORY';
577
578 fnd_message.Set_name('EGO','EGO_DL_MANDATORY');
579
580 G_MESSAGE_TEXT := fnd_message.get;
581
582 INSERT INTO mtl_interface_errors
583 (transaction_id,
584 unique_id,
585 organization_id,
586 column_name,
587 table_name,
588 bo_identifier,
589 entity_identifier,
590 message_name,
591 error_message,
592 last_update_date,
593 last_updated_by,
594 creation_date,
595 created_by,
596 last_update_login,
597 request_id,
598 program_application_id,
599 program_id,
600 program_update_date)
601 SELECT eagi.transaction_id,
602 mtl_system_items_interface_s.nextval,
603 NULL,
604 NULL,
605 G_ENTITY_DL_TAB,
606 G_BO_IDENTIFIER_AG,
607 G_ENTITY_DL,
608 G_MESSAGE_NAME,
609 G_MESSAGE_TEXT,
610 Nvl(last_update_date,SYSDATE),
611 Nvl(last_updated_by,G_USER_ID),
612 Nvl(creation_date,SYSDATE),
613 Nvl(created_by,G_USER_ID),
614 Nvl(last_update_login,G_USER_ID),
615 G_REQUEST_ID,
616 Nvl(program_application_id,G_PROG_APPL_ID),
617 Nvl(program_id,G_PROGRAM_ID),
618 Nvl(program_update_date,SYSDATE)
619 FROM ego_attr_groups_dl_interface eagi
620 WHERE (attr_group_type IS NULL
621 OR attr_group_name IS NULL
622 OR data_level_name IS NULL)
623 AND transaction_id IS NOT NULL
624 AND process_status = G_PROCESS_RECORD
625 AND ((G_SET_PROCESS_ID IS NULL)
626 OR (set_process_id = G_SET_PROCESS_ID));
627
628 UPDATE ego_attr_groups_dl_interface
629 SET process_status = G_ERROR_RECORD,
630 last_updated_by = G_USER_ID,
631 last_update_date = SYSDATE,
632 last_update_login = G_LOGIN_ID
633 WHERE (attr_group_type IS NULL
634 OR attr_group_name IS NULL
635 OR data_level_name IS NULL)
636 AND transaction_id IS NOT NULL
637 AND process_status = G_PROCESS_RECORD
638 AND ((G_SET_PROCESS_ID IS NULL)
639 OR (set_process_id = G_SET_PROCESS_ID));
640
641
642 lv_smt := 2.1;
643
644 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2.1');
645
646 /* Update the interface records with process_status 3 and insert into
647 MTL_INTERFACE_ERRORS if internal name is not existing in the UPDATE flow.
648 Updates the AG interface table*/
649 G_MESSAGE_NAME := 'EGO_AG_NOT_EXIST';
650
651 fnd_message.Set_name('EGO','EGO_AG_NOT_EXIST');
652
653 G_MESSAGE_TEXT := fnd_message.get;
654
655 INSERT INTO mtl_interface_errors
656 (transaction_id,
657 unique_id,
658 organization_id,
659 column_name,
660 table_name,
661 bo_identifier,
662 entity_identifier,
663 message_name,
664 error_message,
665 last_update_date,
666 last_updated_by,
667 creation_date,
668 created_by,
669 last_update_login,
670 request_id,
671 program_application_id,
672 program_id,
673 program_update_date)
674 SELECT eagi.transaction_id,
675 mtl_system_items_interface_s.nextval,
676 NULL,
677 NULL,
678 G_ENTITY_AG_TAB,
679 G_BO_IDENTIFIER_AG,
680 G_ENTITY_AG,
681 G_MESSAGE_NAME,
682 G_MESSAGE_TEXT,
683 Nvl(last_update_date,SYSDATE),
684 Nvl(last_updated_by,G_USER_ID),
685 Nvl(creation_date,SYSDATE),
686 Nvl(created_by,G_USER_ID),
687 Nvl(last_update_login,G_USER_ID),
688 G_REQUEST_ID,
689 Nvl(program_application_id,G_PROG_APPL_ID),
690 Nvl(program_id,G_PROGRAM_ID),
691 Nvl(program_update_date,SYSDATE)
692 FROM ego_attr_groups_interface eagi
693 WHERE (attr_group_id IS NULL
694 OR attr_group_name IS NULL)
695 AND transaction_id IS NOT NULL
696 AND transaction_type IN (G_OPR_UPDATE,G_OPR_DELETE)
697 AND process_status = G_PROCESS_RECORD
698 AND ((G_SET_PROCESS_ID IS NULL)
699 OR (set_process_id = G_SET_PROCESS_ID));
700
701 UPDATE ego_attr_groups_interface
702 SET process_status = G_ERROR_RECORD,
703 last_updated_by = G_USER_ID,
704 last_update_date = SYSDATE,
705 last_update_login = G_LOGIN_ID
706 WHERE (attr_group_id IS NULL
707 OR attr_group_name IS NULL)
708 AND transaction_id IS NOT NULL
709 AND transaction_type IN (G_OPR_UPDATE,G_OPR_DELETE)
710 AND process_status = G_PROCESS_RECORD
711 AND ((G_SET_PROCESS_ID IS NULL)
712 OR (set_process_id = G_SET_PROCESS_ID));
713
714 lv_smt := 3;
715
716 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
717
718 /* Update the interface records with process_status 3 and insert into
719 MTL_INTERFACE_ERRORS if internal name is not existing. Updates the DL
720 interface table*/
721 G_MESSAGE_NAME := 'EGO_AG_NOT_EXIST';
722
723 fnd_message.Set_name('EGO','EGO_AG_NOT_EXIST');
724
725 G_MESSAGE_TEXT := fnd_message.get;
726
727 INSERT INTO mtl_interface_errors
728 (transaction_id,
729 unique_id,
730 organization_id,
731 column_name,
732 table_name,
733 bo_identifier,
734 entity_identifier,
735 message_name,
736 error_message,
737 last_update_date,
738 last_updated_by,
739 creation_date,
740 created_by,
741 last_update_login,
742 request_id,
743 program_application_id,
744 program_id,
745 program_update_date)
746 SELECT eagdi.transaction_id,
747 mtl_system_items_interface_s.nextval,
748 NULL,
749 NULL,
750 G_ENTITY_DL_TAB,
751 G_BO_IDENTIFIER_AG,
752 G_ENTITY_DL,
753 G_MESSAGE_NAME,
754 G_MESSAGE_TEXT,
755 Nvl(last_update_date,SYSDATE),
756 Nvl(last_updated_by,G_USER_ID),
757 Nvl(creation_date,SYSDATE),
758 Nvl(created_by,G_USER_ID),
759 Nvl(last_update_login,G_USER_ID),
760 G_REQUEST_ID,
761 Nvl(program_application_id,G_PROG_APPL_ID),
762 Nvl(program_id,G_PROGRAM_ID),
763 Nvl(program_update_date,SYSDATE)
764 FROM ego_attr_groups_dl_interface eagdi
765 WHERE (eagdi.attr_group_id IS NULL
766 OR eagdi.attr_group_name IS NULL)
767 AND eagdi.transaction_id IS NOT NULL
768 AND NOT EXISTS (SELECT 1
769 FROM ego_attr_groups_interface eagi
770 WHERE eagi.attr_group_name = eagdi.attr_group_name
771 AND eagi.transaction_type = G_OPR_CREATE
772 AND eagi.process_status = G_PROCESS_RECORD)
773 AND eagdi.process_status = G_PROCESS_RECORD
774 AND ((G_SET_PROCESS_ID IS NULL)
775 OR (set_process_id = G_SET_PROCESS_ID));
776
777 UPDATE ego_attr_groups_dl_interface eagdi
778 SET eagdi.process_status = G_ERROR_RECORD,
779 last_updated_by = G_USER_ID,
780 last_update_date = SYSDATE,
781 last_update_login = G_LOGIN_ID
782 WHERE (eagdi.attr_group_id IS NULL
783 OR eagdi.attr_group_name IS NULL)
784 AND eagdi.transaction_id IS NOT NULL
785 AND NOT EXISTS (SELECT 1
786 FROM ego_attr_groups_interface eagi
787 WHERE eagi.attr_group_name = eagdi.attr_group_name
788 AND eagi.transaction_type = G_OPR_CREATE
789 AND eagi.process_status = G_PROCESS_RECORD)
790 AND eagdi.process_status = G_PROCESS_RECORD
791 AND ((G_SET_PROCESS_ID IS NULL)
792 OR (set_process_id = G_SET_PROCESS_ID));
793
794 lv_smt := 4;
795
796 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
797
798 /* Update the interface records with process_status 3 and insert into
799 MTL_INTERFACE_ERRORS if for the CREATE flow if there already exists an AG with
800 the same internal attribute group name*/
801
802 G_MESSAGE_NAME := 'EGO_EF_ATTR_GRP_EXIST';
803
804 fnd_message.Set_name('EGO','EGO_EF_ATTR_GRP_EXIST');
805
806 G_MESSAGE_TEXT := fnd_message.get;
807
808 INSERT INTO mtl_interface_errors
809 (transaction_id,
810 unique_id,
811 organization_id,
812 column_name,
813 table_name,
814 bo_identifier,
815 entity_identifier,
816 message_name,
817 error_message,
818 last_update_date,
819 last_updated_by,
820 creation_date,
821 created_by,
822 last_update_login,
823 request_id,
824 program_application_id,
825 program_id,
826 program_update_date)
827 SELECT eagi.transaction_id,
828 mtl_system_items_interface_s.nextval,
829 NULL,
830 NULL,
831 G_ENTITY_AG_TAB,
832 G_BO_IDENTIFIER_AG,
833 G_ENTITY_AG,
834 G_MESSAGE_NAME,
835 G_MESSAGE_TEXT,
836 Nvl(last_update_date,SYSDATE),
837 Nvl(last_updated_by,G_USER_ID),
838 Nvl(creation_date,SYSDATE),
839 Nvl(created_by,G_USER_ID),
840 Nvl(last_update_login,G_USER_ID),
841 G_REQUEST_ID,
842 Nvl(program_application_id,G_PROG_APPL_ID),
843 Nvl(program_id,G_PROGRAM_ID),
844 Nvl(program_update_date,SYSDATE)
845 FROM ego_attr_groups_interface eagi
846 WHERE EXISTS (SELECT 1
847 FROM EGO_FND_DSC_FLX_CTX_EXT efdfce
848 WHERE efdfce.DESCRIPTIVE_FLEX_CONTEXT_CODE = eagi.attr_group_name
849 AND efdfce.DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
850 AND efdfce.APPLICATION_ID = G_EGO_APPLICATION_ID)
851 AND eagi.transaction_id IS NOT NULL
852 AND eagi.transaction_type = G_OPR_CREATE
853 AND eagi.process_status = G_PROCESS_RECORD
854 AND ((G_SET_PROCESS_ID IS NULL)
855 OR (set_process_id = G_SET_PROCESS_ID));
856
857 UPDATE ego_attr_groups_interface eagi
858 SET eagi.process_status = G_ERROR_RECORD,
859 last_updated_by = G_USER_ID,
860 last_update_date = SYSDATE,
861 last_update_login = G_LOGIN_ID
862 WHERE EXISTS (SELECT 1
863 FROM EGO_FND_DSC_FLX_CTX_EXT efdfce
864 WHERE efdfce.DESCRIPTIVE_FLEX_CONTEXT_CODE = eagi.attr_group_name
865 AND efdfce.DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
866 AND efdfce.APPLICATION_ID = G_EGO_APPLICATION_ID)
867 AND eagi.transaction_id IS NOT NULL
868 AND eagi.transaction_type = G_OPR_CREATE
869 AND eagi.process_status = G_PROCESS_RECORD
870 AND ((G_SET_PROCESS_ID IS NULL)
871 OR (set_process_id = G_SET_PROCESS_ID));
872
873
874 lv_smt := 4.1;
875
876 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4.1');
877
878 /* Update the interface records with process_status 3 and insert into
879 MTL_INTERFACE_ERRORS if for the CREATE flow if there doesn't exist any DL
880 in the interface table*/
881 G_MESSAGE_NAME := 'EGO_EF_DL_REQD_AG';
882
883 fnd_message.Set_name('EGO','EGO_EF_DL_REQD_AG');
884
885 G_MESSAGE_TEXT := fnd_message.get;
886
887 INSERT INTO mtl_interface_errors
888 (transaction_id,
889 unique_id,
890 organization_id,
891 column_name,
892 table_name,
893 bo_identifier,
894 entity_identifier,
895 message_name,
896 error_message,
897 last_update_date,
898 last_updated_by,
899 creation_date,
900 created_by,
901 last_update_login,
902 request_id,
903 program_application_id,
904 program_id,
905 program_update_date)
906 SELECT eagi.transaction_id,
907 mtl_system_items_interface_s.nextval,
908 NULL,
909 NULL,
910 G_ENTITY_AG_TAB,
911 G_BO_IDENTIFIER_AG,
912 G_ENTITY_AG,
913 G_MESSAGE_NAME,
914 G_MESSAGE_TEXT,
915 Nvl(last_update_date,SYSDATE),
916 Nvl(last_updated_by,G_USER_ID),
917 Nvl(creation_date,SYSDATE),
918 Nvl(created_by,G_USER_ID),
919 Nvl(last_update_login,G_USER_ID),
920 G_REQUEST_ID,
921 Nvl(program_application_id,G_PROG_APPL_ID),
922 Nvl(program_id,G_PROGRAM_ID),
923 Nvl(program_update_date,SYSDATE)
924 FROM ego_attr_groups_interface eagi
925 WHERE NOT EXISTS (SELECT 1
926 FROM ego_attr_groups_dl_interface eagdi
927 WHERE eagdi.attr_group_name = eagi.attr_group_name
928 AND eagdi.transaction_type = eagi.transaction_type
929 AND eagdi.process_status = G_PROCESS_RECORD
930 AND ((G_SET_PROCESS_ID IS NULL)
931 OR (set_process_id = G_SET_PROCESS_ID)))
932 AND eagi.transaction_id IS NOT NULL
933 AND eagi.transaction_type = G_OPR_CREATE
934 AND eagi.process_status = G_PROCESS_RECORD
935 AND ((G_SET_PROCESS_ID IS NULL)
936 OR (set_process_id = G_SET_PROCESS_ID));
937
938 UPDATE ego_attr_groups_interface eagi
939 SET eagi.process_status = G_ERROR_RECORD,
940 last_updated_by = G_USER_ID,
941 last_update_date = SYSDATE,
942 last_update_login = G_LOGIN_ID
943 WHERE NOT EXISTS (SELECT 1
944 FROM ego_attr_groups_dl_interface eagdi
945 WHERE eagdi.attr_group_name = eagi.attr_group_name
946 AND eagdi.transaction_type = eagi.transaction_type
947 AND eagdi.process_status = G_PROCESS_RECORD
948 AND ((G_SET_PROCESS_ID IS NULL)
949 OR (set_process_id = G_SET_PROCESS_ID)))
950 AND eagi.transaction_id IS NOT NULL
951 AND eagi.transaction_type = G_OPR_CREATE
952 AND eagi.process_status = G_PROCESS_RECORD
953 AND ((G_SET_PROCESS_ID IS NULL)
954 OR (set_process_id = G_SET_PROCESS_ID));
955
956 lv_smt := 4.2;
957
958 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4.2');
959
960 /* Update the interface records with process_status 3 and insert into
961 MTL_INTERFACE_ERRORS if Data Level passed is already enabled in the system*/
962 G_MESSAGE_NAME := 'EGO_EF_DL_AG_EXISTS';
963
964 fnd_message.Set_name('EGO','EGO_EF_DL_AG_EXISTS');
965
966 G_MESSAGE_TEXT := fnd_message.get;
967
968 INSERT INTO mtl_interface_errors
969 (transaction_id,
970 unique_id,
971 organization_id,
972 column_name,
973 table_name,
974 bo_identifier,
975 entity_identifier,
976 message_name,
977 error_message,
978 last_update_date,
979 last_updated_by,
980 creation_date,
981 created_by,
982 last_update_login,
983 request_id,
984 program_application_id,
985 program_id,
986 program_update_date)
987 SELECT eagi.transaction_id,
988 mtl_system_items_interface_s.nextval,
989 NULL,
990 NULL,
991 G_ENTITY_DL_TAB,
992 G_BO_IDENTIFIER_AG,
993 G_ENTITY_DL,
994 G_MESSAGE_NAME,
995 G_MESSAGE_TEXT,
996 Nvl(last_update_date,SYSDATE),
997 Nvl(last_updated_by,G_USER_ID),
998 Nvl(creation_date,SYSDATE),
999 Nvl(created_by,G_USER_ID),
1000 Nvl(last_update_login,G_USER_ID),
1001 G_REQUEST_ID,
1002 Nvl(program_application_id,G_PROG_APPL_ID),
1003 Nvl(program_id,G_PROGRAM_ID),
1004 Nvl(program_update_date,SYSDATE)
1005 FROM ego_attr_groups_dl_interface eagi
1006 WHERE EXISTS (SELECT 1
1007 FROM EGO_ATTR_GROUP_DL eagdl
1008 WHERE eagdl.attr_group_id = eagi.attr_group_id
1009 AND eagdl.data_level_id = (SELECT data_level_id FROM ego_data_level_b
1010 WHERE data_level_name=eagi.data_level_name
1011 AND attr_group_type = G_EGO_ITEMMGMT_GROUP
1012 AND application_id = G_EGO_APPLICATION_ID
1013 ))
1014 AND eagi.transaction_id IS NOT NULL
1015 AND eagi.transaction_type = G_OPR_CREATE
1016 AND eagi.process_status = G_PROCESS_RECORD
1017 AND ((G_SET_PROCESS_ID IS NULL)
1018 OR (set_process_id = G_SET_PROCESS_ID));
1019
1020 UPDATE ego_attr_groups_dl_interface eagi
1021 SET eagi.process_status = G_ERROR_RECORD,
1022 last_updated_by = G_USER_ID,
1023 last_update_date = SYSDATE,
1024 last_update_login = G_LOGIN_ID
1025 WHERE EXISTS (SELECT 1
1026 FROM EGO_ATTR_GROUP_DL eagdl
1027 WHERE eagdl.attr_group_id = eagi.attr_group_id
1028 AND eagdl.data_level_id = (SELECT data_level_id FROM ego_data_level_b
1029 WHERE data_level_name=eagi.data_level_name
1030 AND attr_group_type = G_EGO_ITEMMGMT_GROUP
1031 AND application_id = G_EGO_APPLICATION_ID
1032 ))
1033 AND eagi.transaction_id IS NOT NULL
1034 AND eagi.transaction_type = G_OPR_CREATE
1035 AND eagi.process_status = G_PROCESS_RECORD
1036 AND ((G_SET_PROCESS_ID IS NULL)
1037 OR (set_process_id = G_SET_PROCESS_ID));
1038
1039 lv_smt := 5;
1040
1041 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
1042
1043 /* Update the interface records with process_status 3 and insert into
1044 MTL_INTERFACE_ERRORS if Data Level passed is incorrect*/
1045 G_MESSAGE_NAME := 'EGO_DL_NOT_EXIST';
1046
1047 fnd_message.Set_name('EGO','EGO_DL_NOT_EXIST');
1048
1049 G_MESSAGE_TEXT := fnd_message.get;
1050
1051 INSERT INTO mtl_interface_errors
1052 (transaction_id,
1053 unique_id,
1054 organization_id,
1055 column_name,
1056 table_name,
1057 bo_identifier,
1058 entity_identifier,
1059 message_name,
1060 error_message,
1061 last_update_date,
1062 last_updated_by,
1063 creation_date,
1064 created_by,
1065 last_update_login,
1066 request_id,
1067 program_application_id,
1068 program_id,
1069 program_update_date)
1070 SELECT transaction_id,
1071 mtl_system_items_interface_s.nextval,
1072 NULL,
1073 NULL,
1074 G_ENTITY_DL_TAB,
1075 G_BO_IDENTIFIER_AG,
1076 G_ENTITY_DL,
1077 G_MESSAGE_NAME,
1078 G_MESSAGE_TEXT,
1079 Nvl(last_update_date,SYSDATE),
1080 Nvl(last_updated_by,G_USER_ID),
1081 Nvl(creation_date,SYSDATE),
1082 Nvl(created_by,G_USER_ID),
1083 Nvl(last_update_login,G_USER_ID),
1084 G_REQUEST_ID,
1085 Nvl(program_application_id,G_PROG_APPL_ID),
1086 Nvl(program_id,G_PROGRAM_ID),
1087 Nvl(program_update_date,SYSDATE)
1088 FROM ego_attr_groups_dl_interface
1089 WHERE (data_level_id IS NULL
1090 OR data_level_name IS NULL)
1091 AND transaction_id IS NOT NULL
1092 AND process_status = G_PROCESS_RECORD
1093 AND ((G_SET_PROCESS_ID IS NULL)
1094 OR (set_process_id = G_SET_PROCESS_ID));
1095
1096 UPDATE ego_attr_groups_dl_interface
1097 SET process_status = G_ERROR_RECORD,
1098 last_updated_by = G_USER_ID,
1099 last_update_date = SYSDATE,
1100 last_update_login = G_LOGIN_ID
1101 WHERE (data_level_id IS NULL
1102 OR data_level_name IS NULL)
1103 AND transaction_id IS NOT NULL
1104 AND process_status = G_PROCESS_RECORD
1105 AND ((G_SET_PROCESS_ID IS NULL)
1106 OR (set_process_id = G_SET_PROCESS_ID));
1107
1108 lv_smt := 6;
1109
1110 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 6');
1111
1112 /* Update the interface records with process_status 3 and insert into
1113 MTL_INTERFACE_ERRORS if the AG is of type Variant and Business entity is not ITEM or the Style to SKU is not NULL*/
1114 G_MESSAGE_NAME := 'EGO_VAR_DL_SKU';
1115
1116 fnd_message.Set_name('EGO','EGO_VAR_DL_SKU');
1117
1118 G_MESSAGE_TEXT := fnd_message.get;
1119
1120 INSERT INTO mtl_interface_errors
1121 (transaction_id,
1122 unique_id,
1123 organization_id,
1124 column_name,
1125 table_name,
1126 bo_identifier,
1127 entity_identifier,
1128 message_name,
1129 error_message,
1130 last_update_date,
1131 last_updated_by,
1132 creation_date,
1133 created_by,
1134 last_update_login,
1135 request_id,
1136 program_application_id,
1137 program_id,
1138 program_update_date)
1139 SELECT eagdi.transaction_id,
1140 mtl_system_items_interface_s.nextval,
1141 NULL,
1142 NULL,
1143 G_ENTITY_DL_TAB,
1144 G_BO_IDENTIFIER_AG,
1145 G_ENTITY_DL,
1146 G_MESSAGE_NAME,
1147 G_MESSAGE_TEXT,
1148 Nvl(last_update_date,SYSDATE),
1149 Nvl(last_updated_by,G_USER_ID),
1150 Nvl(creation_date,SYSDATE),
1151 Nvl(created_by,G_USER_ID),
1152 Nvl(last_update_login,G_USER_ID),
1153 G_REQUEST_ID,
1154 Nvl(program_application_id,G_PROG_APPL_ID),
1155 Nvl(program_id,G_PROGRAM_ID),
1156 Nvl(program_update_date,SYSDATE)
1157 FROM ego_attr_groups_dl_interface eagdi
1158 WHERE EXISTS (SELECT 1
1159 FROM ego_fnd_dsc_flx_ctx_ext eagd
1160 WHERE eagd.attr_group_id = eagdi.attr_group_id
1161 AND eagd.variant = 'Y'
1162 /*Added for bug 9719196*/
1163 UNION ALL
1164 SELECT 1
1165 FROM ego_attr_groups_interface
1166 WHERE attr_group_name = eagdi.attr_group_name
1167 AND transaction_type = G_OPR_CREATE
1168 AND variant = 'Y'
1169 AND process_status = G_PROCESS_RECORD
1170 AND ((G_SET_PROCESS_ID IS NULL)
1171 OR (set_process_id = G_SET_PROCESS_ID))
1172 /*End of bug 9719196*/ )
1173 AND (eagdi.data_level_name <> G_DL_ITEM_LEVEL
1174 OR eagdi.defaulting IS NOT NULL)
1175 AND eagdi.transaction_id IS NOT NULL
1176 AND eagdi.process_status = G_PROCESS_RECORD
1177 AND ((G_SET_PROCESS_ID IS NULL)
1178 OR (set_process_id = G_SET_PROCESS_ID));
1179
1180 UPDATE ego_attr_groups_dl_interface eagdi
1181 SET eagdi.process_status = G_ERROR_RECORD,
1182 last_updated_by = G_USER_ID,
1183 last_update_date = SYSDATE,
1184 last_update_login = G_LOGIN_ID
1185 WHERE EXISTS (SELECT 1
1186 FROM ego_fnd_dsc_flx_ctx_ext eagd
1187 WHERE eagd.attr_group_id = eagdi.attr_group_id
1188 AND eagd.variant = 'Y'
1189 /*Added for bug 9719196*/
1190 UNION ALL
1191 SELECT 1
1192 FROM ego_attr_groups_interface
1193 WHERE attr_group_name = eagdi.attr_group_name
1194 AND transaction_type = G_OPR_CREATE
1195 AND variant = 'Y'
1196 AND process_status = G_PROCESS_RECORD
1197 AND ((G_SET_PROCESS_ID IS NULL)
1198 OR (set_process_id = G_SET_PROCESS_ID))
1199 /*End of bug 9719196*/ )
1200 AND (eagdi.data_level_name <> G_DL_ITEM_LEVEL
1201 OR eagdi.defaulting IS NOT NULL)
1202 AND eagdi.transaction_id IS NOT NULL
1203 AND eagdi.process_status = G_PROCESS_RECORD
1204 AND ((G_SET_PROCESS_ID IS NULL)
1205 OR (set_process_id = G_SET_PROCESS_ID));
1206
1207 lv_smt := 7;
1208
1209 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 7');
1210
1211 /* Update the interface records with process_status 3 and insert into
1212 MTL_INTERFACE_ERRORS if AG is of Single Row or MultiRow Business and the business entity is not any of the below
1213 ITEM_LEVEL, ITEM_REVISION_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG*/
1214 G_MESSAGE_NAME := 'EGO_DL_NOT_EXIST';
1215
1216 fnd_message.Set_name('EGO','EGO_DL_NOT_EXIST');
1217
1218 G_MESSAGE_TEXT := fnd_message.get;
1219
1220 INSERT INTO mtl_interface_errors
1221 (transaction_id,
1222 unique_id,
1223 organization_id,
1224 column_name,
1225 table_name,
1226 bo_identifier,
1227 entity_identifier,
1228 message_name,
1229 error_message,
1230 last_update_date,
1231 last_updated_by,
1232 creation_date,
1233 created_by,
1234 last_update_login,
1235 request_id,
1236 program_application_id,
1237 program_id,
1238 program_update_date)
1239 SELECT eagdi.transaction_id,
1240 mtl_system_items_interface_s.nextval,
1241 NULL,
1242 NULL,
1243 G_ENTITY_AG_TAB,
1244 G_BO_IDENTIFIER_AG,
1245 G_ENTITY_AG,
1246 G_MESSAGE_NAME,
1247 G_MESSAGE_TEXT,
1248 Nvl(last_update_date,SYSDATE),
1249 Nvl(last_updated_by,G_USER_ID),
1250 Nvl(creation_date,SYSDATE),
1251 Nvl(created_by,G_USER_ID),
1252 Nvl(last_update_login,G_USER_ID),
1253 G_REQUEST_ID,
1254 Nvl(program_application_id,G_PROG_APPL_ID),
1255 Nvl(program_id,G_PROGRAM_ID),
1256 Nvl(program_update_date,SYSDATE)
1257 FROM ego_attr_groups_dl_interface eagdi
1258 WHERE EXISTS (SELECT 1
1259 FROM ego_fnd_dsc_flx_ctx_ext eagd
1260 WHERE eagd.attr_group_id = eagdi.attr_group_id
1261 AND Nvl(eagd.variant,'N') = 'N')
1262 AND eagdi.data_level_name NOT IN (G_DL_ITEM_LEVEL,G_DL_ITEM_REV_LEVEL,G_DL_ITEM_ORG,G_DL_ITEM_SUP,
1263 G_DL_ITEM_SUP_SITE,G_DL_ITEM_SUP_SITE_ORG)
1264 AND eagdi.transaction_id IS NOT NULL
1265 AND eagdi.process_status = G_PROCESS_RECORD
1266 AND ((G_SET_PROCESS_ID IS NULL)
1267 OR (set_process_id = G_SET_PROCESS_ID));
1268
1269 UPDATE ego_attr_groups_dl_interface eagdi
1270 SET eagdi.process_status = G_ERROR_RECORD,
1271 last_updated_by = G_USER_ID,
1272 last_update_date = SYSDATE,
1273 last_update_login = G_LOGIN_ID
1274 WHERE EXISTS (SELECT 1
1275 FROM ego_fnd_dsc_flx_ctx_ext eagd
1276 WHERE eagd.attr_group_id = eagdi.attr_group_id
1277 AND Nvl(eagd.variant,'N') = 'N')
1278 AND eagdi.data_level_name NOT IN (G_DL_ITEM_LEVEL,G_DL_ITEM_REV_LEVEL,G_DL_ITEM_ORG,G_DL_ITEM_SUP,
1279 G_DL_ITEM_SUP_SITE,G_DL_ITEM_SUP_SITE_ORG)
1280 AND eagdi.transaction_id IS NOT NULL
1281 AND eagdi.process_status = G_PROCESS_RECORD
1282 AND ((G_SET_PROCESS_ID IS NULL)
1283 OR (set_process_id = G_SET_PROCESS_ID));
1284
1285 lv_smt := 8;
1286
1287 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 8');
1288
1289 /* Update the interface records with process_status 3 and insert into
1290 MTL_INTERFACE_ERRORS if AG is of Single Row or MultiRow Business flag an error if the business entity and the
1291 Style to SKU combination is invalid*/
1292 G_MESSAGE_NAME := 'EGO_MULROW_SKU';
1293
1294 fnd_message.Set_name('EGO','EGO_MULROW_SKU');
1295
1296 G_MESSAGE_TEXT := fnd_message.get;
1297
1298 INSERT INTO mtl_interface_errors
1299 (transaction_id,
1300 unique_id,
1301 organization_id,
1302 column_name,
1303 table_name,
1304 bo_identifier,
1305 entity_identifier,
1306 message_name,
1307 error_message,
1308 last_update_date,
1309 last_updated_by,
1310 creation_date,
1311 created_by,
1312 last_update_login,
1313 request_id,
1314 program_application_id,
1315 program_id,
1316 program_update_date)
1317 SELECT eagdi.transaction_id,
1318 mtl_system_items_interface_s.nextval,
1319 NULL,
1320 NULL,
1321 G_ENTITY_DL_TAB,
1322 G_BO_IDENTIFIER_AG,
1323 G_ENTITY_DL,
1324 G_MESSAGE_NAME,
1325 G_MESSAGE_TEXT,
1326 Nvl(last_update_date,SYSDATE),
1327 Nvl(last_updated_by,G_USER_ID),
1328 Nvl(creation_date,SYSDATE),
1329 Nvl(created_by,G_USER_ID),
1330 Nvl(last_update_login,G_USER_ID),
1331 G_REQUEST_ID,
1332 Nvl(program_application_id,G_PROG_APPL_ID),
1333 Nvl(program_id,G_PROGRAM_ID),
1334 Nvl(program_update_date,SYSDATE)
1335 FROM ego_attr_groups_dl_interface eagdi
1336 WHERE EXISTS (SELECT 1
1337 FROM ego_fnd_dsc_flx_ctx_ext eagd
1338 WHERE eagd.attr_group_id = eagdi.attr_group_id
1339 AND Nvl(eagd.variant,'N') = 'N')
1340 AND ((eagdi.data_level_name IN (G_DL_ITEM_LEVEL,G_DL_ITEM_REV_LEVEL,G_DL_ITEM_ORG,G_DL_ITEM_SUP,
1341 G_DL_ITEM_SUP_SITE,G_DL_ITEM_SUP_SITE_ORG)
1342 AND eagdi.defaulting NOT IN ('D','I'))
1343 OR eagdi.data_level_name = G_DL_ITEM_REV_LEVEL
1344 AND eagdi.defaulting IS NOT NULL)
1345 AND eagdi.transaction_id IS NOT NULL
1346 AND eagdi.process_status = G_PROCESS_RECORD
1347 AND ((G_SET_PROCESS_ID IS NULL)
1348 OR (set_process_id = G_SET_PROCESS_ID));
1349
1350 UPDATE ego_attr_groups_dl_interface eagdi
1351 SET eagdi.process_status = G_ERROR_RECORD,
1352 last_updated_by = G_USER_ID,
1353 last_update_date = SYSDATE,
1354 last_update_login = G_LOGIN_ID
1355 WHERE EXISTS (SELECT 1
1356 FROM ego_fnd_dsc_flx_ctx_ext eagd
1357 WHERE eagd.attr_group_id = eagdi.attr_group_id
1358 AND Nvl(eagd.variant,'N') = 'N')
1359 AND ((eagdi.data_level_name IN (G_DL_ITEM_LEVEL,G_DL_ITEM_REV_LEVEL,G_DL_ITEM_ORG,G_DL_ITEM_SUP,
1360 G_DL_ITEM_SUP_SITE,G_DL_ITEM_SUP_SITE_ORG)
1361 AND eagdi.defaulting NOT IN ('D','I'))
1362 OR eagdi.data_level_name = G_DL_ITEM_REV_LEVEL
1363 AND eagdi.defaulting IS NOT NULL)
1364 AND eagdi.transaction_id IS NOT NULL
1365 AND eagdi.process_status = G_PROCESS_RECORD
1366 AND ((G_SET_PROCESS_ID IS NULL)
1367 OR (set_process_id = G_SET_PROCESS_ID));
1368
1369 lv_smt := 11;
1370
1371 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 11');
1372
1373 /* Update the interface records with process_status 3 and insert into
1374 MTL_INTERFACE_ERRORS if View Privilege is incorrect*/
1375 G_MESSAGE_NAME := 'EGO_VIEW_PRIV_NOT_EXIST';
1376
1377 fnd_message.Set_name('EGO','EGO_VIEW_PRIV_NOT_EXIST');
1378
1379 G_MESSAGE_TEXT := fnd_message.get;
1380
1381 INSERT INTO mtl_interface_errors
1382 (transaction_id,
1383 unique_id,
1384 organization_id,
1385 column_name,
1386 table_name,
1387 bo_identifier,
1388 entity_identifier,
1389 message_name,
1390 error_message,
1391 last_update_date,
1392 last_updated_by,
1393 creation_date,
1394 created_by,
1395 last_update_login,
1396 request_id,
1397 program_application_id,
1398 program_id,
1399 program_update_date)
1400 SELECT transaction_id,
1401 mtl_system_items_interface_s.nextval,
1402 NULL,
1403 NULL,
1404 G_ENTITY_DL_TAB,
1405 G_BO_IDENTIFIER_AG,
1406 G_ENTITY_DL,
1407 G_MESSAGE_NAME,
1408 G_MESSAGE_TEXT,
1409 Nvl(last_update_date,SYSDATE),
1410 Nvl(last_updated_by,G_USER_ID),
1411 Nvl(creation_date,SYSDATE),
1412 Nvl(created_by,G_USER_ID),
1413 Nvl(last_update_login,G_USER_ID),
1414 G_REQUEST_ID,
1415 Nvl(program_application_id,G_PROG_APPL_ID),
1416 Nvl(program_id,G_PROGRAM_ID),
1417 Nvl(program_update_date,SYSDATE)
1418 FROM ego_attr_groups_dl_interface
1419 WHERE ((view_privilege_id IS NULL
1420 AND view_privilege_name IS NOT NULL
1421 and view_privilege_name <> G_NULL_CHAR)
1422 OR (view_privilege_name IS NULL
1423 AND view_privilege_id IS NOT NULL
1424 AND view_privilege_id <> G_NULL_NUM))
1425 AND transaction_id IS NOT NULL
1426 AND process_status = G_PROCESS_RECORD
1427 AND ((G_SET_PROCESS_ID IS NULL)
1428 OR (set_process_id = G_SET_PROCESS_ID));
1429
1430 UPDATE ego_attr_groups_dl_interface
1431 SET process_status = G_ERROR_RECORD,
1432 last_updated_by = G_USER_ID,
1433 last_update_date = SYSDATE,
1434 last_update_login = G_LOGIN_ID
1435 WHERE ((view_privilege_id IS NULL
1436 AND view_privilege_name IS NOT NULL
1437 and view_privilege_name <> G_NULL_CHAR)
1438 OR (view_privilege_name IS NULL
1439 AND view_privilege_id IS NOT NULL
1440 AND view_privilege_id <> G_NULL_NUM))
1441 AND transaction_id IS NOT NULL
1442 AND process_status = G_PROCESS_RECORD
1443 AND ((G_SET_PROCESS_ID IS NULL)
1444 OR (set_process_id = G_SET_PROCESS_ID));
1445
1446 lv_smt := 12;
1447
1448 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 12');
1449
1450 --
1451 -- Bug 12394675. Issue #1.
1452 -- Attribute group import was erroing our with invalid number exception.
1453 -- Changed the NVL condition from G_MISS_CHAR to G_MISS_NUM
1454 -- sreharih. Tue Apr 26 11:09:17 PDT 2011
1455 --
1456 /* Update the interface records with process_status 3 and insert into
1457 MTL_INTERFACE_ERRORS if Edit Privilege is incorrect*/
1458 G_MESSAGE_NAME := 'EGO_EDIT_PRIV_NOT_EXIST';
1459
1460 fnd_message.Set_name('EGO','EGO_EDIT_PRIV_NOT_EXIST');
1461
1462 G_MESSAGE_TEXT := fnd_message.get;
1463
1464 INSERT INTO mtl_interface_errors
1465 (transaction_id,
1466 unique_id,
1467 organization_id,
1468 column_name,
1469 table_name,
1470 bo_identifier,
1471 entity_identifier,
1472 message_name,
1473 error_message,
1474 last_update_date,
1475 last_updated_by,
1476 creation_date,
1477 created_by,
1478 last_update_login,
1479 request_id,
1480 program_application_id,
1481 program_id,
1482 program_update_date)
1483 SELECT transaction_id,
1484 mtl_system_items_interface_s.nextval,
1485 NULL,
1486 NULL,
1487 G_ENTITY_DL_TAB,
1488 G_BO_IDENTIFIER_AG,
1489 G_ENTITY_DL,
1490 G_MESSAGE_NAME,
1491 G_MESSAGE_TEXT,
1492 Nvl(last_update_date,SYSDATE),
1493 Nvl(last_updated_by,G_USER_ID),
1494 Nvl(creation_date,SYSDATE),
1495 Nvl(created_by,G_USER_ID),
1496 Nvl(last_update_login,G_USER_ID),
1497 G_REQUEST_ID,
1498 Nvl(program_application_id,G_PROG_APPL_ID),
1499 Nvl(program_id,G_PROGRAM_ID),
1500 Nvl(program_update_date,SYSDATE)
1501 FROM ego_attr_groups_dl_interface
1502 WHERE ((edit_privilege_id IS NULL
1503 AND edit_privilege_name IS NOT NULL
1504 AND edit_privilege_name <> G_NULL_CHAR)
1505 OR (edit_privilege_name IS NULL
1506 AND edit_privilege_id IS NOT NULL
1507 AND edit_privilege_id <> G_NULL_NUM)) -- Bug 12394675
1508 AND transaction_id IS NOT NULL
1509 AND process_status = G_PROCESS_RECORD
1510 AND ((G_SET_PROCESS_ID IS NULL)
1511 OR (set_process_id = G_SET_PROCESS_ID));
1512
1513 UPDATE ego_attr_groups_dl_interface
1514 SET process_status = G_ERROR_RECORD,
1515 last_updated_by = G_USER_ID,
1516 last_update_date = SYSDATE,
1517 last_update_login = G_LOGIN_ID
1518 WHERE ((edit_privilege_id IS NULL
1519 AND edit_privilege_name IS NOT NULL)
1520 OR (edit_privilege_name IS NULL
1521 AND edit_privilege_id IS NOT NULL))
1522 AND transaction_id IS NOT NULL
1523 AND process_status = G_PROCESS_RECORD
1524 AND ((G_SET_PROCESS_ID IS NULL)
1525 OR (set_process_id = G_SET_PROCESS_ID));
1526
1527 lv_smt := 13;
1528
1529 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 13');
1530
1531 /* Update the interface records with process_status 3 and insert into
1532 MTL_INTERFACE_ERRORS if Defaulting passed is incorrect*/
1533 G_MESSAGE_NAME := 'EGO_DEFAULTING_INVALID';
1534
1535 fnd_message.Set_name('EGO','EGO_DEFAULTING_INVALID');
1536
1537 G_MESSAGE_TEXT := fnd_message.get;
1538
1539 INSERT INTO mtl_interface_errors
1540 (transaction_id,
1541 unique_id,
1542 organization_id,
1543 column_name,
1544 table_name,
1545 bo_identifier,
1546 entity_identifier,
1547 message_name,
1548 error_message,
1549 last_update_date,
1550 last_updated_by,
1551 creation_date,
1552 created_by,
1553 last_update_login,
1554 request_id,
1555 program_application_id,
1556 program_id,
1557 program_update_date)
1558 SELECT transaction_id,
1559 mtl_system_items_interface_s.nextval,
1560 NULL,
1561 NULL,
1562 G_ENTITY_DL_TAB,
1563 G_BO_IDENTIFIER_AG,
1564 G_ENTITY_DL,
1565 G_MESSAGE_NAME,
1566 G_MESSAGE_TEXT,
1567 Nvl(last_update_date,SYSDATE),
1568 Nvl(last_updated_by,G_USER_ID),
1569 Nvl(creation_date,SYSDATE),
1570 Nvl(created_by,G_USER_ID),
1571 Nvl(last_update_login,G_USER_ID),
1572 G_REQUEST_ID,
1573 Nvl(program_application_id,G_PROG_APPL_ID),
1574 Nvl(program_id,G_PROGRAM_ID),
1575 Nvl(program_update_date,SYSDATE)
1576 FROM ego_attr_groups_dl_interface eagdl
1577 WHERE data_level_name <> 'ITEM_REVISION_LEVEL'
1578 AND transaction_type <> G_OPR_DELETE
1579 AND (defaulting IS NULL
1580 OR defaulting_name IS NULL)
1581 AND transaction_id IS NOT NULL
1582 AND process_status = G_PROCESS_RECORD
1583 AND ((G_SET_PROCESS_ID IS NULL)
1584 OR (set_process_id = G_SET_PROCESS_ID))
1585 AND NOT EXISTS /*Modified the where clause for bug 9886739*/
1586 (SELECT 1
1587 FROM EGO_FND_DSC_FLX_CTX_EXT efdfce
1588 WHERE efdfce.DESCRIPTIVE_FLEX_CONTEXT_CODE = eagdl.attr_group_name
1589 AND efdfce.DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
1590 AND efdfce.APPLICATION_ID = G_EGO_APPLICATION_ID
1591 AND efdfce.VARIANT = 'Y')
1592 AND NOT EXISTS
1593 (SELECT 1
1594 FROM ego_attr_groups_interface
1595 WHERE ATTR_GROUP_NAME = eagdl.attr_group_name
1596 AND ATTR_GROUP_TYPE = G_EGO_ITEMMGMT_GROUP
1597 AND variant = 'Y');
1598
1599 UPDATE ego_attr_groups_dl_interface eagdl
1600 SET process_status = G_ERROR_RECORD,
1601 last_updated_by = G_USER_ID,
1602 last_update_date = SYSDATE,
1603 last_update_login = G_LOGIN_ID
1604 WHERE data_level_name <> 'ITEM_REVISION_LEVEL'
1605 AND transaction_type <> G_OPR_DELETE
1606 AND (defaulting IS NULL
1607 OR defaulting_name IS NULL)
1608 AND transaction_id IS NOT NULL
1609 AND process_status = G_PROCESS_RECORD
1610 AND ((G_SET_PROCESS_ID IS NULL)
1611 OR (set_process_id = G_SET_PROCESS_ID))
1612 AND NOT EXISTS /*Modified the where clause for bug 9886739*/
1613 (SELECT 1
1614 FROM EGO_FND_DSC_FLX_CTX_EXT efdfce
1615 WHERE efdfce.DESCRIPTIVE_FLEX_CONTEXT_CODE = eagdl.attr_group_name
1616 AND efdfce.DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
1617 AND efdfce.APPLICATION_ID = G_EGO_APPLICATION_ID
1618 AND efdfce.VARIANT = 'Y')
1619 AND NOT EXISTS
1620 (SELECT 1
1621 FROM ego_attr_groups_interface
1622 WHERE ATTR_GROUP_NAME = eagdl.attr_group_name
1623 AND ATTR_GROUP_TYPE = G_EGO_ITEMMGMT_GROUP
1624 AND variant = 'Y');
1625
1626 lv_smt := 14;
1627
1628 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 14');
1629
1630 /* Update the interface records with process_status 3 and insert into
1631 MTL_INTERFACE_ERRORS if AG has associations and user is trying to delete a DL*/
1632 G_MESSAGE_NAME := 'EGO_EF_ASSOCS_EXIST3';
1633
1634 fnd_message.Set_name('EGO','EGO_EF_ASSOCS_EXIST3');
1635
1636 G_MESSAGE_TEXT := fnd_message.get;
1637
1638 INSERT INTO mtl_interface_errors
1639 (transaction_id,
1640 unique_id,
1641 organization_id,
1642 column_name,
1643 table_name,
1644 bo_identifier,
1645 entity_identifier,
1646 message_name,
1647 error_message,
1648 last_update_date,
1649 last_updated_by,
1650 creation_date,
1651 created_by,
1652 last_update_login,
1653 request_id,
1654 program_application_id,
1655 program_id,
1656 program_update_date)
1657 SELECT transaction_id,
1658 mtl_system_items_interface_s.nextval,
1659 NULL,
1660 NULL,
1661 G_ENTITY_DL_TAB,
1662 G_BO_IDENTIFIER_AG,
1663 G_ENTITY_DL,
1664 G_MESSAGE_NAME,
1665 G_MESSAGE_TEXT,
1666 Nvl(last_update_date,SYSDATE),
1667 Nvl(last_updated_by,G_USER_ID),
1668 Nvl(creation_date,SYSDATE),
1669 Nvl(created_by,G_USER_ID),
1670 Nvl(last_update_login,G_USER_ID),
1671 G_REQUEST_ID,
1672 Nvl(program_application_id,G_PROG_APPL_ID),
1673 Nvl(program_id,G_PROGRAM_ID),
1674 Nvl(program_update_date,SYSDATE)
1675 FROM ego_attr_groups_dl_interface eagdl
1676 WHERE transaction_type = G_OPR_DELETE
1677 AND EXISTS (SELECT 1
1678 FROM EGO_OBJ_AG_ASSOCS_B
1679 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
1680 AND ENABLED_FLAG = 'Y')
1681 AND transaction_id IS NOT NULL
1682 AND process_status = G_PROCESS_RECORD
1683 AND ((G_SET_PROCESS_ID IS NULL)
1684 OR (set_process_id = G_SET_PROCESS_ID));
1685
1686 UPDATE ego_attr_groups_dl_interface eagdl
1687 SET process_status = G_ERROR_RECORD,
1688 last_updated_by = G_USER_ID,
1689 last_update_date = SYSDATE,
1690 last_update_login = G_LOGIN_ID
1691 WHERE transaction_type = G_OPR_DELETE
1692 AND EXISTS (SELECT 1
1693 FROM EGO_OBJ_AG_ASSOCS_B
1694 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
1695 AND ENABLED_FLAG = 'Y')
1696 AND transaction_id IS NOT NULL
1697 AND process_status = G_PROCESS_RECORD
1698 AND ((G_SET_PROCESS_ID IS NULL)
1699 OR (set_process_id = G_SET_PROCESS_ID));
1700
1701 lv_smt := 15;
1702
1703 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 15');
1704
1705 /* Update the interface records with process_status 3 and insert into
1706 MTL_INTERFACE_ERRORS if AG has associations and user is trying to delete the AG*/
1707 G_MESSAGE_NAME := 'EGO_EF_ASSOCS_EXIST1';
1708
1709 fnd_message.Set_name('EGO','EGO_EF_ASSOCS_EXIST1');
1710
1711 G_MESSAGE_TEXT := fnd_message.get;
1712
1713 INSERT INTO mtl_interface_errors
1714 (transaction_id,
1715 unique_id,
1716 organization_id,
1717 column_name,
1718 table_name,
1719 bo_identifier,
1720 entity_identifier,
1721 message_name,
1722 error_message,
1723 last_update_date,
1724 last_updated_by,
1725 creation_date,
1726 created_by,
1727 last_update_login,
1728 request_id,
1729 program_application_id,
1730 program_id,
1731 program_update_date)
1732 SELECT transaction_id,
1733 mtl_system_items_interface_s.nextval,
1734 NULL,
1735 NULL,
1736 G_ENTITY_AG_TAB,
1737 G_BO_IDENTIFIER_AG,
1738 G_ENTITY_AG,
1739 G_MESSAGE_NAME,
1740 G_MESSAGE_TEXT,
1741 Nvl(last_update_date,SYSDATE),
1742 Nvl(last_updated_by,G_USER_ID),
1743 Nvl(creation_date,SYSDATE),
1744 Nvl(created_by,G_USER_ID),
1745 Nvl(last_update_login,G_USER_ID),
1746 G_REQUEST_ID,
1747 Nvl(program_application_id,G_PROG_APPL_ID),
1748 Nvl(program_id,G_PROGRAM_ID),
1749 Nvl(program_update_date,SYSDATE)
1750 FROM ego_attr_groups_interface eagdl
1751 WHERE transaction_type = G_OPR_DELETE
1752 AND EXISTS (SELECT 1
1753 FROM EGO_OBJ_AG_ASSOCS_B
1754 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
1755 AND ENABLED_FLAG = 'Y')
1756 AND transaction_id IS NOT NULL
1757 AND process_status = G_PROCESS_RECORD
1758 AND ((G_SET_PROCESS_ID IS NULL)
1759 OR (set_process_id = G_SET_PROCESS_ID));
1760
1761 UPDATE ego_attr_groups_interface eagdl
1762 SET process_status = G_ERROR_RECORD,
1763 last_updated_by = G_USER_ID,
1764 last_update_date = SYSDATE,
1765 last_update_login = G_LOGIN_ID
1766 WHERE transaction_type = G_OPR_DELETE
1767 AND EXISTS (SELECT 1
1768 FROM EGO_OBJ_AG_ASSOCS_B
1769 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
1770 AND ENABLED_FLAG = 'Y')
1771 AND transaction_id IS NOT NULL
1772 AND process_status = G_PROCESS_RECORD
1773 AND ((G_SET_PROCESS_ID IS NULL)
1774 OR (set_process_id = G_SET_PROCESS_ID));
1775
1776 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit bulk_validate_attr_groups');
1777 EXCEPTION
1778 WHEN OTHERS THEN
1779 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'bulk_validate_attr_groups Exception when others'||SQLERRM);
1780
1781 x_return_status := G_RET_STS_UNEXP_ERROR;
1782
1783 x_return_msg := 'ego_ag_bulkload_pvt.bulk_validate_attr_groups - '||SQLERRM;
1784
1785 RETURN;
1786 END bulk_validate_attr_groups;
1787
1788 /*This procedure is used to bulk validate attributes.
1789 Used in the interface flow.
1790 x_return_status OUT NOCOPY parameter that returns the status*/
1791 PROCEDURE bulk_validate_attribute
1792 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
1793 IS
1794 lv_smt NUMBER; --Statement counter
1795
1796 lv_proc VARCHAR2(30) := 'bulk_validate_attribute';
1797 BEGIN
1798 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered bulk_validate_attribute');
1799
1800 x_return_status := G_RET_STS_SUCCESS;
1801
1802 lv_smt := 1;
1803
1804 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
1805
1806 /* Update the interface records with process_status 3 and insert into
1807 MTL_INTERFACE_ERRORS if Attribute Group Type in the Attribute interface table is other than EGO_ITEMMGMT_GROUP*/
1808 G_MESSAGE_NAME := 'EGO_AG_TYPE_INVALID';
1809
1810 fnd_message.Set_name('EGO','EGO_AG_TYPE_INVALID');
1811
1812 G_MESSAGE_TEXT := fnd_message.get;
1813
1814 INSERT INTO mtl_interface_errors
1815 (transaction_id,
1816 unique_id,
1817 organization_id,
1818 column_name,
1819 table_name,
1820 bo_identifier,
1821 entity_identifier,
1822 message_name,
1823 error_message,
1824 last_update_date,
1825 last_updated_by,
1826 creation_date,
1827 created_by,
1828 last_update_login,
1829 request_id,
1830 program_application_id,
1831 program_id,
1832 program_update_date)
1833 SELECT eagi.transaction_id,
1834 mtl_system_items_interface_s.nextval,
1835 NULL,
1836 NULL,
1837 G_ENTITY_ATTR_TAB,
1838 G_BO_IDENTIFIER_AG,
1839 G_ENTITY_ATTR,
1840 G_MESSAGE_NAME,
1841 G_MESSAGE_TEXT,
1842 Nvl(last_update_date,SYSDATE),
1843 Nvl(last_updated_by,G_USER_ID),
1844 Nvl(creation_date,SYSDATE),
1845 Nvl(created_by,G_USER_ID),
1846 Nvl(last_update_login,G_USER_ID),
1847 G_REQUEST_ID,
1848 Nvl(program_application_id,G_PROG_APPL_ID),
1849 Nvl(program_id,G_PROGRAM_ID),
1850 Nvl(program_update_date,SYSDATE)
1851 FROM ego_attr_group_cols_intf eagi
1852 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
1853 AND transaction_id IS NOT NULL
1854 AND process_status = G_PROCESS_RECORD
1855 AND ((G_SET_PROCESS_ID IS NULL)
1856 OR (set_process_id = G_SET_PROCESS_ID));
1857
1858 UPDATE ego_attr_group_cols_intf
1859 SET process_status = G_ERROR_RECORD,
1860 last_updated_by = G_USER_ID,
1861 last_update_date = SYSDATE,
1862 last_update_login = G_LOGIN_ID
1863 WHERE attr_group_type <> G_EGO_ITEMMGMT_GROUP
1864 AND transaction_id IS NOT NULL
1865 AND process_status = G_PROCESS_RECORD
1866 AND ((G_SET_PROCESS_ID IS NULL)
1867 OR (set_process_id = G_SET_PROCESS_ID));
1868
1869 lv_smt := 2;
1870
1871 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
1872
1873 /* Update the interface records with process_status 3 and insert into
1874 MTL_INTERFACE_ERRORS if the attribute with the internal name is already present in the system*/
1875 G_MESSAGE_NAME := 'EGO_EF_INTERNAL_NAME_UNIQUE';
1876
1877 fnd_message.Set_name('EGO','EGO_EF_INTERNAL_NAME_UNIQUE');
1878
1879 G_MESSAGE_TEXT := fnd_message.get;
1880
1881 INSERT INTO mtl_interface_errors
1882 (transaction_id,
1883 unique_id,
1884 organization_id,
1885 column_name,
1886 table_name,
1887 bo_identifier,
1888 entity_identifier,
1889 message_name,
1890 error_message,
1891 last_update_date,
1892 last_updated_by,
1893 creation_date,
1894 created_by,
1895 last_update_login,
1896 request_id,
1897 program_application_id,
1898 program_id,
1899 program_update_date)
1900 SELECT eagi.transaction_id,
1901 mtl_system_items_interface_s.nextval,
1902 NULL,
1903 NULL,
1904 G_ENTITY_ATTR_TAB,
1905 G_BO_IDENTIFIER_AG,
1906 G_ENTITY_ATTR,
1907 G_MESSAGE_NAME,
1908 G_MESSAGE_TEXT,
1909 Nvl(last_update_date,SYSDATE),
1910 Nvl(last_updated_by,G_USER_ID),
1911 Nvl(creation_date,SYSDATE),
1912 Nvl(created_by,G_USER_ID),
1913 Nvl(last_update_login,G_USER_ID),
1914 G_REQUEST_ID,
1915 Nvl(program_application_id,G_PROG_APPL_ID),
1916 Nvl(program_id,G_PROGRAM_ID),
1917 Nvl(program_update_date,SYSDATE)
1918 FROM ego_attr_group_cols_intf eagi
1919 WHERE EXISTS (SELECT 1
1920 FROM FND_DESCR_FLEX_COLUMN_USAGES
1921 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
1922 AND DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
1923 AND DESCRIPTIVE_FLEX_CONTEXT_Code = eagi.attr_group_name
1924 AND END_USER_COLUMN_NAME = eagi.internal_name
1925 )
1926 AND transaction_type = G_OPR_CREATE
1927 AND transaction_id IS NOT NULL
1928 AND process_status = G_PROCESS_RECORD
1929 AND ((G_SET_PROCESS_ID IS NULL)
1930 OR (set_process_id = G_SET_PROCESS_ID));
1931
1932 UPDATE ego_attr_group_cols_intf eagi
1933 SET process_status = G_ERROR_RECORD,
1934 last_updated_by = G_USER_ID,
1935 last_update_date = SYSDATE,
1936 last_update_login = G_LOGIN_ID
1937 WHERE EXISTS (SELECT 1
1938 FROM FND_DESCR_FLEX_COLUMN_USAGES
1939 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
1940 AND DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
1941 AND DESCRIPTIVE_FLEX_CONTEXT_Code = eagi.attr_group_name
1942 AND END_USER_COLUMN_NAME = eagi.internal_name
1943 )
1944 AND transaction_type = G_OPR_CREATE
1945 AND transaction_id IS NOT NULL
1946 AND process_status = G_PROCESS_RECORD
1947 AND ((G_SET_PROCESS_ID IS NULL)
1948 OR (set_process_id = G_SET_PROCESS_ID));
1949
1950 Value_to_id_attr(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
1951
1952 construct_attribute(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
1953
1954 lv_smt := 2;
1955
1956 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
1957
1958 /* Update the interface records with process_status 3 and insert into
1959 MTL_INTERFACE_ERRORS if Attribute group does exist in the system or
1960 as a create flow in the AG interface table. Updates the DL interface table*/
1961 G_MESSAGE_NAME := 'EGO_AG_NOT_EXIST';
1962
1963 fnd_message.Set_name('EGO','EGO_AG_NOT_EXIST');
1964
1965 G_MESSAGE_TEXT := fnd_message.get;
1966
1967 INSERT INTO mtl_interface_errors
1968 (transaction_id,
1969 unique_id,
1970 organization_id,
1971 column_name,
1972 table_name,
1973 bo_identifier,
1974 entity_identifier,
1975 message_name,
1976 error_message,
1977 last_update_date,
1978 last_updated_by,
1979 creation_date,
1980 created_by,
1981 last_update_login,
1982 request_id,
1983 program_application_id,
1984 program_id,
1985 program_update_date)
1986 SELECT transaction_id,
1987 mtl_system_items_interface_s.nextval,
1988 NULL,
1989 NULL,
1990 G_ENTITY_ATTR_TAB,
1991 G_BO_IDENTIFIER_AG,
1992 G_ENTITY_ATTR,
1993 G_MESSAGE_NAME,
1994 G_MESSAGE_TEXT,
1995 Nvl(last_update_date,SYSDATE),
1996 Nvl(last_updated_by,G_USER_ID),
1997 Nvl(creation_date,SYSDATE),
1998 Nvl(created_by,G_USER_ID),
1999 Nvl(last_update_login,G_USER_ID),
2000 G_REQUEST_ID,
2001 Nvl(program_application_id,G_PROG_APPL_ID),
2002 Nvl(program_id,G_PROGRAM_ID),
2003 Nvl(program_update_date,SYSDATE)
2004 FROM ego_attr_group_cols_intf eagci
2005 WHERE (eagci.attr_group_id IS NULL
2006 OR eagci.attr_group_name IS NULL)
2007 AND eagci.transaction_id IS NOT NULL
2008 AND NOT EXISTS (SELECT 1
2009 FROM ego_attr_groups_interface eagi
2010 WHERE eagi.attr_group_name = eagci.attr_group_name
2011 AND eagi.transaction_type = G_OPR_CREATE
2012 AND eagi.process_status = G_PROCESS_RECORD)
2013 AND eagci.process_status = G_PROCESS_RECORD
2014 AND ((G_SET_PROCESS_ID IS NULL)
2015 OR (set_process_id = G_SET_PROCESS_ID));
2016
2017 UPDATE ego_attr_group_cols_intf eagci
2018 SET eagci.process_status = G_ERROR_RECORD,
2019 eagci.last_updated_by = G_USER_ID,
2020 eagci.last_update_date = SYSDATE,
2021 eagci.last_update_login = G_LOGIN_ID
2022 WHERE (eagci.attr_group_id IS NULL
2023 OR eagci.attr_group_name IS NULL)
2024 AND eagci.transaction_id IS NOT NULL
2025 AND NOT EXISTS (SELECT 1
2026 FROM ego_attr_groups_interface eagi
2027 WHERE eagi.attr_group_name = eagci.attr_group_name
2028 AND eagi.transaction_type = G_OPR_CREATE
2029 AND eagi.process_status = G_PROCESS_RECORD)
2030 AND eagci.process_status = G_PROCESS_RECORD
2031 AND ((G_SET_PROCESS_ID IS NULL)
2032 OR (set_process_id = G_SET_PROCESS_ID));
2033
2034 lv_smt := 3;
2035
2036 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
2037
2038 /*Sets the error EGO_ATTR_NOT_EXISTS if the attr_id or internal_name is null in the update flow*/
2039 G_MESSAGE_NAME := 'EGO_ATTR_NOT_EXISTS';
2040
2041 fnd_message.Set_name('EGO','EGO_ATTR_NOT_EXISTS');
2042
2043 G_MESSAGE_TEXT := fnd_message.get;
2044
2045 INSERT INTO mtl_interface_errors
2046 (transaction_id,
2047 unique_id,
2048 organization_id,
2049 column_name,
2050 table_name,
2051 bo_identifier,
2052 entity_identifier,
2053 message_name,
2054 error_message,
2055 last_update_date,
2056 last_updated_by,
2057 creation_date,
2058 created_by,
2059 last_update_login,
2060 request_id,
2061 program_application_id,
2062 program_id,
2063 program_update_date)
2064 SELECT transaction_id,
2065 mtl_system_items_interface_s.nextval,
2066 NULL,
2067 NULL,
2068 G_ENTITY_ATTR_TAB,
2069 G_BO_IDENTIFIER_AG,
2070 G_ENTITY_ATTR,
2071 G_MESSAGE_NAME,
2072 G_MESSAGE_TEXT,
2073 Nvl(last_update_date,SYSDATE),
2074 Nvl(last_updated_by,G_USER_ID),
2075 Nvl(creation_date,SYSDATE),
2076 Nvl(created_by,G_USER_ID),
2077 Nvl(last_update_login,G_USER_ID),
2078 G_REQUEST_ID,
2079 Nvl(program_application_id,G_PROG_APPL_ID),
2080 Nvl(program_id,G_PROGRAM_ID),
2081 Nvl(program_update_date,SYSDATE)
2082 FROM ego_attr_group_cols_intf eagci
2083 WHERE ((eagci.attr_id IS NULL
2084 AND eagci.internal_name IS NOT NULL)
2085 OR (eagci.internal_name IS NULL
2086 AND eagci.attr_id IS NOT NULL))
2087 AND eagci.transaction_type <> G_OPR_CREATE
2088 AND eagci.transaction_id IS NOT NULL
2089 AND eagci.process_status = G_PROCESS_RECORD
2090 AND ((G_SET_PROCESS_ID IS NULL)
2091 OR (set_process_id = G_SET_PROCESS_ID));
2092
2093 UPDATE ego_attr_group_cols_intf eagci
2094 SET eagci.process_status = G_ERROR_RECORD,
2095 eagci.last_updated_by = G_USER_ID,
2096 eagci.last_update_date = SYSDATE,
2097 eagci.last_update_login = G_LOGIN_ID
2098 WHERE ((eagci.attr_id IS NULL
2099 AND eagci.internal_name IS NOT NULL)
2100 OR (eagci.internal_name IS NULL
2101 AND eagci.attr_id IS NOT NULL))
2102 AND eagci.transaction_type <> G_OPR_CREATE
2103 AND eagci.transaction_id IS NOT NULL
2104 AND eagci.process_status = G_PROCESS_RECORD
2105 AND ((G_SET_PROCESS_ID IS NULL)
2106 OR (set_process_id = G_SET_PROCESS_ID));
2107
2108 lv_smt := 4;
2109
2110 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
2111
2112 /*Sets the error EGO_EF_BC_SEL_EXI_VALUE if the value set is defined in the system*/
2113 G_MESSAGE_NAME := 'EGO_EF_BC_SEL_EXI_VALUE';
2114
2115 fnd_message.Set_name('EGO','EGO_EF_BC_SEL_EXI_VALUE');
2116
2117 G_MESSAGE_TEXT := fnd_message.get;
2118
2119 INSERT INTO mtl_interface_errors
2120 (transaction_id,
2121 unique_id,
2122 organization_id,
2123 column_name,
2124 table_name,
2125 bo_identifier,
2126 entity_identifier,
2127 message_name,
2128 error_message,
2129 last_update_date,
2130 last_updated_by,
2131 creation_date,
2132 created_by,
2133 last_update_login,
2134 request_id,
2135 program_application_id,
2136 program_id,
2137 program_update_date)
2138 SELECT transaction_id,
2139 mtl_system_items_interface_s.nextval,
2140 NULL,
2141 NULL,
2142 G_ENTITY_ATTR_TAB,
2143 G_BO_IDENTIFIER_AG,
2144 G_ENTITY_ATTR,
2145 G_MESSAGE_NAME,
2146 G_MESSAGE_TEXT,
2147 Nvl(last_update_date,SYSDATE),
2148 Nvl(last_updated_by,G_USER_ID),
2149 Nvl(creation_date,SYSDATE),
2150 Nvl(created_by,G_USER_ID),
2151 Nvl(last_update_login,G_USER_ID),
2152 G_REQUEST_ID,
2153 Nvl(program_application_id,G_PROG_APPL_ID),
2154 Nvl(program_id,G_PROGRAM_ID),
2155 Nvl(program_update_date,SYSDATE)
2156 FROM ego_attr_group_cols_intf eagci
2157 WHERE ((eagci.flex_value_set_id IS NULL
2158 AND eagci.flex_value_set_name IS NOT NULL
2159 AND eagci.flex_value_set_name <> G_NULL_CHAR)
2160 OR (eagci.flex_value_set_name IS NULL
2161 AND eagci.flex_value_set_id IS NOT NULL
2162 AND eagci.flex_value_set_id <> G_NULL_NUM))
2163 AND eagci.transaction_id IS NOT NULL
2164 AND eagci.process_status = G_PROCESS_RECORD
2165 AND ((G_SET_PROCESS_ID IS NULL)
2166 OR (set_process_id = G_SET_PROCESS_ID));
2167
2168 UPDATE ego_attr_group_cols_intf eagci
2169 SET eagci.process_status = G_ERROR_RECORD,
2170 eagci.last_updated_by = G_USER_ID,
2171 eagci.last_update_date = SYSDATE,
2172 eagci.last_update_login = G_LOGIN_ID
2173 WHERE ((eagci.flex_value_set_id IS NULL
2174 AND eagci.flex_value_set_name IS NOT NULL
2175 AND eagci.flex_value_set_name <> G_NULL_CHAR)
2176 OR (eagci.flex_value_set_name IS NULL
2177 AND eagci.flex_value_set_id IS NOT NULL
2178 AND eagci.flex_value_set_id <> G_NULL_NUM))
2179 AND eagci.transaction_id IS NOT NULL
2180 AND eagci.process_status = G_PROCESS_RECORD
2181 AND ((G_SET_PROCESS_ID IS NULL)
2182 OR (set_process_id = G_SET_PROCESS_ID));
2183
2184 lv_smt := 5;
2185
2186 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
2187
2188 /* Update the interface records with process_status 3 and insert into
2189 MTL_INTERFACE_ERRORS if AG has associations and user is trying to delete the attributes*/
2190 G_MESSAGE_NAME := 'EGO_EF_ASSOCS_EXIST2';
2191
2192 fnd_message.Set_name('EGO','EGO_EF_ASSOCS_EXIST2');
2193
2194 G_MESSAGE_TEXT := fnd_message.get;
2195
2196 INSERT INTO mtl_interface_errors
2197 (transaction_id,
2198 unique_id,
2199 organization_id,
2200 column_name,
2201 table_name,
2202 bo_identifier,
2203 entity_identifier,
2204 message_name,
2205 error_message,
2206 last_update_date,
2207 last_updated_by,
2208 creation_date,
2209 created_by,
2210 last_update_login,
2211 request_id,
2212 program_application_id,
2213 program_id,
2214 program_update_date)
2215 SELECT transaction_id,
2216 mtl_system_items_interface_s.nextval,
2217 NULL,
2218 NULL,
2219 G_ENTITY_ATTR_TAB,
2220 G_BO_IDENTIFIER_AG,
2221 G_ENTITY_ATTR,
2222 G_MESSAGE_NAME,
2223 G_MESSAGE_TEXT,
2224 Nvl(last_update_date,SYSDATE),
2225 Nvl(last_updated_by,G_USER_ID),
2226 Nvl(creation_date,SYSDATE),
2227 Nvl(created_by,G_USER_ID),
2228 Nvl(last_update_login,G_USER_ID),
2229 G_REQUEST_ID,
2230 Nvl(program_application_id,G_PROG_APPL_ID),
2231 Nvl(program_id,G_PROGRAM_ID),
2232 Nvl(program_update_date,SYSDATE)
2233 FROM ego_attr_group_cols_intf eagdl
2234 WHERE transaction_type = G_OPR_DELETE
2235 AND EXISTS (SELECT 1
2236 FROM EGO_OBJ_AG_ASSOCS_B
2237 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
2238 AND ENABLED_FLAG = 'Y')
2239 AND transaction_id IS NOT NULL
2240 AND process_status = G_PROCESS_RECORD
2241 AND ((G_SET_PROCESS_ID IS NULL)
2242 OR (set_process_id = G_SET_PROCESS_ID));
2243
2244 UPDATE ego_attr_group_cols_intf eagdl
2245 SET process_status = G_ERROR_RECORD,
2246 last_updated_by = G_USER_ID,
2247 last_update_date = SYSDATE,
2248 last_update_login = G_LOGIN_ID
2249 WHERE transaction_type = G_OPR_DELETE
2250 AND EXISTS (SELECT 1
2251 FROM EGO_OBJ_AG_ASSOCS_B
2252 WHERE ATTR_GROUP_ID = eagdl.attr_group_id
2253 AND ENABLED_FLAG = 'Y')
2254 AND transaction_id IS NOT NULL
2255 AND process_status = G_PROCESS_RECORD
2256 AND ((G_SET_PROCESS_ID IS NULL)
2257 OR (set_process_id = G_SET_PROCESS_ID));
2258
2259
2260 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit bulk_validate_attribute');
2261 EXCEPTION
2262 WHEN OTHERS THEN
2263 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'bulk_validate_attribute Exception when others'||SQLERRM);
2264
2265 x_return_status := G_RET_STS_UNEXP_ERROR;
2266
2267 x_return_msg := 'ego_ag_bulkload_pvt.bulk_validate_attribute - '||SQLERRM;
2268
2269 RETURN;
2270 END bulk_validate_attribute;
2271
2272 /*This procedure is used for value to ID conversion for Attribute Groups.
2273 Used in the interface flow.
2274 x_return_status OUT NOCOPY parameter that returns the status*/
2275 PROCEDURE Value_to_id_ag
2276 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2277 IS
2278 lv_smt NUMBER; --Statement counter
2279
2280 lv_proc VARCHAR2(30) := 'Value_to_id_ag';
2281 BEGIN
2282 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered Value_to_id_ag');
2283
2284 x_return_status := G_RET_STS_SUCCESS;
2285
2286 lv_smt := 1;
2287
2288 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2289
2290 /*Sets the Attribute group id when the Internal Attribute group name is given*/
2291 UPDATE ego_attr_groups_interface eagi
2292 SET eagi.attr_group_id = (SELECT attr_group_id
2293 FROM ego_fnd_dsc_flx_ctx_ext
2294 WHERE application_id = g_ego_application_id
2295 AND descriptive_flexfield_name = eagi.attr_group_type
2296 AND descriptive_flex_context_code = eagi.attr_group_name),
2297 eagi.transaction_type = decode(transaction_type,G_OPR_SYNC,G_OPR_UPDATE,transaction_type),
2298 last_updated_by = G_USER_ID,
2299 last_update_date = SYSDATE,
2300 last_update_login = G_LOGIN_ID
2301 WHERE eagi.transaction_type <> G_OPR_CREATE
2302 AND eagi.attr_group_id IS NULL
2303 AND eagi.attr_group_name IS NOT NULL
2304 AND eagi.process_status = G_PROCESS_RECORD
2305 AND ((G_SET_PROCESS_ID IS NULL)
2306 OR (set_process_id = G_SET_PROCESS_ID));
2307
2308 lv_smt := 2;
2309
2310 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
2311
2312 /*Sets the SYNC transaction type to CREATE*/
2313 UPDATE ego_attr_groups_interface eagi
2314 SET eagi.transaction_type = decode(attr_group_id,null,G_OPR_CREATE,G_OPR_UPDATE),
2315 last_updated_by = G_USER_ID,
2316 last_update_date = SYSDATE,
2317 last_update_login = G_LOGIN_ID
2318 WHERE eagi.transaction_type NOT IN (G_OPR_CREATE,G_OPR_DELETE)
2319 AND eagi.attr_group_id IS NULL
2320 AND eagi.attr_group_name IS NOT NULL
2321 AND eagi.process_status = G_PROCESS_RECORD
2322 AND ((G_SET_PROCESS_ID IS NULL)
2323 OR (set_process_id = G_SET_PROCESS_ID));
2324
2325
2326 /*As of now we dont support Owning party. When we support do value to id
2327 converstion for that here*/
2328 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Value_to_id_ag');
2329 EXCEPTION
2330 WHEN OTHERS THEN
2331 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_ag Exception when others'||SQLERRM);
2332
2333 x_return_status := G_RET_STS_UNEXP_ERROR;
2334
2335 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_ag - '||SQLERRM;
2336
2337 RETURN;
2338 END Value_to_id_ag;
2339
2340 /*This procedure is used for value to ID conversion for Attribute Groups
2341 Data level. Used in the interface flow.
2342 x_return_status OUT NOCOPY parameter that returns the status*/
2343 PROCEDURE Value_to_id_dl
2344 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2345 IS
2346 lv_smt NUMBER;
2347
2348 lv_proc VARCHAR2(30) := 'Value_to_id_dl';
2349 BEGIN
2350 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered Value_to_id_dl');
2351
2352 x_return_status := G_RET_STS_SUCCESS;
2353
2354 lv_smt := 1;
2355
2356 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2357
2358 /*Sets the Attribute group id when the Internal Attribute group name is given*/
2359 UPDATE ego_attr_groups_dl_interface eagdi
2360 SET eagdi.attr_group_id = (SELECT attr_group_id
2361 FROM ego_fnd_dsc_flx_ctx_ext
2362 WHERE application_id = g_ego_application_id
2363 AND descriptive_flexfield_name = eagdi.attr_group_type
2364 AND descriptive_flex_context_code = eagdi.attr_group_name),
2365 last_updated_by = G_USER_ID,
2366 last_update_date = SYSDATE,
2367 last_update_login = G_LOGIN_ID
2368 WHERE eagdi.attr_group_id IS NULL
2369 AND eagdi.attr_group_name IS NOT NULL
2370 AND eagdi.process_status = G_PROCESS_RECORD
2371 AND ((G_SET_PROCESS_ID IS NULL)
2372 OR (set_process_id = G_SET_PROCESS_ID));
2373
2374
2375 lv_smt := 3;
2376
2377 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
2378
2379 /*Set the View Privilege ID when the View Privilege Name or User View privilege name is given*/
2380 UPDATE ego_attr_groups_dl_interface eagdl
2381 SET eagdl.view_privilege_id = (SELECT function_id
2382 FROM fnd_form_functions
2383 WHERE function_name = eagdl.view_privilege_name),
2384 last_updated_by = G_USER_ID,
2385 last_update_date = SYSDATE,
2386 last_update_login = G_LOGIN_ID
2387 WHERE eagdl.view_privilege_id IS NULL
2388 AND eagdl.view_privilege_name IS NOT NULL
2389 AND eagdl.process_status = G_PROCESS_RECORD
2390 AND ((G_SET_PROCESS_ID IS NULL)
2391 OR (set_process_id = G_SET_PROCESS_ID));
2392
2393 UPDATE ego_attr_groups_dl_interface eagdl
2394 SET view_privilege_id = (SELECT function_id
2395 FROM fnd_form_functions_vl
2396 WHERE user_function_name = eagdl.user_view_priv_name),
2397 last_updated_by = G_USER_ID,
2398 last_update_date = SYSDATE,
2399 last_update_login = G_LOGIN_ID
2400 WHERE eagdl.view_privilege_id IS NULL
2401 AND eagdl.user_view_priv_name IS NOT NULL
2402 AND eagdl.process_status = G_PROCESS_RECORD
2403 AND ((G_SET_PROCESS_ID IS NULL)
2404 OR (set_process_id = G_SET_PROCESS_ID));
2405
2406 lv_smt := 4;
2407
2408 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
2409
2410 /*Set the Edit Privilege ID when the Edit Privilege Name or user edit priviledge name is given*/
2411 UPDATE ego_attr_groups_dl_interface eagdl
2412 SET edit_privilege_id = (SELECT function_id
2413 FROM fnd_form_functions
2414 WHERE function_name = eagdl.edit_privilege_name),
2415 last_updated_by = G_USER_ID,
2416 last_update_date = SYSDATE,
2417 last_update_login = G_LOGIN_ID
2418 WHERE eagdl.edit_privilege_id IS NULL
2419 AND eagdl.edit_privilege_name IS NOT NULL
2420 AND eagdl.process_status = G_PROCESS_RECORD
2421 AND ((G_SET_PROCESS_ID IS NULL)
2422 OR (set_process_id = G_SET_PROCESS_ID));
2423
2424 UPDATE ego_attr_groups_dl_interface eagdl
2425 SET edit_privilege_id = (SELECT function_id
2426 FROM fnd_form_functions_vl
2427 WHERE user_function_name = eagdl.user_edit_priv_name),
2428 last_updated_by = G_USER_ID,
2429 last_update_date = SYSDATE,
2430 last_update_login = G_LOGIN_ID
2431 WHERE eagdl.edit_privilege_id IS NULL
2432 AND eagdl.user_edit_priv_name IS NOT NULL
2433 AND eagdl.process_status = G_PROCESS_RECORD
2434 AND ((G_SET_PROCESS_ID IS NULL)
2435 OR (set_process_id = G_SET_PROCESS_ID));
2436
2437 lv_smt := 5;
2438
2439 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
2440
2441 /*Set the Data Level ID when the data level is given*/
2442 UPDATE ego_attr_groups_dl_interface eagdi
2443 SET eagdi.data_level_id = (SELECT data_level_id
2444 FROM ego_data_level_b
2445 WHERE attr_group_type = eagdi.attr_group_type
2446 AND application_id = g_ego_application_id
2447 AND data_level_name = eagdi.data_level_name),
2448 last_updated_by = G_USER_ID,
2449 last_update_date = SYSDATE,
2450 last_update_login = G_LOGIN_ID
2451 WHERE eagdi.data_level_id IS NULL
2452 AND eagdi.data_level_name IS NOT NULL
2453 AND eagdi.process_status = G_PROCESS_RECORD
2454 AND ((G_SET_PROCESS_ID IS NULL)
2455 OR (set_process_id = G_SET_PROCESS_ID));
2456
2457 lv_smt := 6;
2458
2459 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 6');
2460
2461 /*Sets the SYNC transaction type to UPDATE*/
2462 UPDATE ego_attr_groups_dl_interface eagdi
2463 SET eagdi.transaction_type = G_OPR_UPDATE,
2464 last_updated_by = G_USER_ID,
2465 last_update_date = SYSDATE,
2466 last_update_login = G_LOGIN_ID
2467 WHERE eagdi.data_level_id IS NOT NULL
2468 AND eagdi.attr_group_id IS NOT NULL
2469 AND transaction_type = G_OPR_SYNC
2470 AND EXISTS (SELECT 1
2471 FROM ego_attr_group_dl eagdl
2472 WHERE eagdl.attr_group_id = eagdi.attr_group_id
2473 AND eagdl.data_level_id = eagdi.data_level_id)
2474 AND eagdi.process_status = G_PROCESS_RECORD
2475 AND ((G_SET_PROCESS_ID IS NULL)
2476 OR (set_process_id = G_SET_PROCESS_ID));
2477
2478 lv_smt := 7;
2479
2480 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 7');
2481
2482 /*Sets the SYNC transaction type to CREATE*/
2483 UPDATE ego_attr_groups_dl_interface eagdi
2484 SET eagdi.transaction_type = G_OPR_CREATE,
2485 last_updated_by = G_USER_ID,
2486 last_update_date = SYSDATE,
2487 last_update_login = G_LOGIN_ID
2488 WHERE eagdi.data_level_id IS NOT NULL
2489 AND eagdi.attr_group_id IS NOT NULL
2490 AND transaction_type = G_OPR_SYNC
2491 AND NOT EXISTS (SELECT 1
2492 FROM ego_attr_group_dl eagdl
2493 WHERE eagdl.attr_group_id = eagdi.attr_group_id
2494 AND eagdl.data_level_id = eagdi.data_level_id)
2495 AND eagdi.process_status = G_PROCESS_RECORD
2496 AND ((G_SET_PROCESS_ID IS NULL)
2497 OR (set_process_id = G_SET_PROCESS_ID));
2498
2499 lv_smt := 7.1;
2500
2501 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 7.1');
2502
2503 /*Sets the SYNC transaction type to CREATE*/
2504 UPDATE ego_attr_groups_dl_interface eagdi
2505 SET eagdi.transaction_type = G_OPR_CREATE,
2506 last_updated_by = G_USER_ID,
2507 last_update_date = SYSDATE,
2508 last_update_login = G_LOGIN_ID
2509 WHERE eagdi.attr_group_id IS NULL
2510 AND transaction_type = G_OPR_SYNC
2511 AND eagdi.process_status = G_PROCESS_RECORD
2512 AND ((G_SET_PROCESS_ID IS NULL)
2513 OR (set_process_id = G_SET_PROCESS_ID));
2514
2515 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Value_to_id_dl');
2516 EXCEPTION
2517 WHEN OTHERS THEN
2518 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_dl Exception when others'||SQLERRM);
2519
2520 x_return_status := G_RET_STS_UNEXP_ERROR;
2521
2522 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl - '||SQLERRM;
2523
2524 RETURN;
2525 END Value_to_id_dl;
2526
2527 /*This procedure is used for value to ID conversion for Attributes.
2528 Used in the interface flow.
2529 x_return_status OUT NOCOPY parameter that returns the status*/
2530 PROCEDURE Value_to_id_attr
2531 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2532 IS
2533 lv_smt NUMBER; --Statement counter;
2534
2535 lv_proc VARCHAR2(30) := 'Value_to_id_attr';
2536 BEGIN
2537 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Value_to_id_attr');
2538
2539 x_return_status := G_RET_STS_SUCCESS;
2540
2541 lv_smt := 1;
2542
2543 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2544
2545 /*Sets the Attribute group id when the Internal Attribute group name is given*/
2546 UPDATE ego_attr_group_cols_intf eagci
2547 SET eagci.attr_group_id = (SELECT attr_group_id
2548 FROM ego_fnd_dsc_flx_ctx_ext
2549 WHERE application_id = g_ego_application_id
2550 AND descriptive_flexfield_name = eagci.attr_group_type
2551 AND descriptive_flex_context_code = eagci.attr_group_name),
2552 eagci.last_updated_by = G_USER_ID,
2553 eagci.last_update_date = SYSDATE,
2554 eagci.last_update_login = G_LOGIN_ID
2555 WHERE eagci.attr_group_id IS NULL
2556 AND eagci.attr_group_name IS NOT NULL
2557 AND eagci.process_status = G_PROCESS_RECORD
2558 AND ((G_SET_PROCESS_ID IS NULL)
2559 OR (set_process_id = G_SET_PROCESS_ID));
2560
2561 lv_smt := 2;
2562
2563 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
2564
2565 /*Set the application id*/
2566 UPDATE ego_attr_group_cols_intf
2567 SET application_id = g_ego_application_id,
2568 last_updated_by = G_USER_ID,
2569 last_update_date = SYSDATE,
2570 last_update_login = G_LOGIN_ID
2571 WHERE application_id IS NULL
2572 AND process_status = G_PROCESS_RECORD
2573 AND ((G_SET_PROCESS_ID IS NULL)
2574 OR (set_process_id = G_SET_PROCESS_ID));
2575
2576 lv_smt := 3;
2577
2578 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
2579
2580 /*Sets the Attr_id for the update and sync flow*/
2581 UPDATE ego_attr_group_cols_intf eagci
2582 SET eagci.attr_id = (SELECT efdcue.attr_id
2583 FROM fnd_descr_flex_column_usages fdfcu,
2584 ego_fnd_df_col_usgs_ext efdcue
2585 WHERE fdfcu.application_id = efdcue.application_id
2586 AND fdfcu.descriptive_flexfield_name = efdcue.descriptive_flexfield_name
2587 AND fdfcu.descriptive_flex_context_code = efdcue.descriptive_flex_context_code
2588 AND fdfcu.application_column_name = efdcue.application_column_name
2589 AND fdfcu.application_id = g_ego_application_id
2590 AND fdfcu.descriptive_flexfield_name = eagci.attr_group_type
2591 AND fdfcu.descriptive_flex_context_code = eagci.attr_group_name
2592 AND fdfcu.end_user_column_name = eagci.internal_name)
2593 WHERE eagci.attr_id IS NULL
2594 AND eagci.internal_name IS NOT NULL
2595 AND eagci.transaction_type IN (G_OPR_UPDATE,G_OPR_SYNC,G_OPR_DELETE)
2596 AND eagci.process_status = G_PROCESS_RECORD
2597 AND ((G_SET_PROCESS_ID IS NULL)
2598 OR (set_process_id = G_SET_PROCESS_ID));
2599
2600 lv_smt := 4;
2601
2602 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
2603
2604 /*Sets the value set id when the value set name is given*/
2605 UPDATE ego_attr_group_cols_intf eagci
2606 SET eagci.flex_value_set_id = (SELECT ffvs.flex_value_set_id
2607 FROM fnd_flex_value_sets ffvs
2608 WHERE ffvs.flex_value_set_name = eagci.flex_value_set_name)
2609 WHERE eagci.flex_value_set_id IS NULL
2610 AND eagci.flex_value_set_name IS NOT NULL
2611 AND eagci.process_status = G_PROCESS_RECORD
2612 AND ((G_SET_PROCESS_ID IS NULL)
2613 OR (set_process_id = G_SET_PROCESS_ID));
2614
2615 lv_smt := 5;
2616
2617 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
2618
2619 /*Sets the Sync type to UPDATE*/
2620 UPDATE ego_attr_group_cols_intf
2621 SET transaction_type = G_OPR_UPDATE
2622 WHERE transaction_type = G_OPR_SYNC
2623 AND attr_id IS NOT NULL
2624 AND process_status = G_PROCESS_RECORD
2625 AND ((G_SET_PROCESS_ID IS NULL)
2626 OR (set_process_id = G_SET_PROCESS_ID));
2627
2628 lv_smt := 6;
2629
2630 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 6');
2631
2632 /*Sets the Sync type to CREATE*/
2633 UPDATE ego_attr_group_cols_intf
2634 SET transaction_type = G_OPR_CREATE
2635 WHERE transaction_type = G_OPR_SYNC
2636 AND attr_id IS NULL
2637 AND process_status = G_PROCESS_RECORD
2638 AND ((G_SET_PROCESS_ID IS NULL)
2639 OR (set_process_id = G_SET_PROCESS_ID));
2640
2641 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Value_to_id_attr');
2642 EXCEPTION
2643 WHEN OTHERS THEN
2644 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_attr Exception when others'||SQLERRM);
2645
2646 x_return_status := G_RET_STS_UNEXP_ERROR;
2647
2648 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_attr - '||SQLERRM;
2649
2650 RETURN;
2651 END value_to_id_attr;
2652
2653 /*This procedure is used construct attribute group records.
2654 Used in the interface flow.
2655 x_return_status OUT NOCOPY parameter that returns the status*/
2656 PROCEDURE construct_attr_groups
2657 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2658 IS
2659 lv_smt NUMBER; --Statement counter
2660
2661 lv_proc VARCHAR2(30) := 'construct_attr_groups';
2662 BEGIN
2663 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering construct_attr_groups');
2664
2665 x_return_status := G_RET_STS_SUCCESS;
2666
2667 lv_smt := 1;
2668
2669 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2670
2671 /*Sets the Internal Attribute group name when the attribute group id is given*/
2672 UPDATE ego_attr_groups_interface eagi
2673 SET eagi.attr_group_name = (SELECT attr_group_name
2674 FROM ego_fnd_dsc_flx_ctx_ext
2675 WHERE application_id = g_ego_application_id
2676 AND descriptive_flexfield_name = eagi.attr_group_type
2677 AND attr_group_id = eagi.attr_group_id),
2678 last_updated_by = G_USER_ID,
2679 last_update_date = SYSDATE,
2680 last_update_login = G_LOGIN_ID
2681 WHERE eagi.transaction_type = G_OPR_UPDATE
2682 AND eagi.attr_group_id IS NOT NULL
2683 AND eagi.process_status = G_PROCESS_RECORD
2684 AND ((G_SET_PROCESS_ID IS NULL)
2685 OR (set_process_id = G_SET_PROCESS_ID));
2686
2687 lv_smt := 2;
2688
2689 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
2690
2691 /*Set default for MULTIROW as N*/
2692 UPDATE ego_attr_groups_interface
2693 SET multi_row = 'N',
2694 last_updated_by = G_USER_ID,
2695 last_update_date = SYSDATE,
2696 last_update_login = G_LOGIN_ID
2697 WHERE multi_row IS NULL
2698 AND transaction_type = G_OPR_CREATE
2699 AND process_status = G_PROCESS_RECORD
2700 AND ((G_SET_PROCESS_ID IS NULL)
2701 OR (set_process_id = G_SET_PROCESS_ID));
2702
2703 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit construct_attr_groups');
2704 EXCEPTION
2705 WHEN OTHERS THEN
2706 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'construct_attr_groups Exception when others'||SQLERRM);
2707
2708 x_return_status := G_RET_STS_UNEXP_ERROR;
2709
2710 x_return_msg := 'ego_ag_bulkload_pvt.construct_attr_groups - '||SQLERRM;
2711
2712 RETURN;
2713 END construct_attr_groups;
2714
2715 /*This procedure is used construct attribute group data level records.
2716 Used in the interface flow.
2717 x_return_status OUT NOCOPY parameter that returns the status*/
2718 PROCEDURE construct_ag_data_level
2719 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2720 IS
2721 lv_smt NUMBER;
2722
2723 lv_proc VARCHAR2(30) := 'construct_ag_data_level';
2724 BEGIN
2725 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering construct_ag_data_level');
2726
2727 x_return_status := G_RET_STS_SUCCESS;
2728
2729 lv_smt := 1;
2730
2731 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2732
2733 /*Sets the Internal Attribute group name when the attribute group id is given*/
2734 UPDATE ego_attr_groups_dl_interface eagdi
2735 SET eagdi.attr_group_name = (SELECT attr_group_name
2736 FROM ego_fnd_dsc_flx_ctx_ext
2737 WHERE application_id = g_ego_application_id
2738 AND descriptive_flexfield_name = eagdi.attr_group_type
2739 AND attr_group_id = eagdi.attr_group_id),
2740 last_updated_by = G_USER_ID,
2741 last_update_date = SYSDATE,
2742 last_update_login = G_LOGIN_ID
2743 WHERE eagdi.attr_group_id IS NOT NULL
2744 AND eagdi.process_status = G_PROCESS_RECORD
2745 AND ((G_SET_PROCESS_ID IS NULL)
2746 OR (set_process_id = G_SET_PROCESS_ID));
2747
2748 lv_smt := 2;
2749
2750 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
2751
2752 /*Set the View Privilege when the id is given*/
2753 UPDATE ego_attr_groups_dl_interface eagdl
2754 SET (view_privilege_name,user_view_priv_name) = (SELECT function_name, user_function_name
2755 FROM fnd_form_functions_vl
2756 WHERE function_id = eagdl.view_privilege_id),
2757 last_updated_by = G_USER_ID,
2758 last_update_date = SYSDATE,
2759 last_update_login = G_LOGIN_ID
2760 WHERE eagdl.view_privilege_id IS NOT NULL
2761 AND eagdl.process_status = G_PROCESS_RECORD
2762 AND ((G_SET_PROCESS_ID IS NULL)
2763 OR (set_process_id = G_SET_PROCESS_ID));
2764
2765 lv_smt := 3;
2766
2767 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
2768
2769 /*Set the Edit Privilege when the id is given*/
2770 UPDATE ego_attr_groups_dl_interface eagdl
2771 SET (edit_privilege_name,user_edit_priv_name) = (SELECT function_name, user_function_name
2772 FROM fnd_form_functions_vl
2773 WHERE function_id = eagdl.edit_privilege_id),
2774 last_updated_by = G_USER_ID,
2775 last_update_date = SYSDATE,
2776 last_update_login = G_LOGIN_ID
2777 WHERE eagdl.edit_privilege_id IS NOT NULL
2778 AND eagdl.process_status = G_PROCESS_RECORD
2779 AND ((G_SET_PROCESS_ID IS NULL)
2780 OR (set_process_id = G_SET_PROCESS_ID));
2781
2782 lv_smt := 4;
2783
2784 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
2785
2786 /*Set the defaulting when defaulting name is given*/
2787
2788 UPDATE ego_attr_groups_dl_interface eagdl
2789 SET eagdl.defaulting = (SELECT lookup_code
2790 FROM fnd_lookup_values
2791 WHERE lookup_type = 'EGO_EF_AG_DL_BEHAVIOR'
2792 AND meaning = eagdl.defaulting_name
2793 AND language = Userenv('LANG')),
2794 last_updated_by = G_USER_ID,
2795 last_update_date = SYSDATE,
2796 last_update_login = G_LOGIN_ID
2797 WHERE eagdl.defaulting IS NULL
2798 AND eagdl.defaulting_name IS NOT NULL
2799 AND eagdl.process_status = G_PROCESS_RECORD
2800 AND ((G_SET_PROCESS_ID IS NULL)
2801 OR (set_process_id = G_SET_PROCESS_ID));
2802
2803
2804 lv_smt := 5;
2805
2806 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
2807
2808 /*Set the defaulting name when defaulting is given*/
2809 UPDATE ego_attr_groups_dl_interface eagdl
2810 SET eagdl.defaulting_name = (SELECT meaning
2811 FROM fnd_lookup_values
2812 WHERE lookup_type = 'EGO_EF_AG_DL_BEHAVIOR'
2813 AND lookup_code = eagdl.defaulting
2814 AND language = Userenv('LANG')),
2815 last_updated_by = G_USER_ID,
2816 last_update_date = SYSDATE,
2817 last_update_login = G_LOGIN_ID
2818 WHERE eagdl.defaulting IS NOT NULL
2819 AND eagdl.process_status = G_PROCESS_RECORD
2820 AND ((G_SET_PROCESS_ID IS NULL)
2821 OR (set_process_id = G_SET_PROCESS_ID));
2822
2823 lv_smt := 6;
2824
2825 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 6');
2826
2827 /*Set the Data Level when the data level id is given*/
2828 UPDATE ego_attr_groups_dl_interface eagdi
2829 SET eagdi.data_level_name = (SELECT data_level_name
2830 FROM ego_data_level_b
2831 WHERE attr_group_type = eagdi.attr_group_type
2832 AND application_id = g_ego_application_id
2833 AND data_level_id = eagdi.data_level_id),
2834 last_updated_by = G_USER_ID,
2835 last_update_date = SYSDATE,
2836 last_update_login = G_LOGIN_ID
2837 WHERE eagdi.data_level_id IS NOT NULL
2838 AND eagdi.process_status = G_PROCESS_RECORD
2839 AND ((G_SET_PROCESS_ID IS NULL)
2840 OR (set_process_id = G_SET_PROCESS_ID));
2841
2842 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit construct_ag_data_level');
2843 EXCEPTION
2844 WHEN OTHERS THEN
2845 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'construct_ag_data_level Exception when others'||SQLERRM);
2846
2847 x_return_status := G_RET_STS_UNEXP_ERROR;
2848
2849 x_return_msg := 'ego_ag_bulkload_pvt.construct_ag_data_level - '||SQLERRM;
2850
2851 RETURN;
2852 END construct_ag_data_level;
2853
2854 /*This procedure is used construct attributes records.
2855 Used in the interface flow.
2856 x_return_status OUT NOCOPY parameter that returns the status*/
2857 PROCEDURE construct_attribute
2858 (x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2859 IS
2860 lv_smt NUMBER; --Statement counter
2861
2862 lv_proc VARCHAR2(30) := 'construct_attribute';
2863 BEGIN
2864 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering construct_attribute');
2865
2866 x_return_status := G_RET_STS_SUCCESS;
2867
2868 lv_smt := 1;
2869
2870 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
2871
2872 /*Sets the Internal Attribute group name when the Attribute group id is given*/
2873 UPDATE ego_attr_group_cols_intf eagci
2874 SET eagci.attr_group_name = (SELECT descriptive_flex_context_code
2875 FROM ego_fnd_dsc_flx_ctx_ext
2876 WHERE application_id = g_ego_application_id
2877 AND descriptive_flexfield_name = eagci.attr_group_type
2878 AND attr_group_id = eagci.attr_group_id),
2879 eagci.last_updated_by = G_USER_ID,
2880 eagci.last_update_date = SYSDATE,
2881 eagci.last_update_login = G_LOGIN_ID
2882 WHERE eagci.attr_group_id IS NOT NULL
2883 AND eagci.process_status = G_PROCESS_RECORD
2884 AND ((G_SET_PROCESS_ID IS NULL)
2885 OR (set_process_id = G_SET_PROCESS_ID));
2886
2887 lv_smt := 2;
2888
2889 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
2890
2891 /*Sets the Internal Attribute name when then Attr id is given*/
2892 UPDATE ego_attr_group_cols_intf eagci
2893 SET eagci.internal_name = (SELECT fdfcu.end_user_column_name
2894 FROM fnd_descr_flex_column_usages fdfcu,
2895 ego_fnd_df_col_usgs_ext efdcue
2896 WHERE fdfcu.application_id = efdcue.application_id
2897 AND fdfcu.descriptive_flexfield_name = efdcue.descriptive_flexfield_name
2898 AND fdfcu.descriptive_flex_context_code = efdcue.descriptive_flex_context_code
2899 AND fdfcu.application_column_name = efdcue.application_column_name
2900 AND fdfcu.application_id = g_ego_application_id
2901 AND fdfcu.descriptive_flexfield_name = eagci.attr_group_type
2902 AND fdfcu.descriptive_flex_context_code = eagci.attr_group_name
2903 AND efdcue.attr_id = eagci.attr_id)
2904 WHERE eagci.attr_id IS NOT NULL
2905 AND eagci.transaction_type IN (G_OPR_UPDATE,G_OPR_SYNC)
2906 AND eagci.process_status = G_PROCESS_RECORD
2907 AND ((G_SET_PROCESS_ID IS NULL)
2908 OR (set_process_id = G_SET_PROCESS_ID));
2909
2910 lv_smt := 3;
2911
2912 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
2913
2914 /*Sets the value set name when the value set id is given*/
2915 UPDATE ego_attr_group_cols_intf eagci
2916 SET eagci.flex_value_set_name = (SELECT ffvs.flex_value_set_name
2917 FROM fnd_flex_value_sets ffvs
2918 WHERE ffvs.flex_value_set_id = eagci.flex_value_set_id)
2919 WHERE eagci.flex_value_set_id IS NOT NULL
2920 AND eagci.process_status = G_PROCESS_RECORD
2921 AND ((G_SET_PROCESS_ID IS NULL)
2922 OR (set_process_id = G_SET_PROCESS_ID));
2923
2924 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit construct_attribute');
2925 EXCEPTION
2926 WHEN OTHERS THEN
2927 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'construct_attribute Exception when others'||SQLERRM);
2928
2929 x_return_status := G_RET_STS_UNEXP_ERROR;
2930
2931 x_return_msg := 'ego_ag_bulkload_pvt.construct_attribute - '||SQLERRM;
2932
2933 RETURN;
2934 END construct_attribute;
2935
2936 /*This is the main procedure called to import attribute groups and data levels.
2937 Used in the API flow.
2938 p_ag_tbl IN OUT NOCOPY Attribute groups plsql table
2939 p_agdl_tbl IN OUT NOCOPY Data level plsql table
2940 p_commit IN Pass true to commit within the API
2941 x_return_status OUT NOCOPY parameter that returns the status*/
2942 PROCEDURE process_attr_groups
2943 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
2944 p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
2945 p_commit IN BOOLEAN DEFAULT true,
2946 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
2947 IS
2948
2949 lv_proc VARCHAR2(30) := 'process_attr_groups';
2950 BEGIN
2951 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering process_attr_groups');
2952
2953 x_return_status := G_RET_STS_SUCCESS;
2954
2955 error_handler.Set_bo_identifier(G_BO_IDENTIFIER_AG);
2956
2957
2958
2959 G_COMMIT := p_commit;
2960
2961 G_FLOW_TYPE := g_ego_md_api;
2962
2963 /*Sets the EGO application ID*/
2964 SELECT application_id
2965 INTO g_ego_application_id
2966 FROM fnd_application
2967 WHERE application_short_name = 'EGO';
2968
2969 /*Calls Additional Validations for AG and DL*/
2970 Additional_agdl_validations(p_ag_tbl,p_agdl_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
2971
2972 IF (p_ag_tbl.COUNT <> 0) THEN
2973 /*Send the AG table for processing*/
2974 Process_ag(p_ag_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
2975 END IF;
2976
2977 IF (p_agdl_tbl.COUNT <> 0) THEN
2978 /*Send the DL table for processing*/
2979 Process_dl(p_agdl_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
2980 END IF;
2981
2982 delete_ag_none_dl(x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
2983
2984 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit process_attr_groups');
2985 EXCEPTION
2986 WHEN OTHERS THEN
2987 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'process_attr_groups Exception when others'||SQLERRM);
2988
2989 x_return_status := G_RET_STS_UNEXP_ERROR;
2990
2991 x_return_msg := 'ego_ag_bulkload_pvt.process_attr_groups - '||SQLERRM;
2992
2993 RETURN;
2994 END process_attr_groups;
2995
2996 /*This procedure is used to do final processing of the attribute groups.
2997 Used in the interface and API flow.
2998 p_ag_tbl IN OUT NOCOPY Attribute groups plsql table
2999 x_return_status OUT NOCOPY parameter that returns the status*/
3000 PROCEDURE Process_ag
3001 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
3002 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3003 IS
3004 x_ag_id NUMBER;
3005 x_errorcode NUMBER;
3006 x_msg_count NUMBER;
3007 x_msg_data VARCHAR2(2000);
3008
3009 lv_proc VARCHAR2(30) := 'Process_ag';
3010 BEGIN
3011 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Process_ag');
3012
3013 x_return_status := G_RET_STS_SUCCESS;
3014
3015 Common_ag_validations(p_ag_tbl => p_ag_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3016
3017 handle_null_ag(p_ag_tbl => p_ag_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3018
3019 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
3020 IF (P_ag_tbl(i).process_status = G_PROCESS_RECORD
3021 AND P_ag_tbl(i).transaction_type = 'CREATE') THEN
3022 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Create AG');
3023
3024 ego_ext_fwk_pub.Create_attribute_group(p_api_version => 1.0
3025 ,p_application_id => g_ego_application_id
3026 ,p_attr_group_type => P_ag_tbl(i).attr_group_type
3027 ,p_internal_name => P_ag_tbl(i).attr_group_name
3028 ,p_display_name => P_ag_tbl(i).attr_group_disp_name
3029 ,p_attr_group_desc => P_ag_tbl(i).description
3030 ,p_security_type => 'P' -- we always use PUBLIC for now
3031 ,p_multi_row_attrib_group => P_ag_tbl(i).multi_row
3032 ,p_variant_attrib_group => P_ag_tbl(i).variant
3033 ,p_num_of_cols => P_ag_tbl(i).num_of_cols
3034 ,p_num_of_rows => P_ag_tbl(i).num_of_rows
3035 ,p_owning_company_id => -100
3036 ,p_region_code => NULL
3037 ,p_view_privilege_id => NULL
3038 ,p_edit_privilege_id => NULL
3039 ,p_business_event_flag => NULL
3040 ,p_pre_business_event_flag => NULL
3041 ,p_owner => G_USER_ID
3042 ,p_lud => SYSDATE
3043 ,p_init_msg_list => fnd_api.g_false
3044 ,p_commit => fnd_api.g_false
3045 ,x_attr_group_id => x_ag_id
3046 ,x_return_status => x_return_status
3047 ,x_errorcode => x_errorcode
3048 ,x_msg_count => x_msg_count
3049 ,x_msg_data => x_msg_data);
3050
3051 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3052 P_ag_tbl(i).attr_group_id := x_ag_id;
3053
3054 P_ag_tbl(i).process_status := G_SUCCESS_RECORD;
3055 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3056 x_return_msg := x_msg_data;
3057 RETURN;
3058 ELSE
3059 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Error in creating AG');
3060
3061 P_ag_tbl(i).process_status := G_ERROR_RECORD;
3062
3063 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3064 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_AG;
3065 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3066 G_TOKEN_TABLE(2).Token_Value := P_ag_tbl(i).transaction_type;
3067 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3068 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3069 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3070 G_TOKEN_TABLE(4).Token_Value := 'Create_attribute_group';
3071
3072 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3073 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3074 p_row_identifier => P_ag_tbl(i).transaction_id,
3075 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3076
3077 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3078 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3079 p_row_identifier => P_ag_tbl(i).transaction_id,
3080 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3081
3082
3083 G_TOKEN_TABLE.DELETE;
3084 END IF;
3085 ELSIF (P_ag_tbl(i).process_status = G_PROCESS_RECORD
3086 AND P_ag_tbl(i).transaction_type = 'UPDATE') THEN
3087 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Update AG');
3088
3089 ego_ext_fwk_pub.Update_attribute_group(p_api_version => 1.0
3090 ,p_application_id => g_ego_application_id
3091 ,p_attr_group_type => P_ag_tbl(i).attr_group_type
3092 ,p_internal_name => P_ag_tbl(i).attr_group_name
3093 ,p_display_name => P_ag_tbl(i).attr_group_disp_name
3094 ,p_attr_group_desc => P_ag_tbl(i).description
3095 ,p_security_type => 'P' -- we always use PUBLIC for now
3096 /*Changes made for bug 9719202*/
3097 ,p_multi_row_attrib_group => null--P_ag_tbl(i).multi_row
3098 ,p_variant_attrib_group => null--P_ag_tbl(i).variant
3099 ,p_num_of_cols => P_ag_tbl(i).num_of_cols
3100 ,p_num_of_rows => P_ag_tbl(i).num_of_rows
3101 /*End of comment for bug 9719202*/
3102 ,p_owning_company_id => -100
3103 ,p_owner => G_USER_ID
3104 ,p_commit => fnd_api.g_false
3105 ,x_return_status => x_return_status
3106 ,x_errorcode => x_errorcode
3107 ,x_msg_count => x_msg_count
3108 ,x_msg_data => x_msg_data);
3109
3110 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3111 P_ag_tbl(i).process_status := g_success_record;
3112 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3113 x_return_msg := x_msg_data;
3114 RETURN;
3115 ELSE
3116 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Error in updating AG');
3117
3118 P_ag_tbl(i).process_status := G_ERROR_RECORD;
3119
3120 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3121 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_AG;
3122 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3123 G_TOKEN_TABLE(2).Token_Value := P_ag_tbl(i).transaction_type;
3124 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3125 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3126 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3127 G_TOKEN_TABLE(4).Token_Value := 'Update_attribute_group';
3128
3129 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3130 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3131 p_row_identifier => P_ag_tbl(i).transaction_id,
3132 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3133
3134 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3135 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3136 p_row_identifier => P_ag_tbl(i).transaction_id,
3137 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3138
3139 G_TOKEN_TABLE.DELETE;
3140 END IF;
3141 ELSIF (P_ag_tbl(i).process_status = G_PROCESS_RECORD
3142 AND P_ag_tbl(i).transaction_type = 'DELETE') THEN
3143 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Delete AG');
3144
3145 ego_ext_fwk_pub.Delete_attribute_group(p_api_version => 1.0
3146 ,p_application_id => g_ego_application_id
3147 ,p_attr_group_type => P_ag_tbl(i).attr_group_type
3148 ,p_attr_group_name => P_ag_tbl(i).attr_group_name
3149 ,p_commit => fnd_api.g_false
3150 ,x_return_status => x_return_status
3151 ,x_errorcode => x_errorcode
3152 ,x_msg_count => x_msg_count
3153 ,x_msg_data => x_msg_data);
3154
3155 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3156 P_ag_tbl(i).process_status := g_success_record;
3157 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3158 x_return_msg := x_msg_data;
3159 RETURN;
3160 ELSE
3161 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Error in deleting AG');
3162
3163 P_ag_tbl(i).process_status := G_ERROR_RECORD;
3164
3165 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3166 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_AG;
3167 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3168 G_TOKEN_TABLE(2).Token_Value := P_ag_tbl(i).transaction_type;
3169 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3170 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3171 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3172 G_TOKEN_TABLE(4).Token_Value := 'Delete_attribute_group';
3173
3174 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3175 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3176 p_row_identifier => P_ag_tbl(i).transaction_id,
3177 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3178
3179 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3180 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3181 p_row_identifier => P_ag_tbl(i).transaction_id,
3182 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3183
3184 G_TOKEN_TABLE.DELETE;
3185 END IF;
3186 END IF;
3187 END LOOP;
3188
3189 IF (G_COMMIT = true AND G_FLOW_TYPE = G_EGO_MD_API) THEN
3190 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'COMMIT issed after AG Processing');
3191
3192 COMMIT;
3193 END IF;
3194
3195 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Process_ag');
3196 EXCEPTION
3197 WHEN OTHERS THEN
3198 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Process_ag Exception when others'||SQLERRM);
3199
3200 x_return_status := G_RET_STS_UNEXP_ERROR;
3201
3202 x_return_msg := 'ego_ag_bulkload_pvt.Process_ag - '||SQLERRM;
3203
3204 RETURN;
3205 END Process_ag;
3206
3207 /*This procedure is used to do final processing of the attribute group data level.
3208 Used in the interface and API flow.
3209 p_agdl_tbl IN OUT NOCOPY Attribute group data level plsql table
3210 x_return_status OUT NOCOPY parameter that returns the status*/
3211 PROCEDURE Process_dl
3212 (p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
3213 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3214 IS
3215 x_msg_count NUMBER;
3216 x_msg_data VARCHAR2(2000);
3217 lv_count NUMBER := 0;
3218 lv_proc VARCHAR2(30) := 'Process_dl';
3219 BEGIN
3220 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Process_dl');
3221
3222 x_return_status := G_RET_STS_SUCCESS;
3223
3224 common_dl_validations(p_agdl_tbl => p_agdl_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3225
3226 handle_null_dl(p_agdl_tbl => p_agdl_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3227
3228 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
3229 IF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD AND P_agdl_tbl(i).transaction_type IN (G_OPR_CREATE,G_OPR_UPDATE)) THEN
3230
3231 /*Check for invalid combination of business entity*/
3232 IF (p_agdl_tbl(i).data_level_name = G_DL_ITEM_LEVEL) THEN
3233 DECLARE
3234 lv_count NUMBER := 0;
3235 BEGIN
3236 SELECT count(1) INTO lv_count
3237 FROM EGO_ATTR_GROUP_DL eagdl
3238 WHERE eagdl.attr_group_id = p_agdl_tbl(i).attr_group_id
3239 AND eagdl.data_level_id IN (SELECT data_level_id FROM ego_data_level_b
3240 WHERE data_level_name IN (G_DL_ITEM_REV_LEVEL,G_DL_ITEM_ORG)
3241 AND attr_group_type = G_EGO_ITEMMGMT_GROUP
3242 AND application_id = G_EGO_APPLICATION_ID
3243 );
3244
3245 IF (lv_count > 0) THEN
3246 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
3247
3248 x_return_status := G_RET_STS_ERROR;
3249
3250 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id
3251 ||' (AG,DL) = ('||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
3252 ||'The combination of Business Entities choosen is Invalid for Item Level.');
3253
3254 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_INVALID_COMB',p_application_id => 'EGO',
3255 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3256 p_row_identifier => p_agdl_tbl(i).transaction_id,
3257 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
3258 END IF;
3259 END;
3260 ELSIF (p_agdl_tbl(i).data_level_name = G_DL_ITEM_REV_LEVEL) THEN
3261 DECLARE
3262 lv_count NUMBER := 0;
3263 BEGIN
3264 SELECT count(1) INTO lv_count
3265 FROM EGO_ATTR_GROUP_DL eagdl
3266 WHERE eagdl.attr_group_id = p_agdl_tbl(i).attr_group_id
3267 AND eagdl.data_level_id IN (SELECT data_level_id FROM ego_data_level_b
3268 WHERE data_level_name IN (G_DL_ITEM_LEVEL,G_DL_ITEM_ORG)
3269 AND attr_group_type = G_EGO_ITEMMGMT_GROUP
3270 AND application_id = G_EGO_APPLICATION_ID
3271 );
3272
3273 IF (lv_count > 0) THEN
3274 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
3275
3276 x_return_status := G_RET_STS_ERROR;
3277
3278 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id
3279 ||' (AG,DL) = ('||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
3280 ||'The combination of Business Entities choosen is Invalid');
3281
3282 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_INVALID_COMB',p_application_id => 'EGO',
3283 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3284 p_row_identifier => p_agdl_tbl(i).transaction_id,
3285 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
3286 END IF;
3287 END;
3288 ELSIF (p_agdl_tbl(i).data_level_name = G_DL_ITEM_ORG) THEN
3289 DECLARE
3290 lv_count NUMBER := 0;
3291 BEGIN
3292 SELECT count(1) INTO lv_count
3293 FROM EGO_ATTR_GROUP_DL eagdl
3294 WHERE eagdl.attr_group_id = p_agdl_tbl(i).attr_group_id
3295 AND eagdl.data_level_id IN (SELECT data_level_id FROM ego_data_level_b
3296 WHERE data_level_name IN (G_DL_ITEM_LEVEL,G_DL_ITEM_REV_LEVEL)
3297 AND attr_group_type = G_EGO_ITEMMGMT_GROUP
3298 AND application_id = G_EGO_APPLICATION_ID
3299 );
3300
3301 IF (lv_count > 0) THEN
3302 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
3303
3304 x_return_status := G_RET_STS_ERROR;
3305
3306 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id
3307 ||' (AG,DL) = ('||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
3308 ||'The combination of Business Entities choosen is Invalid.');
3309
3310 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_INVALID_COMB',p_application_id => 'EGO',
3311 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3312 p_row_identifier => p_agdl_tbl(i).transaction_id,
3313 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
3314 END IF;
3315 END;
3316 END IF;
3317
3318
3319 /*Check to see if the Business entity is already enabled*/
3320 SELECT count(1) INTO lv_count
3321 FROM EGO_ATTR_GROUP_DL
3322 WHERE attr_group_id = P_agdl_tbl(i).attr_group_id
3323 AND data_level_id = P_agdl_tbl(i).data_level_id;
3324
3325 IF (lv_count > 0 AND P_agdl_tbl(i).transaction_type = G_OPR_CREATE) THEN
3326 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
3327
3328 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
3329 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
3330 ||'Business entity is already enabled for the attribute group.');
3331
3332 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_AG_EXISTS',p_application_id => 'EGO',
3333 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3334 p_row_identifier => P_agdl_tbl(i).transaction_id,
3335 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
3336 ELSIF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD) THEN
3337 ego_ext_fwk_pub.Sync_dl_assoc(p_api_version => 1.0,
3338 p_init_msg_list => fnd_api.g_false,
3339 p_commit => fnd_api.g_false,
3340 p_transaction_type => P_agdl_tbl(i).transaction_type,
3341 p_attr_group_id => P_agdl_tbl(i).attr_group_id,
3342 p_application_id => g_ego_application_id,
3343 p_attr_group_type => P_agdl_tbl(i).attr_group_type,
3344 p_attr_group_name => P_agdl_tbl(i).attr_group_name,
3345 p_data_level_id => P_agdl_tbl(i).data_level_id,
3346 p_data_level_name => P_agdl_tbl(i).data_level_name,
3347 p_defaulting => P_agdl_tbl(i).defaulting,
3348 p_defaulting_name => P_agdl_tbl(i).defaulting_name,
3349 p_view_priv_id => P_agdl_tbl(i).view_privilege_id,
3350 p_view_priv_name => P_agdl_tbl(i).view_privilege_name,
3351 p_user_view_priv_name => P_agdl_tbl(i).user_view_priv_name,
3352 p_edit_priv_id => P_agdl_tbl(i).edit_privilege_id,
3353 p_edit_priv_name => P_agdl_tbl(i).edit_privilege_name,
3354 p_user_edit_priv_name => P_agdl_tbl(i).user_edit_priv_name,
3355 p_raise_pre_event => P_agdl_tbl(i).pre_business_event_flag,
3356 p_raise_post_event => P_agdl_tbl(i).business_event_flag,
3357 p_last_updated_by => G_USER_ID,
3358 p_last_update_date => SYSDATE,
3359 x_return_status => x_return_status,
3360 x_msg_count => x_msg_count,
3361 x_msg_data => x_msg_data);
3362
3363 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3364 P_agdl_tbl(i).process_status := g_success_record;
3365 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3366 x_return_msg := x_msg_data;
3367 RETURN;
3368 ELSE
3369
3370 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Error in sync of DL - ' ||x_msg_data);
3371
3372 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
3373
3374 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3375 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_DL;
3376 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3377 G_TOKEN_TABLE(2).Token_Value := P_agdl_tbl(i).transaction_type;
3378 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3379 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3380 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3381 G_TOKEN_TABLE(4).Token_Value := 'Sync_dl_assoc';
3382
3383 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3384 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3385 p_row_identifier => P_agdl_tbl(i).transaction_id,
3386 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
3387
3388 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3389 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3390 p_row_identifier => P_agdl_tbl(i).transaction_id,
3391 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
3392
3393 G_TOKEN_TABLE.DELETE;
3394 END IF;
3395 END IF;
3396 ELSIF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD AND P_agdl_tbl(i).transaction_type = G_OPR_DELETE) THEN
3397 BEGIN
3398 DELETE FROM EGO_ATTR_GROUP_DL
3399 WHERE attr_group_id = P_agdl_tbl(i).attr_group_id
3400 AND data_level_id = P_agdl_tbl(i).data_level_id;
3401
3402 EXCEPTION
3403 WHEN OTHERS THEN
3404 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exception when others');
3405
3406 x_return_status := G_RET_STS_UNEXP_ERROR;
3407
3408 x_return_msg := 'ego_ag_bulkload_pvt.Process_dl - '||SQLERRM;
3409 END;
3410 END IF;
3411
3412 lv_count := 0;
3413 END LOOP;
3414
3415 IF (G_COMMIT = true AND G_FLOW_TYPE = G_EGO_MD_API) THEN
3416 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'COMMIT issued for DL');
3417
3418 COMMIT;
3419 END IF;
3420
3421 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Process_dl');
3422 EXCEPTION
3423 WHEN OTHERS THEN
3424 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Process_dl Exception when others'||SQLERRM);
3425
3426 x_return_status := G_RET_STS_UNEXP_ERROR;
3427
3428 x_return_msg := 'ego_ag_bulkload_pvt.Process_dl - '||SQLERRM;
3429
3430 RETURN;
3431 END process_dl;
3432
3433 /*This is the main procedure called to import attributes.
3434 Used in the API flow.
3435 p_attr_tbl IN OUT NOCOPY Attributes plsql table
3436 p_commit IN Pass true to commit within the API
3437 x_return_status OUT NOCOPY parameter that returns the status*/
3438 PROCEDURE process_attribute
3439 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
3440 p_commit IN BOOLEAN DEFAULT true,
3441 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3442 IS
3443
3444 lv_proc VARCHAR2(30) := 'process_attribute';
3445 BEGIN
3446 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering process_attribute');
3447
3448 x_return_status := G_RET_STS_SUCCESS;
3449
3450 error_handler.Set_bo_identifier(G_BO_IDENTIFIER_AG);
3451
3452 IF(p_attr_tbl.COUNT <> 0) THEN
3453
3454 G_COMMIT := p_commit;
3455
3456 G_FLOW_TYPE := g_ego_md_api;
3457
3458 /*Sets the EGO application ID*/
3459 SELECT application_id
3460 INTO g_ego_application_id
3461 FROM fnd_application
3462 WHERE application_short_name = 'EGO';
3463
3464 /*Calls Additional Validations*/
3465 Additional_attr_validations(p_attr_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3466
3467 /*Send the AG table for processing*/
3468 Process_attr(p_attr_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3469 END IF;
3470 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit process_attribute');
3471 EXCEPTION
3472 WHEN OTHERS THEN
3473 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'process_attribute Exception when others'||SQLERRM);
3474
3475 x_return_status := G_RET_STS_UNEXP_ERROR;
3476
3477 x_return_msg := 'ego_ag_bulkload_pvt.process_attribute - '||SQLERRM;
3478
3479 RETURN;
3480 END process_attribute;
3481
3482 /*This procedure is used to do final processing of the attributes.
3483 Used in the interface and API flow.
3484 p_attr_tbl IN OUT NOCOPY Attributes plsql table
3485 x_return_status OUT NOCOPY parameter that returns the status*/
3486 PROCEDURE Process_attr
3487 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
3488 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3489 IS
3490 x_errorcode NUMBER;
3491 x_msg_count NUMBER;
3492 x_msg_data VARCHAR2(2000);
3493
3494 lv_proc VARCHAR2(30) := 'Process_attr';
3495 BEGIN
3496 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Process_attr');
3497
3498 x_return_status := G_RET_STS_SUCCESS;
3499
3500 common_attr_validations(p_attr_tbl => p_attr_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3501 handle_null_attr(p_attr_tbl => p_attr_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3502
3503 FOR i IN p_attr_tbl.FIRST.. p_attr_tbl.LAST LOOP
3504 IF (P_attr_tbl(i).process_status = G_PROCESS_RECORD
3505 AND P_attr_tbl(i).transaction_type = 'CREATE') THEN
3506 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Create Attribute');
3507
3508 ego_ext_fwk_pub.Create_attribute(p_api_version => 1.0
3509 ,p_application_id => P_attr_tbl(i).application_id
3510 ,p_attr_group_type => P_attr_tbl(i).attr_group_type
3511 ,p_attr_group_name => P_attr_tbl(i).attr_group_name
3512 ,p_internal_name => P_attr_tbl(i).internal_name
3513 ,p_display_name => P_attr_tbl(i).display_name
3514 ,p_description => P_attr_tbl(i).description
3515 ,p_sequence => P_attr_tbl(i).SEQUENCE
3516 ,p_data_type => P_attr_tbl(i).data_type
3517 ,p_required => P_attr_tbl(i).required_flag
3518 ,p_searchable => P_attr_tbl(i).search_flag
3519 ,p_column => P_attr_tbl(i).application_column_name
3520 ,p_is_column_indexed => NULL
3521 ,p_value_set_id => P_attr_tbl(i).flex_value_set_id
3522 ,p_info_1 => P_attr_tbl(i).info_1
3523 ,p_default_value => P_attr_tbl(i).default_value
3524 ,p_unique_key_flag => P_attr_tbl(i).unique_key_flag
3525 ,p_enabled => P_attr_tbl(i).enabled_flag
3526 ,p_display => P_attr_tbl(i).display_code
3527 ,p_uom_class => P_attr_tbl(i).uom_class
3528 ,p_owner => G_USER_ID
3529 ,p_lud => SYSDATE
3530 ,p_init_msg_list => NULL
3531 ,p_commit => fnd_api.g_false
3532 ,x_return_status => x_return_status
3533 ,x_errorcode => x_errorcode
3534 ,x_msg_count => x_msg_count
3535 ,x_msg_data => x_msg_data);
3536
3537 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3538 P_attr_tbl(i).process_status := g_success_record;
3539 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3540 x_return_msg := x_msg_data;
3541 RETURN;
3542 ELSE
3543 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Error in creating attribute');
3544
3545 P_attr_tbl(i).process_status := G_ERROR_RECORD;
3546
3547 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3548 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_ATTR;
3549 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3550 G_TOKEN_TABLE(2).Token_Value := P_attr_tbl(i).transaction_type;
3551 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3552 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3553 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3554 G_TOKEN_TABLE(4).Token_Value := 'Create_attribute';
3555
3556 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3557 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3558 p_row_identifier => P_attr_tbl(i).transaction_id,
3559 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3560
3561 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3562 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3563 p_row_identifier => P_attr_tbl(i).transaction_id,
3564 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3565
3566 G_TOKEN_TABLE.DELETE;
3567 END IF;
3568 ELSIF (P_attr_tbl(i).process_status = G_PROCESS_RECORD
3569 AND P_attr_tbl(i).transaction_type = 'UPDATE') THEN
3570 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Update Attribute');
3571
3572 ego_ext_fwk_pub.Update_attribute(p_api_version => 1.0
3573 ,p_application_id => P_attr_tbl(i).application_id
3574 ,p_attr_group_type => P_attr_tbl(i).attr_group_type
3575 ,p_attr_group_name => P_attr_tbl(i).attr_group_name
3576 ,p_internal_name => P_attr_tbl(i).internal_name
3577 ,p_display_name => P_attr_tbl(i).display_name
3578 ,p_description => P_attr_tbl(i).description
3579 ,p_sequence => P_attr_tbl(i).SEQUENCE
3580 ,p_required => P_attr_tbl(i).required_flag
3581 ,p_searchable => P_attr_tbl(i).search_flag
3582 ,p_column => P_attr_tbl(i).application_column_name
3583 ,p_value_set_id => P_attr_tbl(i).flex_value_set_id
3584 ,p_info_1 => P_attr_tbl(i).info_1
3585 ,p_default_value => P_attr_tbl(i).default_value
3586 ,p_unique_key_flag => P_attr_tbl(i).unique_key_flag
3587 ,p_enabled => P_attr_tbl(i).enabled_flag
3588 ,p_display => P_attr_tbl(i).display_code
3589 ,p_owner => G_USER_ID
3590 ,p_lud => SYSDATE
3591 ,p_init_msg_list => NULL
3592 ,p_commit => fnd_api.g_false
3593 ,p_is_nls_mode => NULL
3594 ,p_uom_class => P_attr_tbl(i).uom_class
3595 ,x_return_status => x_return_status
3596 ,x_errorcode => x_errorcode
3597 ,x_msg_count => x_msg_count
3598 ,x_msg_data => x_msg_data);
3599
3600 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3601 P_attr_tbl(i).process_status := g_success_record;
3602 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3603 x_return_msg := x_msg_data;
3604 RETURN;
3605 ELSE
3606 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Error in updating attribute');
3607
3608 P_attr_tbl(i).process_status := G_ERROR_RECORD;
3609
3610 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3611 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_ATTR;
3612 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3613 G_TOKEN_TABLE(2).Token_Value := P_attr_tbl(i).transaction_type;
3614 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3615 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3616 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3617 G_TOKEN_TABLE(4).Token_Value := 'Update_attribute';
3618
3619 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3620 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3621 p_row_identifier => P_attr_tbl(i).transaction_id,
3622 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3623
3624 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3625 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3626 p_row_identifier => P_attr_tbl(i).transaction_id,
3627 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3628
3629 G_TOKEN_TABLE.DELETE;
3630
3631 END IF;
3632 ELSIF (P_attr_tbl(i).process_status = G_PROCESS_RECORD
3633 AND P_attr_tbl(i).transaction_type = 'DELETE') THEN
3634 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Delete Attribute');
3635
3636 ego_ext_fwk_pub.Delete_attribute(p_api_version => 1.0
3637 ,p_application_id => P_attr_tbl(i).application_id
3638 ,p_attr_group_type => P_attr_tbl(i).attr_group_type
3639 ,p_attr_group_name => P_attr_tbl(i).attr_group_name
3640 ,p_attr_name => P_attr_tbl(i).internal_name
3641 ,p_init_msg_list => NULL
3642 ,p_commit => fnd_api.g_false
3643 ,x_return_status => x_return_status
3644 ,x_errorcode => x_errorcode
3645 ,x_msg_count => x_msg_count
3646 ,x_msg_data => x_msg_data);
3647
3648 IF (x_return_status = G_RET_STS_SUCCESS) THEN
3649 P_attr_tbl(i).process_status := g_success_record;
3650 ELSIF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
3651 x_return_msg := x_msg_data;
3652 RETURN;
3653 ELSE
3654 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Error is deleting attribute');
3655
3656 P_attr_tbl(i).process_status := G_ERROR_RECORD;
3657
3658 G_TOKEN_TABLE(1).Token_Name := 'Entity_Name';
3659 G_TOKEN_TABLE(1).Token_Value := G_ENTITY_ATTR;
3660 G_TOKEN_TABLE(2).Token_Name := 'Transaction_Type';
3661 G_TOKEN_TABLE(2).Token_Value := P_attr_tbl(i).transaction_type;
3662 G_TOKEN_TABLE(3).Token_Name := 'Package_Name';
3663 G_TOKEN_TABLE(3).Token_Value := 'ego_ext_fwk_pub';
3664 G_TOKEN_TABLE(4).Token_Name := 'Proc_Name';
3665 G_TOKEN_TABLE(4).Token_Value := 'Delete_attribute';
3666
3667 error_handler.Add_error_message(p_message_name => 'EGO_ENTITY_API_FAILED',p_application_id => 'EGO',
3668 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3669 p_row_identifier => P_attr_tbl(i).transaction_id,
3670 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3671
3672 error_handler.Add_error_message(p_message_text => x_msg_data,p_application_id => 'EGO',
3673 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3674 p_row_identifier => P_attr_tbl(i).transaction_id,
3675 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
3676
3677 G_TOKEN_TABLE.DELETE;
3678 END IF;
3679 END IF;
3680 END LOOP;
3681
3682 IF (G_COMMIT = true AND G_FLOW_TYPE = G_EGO_MD_API) THEN
3683 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'COMMIT issed after Attribute Processing');
3684
3685 COMMIT;
3686 END IF;
3687
3688 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Process_attr');
3689 EXCEPTION
3690 WHEN OTHERS THEN
3691 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Process_attr Exception when others'||SQLERRM);
3692
3693 x_return_status := G_RET_STS_UNEXP_ERROR;
3694
3695 x_return_msg := 'ego_ag_bulkload_pvt.Process_attr - '||SQLERRM;
3696
3697 RETURN;
3698 END Process_attr;
3699
3700 /*This is the main procedure called to import attribute groups, data level and attributes
3701 Used in the Interface flow.
3702 p_set_process_id IN Set_Process_ID
3703 x_return_status OUT NOCOPY parameter that returns the status*/
3704 PROCEDURE import_ag_intf
3705 (p_set_process_id IN VARCHAR2,
3706 x_return_status OUT NOCOPY VARCHAR2,
3707 x_return_msg OUT NOCOPY VARCHAR2)
3708 IS
3709 /*Cursor to load plsql table from ego_attr_groups_interface table*/
3710 CURSOR c_ag IS
3711 SELECT *
3712 FROM ego_attr_groups_interface
3713 WHERE process_status = G_PROCESS_RECORD
3714 AND (p_set_process_id IS NULL OR set_process_id = p_set_process_id);
3715 /*Cursor to load plsql table from ego_attr_groups_dl_interface table*/
3716 CURSOR c_agdl IS
3717 SELECT *
3718 FROM ego_attr_groups_dl_interface
3719 WHERE process_status = G_PROCESS_RECORD
3720 AND (p_set_process_id IS NULL OR set_process_id = p_set_process_id);
3721 /*Cursor to load plsql table from ego_attr_group_cols_intf table*/
3722 CURSOR c_attr IS
3723 SELECT *
3724 FROM ego_attr_group_cols_intf
3725 WHERE process_status = G_PROCESS_RECORD
3726 AND (p_set_process_id IS NULL OR set_process_id = p_set_process_id);
3727
3728 l_ego_ag_tbl ego_metadata_pub.ego_attr_groups_tbl;
3729 l_ego_agdl_tbl ego_metadata_pub.ego_attr_groups_dl_tbl;
3730 l_ego_attr_tbl ego_metadata_pub.ego_attr_group_cols_tbl;
3731
3732 lv_proc VARCHAR2(30) := 'import_ag_intf';
3733 BEGIN
3734 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entered import_ag_intf.');
3735
3736 x_return_status := G_RET_STS_SUCCESS;
3737
3738 error_handler.Set_bo_identifier(G_BO_IDENTIFIER_AG);
3739
3740 G_FLOW_TYPE := G_EGO_MD_INTF;
3741
3742 G_SET_PROCESS_ID := p_set_process_id;
3743
3744 Initialize(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3745
3746 IF (G_AG_COUNT <> 0 OR G_DL_COUNT <> 0 OR G_ATTR_COUNT <> 0) THEN
3747 Validate_transaction_type(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3748 IF (G_AG_COUNT <> 0 OR G_DL_COUNT <> 0) THEN
3749 bulk_validate_attr_groups(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3750
3751 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Load and process AG');
3752
3753 /*Load PL/SQL tables for AG and then call processing method*/
3754 OPEN c_ag;
3755
3756 LOOP
3757 FETCH c_ag BULK COLLECT INTO l_ego_ag_tbl LIMIT 2000;
3758
3759 IF (l_ego_ag_tbl.COUNT <> 0) THEN
3760
3761 Process_ag(p_ag_tbl => l_ego_ag_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3762
3763 update_intf_attr_groups(p_ag_tbl => l_ego_ag_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3764
3765 COMMIT;
3766 END IF;
3767 EXIT WHEN l_ego_ag_tbl.COUNT < 2000;
3768 END LOOP;
3769
3770 CLOSE c_ag;
3771
3772 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'AG processed');
3773
3774 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Load and process DL');
3775
3776 /*Load PL/SQL tables for DL and then call processing method*/
3777 OPEN c_agdl;
3778
3779 LOOP
3780 FETCH c_agdl BULK COLLECT INTO l_ego_agdl_tbl LIMIT 2000;
3781
3782 IF(l_ego_agdl_tbl.COUNT <> 0) THEN
3783 Process_dl(p_agdl_tbl => l_ego_agdl_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3784
3785 update_intf_data_level(p_agdl_tbl => l_ego_agdl_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3786
3787 COMMIT;
3788 END IF;
3789 EXIT WHEN l_ego_agdl_tbl.COUNT < 2000;
3790 END LOOP;
3791
3792 CLOSE c_agdl;
3793
3794 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'DL Processed');
3795
3796 delete_ag_none_dl(x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3797 END IF;
3798
3799 IF (G_ATTR_COUNT <> 0) THEN
3800 bulk_validate_attribute(x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3801
3802 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Load and process Attributes');
3803
3804 /*Load PL/SQL tables for Attributes and then call processing method*/
3805 OPEN c_attr;
3806
3807 LOOP
3808 FETCH c_attr BULK COLLECT INTO l_ego_attr_tbl LIMIT 2000;
3809
3810 IF (l_ego_attr_tbl.COUNT <> 0) THEN
3811 Process_attr(p_attr_tbl => l_ego_attr_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3812
3813 update_intf_attribute(p_attr_tbl => l_ego_attr_tbl,x_return_status => x_return_status, x_return_msg => x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
3814
3815 COMMIT;
3816 END IF;
3817 EXIT WHEN l_ego_attr_tbl.COUNT < 2000;
3818 END LOOP;
3819
3820 CLOSE c_attr;
3821
3822 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Processed Attributes');
3823 END IF;
3824 END IF;
3825 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit import_ag_intf');
3826 EXCEPTION
3827 WHEN OTHERS THEN
3828 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'import_ag_intf Exception when others'||SQLERRM);
3829
3830 x_return_status := G_RET_STS_UNEXP_ERROR;
3831
3832 x_return_msg := 'ego_ag_bulkload_pvt.import_ag_intf - '||SQLERRM;
3833
3834 RETURN;
3835 END import_ag_intf;
3836
3837 /*This procedure is used for value to ID conversion for Attribute group plsql tables.
3838 Used in the API flow.
3839 p_ag_tbl IN OUT NOCOPY Attribute group plsql table
3840 x_return_status OUT NOCOPY parameter that returns the status*/
3841 PROCEDURE Value_to_id_ag_tbl
3842 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
3843 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3844 IS
3845 lv_smt NUMBER;
3846
3847 lv_proc VARCHAR2(30) := 'Value_to_id_ag_tbl';
3848 BEGIN
3849 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Value_to_id_ag_tbl');
3850
3851 x_return_status := G_RET_STS_SUCCESS;
3852
3853 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
3854 IF (P_ag_tbl(i).process_status = G_PROCESS_RECORD) THEN
3855 lv_smt := 1;
3856
3857 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
3858
3859 /*Sets the transaction_id*/
3860 SELECT mtl_system_items_interface_s.nextval
3861 INTO P_ag_tbl(i).transaction_id
3862 FROM dual;
3863
3864 lv_smt := 2;
3865
3866 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
3867
3868 /*Sets the Attribute ID if present for Update and Sync flow. If not present then flags an error EGO_AG_INVALID for UPDATE flow
3869 and for sync flow updates the transaction type to CREATE*/
3870 IF ((P_ag_tbl(i).transaction_type = G_OPR_UPDATE
3871 OR P_ag_tbl(i).transaction_type = G_OPR_SYNC)
3872 AND P_ag_tbl(i).attr_group_id IS NULL
3873 AND P_ag_tbl(i).attr_group_name IS NOT NULL) THEN
3874 BEGIN
3875 SELECT attr_group_id,
3876 'UPDATE'
3877 INTO P_ag_tbl(i).attr_group_id,P_ag_tbl(i).transaction_type
3878 FROM ego_fnd_dsc_flx_ctx_ext
3879 WHERE application_id = g_ego_application_id
3880 AND descriptive_flexfield_name = P_ag_tbl(i).attr_group_type
3881 AND descriptive_flex_context_code = P_ag_tbl(i).attr_group_name;
3882 EXCEPTION
3883 WHEN no_data_found THEN
3884 IF (P_ag_tbl(i).transaction_type = G_OPR_SYNC) THEN
3885 P_ag_tbl(i).transaction_type := G_OPR_CREATE;
3886 ELSE
3887 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Attribute Group does not exist in the system');
3888
3889 P_ag_tbl(i).process_status := G_ERROR_RECORD;
3890
3891 x_return_status := G_RET_STS_ERROR;
3892
3893 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
3894 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
3895 p_row_identifier => P_ag_tbl(i).transaction_id,
3896 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
3897 END IF;
3898 WHEN OTHERS THEN
3899 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_ag_tbl Exception when others smt 2');
3900
3901 x_return_status := G_RET_STS_UNEXP_ERROR;
3902
3903 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_ag_tbl smt 2- '||SQLERRM;
3904
3905 RETURN;
3906 END;
3907 END IF;
3908 END IF;
3909 END LOOP;
3910
3911 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Value_to_id_ag_tbl');
3912 EXCEPTION
3913 WHEN OTHERS THEN
3914 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_ag_tbl Exception when others'||SQLERRM);
3915
3916 x_return_status := G_RET_STS_UNEXP_ERROR;
3917
3918 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_ag_tbl - '||SQLERRM;
3919
3920 RETURN;
3921 END Value_to_id_ag_tbl;
3922
3923 /*This procedure is used for value to ID conversion for Attribute group
3924 data level plsql tables. Used in the API flow.
3925 p_agdl_tbl IN OUT NOCOPY Attribute group data level plsql table
3926 x_return_status OUT NOCOPY parameter that returns the status*/
3927 PROCEDURE Value_to_id_dl_tbl
3928 (p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
3929 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
3930 IS
3931 lv_smt NUMBER;
3932 lv_flag VARCHAR2(1);
3933 lv_proc VARCHAR2(30) := 'Value_to_id_dl_tbl';
3934 BEGIN
3935 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Value_to_id_dl_tbl');
3936
3937 x_return_status := G_RET_STS_SUCCESS;
3938
3939 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
3940 IF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD) THEN
3941 lv_smt := 1;
3942
3943 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
3944
3945 /*Sets the transaction_id*/
3946 SELECT mtl_system_items_interface_s.nextval
3947 INTO P_agdl_tbl(i).transaction_id
3948 FROM dual;
3949
3950 lv_smt := 2;
3951
3952 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
3953
3954 /*Sets the View Privilege ID and returns an error is it doesnt existing in the system*/
3955 IF (P_agdl_tbl(i).view_privilege_id IS NULL
3956 AND P_agdl_tbl(i).view_privilege_name IS NOT NULL
3957 AND P_agdl_tbl(i).view_privilege_name <> G_NULL_CHAR) THEN
3958 BEGIN
3959 SELECT function_id
3960 INTO P_agdl_tbl(i).view_privilege_id
3961 FROM fnd_form_functions
3962 WHERE function_name = P_agdl_tbl(i).view_privilege_name;
3963 EXCEPTION
3964 WHEN no_data_found THEN
3965 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL,VS) = ('
3966 ||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||','||P_agdl_tbl(i).view_privilege_name
3967 ||'). ' ||'View privilege does not exist in the system');
3968
3969 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
3970
3971 x_return_status := G_RET_STS_ERROR;
3972
3973 error_handler.Add_error_message(p_message_name => 'EGO_VIEW_PRIV_NOT_EXIST',
3974 p_application_id => 'EGO',p_token_tbl => g_token_table,
3975 p_message_type => G_RET_STS_ERROR,p_row_identifier => P_agdl_tbl(i).transaction_id,
3976 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
3977 WHEN OTHERS THEN
3978 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL,VS) = ('
3979 ||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||','||P_agdl_tbl(i).view_privilege_name||'). '
3980 ||'Value_to_id_dl_tbl Exception when others smt 2');
3981
3982 x_return_status := G_RET_STS_UNEXP_ERROR;
3983
3984 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
3985 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
3986 p_row_identifier => P_agdl_tbl(i).transaction_id,
3987 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
3988
3989 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl_tbl smt 2- '||SQLERRM;
3990
3991 RETURN;
3992 END;
3993 END IF;
3994
3995 lv_smt := 3;
3996
3997 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
3998
3999 /*Sets the Edit Privilege ID and returns an error is it doesnt existing in the system*/
4000 IF (P_agdl_tbl(i).edit_privilege_id IS NULL
4001 AND P_agdl_tbl(i).edit_privilege_name IS NOT NULL
4002 AND P_agdl_tbl(i).edit_privilege_name <> G_NULL_CHAR) THEN
4003 BEGIN
4004 SELECT function_id
4005 INTO P_agdl_tbl(i).edit_privilege_id
4006 FROM fnd_form_functions
4007 WHERE function_name = P_agdl_tbl(i).edit_privilege_name;
4008 EXCEPTION
4009 WHEN no_data_found THEN
4010 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL,VS) = ('
4011 ||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||','||P_agdl_tbl(i).edit_privilege_name||'). '
4012 ||'Edit privilege does not exist in the system');
4013
4014 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
4015
4016 x_return_status := G_RET_STS_ERROR;
4017
4018 error_handler.Add_error_message(p_message_name => 'EGO_EDIT_PRIV_NOT_EXIST',
4019 p_application_id => 'EGO',p_token_tbl => g_token_table,
4020 p_message_type => G_RET_STS_ERROR,p_row_identifier => P_agdl_tbl(i).transaction_id,
4021 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
4022 WHEN OTHERS THEN
4023 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL,VS) = ('
4024 ||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||','||P_agdl_tbl(i).edit_privilege_name||'). '
4025 ||'Exception: '||SQLERRM);
4026
4027 x_return_status := G_RET_STS_UNEXP_ERROR;
4028
4029 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4030 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4031 p_row_identifier => P_agdl_tbl(i).transaction_id,
4032 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
4033
4034 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl_tbl smt 3- '||SQLERRM;
4035
4036 RETURN;
4037 END;
4038 END IF;
4039
4040 lv_smt := 4;
4041
4042 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
4043
4044 /*Sets the DATA LEVEL ID and returns an error is it doesnt existing in the system*/
4045 IF (P_agdl_tbl(i).data_level_id IS NULL
4046 AND P_agdl_tbl(i).data_level_name IS NOT NULL) THEN
4047 BEGIN
4048 SELECT data_level_id
4049 INTO P_agdl_tbl(i).data_level_id
4050 FROM ego_data_level_b
4051 WHERE attr_group_type = P_agdl_tbl(i).attr_group_type
4052 AND application_id = g_ego_application_id
4053 AND data_level_name = P_agdl_tbl(i).data_level_name;
4054 EXCEPTION
4055 WHEN no_data_found THEN
4056 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL) = ('||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||'). ' ||'Data Level does not exist in the system');
4057
4058 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
4059
4060 x_return_status := G_RET_STS_ERROR;
4061
4062 error_handler.Add_error_message(p_message_name => 'EGO_DL_NOT_EXIST',p_application_id => 'EGO',
4063 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4064 p_row_identifier => P_agdl_tbl(i).transaction_id,
4065 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
4066 WHEN OTHERS THEN
4067 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_agdl_tbl(i).transaction_id||' (AG,DL) = ('||P_agdl_tbl(i).attr_group_name||','||P_agdl_tbl(i).data_level_name||'). ' ||'Exception: '||SQLERRM);
4068
4069 x_return_status := G_RET_STS_UNEXP_ERROR;
4070
4071 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4072 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4073 p_row_identifier => P_agdl_tbl(i).transaction_id,
4074 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
4075
4076 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl_tbl smt 4 - '||SQLERRM;
4077
4078 RETURN;
4079 END;
4080 END IF;
4081
4082 lv_smt := 5;
4083
4084 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
4085
4086 /*Sets the SYNC Transaction Type to CREATE or UPDATE*/
4087 IF (P_agdl_tbl(i).data_level_id IS NOT NULL
4088 AND P_agdl_tbl(i).attr_group_id IS NOT NULL
4089 AND P_agdl_tbl(i).transaction_type = G_OPR_SYNC) THEN
4090 BEGIN
4091 SELECT 'Y'
4092 INTO lv_flag
4093 FROM ego_attr_group_dl
4094 WHERE data_level_id = P_agdl_tbl(i).data_level_id
4095 AND attr_group_id = P_agdl_tbl(i).attr_group_id;
4096
4097 IF lv_flag = 'Y' THEN
4098 P_agdl_tbl(i).transaction_type := G_OPR_UPDATE;
4099 END IF;
4100 EXCEPTION
4101 WHEN no_data_found THEN
4102 P_agdl_tbl(i).transaction_type := G_OPR_CREATE;
4103 WHEN OTHERS THEN
4104 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_dl_tbl Exception when others smt 5');
4105
4106 x_return_status := G_RET_STS_UNEXP_ERROR;
4107
4108 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4109 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4110 p_row_identifier => P_agdl_tbl(i).transaction_id,
4111 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
4112
4113 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl_tbl smt 5 - '||SQLERRM;
4114
4115 RETURN;
4116 END;
4117 END IF;
4118 END IF;
4119 END LOOP;
4120 EXCEPTION
4121 WHEN OTHERS THEN
4122 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value_to_id_dl_tbl Exception when others'||SQLERRM);
4123
4124 x_return_status := G_RET_STS_UNEXP_ERROR;
4125
4126 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_dl_tbl - '||SQLERRM;
4127
4128 RETURN;
4129 END Value_to_id_dl_tbl;
4130
4131 /*This procedure is used for value to ID conversion for Attributes plsql tables.
4132 Used in the API flow.
4133 p_attr_tbl IN OUT NOCOPY Attributes plsql table
4134 x_return_status OUT NOCOPY parameter that returns the status*/
4135 PROCEDURE Value_to_id_attr_tbl
4136 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
4137 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
4138 IS
4139 lv_smt NUMBER; --Statement counter
4140 lv_proc VARCHAR2(30) := 'Value_to_id_attr_tbl';
4141 BEGIN
4142 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Value_to_id_attr_tbl');
4143
4144 x_return_status := G_RET_STS_SUCCESS;
4145
4146 FOR i IN p_attr_tbl.FIRST.. p_attr_tbl.LAST LOOP
4147 IF (P_attr_tbl(i).process_status = G_PROCESS_RECORD) THEN
4148 lv_smt := 1;
4149
4150 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
4151
4152 /*Sets the Attribute group id when the Internal Attribute group name is given*/
4153 IF (P_attr_tbl(i).attr_group_id IS NULL
4154 AND P_attr_tbl(i).attr_group_name IS NOT NULL) THEN
4155 BEGIN
4156 SELECT attr_group_id
4157 INTO P_attr_tbl(i).attr_group_id
4158 FROM ego_fnd_dsc_flx_ctx_ext
4159 WHERE application_id = g_ego_application_id
4160 AND descriptive_flexfield_name = P_attr_tbl(i).attr_group_type
4161 AND descriptive_flex_context_code = P_attr_tbl(i).attr_group_name;
4162 EXCEPTION
4163 WHEN no_data_found THEN
4164 x_return_status := G_RET_STS_ERROR;
4165
4166 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Attribute Group does not exist in the system');
4167
4168 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
4169 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4170 p_row_identifier => P_attr_tbl(i).transaction_id,
4171 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4172 WHEN OTHERS THEN
4173 x_return_status := G_RET_STS_UNEXP_ERROR;
4174
4175 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Exception: '||SQLERRM);
4176
4177 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4178 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4179 p_row_identifier => P_attr_tbl(i).transaction_id,
4180 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4181
4182 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_attr_tbl smt 1 - '||SQLERRM;
4183
4184 RETURN;
4185 END;
4186 END IF;
4187
4188 lv_smt := 2;
4189
4190 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
4191
4192 /*Sets the application ID*/
4193 P_attr_tbl(i).application_id := g_ego_application_id;
4194
4195 lv_smt := 3;
4196
4197 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
4198
4199 /*Sets the Attr_id for the update and sync flow. Also handles convert SYNC to CREATE/UPDATE flow*/
4200 IF (P_attr_tbl(i).attr_id IS NULL
4201 AND P_attr_tbl(i).internal_name IS NOT NULL
4202 AND (P_attr_tbl(i).transaction_type = G_OPR_UPDATE
4203 OR P_attr_tbl(i).transaction_type = G_OPR_SYNC)) THEN
4204 BEGIN
4205 SELECT efdcue.attr_id
4206 INTO P_attr_tbl(i).attr_id
4207 FROM fnd_descr_flex_column_usages fdfcu,
4208 ego_fnd_df_col_usgs_ext efdcue
4209 WHERE fdfcu.application_id = efdcue.application_id
4210 AND fdfcu.descriptive_flexfield_name = efdcue.descriptive_flexfield_name
4211 AND fdfcu.descriptive_flex_context_code = efdcue.descriptive_flex_context_code
4212 AND fdfcu.application_column_name = efdcue.application_column_name
4213 AND fdfcu.application_id = g_ego_application_id
4214 AND fdfcu.descriptive_flexfield_name = P_attr_tbl(i).attr_group_type
4215 AND fdfcu.descriptive_flex_context_code = P_attr_tbl(i).attr_group_name
4216 AND fdfcu.end_user_column_name = P_attr_tbl(i).internal_name;
4217
4218 IF (P_attr_tbl(i).transaction_type = G_OPR_SYNC) THEN
4219 P_attr_tbl(i).transaction_type := G_OPR_UPDATE;
4220 END IF;
4221 EXCEPTION
4222 WHEN no_data_found THEN
4223 IF (P_attr_tbl(i).transaction_type = G_OPR_SYNC) THEN
4224 P_attr_tbl(i).transaction_type := G_OPR_CREATE;
4225 ELSE
4226 x_return_status := G_RET_STS_ERROR;
4227
4228 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Attribute does not exist in the system');
4229
4230 error_handler.Add_error_message(p_message_name => 'EGO_ATTR_NOT_EXISTS',p_application_id => 'EGO',
4231 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4232 p_row_identifier => P_attr_tbl(i).transaction_id,
4233 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4234 END IF;
4235 WHEN OTHERS THEN
4236 x_return_status := G_RET_STS_UNEXP_ERROR;
4237
4238 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4239 ||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||'). ' ||'Exception: '||SQLERRM);
4240
4241 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4242 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4243 p_row_identifier => P_attr_tbl(i).transaction_id,
4244 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4245
4246 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_attr_tbl smt 3 - '||SQLERRM;
4247
4248 RETURN;
4249 END;
4250 END IF;
4251
4252 lv_smt := 4;
4253
4254 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
4255
4256 /*Sets value set id when the value set name is given*/
4257 IF (P_attr_tbl(i).flex_value_set_id IS NULL
4258 AND P_attr_tbl(i).flex_value_set_name IS NOT NULL
4259 AND P_attr_tbl(i).flex_value_set_name <> G_NULL_CHAR) THEN
4260 BEGIN
4261 SELECT ffvs.flex_value_set_id
4262 INTO P_attr_tbl(i).flex_value_set_id
4263 FROM fnd_flex_value_sets ffvs
4264 WHERE ffvs.flex_value_set_name = P_attr_tbl(i).flex_value_set_name;
4265 EXCEPTION
4266 WHEN no_data_found THEN
4267 x_return_status := G_RET_STS_ERROR;
4268
4269 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR,VS) = ('
4270 ||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||','||P_attr_tbl(i).flex_value_set_name||'). '
4271 ||'Value Set does not exist');
4272
4273 error_handler.Add_error_message(p_message_name => 'EGO_EF_BC_SEL_EXI_VALUE',p_application_id => 'EGO',
4274 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4275 p_row_identifier => P_attr_tbl(i).transaction_id,
4276 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4277 WHEN OTHERS THEN
4278 x_return_status := G_RET_STS_UNEXP_ERROR;
4279
4280 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_attr_tbl(i).transaction_id||' (AG,ATTR,VS) = ('
4281 ||P_attr_tbl(i).attr_group_name||','||P_attr_tbl(i).internal_name||','||P_attr_tbl(i).flex_value_set_name||'). '
4282 ||'Exception : '||SQLERRM);
4283
4284 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
4285 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4286 p_row_identifier => P_attr_tbl(i).transaction_id,
4287 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4288
4289 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_attr_tbl smt 4 - '||SQLERRM;
4290
4291 RETURN;
4292 END;
4293 END IF;
4294 END IF;
4295 END LOOP;
4296
4297 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Value_to_id_attr_tbl');
4298 EXCEPTION
4299 WHEN OTHERS THEN
4300 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||' Value_to_id_attr_tbl Exception when others'||SQLERRM);
4301
4302 x_return_status := G_RET_STS_UNEXP_ERROR;
4303
4304 x_return_msg := 'ego_ag_bulkload_pvt.Value_to_id_attr_tbl - '||SQLERRM;
4305
4306 RETURN;
4307
4308 END Value_to_id_attr_tbl;
4309
4310 --
4311 -- Bug 12412639. Issue#1 Added new method
4312 -- to get old attr group record.
4313 -- sreharih. Fri Apr 29 10:22:42 PDT 2011
4314 --
4315
4316 FUNCTION get_old_ag_record (p_attr_group_id IN NUMBER)
4317 RETURN ego_fnd_dsc_flx_ctx_ext%ROWTYPE IS
4318
4319 l_ret ego_fnd_dsc_flx_ctx_ext%ROWTYPE;
4320
4321 CURSOR c IS
4322 SELECT *
4323 FROM ego_fnd_dsc_flx_ctx_ext ed
4324 WHERE ed.attr_group_id = p_attr_group_id;
4325
4326 BEGIN
4327
4328 OPEN c;
4329 FETCH c INTO l_ret;
4330 CLOSE c;
4331
4332 RETURN l_ret;
4333
4334 END get_old_ag_record;
4335
4336 /*This procedure is used to do Common validations on attribute groups.
4337 Used in the Interface and API flow.
4338 p_ag_tbl IN OUT NOCOPY Attribute group plsql table
4339 x_return_status OUT NOCOPY parameter that returns the status*/
4340 PROCEDURE Common_ag_validations
4341 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
4342 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
4343 IS
4344 lv_smt NUMBER; --Statement counter
4345 lv_proc VARCHAR2(30) := 'Common_ag_validations';
4346 l_old_ag_record ego_fnd_dsc_flx_ctx_ext%ROWTYPE; -- Bug 12394675.
4347 BEGIN
4348 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Common_ag_validations');
4349
4350 x_return_status := G_RET_STS_SUCCESS;
4351
4352 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
4353 IF (p_ag_tbl(i).process_status = G_PROCESS_RECORD) THEN
4354 /*Start of common validations*/
4355 lv_smt := 1;
4356
4357 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
4358
4359 IF P_ag_tbl(i).multi_row = 'N'
4360 AND Nvl(P_ag_tbl(i).variant,'N') = 'N'
4361 AND P_ag_tbl(i).num_of_cols = 0 THEN
4362 P_ag_tbl(i).process_status := G_ERROR_RECORD;
4363
4364 x_return_status := G_RET_STS_ERROR;
4365
4366 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Number of columns is not within acceptable range for Single Row Attribute group');
4367
4368 error_handler.Add_error_message(p_message_name => 'EGO_EF_SIN_COL_VAL',p_application_id => 'EGO',
4369 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4370 p_row_identifier => P_ag_tbl(i).transaction_id,
4371 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
4372
4373
4374 END IF;
4375
4376 lv_smt := 2;
4377
4378 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
4379
4380 IF P_ag_tbl(i).multi_row = 'Y'
4381 AND P_ag_tbl(i).num_of_cols = 0 THEN
4382 P_ag_tbl(i).process_status := G_ERROR_RECORD;
4383
4384 x_return_status := G_RET_STS_ERROR;
4385
4386 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Number of columns is not within acceptable range for Multi Row Attribute group');
4387
4388 error_handler.Add_error_message(p_message_name => 'EGO_EF_MUL_COL_VAL',p_application_id => 'EGO',
4389 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4390 p_row_identifier => P_ag_tbl(i).transaction_id,
4391 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
4392 END IF;
4393
4394 lv_smt := 3;
4395
4396 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
4397
4398 IF P_ag_tbl(i).multi_row = 'Y'
4399 AND P_ag_tbl(i).num_of_rows = 0 THEN
4400 P_ag_tbl(i).process_status := G_ERROR_RECORD;
4401
4402 x_return_status := G_RET_STS_ERROR;
4403
4404 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Number of columns is not within acceptable range for Multi Row Attribute group');
4405
4406 error_handler.Add_error_message(p_message_name => 'EGO_EF_ROW_VAL',p_application_id => 'EGO',
4407 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4408 p_row_identifier => P_ag_tbl(i).transaction_id,
4409 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
4410 END IF;
4411
4412 lv_smt := 4;
4413
4414 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
4415
4416 IF P_ag_tbl(i).multi_row = 'Y'
4417 AND P_ag_tbl(i).variant = 'Y' THEN
4418 P_ag_tbl(i).process_status := G_ERROR_RECORD;
4419
4420 x_return_status := G_RET_STS_ERROR;
4421
4422 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||P_ag_tbl(i).transaction_id||' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||'Invalid MultiRow Variant combination');
4423
4424 error_handler.Add_error_message(p_message_name => 'EGO_MULROW_VAR_COMB',p_application_id => 'EGO',
4425 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4426 p_row_identifier => P_ag_tbl(i).transaction_id,
4427 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
4428 END IF;
4429
4430 lv_smt := 5;
4431
4432 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
4433 --
4434 -- Bug 12412639. Issue#1 Update of AG is in sync
4435 -- was erroring out. We must check whether multirow or variant
4436 -- value changed before we throw the error.
4437 -- sreharih. Fri Apr 29 10:22:42 PDT 2011
4438 --
4439 l_old_ag_record := get_old_ag_record(p_attr_group_id => P_ag_tbl(i).attr_group_id);
4440
4441 IF (P_ag_tbl(i).transaction_type = G_OPR_UPDATE
4442 AND ( ( nvl(P_ag_tbl(i).multi_row,'N') <> nvl(l_old_ag_record.multi_row,'N') ) OR
4443 ( nvl(P_ag_tbl(i).variant,'N') <> nvl(l_old_ag_record.variant,'N') )
4444 )
4445 ) THEN
4446 P_ag_tbl(i).process_status := G_ERROR_RECORD;
4447
4448 x_return_status := G_RET_STS_ERROR;
4449
4450 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '|| P_ag_tbl(i).transaction_id ||
4451 ' (AG) = ('||P_ag_tbl(i).attr_group_name||'). ' ||
4452 ' Updating the behaviour of attribute group is not allowed');
4453
4454 error_handler.Add_error_message(p_message_name => 'EGO_UPD_BEHAVIOUR',p_application_id => 'EGO',
4455 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4456 p_row_identifier => P_ag_tbl(i).transaction_id,
4457 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
4458
4459 END IF;
4460
4461 END IF;
4462 END LOOP;
4463
4464 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Common_ag_validations');
4465 EXCEPTION
4466 WHEN OTHERS THEN
4467 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Common_ag_validations Exception when others'||SQLERRM);
4468
4469 x_return_status := G_RET_STS_UNEXP_ERROR;
4470
4471 x_return_msg := 'ego_ag_bulkload_pvt.Common_ag_validations - '||SQLERRM;
4472
4473 RETURN;
4474 END Common_ag_validations;
4475
4476 /*This procedure is used to do Common validations on attribute group data level.
4477 Used in the Interface and API flow.
4478 p_agdl_tbl IN OUT NOCOPY Attribute group plsql table
4479 x_return_status OUT NOCOPY parameter that returns the status*/
4480 PROCEDURE Common_dl_validations
4481 (p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
4482 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
4483 IS
4484 lv_smt NUMBER; --Statement counter
4485 lv_proc VARCHAR2(30) := 'Common_dl_validations';
4486 BEGIN
4487 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Common_dl_validations');
4488
4489 x_return_status := G_RET_STS_SUCCESS;
4490
4491 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
4492 IF (p_agdl_tbl(i).process_status = G_PROCESS_RECORD) THEN
4493 /*Check for invalid Pre Event*/
4494 IF (NVL(p_agdl_tbl(i).pre_business_event_flag,'N') IN ('Y','N')) THEN
4495 p_agdl_tbl(i).pre_business_event_flag := NVL(p_agdl_tbl(i).pre_business_event_flag,'N');
4496 ELSE
4497 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
4498
4499 x_return_status := G_RET_STS_ERROR;
4500
4501 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Invalid Pre event flag.');
4502
4503 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_PRE_EVENT',p_application_id => 'EGO',
4504 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4505 p_row_identifier => p_agdl_tbl(i).transaction_id,
4506 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4507 END IF;
4508
4509 /*Check for invalid Post Event*/
4510 IF (NVL(p_agdl_tbl(i).business_event_flag,'N') IN ('Y','N')) THEN
4511 p_agdl_tbl(i).business_event_flag := NVL(p_agdl_tbl(i).business_event_flag,'N');
4512 ELSE
4513 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
4514
4515 x_return_status := G_RET_STS_ERROR;
4516
4517 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4518 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Invalid post event flag.');
4519
4520 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_POST_EVENT',p_application_id => 'EGO',
4521 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4522 p_row_identifier => p_agdl_tbl(i).transaction_id,
4523 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4524 END IF;
4525
4526
4527 /*Validation for deleting Business entity*/
4528 IF (p_agdl_tbl(i).transaction_type = G_OPR_DELETE) THEN
4529 DECLARE
4530 lv_flag NUMBER;
4531 lv_count NUMBER;
4532 BEGIN
4533 SELECT 1 INTO lv_flag
4534 FROM EGO_ATTR_GROUP_DL
4535 WHERE attr_group_id = p_agdl_tbl(i).attr_group_id
4536 AND data_level_id = p_agdl_tbl(i).data_level_id;
4537
4538 IF (lv_flag = 1) THEN
4539 SELECT COUNT(1) INTO lv_count
4540 FROM EGO_ATTR_GROUP_DL
4541 WHERE attr_group_id = p_agdl_tbl(i).attr_group_id;
4542
4543 IF (lv_count = 1) THEN
4544 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
4545
4546 x_return_status := G_RET_STS_ERROR;
4547
4548 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4549 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
4550 ||'Cannot delete the business entity since there is only one business entity');
4551
4552 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_REQD_AG',p_application_id => 'EGO',
4553 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4554 p_row_identifier => p_agdl_tbl(i).transaction_id,
4555 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4556 END IF;
4557 END IF;
4558 EXCEPTION
4559 WHEN NO_DATA_FOUND THEN
4560 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
4561
4562 x_return_status := G_RET_STS_ERROR;
4563
4564 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4565 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). '
4566 ||'Cannot delete the business entity since its not associated to the AG');
4567
4568 error_handler.Add_error_message(p_message_name => 'EGO_DL_NOT_ASSOC',p_application_id => 'EGO',
4569 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4570 p_row_identifier => p_agdl_tbl(i).transaction_id,
4571 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4572 WHEN OTHERS THEN
4573 x_return_status := G_RET_STS_UNEXP_ERROR;
4574
4575 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4576 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Exception -'||SQLERRM);
4577
4578 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4579 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4580 p_row_identifier => p_agdl_tbl(i).transaction_id,
4581 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4582 END;
4583 END IF;
4584
4585 /*Sets the attr_group_id if its still NULL and if its present in the system.*/
4586 IF (p_agdl_tbl(i).attr_group_id IS NULL) THEN
4587 BEGIN
4588 SELECT attr_group_id INTO p_agdl_tbl(i).attr_group_id
4589 FROM ego_fnd_dsc_flx_ctx_ext
4590 WHERE application_id = G_EGO_APPLICATION_ID
4591 AND descriptive_flexfield_name = p_agdl_tbl(i).attr_group_type
4592 AND descriptive_flex_context_code = p_agdl_tbl(i).attr_group_name;
4593 EXCEPTION
4594 WHEN NO_DATA_FOUND THEN
4595 p_agdl_tbl(i).process_status := G_ERROR_RECORD;
4596
4597 x_return_status := G_RET_STS_ERROR;
4598
4599 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4600 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Attribute group does not exist');
4601
4602 error_handler.Add_error_message(p_message_name => 'EGO_AG_NOT_EXIST',p_application_id => 'EGO',
4603 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4604 p_row_identifier => p_agdl_tbl(i).transaction_id,
4605 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4606 WHEN OTHERS THEN
4607 x_return_status := G_RET_STS_UNEXP_ERROR;
4608
4609 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_agdl_tbl(i).transaction_id||' (AG,DL) = ('
4610 ||p_agdl_tbl(i).attr_group_name||','||p_agdl_tbl(i).data_level_name||'). ' ||'Exception -'||SQLERRM);
4611
4612 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4613 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4614 p_row_identifier => p_agdl_tbl(i).transaction_id,
4615 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
4616 END;
4617 END IF;
4618
4619 END IF;
4620 END LOOP;
4621
4622 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Common_dl_validations');
4623 EXCEPTION
4624 WHEN OTHERS THEN
4625 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Common_dl_validations Exception when others'||SQLERRM);
4626
4627 x_return_status := G_RET_STS_UNEXP_ERROR;
4628
4629 x_return_msg := 'ego_ag_bulkload_pvt.Common_dl_validations - '||SQLERRM;
4630
4631 RETURN;
4632 END Common_dl_validations;
4633
4634 /*This procedure is used to do Common validations on attributes.
4635 Used in the Interface and API flow.
4636 p_attr_tbl IN OUT NOCOPY Attribute group plsql table
4637 x_return_status OUT NOCOPY parameter that returns the status*/
4638 PROCEDURE Common_attr_validations
4639 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
4640 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
4641 IS
4642 lv_smt NUMBER; --Statement counter
4643 lv_proc VARCHAR2(30) := 'Common_attr_validations';
4644 lv_flag VARCHAR2(1):= 'N';
4645 BEGIN
4646 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Common_attr_validations');
4647
4648 x_return_status := G_RET_STS_SUCCESS;
4649
4650 FOR i IN p_attr_tbl.FIRST.. p_attr_tbl.LAST LOOP
4651 IF (p_attr_tbl(i).process_status = G_PROCESS_RECORD) THEN
4652 /*Checks for the mandatory columns during the CREATE flow*/
4653 IF ((p_attr_tbl(i).attr_group_type IS NULL --Changed for 9625957
4654 OR p_attr_tbl(i).attr_group_name IS NULL
4655 OR p_attr_tbl(i).internal_name IS NULL
4656 OR p_attr_tbl(i).display_name IS NULL
4657 OR p_attr_tbl(i).sequence IS NULL
4658 OR p_attr_tbl(i).data_type IS NULL
4659 OR p_attr_tbl(i).display_code IS NULL
4660 OR p_attr_tbl(i).application_column_name IS NULL)
4661 AND p_attr_tbl(i).transaction_type = G_OPR_CREATE) THEN
4662 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4663
4664 x_return_status := G_RET_STS_ERROR;
4665
4666 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4667 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Mandatory columns for the attribute are not populated');
4668
4669 error_handler.Add_error_message(p_message_name => 'EGO_ATTR_MANDATORY',p_application_id => 'EGO',
4670 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4671 p_row_identifier => p_attr_tbl(i).transaction_id,
4672 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4673 END IF;
4674
4675 /*Checks whether the data type entered is valid*/
4676 IF (p_attr_tbl(i).data_type = G_TRANS_TEXT_DATA_TYPE
4677 OR p_attr_tbl(i).data_type = G_CHAR_DATA_TYPE
4678 OR p_attr_tbl(i).data_type = G_NUMBER_DATA_TYPE
4679 OR p_attr_tbl(i).data_type = G_DATE_DATA_TYPE
4680 OR p_attr_tbl(i).data_type = G_DATE_TIME_DATA_TYPE) THEN
4681 NULL;
4682 ELSIF (p_attr_tbl(i).transaction_type = G_OPR_DELETE) THEN
4683 NULL;
4684 ELSE
4685 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4686
4687 x_return_status := G_RET_STS_ERROR;
4688
4689 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4690 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Data type populated is invalid');
4691
4692 error_handler.Add_error_message(p_message_name => 'EGO_DATA_TYPE_INVALID',p_application_id => 'EGO',
4693 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4694 p_row_identifier => p_attr_tbl(i).transaction_id,
4695 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4696 END IF;
4697
4698 /*Checks for invalid data type and display as combination*/
4699
4700 IF ((p_attr_tbl(i).data_type = g_char_data_type AND p_attr_tbl(i).display_code = g_attach_disp_type)
4701 OR (p_attr_tbl(i).data_type = g_number_data_type AND (p_attr_tbl(i).display_code = g_checkbox_disp_type
4702 OR p_attr_tbl(i).display_code = g_static_url_disp_type
4703 OR p_attr_tbl(i).display_code = g_text_area_disp_type))
4704 OR ((p_attr_tbl(i).data_type = g_date_data_type
4705 OR p_attr_tbl(i).data_type = g_date_time_data_type) AND (p_attr_tbl(i).display_code = g_checkbox_disp_type
4706 OR p_attr_tbl(i).display_code = g_dyn_url_disp_type
4707 OR p_attr_tbl(i).display_code = g_static_url_disp_type
4708 OR p_attr_tbl(i).display_code = g_text_area_disp_type
4709 OR p_attr_tbl(i).display_code = g_attach_disp_type))
4710 OR (p_attr_tbl(i).data_type = g_trans_text_data_type AND (p_attr_tbl(i).display_code = g_attach_disp_type
4711 --OR p_attr_tbl(i).display_code = g_dyn_url_disp_type -- commenting to fix bug 12650597
4712 --OR p_attr_tbl(i).display_code = g_dyn_url_disp_type -- commenting to fix bug 12650597
4713 --OR p_attr_tbl(i).display_code = g_text_area_disp_type -- commenting to fix bug 12650597
4714 OR p_attr_tbl(i).display_code = g_checkbox_disp_type))
4715 ) THEN
4716
4717 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4718
4719 x_return_status := G_RET_STS_ERROR;
4720
4721 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4722 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Data type and display as combination is invalid');
4723
4724 error_handler.Add_error_message(p_message_name => 'EGO_DT_DISP_COMB_INVALID',p_application_id => 'EGO',
4725 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4726 p_row_identifier => p_attr_tbl(i).transaction_id,
4727 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4728 END IF;
4729
4730 /*Checks if the value set is mandatory*/
4731
4732 IF ((p_attr_tbl(i).display_code = g_attach_disp_type OR p_attr_tbl(i).display_code = g_radio_disp_type)
4733 AND (p_attr_tbl(i).flex_value_set_name IS NULL OR p_attr_tbl(i).flex_value_set_id IS NULL)) THEN
4734
4735 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4736
4737 x_return_status := G_RET_STS_ERROR;
4738
4739 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4740 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Value Set is mandatory for particular display');
4741
4742 error_handler.Add_error_message(p_message_name => 'EGO_VALUE_SET_REQUIRED',p_application_id => 'EGO',
4743 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4744 p_row_identifier => p_attr_tbl(i).transaction_id,
4745 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4746 END IF;
4747
4748 /*Checks if the dynamic URL is mandatory*/
4749
4750 IF (p_attr_tbl(i).display_code = g_dyn_url_disp_type AND p_attr_tbl(i).info_1 IS NULL) THEN
4751
4752 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4753
4754 x_return_status := G_RET_STS_ERROR;
4755
4756 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4757 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Value Set is mandatory for particular display');
4758
4759 error_handler.Add_error_message(p_message_name => 'EGO_DYN_URL_MANDATORY',p_application_id => 'EGO',
4760 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4761 p_row_identifier => p_attr_tbl(i).transaction_id,
4762 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4763 END IF;
4764
4765 /*Checks for existing sequence number - CREATE flow*/ --Added for 9625957
4766 IF (p_attr_tbl(i).sequence IS NOT NULL AND p_attr_tbl(i).transaction_type = G_OPR_CREATE) THEN
4767 BEGIN
4768 SELECT 'Y' INTO lv_flag
4769 FROM FND_DESCR_FLEX_COLUMN_USAGES
4770 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4771 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4772 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4773 AND COLUMN_SEQ_NUM = p_attr_tbl(i).sequence;
4774
4775 IF (lv_flag = 'Y') THEN
4776 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4777
4778 x_return_status := G_RET_STS_ERROR;
4779
4780 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4781 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'SEQUENCE already exists in the system - CREATE');
4782
4783 error_handler.Add_error_message(p_message_name => 'EGO_EF_CR_ATTR_DUP_SEQ_ERR',p_application_id => 'EGO',
4784 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4785 p_row_identifier => p_attr_tbl(i).transaction_id,
4786 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4787
4788 lv_flag := 'N';
4789 END IF;
4790
4791 EXCEPTION
4792 WHEN NO_DATA_FOUND THEN
4793 NULL;
4794 WHEN OTHERS THEN
4795 x_return_status := G_RET_STS_UNEXP_ERROR;
4796
4797 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4798 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Exception - '||SQLERRM);
4799
4800 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4801 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4802 p_row_identifier => p_attr_tbl(i).transaction_id,
4803 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4804 END;
4805 END IF;
4806
4807 /*Checks for existing sequence number - UPDATE flow*/ --Added for 9625957
4808 IF (p_attr_tbl(i).sequence IS NOT NULL AND p_attr_tbl(i).transaction_type = G_OPR_UPDATE) THEN
4809 DECLARE
4810 l_sequence NUMBER;
4811 BEGIN
4812 SELECT COLUMN_SEQ_NUM
4813 INTO l_sequence
4814 FROM FND_DESCR_FLEX_COLUMN_USAGES
4815 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4816 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4817 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4818 AND END_USER_COLUMN_NAME = p_attr_tbl(i).internal_name;
4819
4820 IF (l_sequence <> NVL(p_attr_tbl(i).sequence, l_sequence)) THEN
4821 -- If the sequence is being updated to a NEW non-null value,
4822 -- check for uniqueness
4823
4824 SELECT COUNT(*)
4825 INTO l_sequence
4826 FROM FND_DESCR_FLEX_COLUMN_USAGES
4827 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4828 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4829 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4830 AND COLUMN_SEQ_NUM = p_attr_tbl(i).sequence;
4831
4832 IF (l_sequence > 0) THEN
4833
4834 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4835
4836 x_return_status := G_RET_STS_ERROR;
4837
4838 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4839 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'SEQUENCE already exists in the system - UPDATE');
4840
4841 error_handler.Add_error_message(p_message_name => 'EGO_EF_UP_ATTR_DUP_SEQ_ERR',p_application_id => 'EGO',
4842 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4843 p_row_identifier => p_attr_tbl(i).transaction_id,
4844 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4845
4846 END IF;
4847 END IF;
4848 EXCEPTION
4849 WHEN OTHERS THEN
4850 x_return_status := G_RET_STS_UNEXP_ERROR;
4851
4852 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4853 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Exception - '||SQLERRM);
4854
4855 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4856 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4857 p_row_identifier => p_attr_tbl(i).transaction_id,
4858 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4859 END;
4860 END IF;
4861
4862 /*Checks for existing column name - CREATE flow*/ --Added for 9625957
4863 IF (p_attr_tbl(i).application_column_name IS NOT NULL AND p_attr_tbl(i).transaction_type = G_OPR_CREATE) THEN
4864 BEGIN
4865 SELECT 'Y' INTO lv_flag
4866 FROM FND_DESCR_FLEX_COLUMN_USAGES
4867 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4868 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4869 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4870 AND application_column_name = p_attr_tbl(i).application_column_name;
4871
4872 IF (lv_flag = 'Y') THEN
4873 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4874
4875 x_return_status := G_RET_STS_ERROR;
4876
4877 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4878 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'SEQUENCE already exists in the system - CREATE');
4879
4880 error_handler.Add_error_message(p_message_name => 'EGO_EF_CR_ATTR_DUP_COL_ERR',p_application_id => 'EGO',
4881 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4882 p_row_identifier => p_attr_tbl(i).transaction_id,
4883 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4884
4885 lv_flag := 'N';
4886 END IF;
4887
4888 EXCEPTION
4889 WHEN NO_DATA_FOUND THEN
4890 NULL;
4891 WHEN OTHERS THEN
4892 x_return_status := G_RET_STS_UNEXP_ERROR;
4893
4894 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4895 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Exception - '||SQLERRM);
4896
4897 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4898 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4899 p_row_identifier => p_attr_tbl(i).transaction_id,
4900 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4901 END;
4902 END IF;
4903
4904 /*Checks for existing column name - UPDATE flow*/ --Added for 9625957
4905 IF (p_attr_tbl(i).sequence IS NOT NULL AND p_attr_tbl(i).transaction_type = G_OPR_UPDATE) THEN
4906 DECLARE
4907 lv_column VARCHAR2(40);
4908 lv_count NUMBER;
4909 BEGIN
4910 SELECT application_column_name
4911 INTO lv_column
4912 FROM FND_DESCR_FLEX_COLUMN_USAGES
4913 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4914 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4915 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4916 AND END_USER_COLUMN_NAME = p_attr_tbl(i).internal_name;
4917
4918 IF (lv_column <> NVL(p_attr_tbl(i).application_column_name, lv_column)) THEN
4919 -- If the sequence is being updated to a NEW non-null value,
4920 -- check for uniqueness
4921
4922 SELECT COUNT(*)
4923 INTO lv_count
4924 FROM FND_DESCR_FLEX_COLUMN_USAGES
4925 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
4926 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
4927 AND DESCRIPTIVE_FLEX_CONTEXT_Code = p_attr_tbl(i).attr_group_name
4928 AND application_column_name = p_attr_tbl(i).application_column_name;
4929
4930 IF (lv_count > 0) THEN
4931
4932 p_attr_tbl(i).process_status := G_ERROR_RECORD;
4933
4934 x_return_status := G_RET_STS_ERROR;
4935
4936 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4937 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'SEQUENCE already exists in the system - UPDATE');
4938
4939 error_handler.Add_error_message(p_message_name => 'EGO_EF_UP_ATTR_DUP_SEQ_ERR',p_application_id => 'EGO',
4940 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
4941 p_row_identifier => p_attr_tbl(i).transaction_id,
4942 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4943
4944
4945 END IF;
4946 END IF;
4947 EXCEPTION
4948 WHEN OTHERS THEN
4949 x_return_status := G_RET_STS_UNEXP_ERROR;
4950
4951 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
4952 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Exception - '||SQLERRM);
4953
4954 error_handler.Add_error_message(p_message_text => SQLERRM,p_application_id => 'EGO',
4955 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
4956 p_row_identifier => p_attr_tbl(i).transaction_id,
4957 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
4958 END;
4959 END IF;
4960
4961 /*Checks for the correct combination of column name and data type*/ --Added for 9625957
4962
4963 DECLARE
4964 l_table_name VARCHAR2(40);
4965 l_chg_table_name VARCHAR2(40);
4966 l_col_data_type VARCHAR2(1);
4967 l_col_width NUMBER;
4968 BEGIN
4969 ------------------------------------------------------------------------
4970 -- Find the correct table name for use in validating column data type --
4971 ------------------------------------------------------------------------
4972
4973 IF (p_attr_tbl(i).data_type = G_TRANS_TEXT_DATA_TYPE) THEN
4974 l_table_name := Get_TL_Table_Name(G_EGO_APPLICATION_ID
4975 ,p_attr_tbl(i).attr_group_type);
4976 l_chg_table_name:=Get_Attr_Changes_TL_Table(p_application_id => G_EGO_APPLICATION_ID
4977 ,p_attr_group_type => p_attr_tbl(i).attr_group_type);--for getting the pending table
4978 ELSE
4979 l_table_name := Get_Table_Name(G_EGO_APPLICATION_ID
4980 ,p_attr_tbl(i).attr_group_type);
4981 l_chg_table_name:=Get_Attr_Changes_B_Table(p_application_id => G_EGO_APPLICATION_ID
4982 ,p_attr_group_type => p_attr_tbl(i).attr_group_type);--for getting the pending table
4983
4984 END IF;--IF (l_data_type_is_trans_text)
4985
4986 SELECT COLUMN_TYPE , WIDTH
4987 INTO l_col_data_type, l_col_width
4988 FROM FND_COLUMNS
4989 WHERE COLUMN_NAME = p_attr_tbl(i).application_column_name
4990 AND TABLE_ID = (SELECT TABLE_ID
4991 FROM FND_TABLES
4992 WHERE TABLE_NAME = l_table_name);
4993
4994 IF (p_attr_tbl(i).transaction_type <> G_OPR_DELETE AND
4995 ((p_attr_tbl(i).data_type = G_CHAR_DATA_TYPE OR
4996 p_attr_tbl(i).data_type = G_TRANS_TEXT_DATA_TYPE) AND
4997 l_col_data_type <> 'V') OR
4998 (p_attr_tbl(i).data_type = G_NUMBER_DATA_TYPE AND l_col_data_type <> 'N') OR
4999 ((p_attr_tbl(i).data_type = G_DATE_DATA_TYPE OR
5000 p_attr_tbl(i).data_type = G_DATE_TIME_DATA_TYPE) AND
5001 l_col_data_type <> 'D')) THEN
5002
5003 /***
5004 TO DO: right now we can't verify that TransText Attributes use TL-type columns,
5005 because we can't rely on the column being named 'TL_EXT_ATTR%' and we aren't
5006 using FND_COLUMNS's TRANSLATE_FLAG column yet; but we should be, and we should
5007 add to the IF check above that if the data type is TransText and the column's
5008 TRANSLATE_FLAG isn't 'Y' then we should error out.
5009 ***/
5010 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5011
5012 x_return_status := G_RET_STS_ERROR;
5013
5014 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5015 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Column name and data type dont match');
5016
5017 error_handler.Add_error_message(p_message_name => 'EGO_EF_CR_ATTR_COL_DT_ERR',p_application_id => 'EGO',
5018 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5019 p_row_identifier => p_attr_tbl(i).transaction_id,
5020 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5021
5022
5023 END IF;
5024
5025 IF ( (p_attr_tbl(i).data_type = G_CHAR_DATA_TYPE OR
5026 p_attr_tbl(i).data_type = G_TRANS_TEXT_DATA_TYPE) AND
5027 LENGTH(p_attr_tbl(i).default_value) > l_col_width )THEN
5028
5029 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5030
5031 x_return_status := G_RET_STS_ERROR;
5032
5033 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5034 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Default value exceeds the acceptable length');
5035
5036 error_handler.Add_error_message(p_message_name => 'EGO_EF_DEFAULT_VAL_LEN_ERR',p_application_id => 'EGO',
5037 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5038 p_row_identifier => p_attr_tbl(i).transaction_id,
5039 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5040
5041
5042 END IF;
5043
5044 EXCEPTION
5045 WHEN NO_DATA_FOUND THEN
5046 IF (p_attr_tbl(i).transaction_type <> G_OPR_DELETE) THEN
5047 -- whoever owns the table didn't seed the column correctly
5048 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5049
5050 x_return_status := G_RET_STS_ERROR;
5051
5052 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5053 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Column name and data type dont match');
5054
5055 error_handler.Add_error_message(p_message_name => 'EGO_EF_CR_ATTR_COL_DT_ERR',p_application_id => 'EGO',
5056 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5057 p_row_identifier => p_attr_tbl(i).transaction_id,
5058 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5059 END IF;
5060 END;
5061
5062 /*Check for invalid Required flag*/
5063 IF (NVL(p_attr_tbl(i).required_flag,'N') IN ('Y','N')) THEN
5064 p_attr_tbl(i).required_flag := NVL(p_attr_tbl(i).required_flag,'N');
5065 ELSE
5066 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5067
5068 x_return_status := G_RET_STS_ERROR;
5069
5070 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5071 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Invalid required flag.');
5072
5073 G_TOKEN_TABLE(1).Token_Name := 'COL_NAME';
5074 G_TOKEN_TABLE(1).Token_Value := 'REQUIRED_FLAG';
5075
5076 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_VALUE_FOR_COL',p_application_id => 'EGO',
5077 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5078 p_row_identifier => p_attr_tbl(i).transaction_id,
5079 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5080
5081 G_TOKEN_TABLE.DELETE;
5082
5083 END IF;
5084
5085 /*Check for invalid enabled flag*/
5086 IF (NVL(p_attr_tbl(i).enabled_flag,'N') IN ('Y','N')) THEN
5087 p_attr_tbl(i).enabled_flag := NVL(p_attr_tbl(i).enabled_flag,'N');
5088 ELSE
5089 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5090
5091 x_return_status := G_RET_STS_ERROR;
5092
5093 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5094 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Invalid enabled flag.');
5095
5096 G_TOKEN_TABLE(1).Token_Name := 'COL_NAME';
5097 G_TOKEN_TABLE(1).Token_Value := 'ENABLED_FLAG';
5098
5099 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_VALUE_FOR_COL',p_application_id => 'EGO',
5100 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5101 p_row_identifier => p_attr_tbl(i).transaction_id,
5102 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5103
5104 G_TOKEN_TABLE.DELETE;
5105
5106 END IF;
5107
5108 /*Check for invalid security enabled flag*/
5109 IF (NVL(p_attr_tbl(i).security_enabled_flag,'N') IN ('Y','N')) THEN
5110 p_attr_tbl(i).security_enabled_flag := NVL(p_attr_tbl(i).security_enabled_flag,'N');
5111 ELSE
5112 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5113
5114 x_return_status := G_RET_STS_ERROR;
5115
5116 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5117 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Invalid security enabled flag.');
5118
5119 G_TOKEN_TABLE(1).Token_Name := 'COL_NAME';
5120 G_TOKEN_TABLE(1).Token_Value := 'SECURITY_ENABLED_FLAG';
5121
5122 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_VALUE_FOR_COL',p_application_id => 'EGO',
5123 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5124 p_row_identifier => p_attr_tbl(i).transaction_id,
5125 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5126
5127 G_TOKEN_TABLE.DELETE;
5128
5129 END IF;
5130
5131 /*Check for invalid searchable flag*/
5132 IF (NVL(p_attr_tbl(i).search_flag,'N') IN ('Y','N')) THEN
5133 p_attr_tbl(i).search_flag := NVL(p_attr_tbl(i).search_flag,'N');
5134 ELSE
5135 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5136
5137 x_return_status := G_RET_STS_ERROR;
5138
5139 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5140 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Invalid searchable flag.');
5141
5142 G_TOKEN_TABLE(1).Token_Name := 'COL_NAME';
5143 G_TOKEN_TABLE(1).Token_Value := 'SEARCH_FLAG';
5144
5145 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_VALUE_FOR_COL',p_application_id => 'EGO',
5146 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5147 p_row_identifier => p_attr_tbl(i).transaction_id,
5148 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5149
5150 G_TOKEN_TABLE.DELETE;
5151
5152 END IF;
5153
5154 /*Check for invalid Unique Key flag*/
5155 IF (NVL(p_attr_tbl(i).unique_key_flag,'N') IN ('Y','N')) THEN
5156 p_attr_tbl(i).unique_key_flag := NVL(p_attr_tbl(i).unique_key_flag,'N');
5157 ELSE
5158 p_attr_tbl(i).process_status := G_ERROR_RECORD;
5159
5160 x_return_status := G_RET_STS_ERROR;
5161
5162 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - Err_msg_TID: '||p_attr_tbl(i).transaction_id||' (AG,ATTR) = ('
5163 ||p_attr_tbl(i).attr_group_name||','||p_attr_tbl(i).internal_name||'). ' ||'Invalid unique key flag.');
5164
5165 G_TOKEN_TABLE(1).Token_Name := 'COL_NAME';
5166 G_TOKEN_TABLE(1).Token_Value := 'UNIQUE_KEY_FLAG';
5167
5168 error_handler.Add_error_message(p_message_name => 'EGO_INVALID_VALUE_FOR_COL',p_application_id => 'EGO',
5169 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5170 p_row_identifier => p_attr_tbl(i).transaction_id,
5171 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5172
5173 G_TOKEN_TABLE.DELETE;
5174
5175 END IF;
5176 END IF;
5177 END LOOP;
5178 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Common_attr_validations');
5179 EXCEPTION
5180 WHEN OTHERS THEN
5181 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Common_attr_validations Exception when others'||SQLERRM);
5182
5183 x_return_status := G_RET_STS_UNEXP_ERROR;
5184
5185 x_return_msg := 'ego_ag_bulkload_pvt.Common_attr_validations - '||SQLERRM;
5186
5187 RETURN;
5188 END Common_attr_validations;
5189
5190 /*This procedure is used to do additional validations on attribute groups.
5191 Used in the API flow.
5192 p_ag_tbl IN OUT NOCOPY Attribute group plsql table
5193 x_return_status OUT NOCOPY parameter that returns the status*/
5194 PROCEDURE Additional_agdl_validations
5195 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
5196 p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
5197 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
5198 IS
5199 lv_smt NUMBER; --Statement counter
5200 lv_flag VARCHAR2(1);
5201 lv_proc VARCHAR2(30) := 'Additional_agdl_validations';
5202 BEGIN
5203 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Additional_agdl_validations');
5204
5205 x_return_status := G_RET_STS_SUCCESS;
5206
5207 lv_smt := 1;
5208
5209 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
5210
5211 /*Check for invalid transaction type in the AG table*/
5212 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
5213 /*Convert transaction type to upper case*/
5214 SELECT Upper(P_ag_tbl(i).transaction_type)
5215 INTO P_ag_tbl(i).transaction_type
5216 FROM dual;
5217
5218 IF ( P_ag_tbl(i).transaction_type = G_OPR_CREATE
5219 OR P_ag_tbl(i).transaction_type = G_OPR_UPDATE
5220 OR P_ag_tbl(i).transaction_type = G_OPR_DELETE
5221 OR P_ag_tbl(i).transaction_type = G_OPR_SYNC) THEN
5222 NULL;
5223 ELSE
5224 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Transaction type Invalid for AG');
5225
5226 P_ag_tbl(i).process_status := G_ERROR_RECORD;
5227
5228 x_return_status := G_RET_STS_ERROR;
5229
5230 error_handler.Add_error_message(p_message_name => 'EGO_TRANS_TYPE_INVALID',p_application_id => 'EGO',
5231 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5232 p_row_identifier => P_ag_tbl(i).transaction_id,
5233 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
5234 END IF;
5235
5236 /*Checks if the attribute group type passed is EGO_ITEMMGMT_GROUP or else thows the error EGO_AG_TYPE_INVALID*/
5237 IF (P_ag_tbl(i).attr_group_type <> G_EGO_ITEMMGMT_GROUP) THEN
5238 P_ag_tbl(i).process_status := G_ERROR_RECORD;
5239
5240 x_return_status := G_RET_STS_ERROR;
5241
5242 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group Type passed is incorrect');
5243
5244 error_handler.Add_error_message(p_message_name => 'EGO_AG_TYPE_INVALID',p_application_id => 'EGO',
5245 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5246 p_row_identifier => P_ag_tbl(i).transaction_id,
5247 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
5248 END IF;
5249 END LOOP;
5250
5251 lv_smt := 2;
5252
5253 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
5254
5255 /*Check for invalid transaction type in the DL table*/
5256 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
5257 /*Convert transaction type to upper case*/
5258 SELECT Upper(P_agdl_tbl(i).transaction_type)
5259 INTO P_agdl_tbl(i).transaction_type
5260 FROM dual;
5261
5262 IF ( P_agdl_tbl(i).transaction_type = G_OPR_CREATE
5263 OR P_agdl_tbl(i).transaction_type = G_OPR_UPDATE
5264 OR P_agdl_tbl(i).transaction_type = G_OPR_SYNC) THEN
5265 NULL;
5266 ELSE
5267 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Transaction type is invalid for DL');
5268
5269 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5270
5271 x_return_status := G_RET_STS_ERROR;
5272
5273 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Invalid transaction type for DL');
5274
5275 error_handler.Add_error_message(p_message_name => 'EGO_TRANS_TYPE_INVALID',p_application_id => 'EGO',
5276 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5277 p_row_identifier => P_agdl_tbl(i).transaction_id,
5278 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
5279
5280 END IF;
5281
5282 /*Checks if the attribute group type passed is EGO_ITEMMGMT_GROUP or else thows the error EGO_AG_TYPE_INVALID*/
5283 IF (P_agdl_tbl(i).attr_group_type <> G_EGO_ITEMMGMT_GROUP) THEN
5284 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5285
5286 x_return_status := G_RET_STS_ERROR;
5287
5288 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group Type passed is incorrect');
5289
5290 error_handler.Add_error_message(p_message_name => 'EGO_AG_TYPE_INVALID',p_application_id => 'EGO',
5291 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5292 p_row_identifier => P_agdl_tbl(i).transaction_id,
5293 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
5294
5295 END IF;
5296 END LOOP;
5297
5298 /*Value to ID Conversions for AG*/
5299 Value_to_id_ag_tbl(p_ag_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
5300
5301 lv_smt := 3;
5302
5303 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
5304
5305 /*If the attribute group in the DL plsql table doesn't exist in the system as well in the AG plsql table then error OUT NOCOPY with message EGO_AG_INVALID*/
5306 FOR i IN p_agdl_tbl.FIRST.. p_ag_tbl.LAST LOOP
5307 IF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD) THEN
5308 IF (P_agdl_tbl(i).attr_group_name IS NOT NULL
5309 AND P_agdl_tbl(i).attr_group_id IS NULL) THEN
5310 BEGIN
5311 SELECT attr_group_id
5312 INTO P_agdl_tbl(i).attr_group_id
5313 FROM ego_fnd_dsc_flx_ctx_ext
5314 WHERE application_id = g_ego_application_id
5315 AND descriptive_flexfield_name = P_agdl_tbl(i).attr_group_type
5316 AND descriptive_flex_context_code = P_agdl_tbl(i).attr_group_name;
5317 EXCEPTION
5318 WHEN no_data_found THEN
5319 IF (P_agdl_tbl(i).transaction_type = G_OPR_UPDATE) THEN
5320 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5321
5322 x_return_status := G_RET_STS_ERROR;
5323
5324 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute Group does not exist');
5325
5326 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5327 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5328 p_row_identifier => P_agdl_tbl(i).transaction_id,
5329 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_TAB);
5330
5331 ELSE
5332 lv_flag := 'N';
5333
5334 FOR i IN p_ag_tbl.FIRST.. p_agdl_tbl.LAST LOOP
5335 IF (P_ag_tbl(i).process_status = G_PROCESS_RECORD
5336 AND P_ag_tbl(i).transaction_type = G_OPR_CREATE
5337 AND (G_SET_PROCESS_ID IS NULL
5338 OR P_ag_tbl(i).set_process_id = G_SET_PROCESS_ID)) THEN
5339 IF (P_agdl_tbl(i).attr_group_name = P_agdl_tbl(i).attr_group_name) THEN
5340 lv_flag := 'Y';
5341
5342 IF (P_agdl_tbl(i).transaction_type = G_OPR_SYNC) THEN
5343 P_agdl_tbl(i).transaction_type := G_OPR_CREATE;
5344 END IF;
5345 END IF;
5346 END IF;
5347 END LOOP;
5348
5349 IF (lv_flag = 'N') THEN
5350 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute Group in the DL plsql table does not exist in the system or in the AG plsql table');
5351
5352 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5353
5354 x_return_status := G_RET_STS_ERROR;
5355
5356 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5357 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5358 p_row_identifier => P_agdl_tbl(i).transaction_id,
5359 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5360 END IF;
5361 END IF;
5362 WHEN OTHERS THEN
5363 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 3');
5364
5365 x_return_status := G_RET_STS_UNEXP_ERROR;
5366
5367 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5368 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5369 p_row_identifier => P_agdl_tbl(i).transaction_id,
5370 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5371
5372 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 3 - '||SQLERRM;
5373
5374 RETURN;
5375 END;
5376 END IF;
5377 END IF;
5378 END LOOP;
5379
5380 /*Value to ID Conversions for DL*/
5381 Value_to_id_dl_tbl(p_agdl_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
5382
5383 lv_smt := 4;
5384
5385 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 4');
5386
5387 /*For a AG record of transaction Type CREATE there should be atleast one record in the DL record. Else error OUT NOCOPY EGO_EF_DL_REQD_AG*/
5388 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
5389 lv_flag := 'N';
5390
5391 IF P_ag_tbl(i).transaction_type = G_OPR_CREATE THEN
5392 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
5393 IF P_agdl_tbl(i).attr_group_name = P_ag_tbl(i).attr_group_name THEN
5394 lv_flag := 'Y';
5395 END IF;
5396 END LOOP;
5397
5398 IF (lv_flag = 'N') THEN
5399 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Please insert at least one business entity when creating an Attribute Group');
5400
5401 P_ag_tbl(i).process_status := G_ERROR_RECORD;
5402
5403 x_return_status := G_RET_STS_ERROR;
5404
5405 error_handler.Add_error_message(p_message_name => 'EGO_EF_DL_REQD_AG',p_application_id => 'EGO',
5406 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5407 p_row_identifier => P_agdl_tbl(i).transaction_id,
5408 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5409 END IF;
5410 END IF;
5411 END LOOP;
5412
5413 lv_smt := 5;
5414
5415 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 5');
5416
5417 /*Additional Validations for AG*/
5418 FOR i IN p_ag_tbl.FIRST.. p_ag_tbl.LAST LOOP
5419 IF (P_ag_tbl(i).process_status = G_PROCESS_RECORD) THEN
5420 /*Sets the Attribute Name if Attribute ID exists. If it doesn't exist, then flags an error EGO_AG_INVALID*/
5421 IF (P_ag_tbl(i).attr_group_id IS NOT NULL
5422 AND P_ag_tbl(i).attr_group_name IS NULL
5423 AND P_ag_tbl(i).transaction_type = G_OPR_UPDATE) THEN
5424 BEGIN
5425 SELECT descriptive_flex_context_code
5426 INTO P_ag_tbl(i).attr_group_name
5427 FROM ego_fnd_dsc_flx_ctx_ext
5428 WHERE application_id = g_ego_application_id
5429 AND descriptive_flexfield_name = P_ag_tbl(i).attr_group_type
5430 AND descriptive_flex_context_code = P_ag_tbl(i).attr_group_id;
5431 EXCEPTION
5432 WHEN no_data_found THEN
5433 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group does not exist in the system');
5434
5435 P_ag_tbl(i).process_status := G_ERROR_RECORD;
5436
5437 x_return_status := G_RET_STS_ERROR;
5438
5439 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5440 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5441 p_row_identifier => P_ag_tbl(i).transaction_id,
5442 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
5443 WHEN OTHERS THEN
5444 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 5');
5445
5446 x_return_status := G_RET_STS_UNEXP_ERROR;
5447
5448 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5449 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5450 p_row_identifier => P_ag_tbl(i).transaction_id,
5451 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
5452
5453 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 5 - '||SQLERRM;
5454
5455 RETURN;
5456 END;
5457 END IF;
5458
5459 /*Defaults the MULTROW column to N if not provided*/
5460 IF (P_ag_tbl(i).multi_row IS NULL
5461 AND P_ag_tbl(i).transaction_type = G_OPR_CREATE) THEN
5462 P_ag_tbl(i).multi_row := 'N';
5463 END IF;
5464
5465 /*If the attribute group internal name or the display name is null for the CREATE flow then flag an error EGO_AG_MANDATORY*/
5466 IF ((P_ag_tbl(i).attr_group_name IS NULL
5467 OR P_ag_tbl(i).attr_group_disp_name IS NULL)
5468 AND P_ag_tbl(i).transaction_type = G_OPR_CREATE) THEN
5469 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group internal name and display name are not provided in the CREATE flow');
5470
5471 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5472
5473 x_return_status := G_RET_STS_ERROR;
5474
5475 error_handler.Add_error_message(p_message_name => 'EGO_AG_MANDATORY',p_application_id => 'EGO',
5476 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5477 p_row_identifier => P_ag_tbl(i).transaction_id,
5478 p_entity_code => G_ENTITY_AG,p_table_name => G_ENTITY_AG_TAB);
5479 END IF;
5480 END IF;
5481 END LOOP;
5482
5483 lv_smt := 6;
5484
5485 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 6');
5486
5487 /*Additional Validation for DL*/
5488 FOR i IN p_agdl_tbl.FIRST.. p_agdl_tbl.LAST LOOP
5489 IF (P_agdl_tbl(i).process_status = G_PROCESS_RECORD) THEN
5490 /*Sets the Attribute Name if Attribute ID exists. If it doesn't exist, then flags an error EGO_AG_INVALID*/
5491 IF (P_agdl_tbl(i).attr_group_id IS NOT NULL
5492 AND P_agdl_tbl(i).attr_group_name IS NULL
5493 AND P_agdl_tbl(i).transaction_type = G_OPR_UPDATE) THEN
5494 BEGIN
5495 SELECT descriptive_flex_context_code
5496 INTO P_agdl_tbl(i).attr_group_name
5497 FROM ego_fnd_dsc_flx_ctx_ext
5498 WHERE application_id = g_ego_application_id
5499 AND descriptive_flexfield_name = P_agdl_tbl(i).attr_group_type
5500 AND descriptive_flex_context_code = P_agdl_tbl(i).attr_group_id;
5501 EXCEPTION
5502 WHEN no_data_found THEN
5503 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group does not exist in the system');
5504
5505 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5506
5507 x_return_status := G_RET_STS_ERROR;
5508
5509 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5510 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5511 p_row_identifier => P_agdl_tbl(i).transaction_id,
5512 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5513 WHEN OTHERS THEN
5514 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 6');
5515
5516 x_return_status := G_RET_STS_UNEXP_ERROR;
5517
5518 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5519 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5520 p_row_identifier => P_agdl_tbl(i).transaction_id,
5521 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5522
5523 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 6 - '||SQLERRM;
5524
5525 RETURN;
5526 END;
5527 END IF;
5528 END IF;
5529
5530 /*Sets the View Privilege when the ID is given then flags an error EGO_VIEW_PRIV_NOT_EXIST*/
5531 IF (P_agdl_tbl(i).view_privilege_id IS NOT NULL
5532 AND P_agdl_tbl(i).view_privilege_id <> G_NULL_CHAR
5533 AND P_agdl_tbl(i).view_privilege_name IS NULL) THEN
5534 BEGIN
5535 SELECT function_name
5536 INTO P_agdl_tbl(i).view_privilege_name
5537 FROM fnd_form_functions
5538 WHERE function_id = P_agdl_tbl(i).view_privilege_id;
5539 EXCEPTION
5540 WHEN no_data_found THEN
5541 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'View Privilege provided is invalid');
5542
5543 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5544
5545 x_return_status := G_RET_STS_ERROR;
5546
5547 error_handler.Add_error_message(p_message_name => 'EGO_VIEW_PRIV_NOT_EXIST',
5548 p_application_id => 'EGO',p_token_tbl => g_token_table,
5549 p_message_type => G_RET_STS_ERROR,p_row_identifier => P_agdl_tbl(i).transaction_id,
5550 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5551 WHEN OTHERS THEN
5552 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 7');
5553
5554 x_return_status := G_RET_STS_UNEXP_ERROR;
5555
5556 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5557 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5558 p_row_identifier => P_agdl_tbl(i).transaction_id,
5559 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5560
5561 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 7 - '||SQLERRM;
5562
5563 RETURN;
5564 END;
5565 END IF;
5566
5567 /*Sets the Edit Privilege when the ID is given then flags an error EGO_EDITW_PRIV_NOT_EXIST*/
5568 IF (P_agdl_tbl(i).edit_privilege_id IS NOT NULL
5569 AND P_agdl_tbl(i).edit_privilege_id <> G_NULL_NUM
5570 AND P_agdl_tbl(i).edit_privilege_name IS NULL) THEN
5571 BEGIN
5572 SELECT function_name
5573 INTO P_agdl_tbl(i).edit_privilege_name
5574 FROM fnd_form_functions
5575 WHERE function_id = P_agdl_tbl(i).edit_privilege_id;
5576 EXCEPTION
5577 WHEN no_data_found THEN
5578 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Edit Privilege provided is invalid');
5579
5580 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5581
5582 x_return_status := G_RET_STS_ERROR;
5583
5584 error_handler.Add_error_message(p_message_name => 'EGO_EDIT_PRIV_NOT_EXIST',
5585 p_application_id => 'EGO',p_token_tbl => g_token_table,
5586 p_message_type => G_RET_STS_ERROR,p_row_identifier => P_agdl_tbl(i).transaction_id,
5587 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5588 WHEN OTHERS THEN
5589 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 8');
5590
5591 x_return_status := G_RET_STS_UNEXP_ERROR;
5592
5593 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5594 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5595 p_row_identifier => P_agdl_tbl(i).transaction_id,
5596 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5597
5598 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 8 - '||SQLERRM;
5599
5600 RETURN;
5601 END;
5602 END IF;
5603
5604 /*Sets the Defaulting Name when the Defaulting is given then flags an error EGO_DEFAULTING_INVALID*/
5605 IF (P_agdl_tbl(i).defaulting IS NOT NULL
5606 AND P_agdl_tbl(i).defaulting_name IS NULL
5607 AND P_agdl_tbl(i).transaction_type <> G_OPR_DELETE) THEN
5608 BEGIN
5609 SELECT meaning
5610 INTO P_agdl_tbl(i).defaulting_name
5611 FROM fnd_lookup_values
5612 WHERE lookup_type = 'EGO_EF_AG_DL_BEHAVIOR'
5613 AND lookup_code = P_agdl_tbl(i).defaulting
5614 AND language = Userenv('LANG');
5615 EXCEPTION
5616 WHEN no_data_found THEN
5617 IF (P_agdl_tbl(i).data_level_name <> 'ITEM_REVISION_LEVEL') THEN
5618 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'The defaulting provided is invalid');
5619
5620 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5621
5622 x_return_status := G_RET_STS_ERROR;
5623
5624 error_handler.Add_error_message(p_message_name => 'EGO_DEFAULTING_INVALID',p_application_id => 'EGO',
5625 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5626 p_row_identifier => P_agdl_tbl(i).transaction_id,
5627 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5628 END IF;
5629 WHEN OTHERS THEN
5630 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 9');
5631
5632 x_return_status := G_RET_STS_UNEXP_ERROR;
5633
5634 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5635 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5636 p_row_identifier => P_agdl_tbl(i).transaction_id,
5637 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5638
5639 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 9 - '||SQLERRM;
5640
5641 RETURN;
5642 END;
5643 END IF;
5644
5645 /*Sets the Defaulting when the Defaulting Name is given then flags an error EGO_DEFAULTING_INVALID*/
5646 IF (P_agdl_tbl(i).defaulting IS NULL
5647 AND P_agdl_tbl(i).defaulting_name IS NOT NULL
5648 and P_agdl_tbl(i).transaction_type <> G_OPR_DELETE) THEN
5649 BEGIN
5650 SELECT lookup_code
5651 INTO P_agdl_tbl(i).defaulting_name
5652 FROM fnd_lookup_values
5653 WHERE lookup_type = 'EGO_EF_AG_DL_BEHAVIOR'
5654 AND meaning = P_agdl_tbl(i).defaulting_name
5655 AND language = Userenv('LANG');
5656 EXCEPTION
5657 WHEN no_data_found THEN
5658 IF (P_agdl_tbl(i).data_level_name <> 'ITEM_REVISION_LEVEL') THEN
5659 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'The defaulting name provided is invalid');
5660
5661 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5662
5663 x_return_status := G_RET_STS_ERROR;
5664
5665 error_handler.Add_error_message(p_message_name => 'EGO_DEFAULTING_INVALID',p_application_id => 'EGO',
5666 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5667 p_row_identifier => P_agdl_tbl(i).transaction_id,
5668 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5669 END IF;
5670 WHEN OTHERS THEN
5671 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 10');
5672
5673 x_return_status := G_RET_STS_UNEXP_ERROR;
5674
5675 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5676 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5677 p_row_identifier => P_agdl_tbl(i).transaction_id,
5678 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5679
5680 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 10 - '||SQLERRM;
5681
5682 RETURN;
5683 END;
5684 END IF;
5685
5686 /*Sets the data level when the data level id is given or else flags an error EGO_DL_NOT_EXIST*/
5687 IF (P_agdl_tbl(i).data_level_id IS NOT NULL
5688 AND P_agdl_tbl(i).data_level_name IS NULL) THEN
5689 BEGIN
5690 SELECT data_level_name
5691 INTO P_agdl_tbl(i).data_level_name
5692 FROM ego_data_level_b
5693 WHERE attr_group_type = P_agdl_tbl(i).attr_group_type
5694 AND application_id = g_ego_application_id
5695 AND data_level_id = P_agdl_tbl(i).data_level_id;
5696 EXCEPTION
5697 WHEN no_data_found THEN
5698 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Data Level provided is invalid');
5699
5700 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5701
5702 x_return_status := G_RET_STS_ERROR;
5703
5704 error_handler.Add_error_message(p_message_name => 'EGO_DL_NOT_EXIST',p_application_id => 'EGO',
5705 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5706 p_row_identifier => P_agdl_tbl(i).transaction_id,
5707 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5708 WHEN OTHERS THEN
5709 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 11');
5710
5711 x_return_status := G_RET_STS_UNEXP_ERROR;
5712
5713 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5714 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5715 p_row_identifier => P_agdl_tbl(i).transaction_id,
5716 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5717
5718 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 11 - '||SQLERRM;
5719
5720 RETURN;
5721 END;
5722 END IF;
5723
5724 /*Throws an error EGO_VAR_DL_SKU if the AG is of type VARIANT and Business Entity is not ITEM and SKU NULL*/
5725 IF (P_agdl_tbl(i).attr_group_id IS NOT NULL
5726 AND (P_agdl_tbl(i).data_level_name <> G_DL_ITEM_LEVEL
5727 OR P_agdl_tbl(i).defaulting IS NOT NULL)) THEN
5728 BEGIN
5729 SELECT Nvl(variant,'N')
5730 INTO lv_flag
5731 FROM ego_fnd_dsc_flx_ctx_ext
5732 WHERE attr_group_id = P_agdl_tbl(i).attr_group_id;
5733
5734 IF (lv_flag = 'Y') THEN
5735 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group of type Variant can only set ITEM as the business entity and with SKU as NULL');
5736
5737 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5738
5739 x_return_status := G_RET_STS_ERROR;
5740
5741 error_handler.Add_error_message(p_message_name => 'EGO_VAR_DL_SKU',p_application_id => 'EGO',
5742 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5743 p_row_identifier => P_agdl_tbl(i).transaction_id,
5744 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5745 END IF;
5746 EXCEPTION
5747 WHEN no_data_found THEN
5748 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute Group is invalid');
5749
5750 x_return_status := G_RET_STS_ERROR;
5751
5752 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5753 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5754 p_row_identifier => P_agdl_tbl(i).transaction_id,
5755 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5756 WHEN OTHERS THEN
5757 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 12');
5758
5759 x_return_status := G_RET_STS_UNEXP_ERROR;
5760
5761 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5762 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5763 p_row_identifier => P_agdl_tbl(i).transaction_id,
5764 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5765
5766 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 12 - '||SQLERRM;
5767
5768 RETURN;
5769 END;
5770 END IF;
5771
5772 /*Throws an error EGO_DL_NOT_EXIST if the AG is of type single row or Multi row and Business Entity is not
5773 ITEM_LEVEL, ITEM_REVISION_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG*/
5774 IF (P_agdl_tbl(i).attr_group_id IS NOT NULL) THEN
5775 IF (P_agdl_tbl(i).data_level_name = G_DL_ITEM_LEVEL
5776 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_REV_LEVEL
5777 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_ORG
5778 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP
5779 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP_SITE
5780 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP_SITE_ORG) THEN
5781 NULL;
5782 ELSE
5783 BEGIN
5784 SELECT Nvl(variant,'N')
5785 INTO lv_flag
5786 FROM ego_fnd_dsc_flx_ctx_ext
5787 WHERE attr_group_id = P_agdl_tbl(i).attr_group_id;
5788
5789 IF (lv_flag = 'N') THEN
5790 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'The Behaviour and Business Entity combination is incorrect');
5791
5792 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5793
5794 x_return_status := G_RET_STS_ERROR;
5795
5796 error_handler.Add_error_message(p_message_name => 'EGO_VAR_DL_SKU',p_application_id => 'EGO',
5797 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5798 p_row_identifier => P_agdl_tbl(i).transaction_id,
5799 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5800 END IF;
5801 EXCEPTION
5802 WHEN no_data_found THEN
5803 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group is invalid');
5804
5805 x_return_status := G_RET_STS_ERROR;
5806
5807 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5808 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5809 p_row_identifier => P_agdl_tbl(i).transaction_id,
5810 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5811 WHEN OTHERS THEN
5812 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 13');
5813
5814 x_return_status := G_RET_STS_UNEXP_ERROR;
5815
5816 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5817 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5818 p_row_identifier => P_agdl_tbl(i).transaction_id,
5819 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5820
5821 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 13 - '||SQLERRM;
5822
5823 RETURN;
5824 END;
5825 END IF;
5826 END IF;
5827 /*Throws an error EGO_MULROW_SKU if the AG is of type single row or Multi row and Business Entity and SKU combination is invalid*/
5828 IF (P_agdl_tbl(i).attr_group_id IS NOT NULL) THEN
5829 IF (((P_agdl_tbl(i).data_level_name = G_DL_ITEM_LEVEL
5830 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_ORG
5831 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP
5832 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP_SITE
5833 OR P_agdl_tbl(i).data_level_name = G_DL_ITEM_SUP_SITE_ORG)
5834 AND (P_agdl_tbl(i).defaulting = 'D'
5835 OR P_agdl_tbl(i).defaulting = 'I'))
5836 OR (P_agdl_tbl(i).data_level_name = G_DL_ITEM_REV_LEVEL
5837 AND P_agdl_tbl(i).defaulting IS NULL)) THEN
5838 NULL;
5839 ELSE
5840 BEGIN
5841 SELECT Nvl(variant,'N')
5842 INTO lv_flag
5843 FROM ego_fnd_dsc_flx_ctx_ext
5844 WHERE attr_group_id = P_agdl_tbl(i).attr_group_id;
5845
5846 IF (lv_flag = 'N') THEN
5847 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute Group behaviour, business entity and the style to SKU combination in invalid');
5848
5849 P_agdl_tbl(i).process_status := G_ERROR_RECORD;
5850
5851 x_return_status := G_RET_STS_ERROR;
5852
5853 error_handler.Add_error_message(p_message_name => 'EGO_MULROW_SKU',p_application_id => 'EGO',
5854 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5855 p_row_identifier => P_agdl_tbl(i).transaction_id,
5856 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5857 END IF;
5858 EXCEPTION
5859 WHEN no_data_found THEN
5860 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group is invalid');
5861
5862 x_return_status := G_RET_STS_ERROR;
5863
5864 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5865 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5866 p_row_identifier => P_agdl_tbl(i).transaction_id,
5867 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5868 WHEN OTHERS THEN
5869 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others smt 14');
5870
5871 x_return_status := G_RET_STS_UNEXP_ERROR;
5872
5873 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5874 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5875 p_row_identifier => P_agdl_tbl(i).transaction_id,
5876 p_entity_code => G_ENTITY_DL,p_table_name => G_ENTITY_DL_tab);
5877
5878 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations smt 14 - '||SQLERRM;
5879
5880 RETURN;
5881 END;
5882 END IF;
5883 END IF;
5884 END LOOP;
5885 EXCEPTION
5886 WHEN OTHERS THEN
5887 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_agdl_validations Exception when others'||SQLERRM);
5888
5889 x_return_status := G_RET_STS_UNEXP_ERROR;
5890
5891 x_return_msg := 'ego_ag_bulkload_pvt.Additional_agdl_validations - '||SQLERRM;
5892
5893 RETURN;
5894 END Additional_agdl_validations;
5895
5896 /*This procedure is used to do additional validations on attributes.
5897 Used in the API flow.
5898 p_attr_tbl IN OUT NOCOPY Attributes plsql table
5899 x_return_status OUT NOCOPY parameter that returns the status*/
5900 PROCEDURE Additional_attr_validations
5901 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
5902 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
5903 IS
5904 lv_smt NUMBER; --Statement counter
5905 lv_proc VARCHAR2(30) := 'Additional_attr_validations';
5906 BEGIN
5907 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering Additional_attr_validations');
5908
5909 x_return_status := G_RET_STS_SUCCESS;
5910
5911 lv_smt := 1;
5912
5913 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
5914
5915 FOR i IN p_attr_tbl.FIRST.. p_attr_tbl.LAST LOOP
5916 /*Convert transaction type to upper case*/
5917 SELECT Upper(P_attr_tbl(i).transaction_type)
5918 INTO P_attr_tbl(i).transaction_type
5919 FROM dual;
5920
5921 /*Check for invalid transaction type in the Attribute table*/
5922 IF ( P_attr_tbl(i).transaction_type = G_OPR_CREATE
5923 OR P_attr_tbl(i).transaction_type = G_OPR_UPDATE
5924 OR P_attr_tbl(i).transaction_type = G_OPR_DELETE
5925 OR P_attr_tbl(i).transaction_type = G_OPR_SYNC) THEN
5926 NULL;
5927 ELSE
5928 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Transaction type Invalid for Attributes');
5929
5930 P_attr_tbl(i).process_status := G_ERROR_RECORD;
5931
5932 x_return_status := G_RET_STS_ERROR;
5933
5934 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Transaction Type passed is incorrect');
5935
5936 error_handler.Add_error_message(p_message_name => 'EGO_TRANS_TYPE_INVALID',p_application_id => 'EGO',
5937 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5938 p_row_identifier => P_attr_tbl(i).transaction_id,
5939 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5940 END IF;
5941
5942 /*Checks if the attribute group type passed is EGO_ITEMMGMT_GROUP or else thows the error EGO_AG_TYPE_INVALID*/
5943 IF (P_attr_tbl(i).attr_group_type <> G_EGO_ITEMMGMT_GROUP) THEN
5944 P_attr_tbl(i).process_status := G_ERROR_RECORD;
5945
5946 x_return_status := G_RET_STS_ERROR;
5947
5948 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute group Type passed is incorrect');
5949
5950 error_handler.Add_error_message(p_message_name => 'EGO_AG_TYPE_INVALID',p_application_id => 'EGO',
5951 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5952 p_row_identifier => P_attr_tbl(i).transaction_id,
5953 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5954 END IF;
5955 END LOOP;
5956
5957 /*Value to ID Conversions for Attributes*/
5958 Value_to_id_attr_tbl(p_attr_tbl,x_return_status, x_return_msg); IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN RETURN; END IF;
5959
5960 FOR i IN p_attr_tbl.FIRST.. p_attr_tbl.LAST LOOP
5961 IF (P_attr_tbl(i).process_status = G_PROCESS_RECORD) THEN
5962 lv_smt := 1;
5963
5964 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 1');
5965
5966 /*Sets the attribute group name when the attribute group id is given*/
5967 IF (P_attr_tbl(i).attr_group_id IS NOT NULL
5968 AND P_attr_tbl(i).attr_group_name IS NULL) THEN
5969 BEGIN
5970 SELECT descriptive_flex_context_code
5971 INTO P_attr_tbl(i).attr_group_name
5972 FROM ego_fnd_dsc_flx_ctx_ext
5973 WHERE application_id = g_ego_application_id
5974 AND descriptive_flexfield_name = P_attr_tbl(i).attr_group_type
5975 AND attr_group_id = P_attr_tbl(i).attr_group_id;
5976 EXCEPTION
5977 WHEN no_data_found THEN
5978 x_return_status := G_RET_STS_ERROR;
5979
5980 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute Group does not exist');
5981
5982 error_handler.Add_error_message(p_message_name => 'EGO_AG_INVALID',p_application_id => 'EGO',
5983 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
5984 p_row_identifier => P_attr_tbl(i).transaction_id,
5985 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5986 WHEN OTHERS THEN
5987 x_return_status := G_RET_STS_UNEXP_ERROR;
5988
5989 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_attr_validations when others smt 1');
5990
5991 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
5992 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
5993 p_row_identifier => P_attr_tbl(i).transaction_id,
5994 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
5995
5996 x_return_msg := 'ego_ag_bulkload_pvt.Additional_attr_validations smt 1- '||SQLERRM;
5997
5998 RETURN;
5999 END;
6000 END IF;
6001
6002 lv_smt := 2;
6003
6004 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 2');
6005
6006 /*Sets the internal attribute name when the attribute id is given*/
6007 IF (P_attr_tbl(i).attr_id IS NOT NULL
6008 AND P_attr_tbl(i).internal_name IS NULL) THEN
6009 BEGIN
6010 SELECT fdfcu.end_user_column_name
6011 INTO P_attr_tbl(i).internal_name
6012 FROM fnd_descr_flex_column_usages fdfcu,
6013 ego_fnd_df_col_usgs_ext efdcue
6014 WHERE fdfcu.application_id = efdcue.application_id
6015 AND fdfcu.descriptive_flexfield_name = efdcue.descriptive_flexfield_name
6016 AND fdfcu.descriptive_flex_context_code = efdcue.descriptive_flex_context_code
6017 AND fdfcu.application_column_name = efdcue.application_column_name
6018 AND fdfcu.application_id = g_ego_application_id
6019 AND fdfcu.descriptive_flexfield_name = P_attr_tbl(i).attr_group_type
6020 AND fdfcu.descriptive_flex_context_code = P_attr_tbl(i).attr_group_name
6021 AND efdcue.attr_id = P_attr_tbl(i).attr_id;
6022
6023 IF (P_attr_tbl(i).transaction_type = G_OPR_SYNC) THEN
6024 P_attr_tbl(i).transaction_type := G_OPR_UPDATE;
6025 END IF;
6026 EXCEPTION
6027 WHEN no_data_found THEN
6028 IF (P_attr_tbl(i).transaction_type = G_OPR_SYNC) THEN
6029 P_attr_tbl(i).transaction_type := G_OPR_CREATE;
6030 ELSE
6031 x_return_status := G_RET_STS_ERROR;
6032
6033 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Attribute does not exist');
6034
6035 error_handler.Add_error_message(p_message_name => 'EGO_ATTR_NOT_EXISTS',p_application_id => 'EGO',
6036 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
6037 p_row_identifier => P_attr_tbl(i).transaction_id,
6038 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
6039 END IF;
6040 WHEN OTHERS THEN
6041 x_return_status := G_RET_STS_UNEXP_ERROR;
6042
6043 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_attr_validations Exception when others smt 2');
6044
6045 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
6046 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
6047 p_row_identifier => P_attr_tbl(i).transaction_id,
6048 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
6049
6050 x_return_msg := 'ego_ag_bulkload_pvt.Additional_attr_validations smt 2- '||SQLERRM;
6051
6052 RETURN;
6053 END;
6054 END IF;
6055
6056 lv_smt := 3;
6057
6058 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Statement 3');
6059
6060 /*Sets the value set name when the value set id is given*/
6061 IF (P_attr_tbl(i).flex_value_set_id IS NOT NULL
6062 AND P_attr_tbl(i).flex_value_set_id <> G_NULL_NUM
6063 AND P_attr_tbl(i).flex_value_set_name IS NULL) THEN
6064 BEGIN
6065 SELECT ffvs.flex_value_set_name
6066 INTO P_attr_tbl(i).flex_value_set_name
6067 FROM fnd_flex_value_sets ffvs
6068 WHERE ffvs.flex_value_set_id = P_attr_tbl(i).flex_value_set_id;
6069 EXCEPTION
6070 WHEN no_data_found THEN
6071 x_return_status := G_RET_STS_ERROR;
6072
6073 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Value Set does not exist in the system');
6074
6075 error_handler.Add_error_message(p_message_name => 'EGO_EF_BC_SEL_EXI_VALUE',p_application_id => 'EGO',
6076 p_token_tbl => g_token_table,p_message_type => G_RET_STS_ERROR,
6077 p_row_identifier => P_attr_tbl(i).transaction_id,
6078 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
6079 WHEN OTHERS THEN
6080 x_return_status := G_RET_STS_UNEXP_ERROR;
6081
6082 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_attr_validations Exception when others smt 3');
6083
6084
6085 error_handler.Add_error_message(p_message_text => sqlerrm,p_application_id => 'EGO',
6086 p_token_tbl => g_token_table,p_message_type => G_RET_STS_UNEXP_ERROR,
6087 p_row_identifier => P_attr_tbl(i).transaction_id,
6088 p_entity_code => G_ENTITY_ATTR,p_table_name => G_ENTITY_ATTR_TAB);
6089
6090 x_return_msg := 'ego_ag_bulkload_pvt.Additional_attr_validations smt 3 - '||SQLERRM;
6091
6092 RETURN;
6093 END;
6094 END IF;
6095 END IF;
6096 END LOOP;
6097
6098 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit Additional_attr_validations');
6099 EXCEPTION
6100 WHEN OTHERS THEN
6101 x_return_status := G_RET_STS_UNEXP_ERROR;
6102
6103 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Additional_attr_validations Exception when others'||SQLERRM);
6104
6105 x_return_msg := 'ego_ag_bulkload_pvt.Additional_attr_validations - '||SQLERRM;
6106
6107 RETURN;
6108 END Additional_attr_validations;
6109
6110 /*This procedure is used to update the attribute group interface table
6111 Used in the interface flow.
6112 p_ag_tbl IN OUT NOCOPY Attribute group plsql table
6113 x_return_status OUT NOCOPY parameter that returns the status*/
6114 PROCEDURE update_intf_attr_groups
6115 (p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
6116 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6117 IS
6118 lv_proc VARCHAR2(30) := 'update_intf_attr_groups';
6119 trans_id dbms_sql.number_table;
6120 BEGIN
6121 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering update_intf_attr_groups');
6122
6123 x_return_status := G_RET_STS_SUCCESS;
6124
6125 FOR i IN p_ag_tbl.FIRST..p_ag_tbl.LAST LOOP
6126 trans_id(i) := p_ag_tbl(i).transaction_id;
6127 END LOOP;
6128
6129 FORALL i IN p_ag_tbl.FIRST..p_ag_tbl.LAST
6130 UPDATE ego_attr_groups_interface
6131 SET ROW = p_ag_tbl(i)
6132 WHERE transaction_id = trans_id(i);
6133
6134 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit update_intf_attr_groups');
6135 EXCEPTION
6136 WHEN OTHERS THEN
6137 x_return_status := G_RET_STS_UNEXP_ERROR;
6138
6139 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'update_intf_attr_groups Exception when others'||SQLERRM);
6140
6141 x_return_msg := 'ego_ag_bulkload_pvt.update_intf_attr_groups - '||SQLERRM;
6142
6143 RETURN;
6144 END update_intf_attr_groups;
6145
6146 /*This procedure is used to update the attribute group data level interface table
6147 Used in the interface flow.
6148 p_agdl_tbl IN OUT NOCOPY Attribute group data level plsql table
6149 x_return_status OUT NOCOPY parameter that returns the status*/
6150 PROCEDURE update_intf_data_level
6151 (p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
6152 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6153 IS
6154 lv_proc VARCHAR2(30) := 'update_intf_data_level';
6155 trans_id dbms_sql.number_table;
6156 BEGIN
6157 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering update_intf_data_level');
6158
6159 x_return_status := G_RET_STS_SUCCESS;
6160
6161 FOR i IN p_agdl_tbl.FIRST..p_agdl_tbl.LAST LOOP
6162 trans_id(i) := p_agdl_tbl(i).transaction_id;
6163 END LOOP;
6164
6165 FORALL i IN p_agdl_tbl.FIRST..p_agdl_tbl.LAST
6166 UPDATE ego_attr_groups_dl_interface
6167 SET ROW = p_agdl_tbl(i)
6168 WHERE transaction_id = trans_id(i);
6169
6170
6171 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit update_intf_data_level');
6172 EXCEPTION
6173 WHEN OTHERS THEN
6174 x_return_status := G_RET_STS_UNEXP_ERROR;
6175
6176 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'update_intf_data_level Exception when others'||SQLERRM);
6177
6178 x_return_msg := 'ego_ag_bulkload_pvt.update_intf_data_level - '||SQLERRM;
6179
6180 RETURN;
6181 END update_intf_data_level;
6182
6183 /*This procedure is used to update the attributes interface table
6184 Used in the Interface flow.
6185 p_attr_tbl IN OUT NOCOPY Attributes plsql table
6186 x_return_status OUT NOCOPY parameter that returns the status*/
6187 PROCEDURE update_intf_attribute
6188 (p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
6189 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6190 IS
6191 lv_proc VARCHAR2(30) := 'update_intf_attribute';
6192 trans_id dbms_sql.number_table;
6193 BEGIN
6194 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering update_intf_attribute');
6195
6196 x_return_status := G_RET_STS_SUCCESS;
6197
6198 FOR i IN p_attr_tbl.FIRST..p_attr_tbl.LAST LOOP
6199 trans_id(i) := p_attr_tbl(i).transaction_id;
6200 END LOOP;
6201
6202 FORALL i IN p_attr_tbl.FIRST..p_attr_tbl.LAST
6203 UPDATE ego_attr_group_cols_intf
6204 SET ROW = P_attr_tbl(i)
6205 WHERE transaction_id = trans_id(i);
6206
6207 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit update_intf_attribute');
6208 EXCEPTION
6209 WHEN OTHERS THEN
6210 x_return_status := G_RET_STS_UNEXP_ERROR;
6211
6212 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'update_intf_attribute Exception when others'||SQLERRM);
6213
6214 x_return_msg := 'ego_ag_bulkload_pvt.update_intf_attribute - '||SQLERRM;
6215
6216 RETURN;
6217 END update_intf_attribute;
6218
6219 /*This procedure is used to delete processed records from the attribute group's interface table
6220 Used in the interface flow.
6221 x_set_process_id IN Set process id
6222 x_return_status OUT NOCOPY parameter that returns the status*/
6223 PROCEDURE delete_processed_attr_groups(
6224 x_set_process_id IN NUMBER,
6225 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6226 IS
6227 lv_proc VARCHAR2(30) := 'delete_processed_attr_groups';
6228 BEGIN
6229 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering delete_processed_attr_groups');
6230
6231 x_return_status := G_RET_STS_SUCCESS;
6232
6233 DELETE FROM ego_attr_groups_interface
6234 WHERE process_status = G_SUCCESS_RECORD
6235 AND (x_set_process_id IS NULL
6236 OR set_process_id = x_set_process_id);
6237
6238 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit delete_processed_attr_groups');
6239 EXCEPTION
6240 WHEN OTHERS THEN
6241 x_return_status := G_RET_STS_UNEXP_ERROR;
6242
6243 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'delete_processed_attr_groups Exception when others'||SQLERRM);
6244
6245 x_return_msg := 'ego_ag_bulkload_pvt.delete_processed_attr_groups - '||SQLERRM;
6246
6247 RETURN;
6248
6249 END delete_processed_attr_groups;
6250
6251 /*This procedure is used to delete processed records from the AG Data level's interface table
6252 Used in the interface flow.
6253 x_set_process_id IN Set process id
6254 x_return_status OUT NOCOPY parameter that returns the status*/
6255 PROCEDURE delete_processed_data_level(
6256 x_set_process_id IN NUMBER,
6257 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6258 IS
6259 lv_proc VARCHAR2(30) := 'delete_processed_data_level';
6260 BEGIN
6261 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering delete_processed_data_level');
6262
6263 x_return_status := G_RET_STS_SUCCESS;
6264
6265 DELETE FROM ego_attr_groups_dl_interface
6266 WHERE process_status = G_SUCCESS_RECORD
6267 AND (x_set_process_id IS NULL
6268 OR set_process_id = x_set_process_id);
6269
6270 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit delete_processed_data_level');
6271 EXCEPTION
6272 WHEN OTHERS THEN
6273 x_return_status := G_RET_STS_UNEXP_ERROR;
6274
6275 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'delete_processed_data_level Exception when others'||SQLERRM);
6276
6277 x_return_msg := 'ego_ag_bulkload_pvt.delete_processed_data_level - '||SQLERRM;
6278
6279 RETURN;
6280 END delete_processed_data_level;
6281
6282 /*This procedure is used to delete processed records from the Attribute's interface table
6283 Used in the Interface flow.
6284 x_set_process_id IN Set process id
6285 x_return_status OUT NOCOPY parameter that returns the status*/
6286 PROCEDURE delete_processed_attributes(
6287 x_set_process_id IN NUMBER,
6288 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6289 IS
6290 lv_proc VARCHAR2(30) := 'delete_processed_attributes';
6291 BEGIN
6292 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering delete_processed_attributes');
6293
6294 x_return_status := G_RET_STS_SUCCESS;
6295
6296 DELETE FROM ego_attr_group_cols_intf
6297 WHERE process_status = G_SUCCESS_RECORD
6298 AND (x_set_process_id IS NULL
6299 OR set_process_id = x_set_process_id);
6300
6301 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit delete_processed_attributes');
6302 EXCEPTION
6303 WHEN OTHERS THEN
6304 x_return_status := G_RET_STS_UNEXP_ERROR;
6305
6306 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'delete_processed_attributes Exception when others'||SQLERRM);
6307
6308 x_return_msg := 'ego_ag_bulkload_pvt.delete_processed_attributes - '||SQLERRM;
6309
6310 RETURN;
6311 END delete_processed_attributes;
6312
6313 /*This procedure is used in the update flow to handle null values for AG
6314 Used in the interface and API flow.
6315 p_ag_tbl IN OUT NOCOPY Attribute groups plsql table
6316 x_return_status OUT NOCOPY parameter that returns the status
6317 x_return_msg OUT NOCOPY parameter that returns the error message*/
6318 PROCEDURE handle_null_ag(
6319 p_ag_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_tbl,
6320 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6321 IS
6322 lv_display_name VARCHAR2(40); /*Added for bug 9738246*/
6323 lv_num_of_cols NUMBER;
6324 lv_num_of_rows NUMBER;
6325 lv_multi_row VARCHAR2(1);
6326 lv_variant VARCHAR2(1);
6327 lv_description VARCHAR2(240); /*Added for bug 9738246*/
6328 lv_proc VARCHAR2(30) := 'handle_null_ag';
6329 BEGIN
6330 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering handle_null_ag');
6331
6332 x_return_status := G_RET_STS_SUCCESS;
6333
6334 FOR i IN p_ag_tbl.FIRST..p_ag_tbl.LAST LOOP
6335 IF (p_ag_tbl(i).process_status = G_PROCESS_RECORD
6336 AND p_ag_tbl(i).transaction_type = G_OPR_UPDATE) THEN
6337 BEGIN
6338 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Smt 1');
6339
6340 SELECT NUM_OF_COLS, NUM_OF_ROWS, MULTI_ROW, VARIANT INTO lv_num_of_cols, lv_num_of_rows, lv_multi_row, lv_variant
6341 FROM EGO_FND_DSC_FLX_CTX_EXT
6342 WHERE DESCRIPTIVE_FLEXFIELD_NAME = p_ag_tbl(i).attr_group_type
6343 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_ag_tbl(i).attr_group_name
6344 AND APPLICATION_ID = G_EGO_APPLICATION_ID;
6345
6346 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 2');
6347
6348 SELECT DESCRIPTIVE_FLEX_CONTEXT_NAME, DESCRIPTION INTO lv_display_name, lv_description
6349 FROM FND_DESCR_FLEX_CONTEXTS_TL
6350 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
6351 AND DESCRIPTIVE_FLEXFIELD_NAME = p_ag_tbl(i).attr_group_type
6352 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_ag_tbl(i).attr_group_name
6353 AND USERENV('LANG') = LANGUAGE;
6354
6355 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 3');
6356
6357 IF (p_ag_tbl(i).attr_group_disp_name IS NULL
6358 OR p_ag_tbl(i).attr_group_disp_name = G_NULL_CHAR) THEN
6359 p_ag_tbl(i).attr_group_disp_name := lv_display_name;
6360 END IF;
6361
6362 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 4');
6363
6364 IF p_ag_tbl(i).description IS NULL THEN
6365 p_ag_tbl(i).description := lv_description;
6366 ELSIF p_ag_tbl(i).description = G_NULL_CHAR THEN
6367 p_ag_tbl(i).description := NULL;
6368 END IF;
6369
6370 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 5');
6371
6372 IF ((p_ag_tbl(i).num_of_rows IS NULL
6373 OR p_ag_tbl(i).num_of_rows = G_NULL_NUM) /*Changed for bug 9719202*/
6374 AND lv_num_of_rows IS NOT NULL) THEN
6375 p_ag_tbl(i).num_of_rows := lv_num_of_rows;
6376 END IF;
6377
6378 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 6');
6379
6380 IF ((p_ag_tbl(i).num_of_cols IS NULL
6381 OR p_ag_tbl(i).num_of_cols = G_NULL_NUM) /*Changed for bug 9719202*/
6382 AND lv_num_of_cols IS NOT NULL) THEN
6383 p_ag_tbl(i).num_of_cols := lv_num_of_cols;
6384 END IF;
6385
6386 /*Added for bug 9719202*/
6387 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 7');
6388
6389 IF (NVL(lv_variant,'N') = 'N' AND lv_multi_row = 'N') THEN
6390 p_ag_tbl(i).num_of_rows := null;
6391 END IF;
6392
6393 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'smt 8');
6394
6395 IF (NVL(lv_variant,'N') = 'Y' AND lv_multi_row = 'N') THEN
6396 p_ag_tbl(i).num_of_rows := null;
6397 p_ag_tbl(i).num_of_cols := null;
6398 END IF;
6399 /*End of comment for bug 9719202*/
6400 EXCEPTION
6401 WHEN OTHERS THEN
6402 x_return_status := G_RET_STS_UNEXP_ERROR;
6403
6404 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_ag exception when others smt 1');
6405
6406 x_return_msg := 'ego_ag_bulkload_pvt.handle_null_ag - '||SQLERRM;
6407
6408 RETURN;
6409 END;
6410 END IF;
6411 END LOOP;
6412 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit handle_null_ag');
6413 EXCEPTION
6414 WHEN OTHERS THEN
6415 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_ag Exception when others'||SQLERRM);
6416 END handle_null_ag;
6417
6418 /*This procedure is used to do final processing of the attribute group data level.
6419 Used in the interface and API flow.
6420 p_agdl_tbl IN OUT NOCOPY Attribute group data level plsql table
6421 x_return_status OUT NOCOPY parameter that returns the status
6422 x_return_msg OUT NOCOPY parameter that returns the error message*/
6423 PROCEDURE handle_null_dl(
6424 p_agdl_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_groups_dl_tbl,
6425 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6426 IS
6427 lv_defaulting VARCHAR2(1);
6428 lv_view_privilege_id NUMBER;
6429 lv_edit_privilege_id NUMBER;
6430 lv_raise_pre_event VARCHAR2(1);
6431 lv_raise_post_event VARCHAR2(1);
6432 lv_proc VARCHAR2(30) := 'handle_null_dl';
6433 BEGIN
6434 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering handle_null_dl');
6435
6436 x_return_status := G_RET_STS_SUCCESS;
6437
6438 FOR i IN p_agdl_tbl.FIRST..p_agdl_tbl.LAST LOOP
6439 IF (p_agdl_tbl(i).process_status = G_PROCESS_RECORD
6440 AND p_agdl_tbl(i).transaction_type = G_OPR_UPDATE) THEN
6441 BEGIN
6442 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Smt 1');
6443
6444 SELECT defaulting ,view_privilege_id,edit_privilege_id,raise_pre_event,raise_post_event
6445 INTO lv_defaulting, lv_view_privilege_id ,lv_edit_privilege_id,lv_raise_pre_event, lv_raise_post_event
6446 FROM EGO_ATTR_GROUP_DL
6447 WHERE attr_group_id = p_agdl_tbl(i).attr_group_id
6448 AND data_level_id = p_agdl_tbl(i).data_level_id;
6449
6450 IF (p_agdl_tbl(i).defaulting IS NULL
6451 OR p_agdl_tbl(i).defaulting = G_NULL_CHAR
6452 OR p_agdl_tbl(i).defaulting_name = G_NULL_CHAR) THEN
6453 p_agdl_tbl(i).defaulting := lv_defaulting;
6454 END IF;
6455
6456 IF (p_agdl_tbl(i).view_privilege_id = G_NULL_NUM OR p_agdl_tbl(i).view_privilege_name = G_NULL_CHAR) THEN
6457 p_agdl_tbl(i).view_privilege_id := NULL;
6458 p_agdl_tbl(i).view_privilege_name := NULL;
6459 ELSIF p_agdl_tbl(i).view_privilege_id IS NULL THEN
6460 p_agdl_tbl(i).view_privilege_id := lv_view_privilege_id;
6461 END IF;
6462
6463 IF (p_agdl_tbl(i).edit_privilege_id = G_NULL_NUM OR p_agdl_tbl(i).edit_privilege_name = G_NULL_CHAR) THEN
6464 p_agdl_tbl(i).edit_privilege_id := NULL;
6465 p_agdl_tbl(i).edit_privilege_name := NULL;
6466 ELSIF p_agdl_tbl(i).edit_privilege_id IS NULL THEN
6467 p_agdl_tbl(i).edit_privilege_id := lv_edit_privilege_id;
6468 END IF;
6469
6470 IF p_agdl_tbl(i).pre_business_event_flag = G_NULL_CHAR THEN
6471 p_agdl_tbl(i).pre_business_event_flag := NULL;
6472 ELSIF p_agdl_tbl(i).pre_business_event_flag IS NULL THEN
6473 p_agdl_tbl(i).pre_business_event_flag := lv_raise_pre_event;
6474
6475 END IF;
6476
6477 IF p_agdl_tbl(i).business_event_flag = G_NULL_CHAR THEN
6478 p_agdl_tbl(i).business_event_flag := NULL;
6479 ELSIF p_agdl_tbl(i).business_event_flag IS NULL THEN
6480 p_agdl_tbl(i).business_event_flag := lv_raise_post_event;
6481
6482 END IF;
6483 EXCEPTION
6484 WHEN OTHERS THEN
6485 x_return_status := G_RET_STS_UNEXP_ERROR;
6486
6487 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_dl exception when others smt 1');
6488
6489 x_return_msg := 'ego_ag_bulkload_pvt.handle_null_dl - '||SQLERRM;
6490
6491 RETURN;
6492 END;
6493 END IF;
6494 END LOOP;
6495 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit handle_null_dl');
6496
6497 EXCEPTION
6498 WHEN OTHERS THEN
6499 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_dl Exception when others'||SQLERRM);
6500 END handle_null_dl;
6501
6502 /*This procedure is used to do final processing of the attributes.
6503 Used in the interface and API flow.
6504 p_attr_tbl IN OUT NOCOPY Attributes plsql table
6505 x_return_status OUT NOCOPY parameter that returns the status
6506 x_return_msg OUT NOCOPY parameter that returns the error message*/
6507 PROCEDURE handle_null_attr(
6508 p_attr_tbl IN OUT NOCOPY ego_metadata_pub.ego_attr_group_cols_tbl,
6509 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6510 IS
6511 lv_value_set_id NUMBER;
6512 lv_default_value VARCHAR2(2000); /*Added for bug 9738246 */
6513 lv_info_1 VARCHAR2(2048); /*Added for bug 9738246 */
6514 lv_uom_class VARCHAR2(40);
6515 lv_proc VARCHAR2(30) := 'handle_null_attr';
6516 BEGIN
6517 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Entering handle_null_attr');
6518
6519 x_return_status := G_RET_STS_SUCCESS;
6520
6521 FOR i IN p_attr_tbl.FIRST..p_attr_tbl.LAST LOOP
6522 IF (p_attr_tbl(i).process_status = G_PROCESS_RECORD
6523 AND p_attr_tbl(i).transaction_type = G_OPR_UPDATE) THEN
6524 BEGIN
6525 SELECT FLEX_VALUE_SET_ID,DEFAULT_VALUE INTO lv_value_set_id, lv_default_value
6526 FROM FND_DESCR_FLEX_COLUMN_USAGES
6527 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
6528 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
6529 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_attr_tbl(i).attr_group_name
6530 AND APPLICATION_COLUMN_NAME = p_attr_tbl(i).application_column_name;
6531
6532 SELECT INFO_1, UOM_CLASS INTO lv_info_1, lv_uom_class
6533 FROM EGO_FND_DF_COL_USGS_EXT
6534 WHERE APPLICATION_ID = G_EGO_APPLICATION_ID
6535 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_tbl(i).attr_group_type
6536 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_attr_tbl(i).attr_group_name
6537 AND APPLICATION_COLUMN_NAME = p_attr_tbl(i).application_column_name;
6538
6539 IF (p_attr_tbl(i).flex_value_set_id = G_NULL_NUM OR p_attr_tbl(i).flex_value_set_name = G_NULL_CHAR)THEN
6540 p_attr_tbl(i).flex_value_set_id := NULL;
6541 ELSIF p_attr_tbl(i).flex_value_set_id IS NULL THEN
6542 p_attr_tbl(i).flex_value_set_id := lv_value_set_id;
6543
6544 END IF;
6545
6546 IF p_attr_tbl(i).default_value = G_NULL_CHAR THEN
6547 p_attr_tbl(i).default_value := NULL;
6548 ELSIF p_attr_tbl(i).default_value IS NULL THEN
6549 p_attr_tbl(i).default_value := lv_default_value;
6550
6551 END IF;
6552
6553 IF (p_attr_tbl(i).info_1 IS NULL OR p_attr_tbl(i).info_1 = G_NULL_CHAR) THEN
6554 p_attr_tbl(i).info_1 := lv_info_1;
6555 END IF;
6556
6557 IF p_attr_tbl(i).uom_class = G_NULL_CHAR THEN
6558 p_attr_tbl(i).uom_class := NULL;
6559 ELSIF p_attr_tbl(i).uom_class IS NULL THEN
6560 p_attr_tbl(i).uom_class := lv_uom_class;
6561 END IF;
6562 EXCEPTION
6563 WHEN OTHERS THEN
6564 x_return_status := G_RET_STS_UNEXP_ERROR;
6565
6566 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_attr exception when others smt 1');
6567
6568 x_return_msg := 'ego_ag_bulkload_pvt.handle_null_attr - '||SQLERRM;
6569 END;
6570 END IF;
6571 END LOOP;
6572 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exit handle_null_attr');
6573 EXCEPTION
6574 WHEN OTHERS THEN
6575 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'handle_null_attr Exception when others'||SQLERRM);
6576 END handle_null_attr;
6577
6578 /*This procedure is used to delete AG existing in the production table without a single DL associated
6579 Used in the Interface flow and API flow.
6580 x_return_status OUT NOCOPY parameter that returns the status
6581 x_return_msg OUT NOCOPY parameter that returns the error message*/
6582 PROCEDURE delete_ag_none_dl(
6583 x_return_status OUT NOCOPY VARCHAR2, x_return_msg OUT NOCOPY VARCHAR2)
6584 IS
6585 CURSOR cur_ag_none_dl IS
6586 SELECT attr_group_id
6587 FROM ego_fnd_dsc_flx_ctx_ext efd
6588 WHERE application_id = G_EGO_APPLICATION_ID
6589 AND DESCRIPTIVE_FLEXFIELD_NAME = G_EGO_ITEMMGMT_GROUP
6590 AND NOT EXISTS (SELECT 1
6591 FROM EGO_ATTR_GROUP_DL
6592 WHERE attr_group_id = efd.attr_group_id);
6593
6594 x_errorcode NUMBER;
6595 x_msg_count NUMBER;
6596 x_msg_data VARCHAR2(2000);
6597 lv_proc VARCHAR2(30) := 'delete_ag_none_dl';
6598 BEGIN
6599 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Enters delete_ag_none_dl');
6600
6601 x_return_status := G_RET_STS_SUCCESS;
6602
6603 FOR rec IN cur_ag_none_dl LOOP
6604 EGO_EXT_FWK_PUB.Delete_Attribute_Group (
6605 p_api_version => 1.0
6606 ,p_attr_group_id => rec.attr_group_id
6607 ,p_init_msg_list => fnd_api.g_FALSE
6608 ,p_commit => fnd_api.g_FALSE
6609 ,x_return_status => x_return_status
6610 ,x_errorcode => x_errorcode
6611 ,x_msg_count => x_msg_count
6612 ,x_msg_data => x_msg_data
6613 );
6614 END LOOP;
6615 COMMIT;
6616 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'Exits delete_ag_none_dl');
6617 EXCEPTION
6618 WHEN OTHERS THEN
6619 x_return_status := G_RET_STS_UNEXP_ERROR;
6620
6621 write_debug('ego_ag_bulkload_pvt.'||lv_proc||' - '||'delete_ag_none_dl Exception when others'||SQLERRM);
6622
6623 x_return_msg := 'ego_ag_bulkload_pvt.delete_ag_none_dl - '||SQLERRM;
6624 END delete_ag_none_dl;
6625
6626 /*This local procedure will return the TL table name based on the attribute group Type
6627 p_application_id IN EGO Application ID
6628 p_attr_group_type IN Attribute group Type*/
6629 FUNCTION Get_TL_Table_Name (
6630 p_application_id IN NUMBER
6631 ,p_attr_group_type IN VARCHAR2
6632 )
6633 RETURN VARCHAR2
6634 IS
6635 l_table_name VARCHAR2(30);
6636
6637 BEGIN
6638 SELECT EXT_TL_TABLE_NAME
6639 INTO l_table_name
6640 FROM EGO_ATTR_GROUP_TYPES_V
6641 WHERE APPLICATION_ID = p_application_id
6642 AND ATTR_GROUP_TYPE = p_attr_group_type;
6643
6644 RETURN l_table_name;
6645
6646 EXCEPTION
6647 WHEN NO_DATA_FOUND THEN
6648 RETURN NULL;
6649
6650 END Get_TL_Table_Name;
6651
6652 /*This local procedure will return the table name based on the attribute group Type
6653 p_application_id IN EGO Application ID
6654 p_attr_group_type IN Attribute group Type*/
6655 FUNCTION Get_Table_Name (
6656 p_application_id IN NUMBER
6657 ,p_attr_group_type IN VARCHAR2
6658 )
6659 RETURN VARCHAR2
6660 IS
6661
6662 l_table_name VARCHAR2(30);
6663
6664 BEGIN
6665 SELECT APPLICATION_TABLE_NAME
6666 INTO l_table_name
6667 FROM FND_DESCRIPTIVE_FLEXS
6668 WHERE APPLICATION_ID = p_application_id
6669 AND DESCRIPTIVE_FLEXFIELD_NAME = p_attr_group_type;
6670
6671 RETURN l_table_name;
6672
6673 EXCEPTION
6674 WHEN NO_DATA_FOUND THEN
6675 RETURN NULL;
6676
6677 END Get_Table_Name;
6678
6679 ------------------------------------------------------------------------------------------
6680 -- Function: To return the pending transalatable table name for a given attribute group type
6681 -- an the application id
6682 -- If the table is not defined, NULL is returned
6683 --
6684 -- Parameters:
6685 -- IN
6686 -- p_attr_group_type: attribute_group_type
6687 -- p_attr_group_type application_id
6688 -- OUT
6689 -- l_table_name : translatable table for attribute_changes
6690 ------------------------------------------------------------------------------------------
6691 FUNCTION Get_Attr_Changes_TL_Table (
6692 p_application_id IN NUMBER
6693 ,p_attr_group_type IN VARCHAR2
6694 )
6695 RETURN VARCHAR2
6696 IS
6697
6698 l_table_name VARCHAR2(30);
6699 l_dynamic_sql VARCHAR2(350);
6700
6701 BEGIN
6702 l_dynamic_sql:='SELECT CHANGE_TL_TABLE_NAME'||
6703 ' FROM ENG_PENDING_CHANGE_CTX'||
6704 ' WHERE APPLICATION_ID = :1'||--p_application_id
6705 ' AND CHANGE_ATTRIBUTE_GROUP_TYPE =:2' ;--p_attr_group_type;
6706
6707 EXECUTE IMMEDIATE l_dynamic_sql INTO l_table_name USING p_application_id
6708 ,p_attr_group_type;
6709
6710 RETURN l_table_name;
6711
6712 EXCEPTION
6713 WHEN OTHERS THEN
6714 RETURN NULL;
6715
6716 END Get_Attr_Changes_TL_Table;
6717
6718 ------------------------------------------------------------------------------------------
6719 -- Function: To return the pending base table name for a given attribute group type
6720 -- an the application id
6721 -- If the table is not defined, NULL is returned
6722 --
6723 -- Parameters:
6724 -- IN
6725 -- p_attr_group_type: attribute_group_type
6726 -- p_attr_group_type application_id
6727 -- OUT
6728 -- l_table_name : base table for attribute_changes
6729 ------------------------------------------------------------------------------------------
6730 FUNCTION Get_Attr_Changes_B_Table (
6731 p_application_id IN NUMBER
6732 ,p_attr_group_type IN VARCHAR2
6733 )
6734 RETURN VARCHAR2
6735 IS
6736
6737 l_table_name VARCHAR2(30);
6738 l_dynamic_sql VARCHAR2(350);
6739
6740 BEGIN
6741 l_dynamic_sql:='SELECT CHANGE_B_TABLE_NAME'||
6742 ' FROM ENG_PENDING_CHANGE_CTX'||
6743 ' WHERE APPLICATION_ID = :1'||--p_application_id
6744 ' AND CHANGE_ATTRIBUTE_GROUP_TYPE =:2' ;--p_attr_group_type;
6745
6746 EXECUTE IMMEDIATE l_dynamic_sql INTO l_table_name USING p_application_id
6747 ,p_attr_group_type;
6748 RETURN l_table_name;
6749
6750 EXCEPTION
6751 WHEN OTHERS THEN
6752 RETURN NULL;
6753 END Get_Attr_Changes_B_Table;
6754
6755 /*This procedure will log debug messages
6756 x_msg IN Input message name*/
6757 Procedure write_debug(x_msg IN VARCHAR2)
6758 IS
6759 BEGIN
6760 ego_metadata_bulkload_pvt.write_debug(x_msg);
6761 --debug_proc(x_msg);
6762 EXCEPTION
6763 WHEN OTHERS THEN
6764 NULL;
6765 END write_debug;
6766 END ego_ag_bulkload_pvt;