[Home] [Help]
PACKAGE BODY: APPS.IES_META_OBJ_PKG
Source
1 package body IES_META_OBJ_PKG as
2 /* $Header: iesmbjb.pls 120.1 2005/09/02 13:54:14 appldev ship $ */
3
4 --
5 -- getObjectTypeId )
6 -- Get Object Type Id for a given object Type
7 --
8 function getObjectTypeId (
9 x_object_type in varchar2
10 ) return number is
11 typeId NUMBER;
12 begin
13 execute immediate
14 'select TYPE_ID
15 from IES_META_OBJECT_TYPES
16 where TYPE_NAME = :type' into typeId using x_object_type;
17
18 return typeId;
19 end getObjectTypeId;
20
21 --
22 -- InsertMetaObject )
23 -- Add a new record into IES_META_OBJECTS. This is only called after checking
24 -- there is no such object exists in UploadMetaObject().
25 --
26 procedure InsertMetaObject (
27 x_object_uid in varchar2,
28 x_object_name in varchar2,
29 x_object_type in varchar2,
30 x_user_id in number,
31 x_date in date
32 ) is
33 typeId NUMBER;
34 insertStmt varchar2(2000);
35 seqval number;
36 begin
37 typeId := getObjectTypeId(x_object_type);
38
39 execute immediate 'select IES_META_OBJECTS_S.NEXTVAL from dual' into seqval;
40
41 insertStmt := 'insert into IES_META_OBJECTS (
42 OBJECT_ID,
43 OBJECT_UID,
44 NAME,
45 CREATED_BY,
46 CREATION_DATE,
47 LAST_UPDATE_DATE,
48 LAST_UPDATED_BY,
49 LAST_UPDATE_LOGIN,
50 TYPE_ID)
51 values (
52 :seq,
53 :1,
54 :2,
55 :3,
56 :4,
57 :5,
58 :6,
59 :7,
60 :8)';
61
62 execute immediate insertStmt using seqval,
63 x_object_uid,
64 x_object_name,
65 x_user_id,
66 x_date,
67 x_date,
68 x_user_id,
69 120,
70 typeId;
71 end InsertMetaObject;
72
73 --
74 -- getObjectId )
75 --
76 function getObjectId (
77 x_object_uid in varchar2
78 ) return number is
79 objectId NUMBER;
80 begin
81 select OBJECT_ID
82 into objectId
83 from IES_META_OBJECTS
84 where OBJECT_UID = x_object_uid
85 and rownum < 2; -- see comments #2 above for details
86
87 return objectId;
88 exception when no_data_found then
89 return -1;
90 end getObjectId;
91
92 function getPropValCount(
93 x_object_uid in varchar2,
94 x_prop_name in varchar2) return number is
95 propValCount number := 0;
96 begin
97 select count(B.PROPVAL_ID)
98 into propValCount
99 from IES_META_OBJECTS A, IES_META_OBJECT_PROPVALS B,
100 IES_META_PROPERTY_VALUES C,
101 IES_META_PROPERTIES D
102 where A.OBJECT_UID = X_OBJECT_UID
103 and A.OBJECT_ID = B.OBJECT_ID
104 and C.PROPERTY_ID = D.PROPERTY_ID
105 and b.PROPVAL_ID = C.PROPVAL_ID
106 AND D.NAME = x_prop_name;
107
108 return propValCount;
109 end getPropValCount;
110
111 procedure deletePropVals(x_propval_id in number,
112 x_prop_name in varchar2) IS
113 deleteStmt varchar2(2000);
114 begin
115 deleteStmt := 'delete from IES_META_PROPERTY_VALUES
116 where propval_id = :1
117 and property_id IN (select property_id
118 from IES_META_PROPERTIES
119 where NAME = :2)';
120 execute immediate deleteStmt using x_propval_id, x_prop_name;
121 end;
122
123 procedure deleteObjectPropVals(x_object_uid in varchar2,
124 x_prop_name in varchar2) IS
125 TYPE obj_prop_val_type IS REF CURSOR;
126 propval obj_prop_val_type;
127
128 propValId NUMBER;
129 BEGIN
130 OPEN propval FOR
131 'select B.PROPVAL_ID
132 from IES_META_OBJECTS A, IES_META_OBJECT_PROPVALS B,
133 IES_META_PROPERTY_VALUES C,
134 IES_META_PROPERTIES D
135 where A.OBJECT_UID = :1
136 and A.OBJECT_ID = B.OBJECT_ID
137 and C.PROPERTY_ID = D.PROPERTY_ID
138 and b.PROPVAL_ID = C.PROPVAL_ID
139 AND D.NAME = :2' using x_object_uid, x_prop_name;
140
141 LOOP
142 FETCH propval INTO propValId;
143 EXIT WHEN propval%NOTFOUND;
144
145 deletePropVals(propValId, x_prop_name);
146 execute immediate 'delete from IES_META_OBJECT_PROPVALS where propval_id = :id' using propValId;
147 END LOOP;
148 CLOSE propval;
149 END deleteObjectPropVals;
150 --
151 -- UpdateMetaObject )
152 -- Update record in IES_META_OBJECTS. This is only called after checking
153 -- that the object exists in UploadMetaObject().
154 --
155 procedure UpdateMetaObject (
156 x_object_uid in varchar2,
157 x_object_name in varchar2,
158 x_object_type in varchar2,
159 x_user_id in number,
160 x_date in date
161 ) is
162 typeId NUMBER;
163 updateStmt varchar2(2000);
164 begin
165 typeId := getObjectTypeId(x_object_type);
166
167 updateStmt := 'update IES_META_OBJECTS set
168 NAME = :name,
169 TYPE_ID = :id,
170 LAST_UPDATE_DATE = :updateDate,
171 LAST_UPDATED_BY = :last_updated_by
172 where OBJECT_UID = :objUid';
173
174 execute immediate updateStmt using x_object_name, typeId, x_date, x_user_id, x_object_uid;
175
176 end UpdateMetaObject;
177
178
179 --
180 -- getObjectTypeId )
181 -- Get Object Type Id for a given object Type
182 --
183 function metaObjectExists (
184 x_object_uid in varchar2
185 ) return boolean is
186 objectId number := -1;
187 begin
188 objectId := getObjectId(x_object_uid);
189 return (objectId <> -1);
190 end metaObjectExists;
191
192
193
194 --
195 -- UploadMetaObject(PUBLIC))
196 -- Public procedure for iesmobj.lct to call when uploading meta objects using
197 -- using iesmobj.lct. It calls InsertMetaObject() when needed.
198 --
199 procedure UploadMetaObject (
200 x_object_uid in varchar2,
201 x_object_name in varchar2,
202 x_object_type in varchar2,
203 x_user_id in varchar2,
204 x_last_update_date in varchar2,
205 x_custom_mode in varchar2
206 ) is
207 f_luby number;
208 f_ludate date;
209 db_luby number;
210 db_ludate date;
211
212 CURSOR metaObj_curs IS
213 select last_updated_by, last_update_date
214 from ies_meta_objects
215 where object_uid = x_object_uid
216 and rownum < 2;
217 begin
218
219 if (x_user_id = 'SEED') then
220 f_luby := 1;
221 else
222 f_luby := 120;
223 end if;
224
225 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
226
227 open metaObj_curs;
228 fetch metaObj_curs into db_luby, db_ludate;
229
230 if (metaObj_curs%notfound) then
231 insertMetaObject(x_object_uid,
232 x_object_name,
233 x_object_type,
234 f_luby,
235 f_ludate);
236 else
237 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
238 db_ludate, x_custom_mode)) then
239 updateMetaObject(x_object_uid,
240 x_object_name,
241 x_object_type,
242 f_luby,
243 f_ludate);
244 end if;
245 end if;
246 end UploadMetaObject;
247
248 --+++++++++++ End of Upload Meta Object procedure +++++++++++++++++++++--
249
250
251
252 --
253 -- InsertMetaLibrary )
254 -- Add a new record into IES_META_LIBRARY. This is only called after checking
255 -- there is no such object exists in UploadMetaLibrary().
256 --
257 procedure InsertMetaLibrary (
258 x_object_uid in varchar2,
259 x_user_id in number,
260 x_date in date
261 ) is
262 objId NUMBER;
263 seqval number;
264 insertStmt varchar2(2000);
265 begin
266 objId := getObjectId(x_object_uid);
267
268 execute immediate 'select IES_META_LIBRARY_S.NEXTVAL from dual' into seqval;
269
270 insertStmt := 'insert into IES_META_LIBRARY (
271 LIBOBJ_ID,
272 CREATED_BY,
273 CREATION_DATE,
274 LAST_UPDATE_DATE,
275 LAST_UPDATED_BY,
276 LAST_UPDATE_LOGIN,
277 OBJECT_ID)
278 values (
279 :seq,
280 :1,
281 :2,
282 :3,
283 :4,
284 :5,
285 :6)';
286 execute immediate insertStmt using seqval, x_user_id, x_date, x_date, x_user_id, 120, objId;
287 end InsertMetaLibrary;
288
289 --
290 -- UploadMetaLibrary(PUBLIC))
291 -- Public procedure for iesmobj.lct to call when uploading meta
292 -- library using iesmobj.lct. It calls InsertMetaLibrary() when needed.
293 --
294
295 procedure UploadMetaLibrary (
296 x_object_uid in varchar2,
297 x_object_name in varchar2,
298 x_user_id in varchar2,
299 x_last_update_date in varchar2
300 ) is
301 f_luby number;
302 f_ludate date;
303 libobj_id number;
304
305 CURSOR metalib_curs IS
306 SELECT libobj_id
307 FROM ies_meta_library
308 WHERE object_id = (select OBJECT_ID
309 from IES_META_OBJECTS
310 where OBJECT_UID = x_object_uid
311 and rownum < 2);
312 begin
313
314 if (x_user_id = 'SEED') then
315 f_luby := 1;
316 else
317 f_luby := 120;
318 end if;
319
320 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
321
322
323 open metalib_curs;
324 fetch metalib_curs into libobj_id;
325
326 if (metalib_curs%notfound) then
327 insertMetaLibrary(x_object_uid,
328 f_luby,
329 f_ludate);
330 end if;
331
332 end UploadMetaLibrary;
333
334
335 --+++++++++++ End of Upload Meta Library procedure +++++++++++++++++++++--
336
337 function getPropertyValueId (
338 x_object_uid in varchar2,
339 x_prop_name in varchar2
340 )
341 return number is
342 propValId number;
343 propValCount number;
344 begin
345 propValCount := getPropValCount(x_object_uid, x_prop_name);
346 if (propValCount > 1) then
347 deleteObjectPropVals(x_object_uid, x_prop_name);
348 end if;
349
350 select B.PROPVAL_ID
351 into propValId
352 from IES_META_OBJECTS A, IES_META_OBJECT_PROPVALS B,
353 IES_META_PROPERTY_VALUES C,
354 IES_META_PROPERTIES D
355 where A.OBJECT_UID = X_OBJECT_UID
356 and A.OBJECT_ID = B.OBJECT_ID
357 and C.PROPERTY_ID = D.PROPERTY_ID
358 and b.PROPVAL_ID = C.PROPVAL_ID
359 AND D.NAME = x_prop_name;
360
361 return propValId;
362 exception when no_data_found then
363 return -1;
364 end getPropertyValueId;
365
366 function getLookupId (
367 x_prop_id in number,
368 x_lookup_key in number
369 )
370 return number is
371 lookupId number;
372 begin
373 select PROP_LOOKUP_ID
374 into lookupId
375 from IES_META_PROPERTY_LOOKUPS
376 where PROPERTY_ID = x_prop_id
377 and LOOKUP_KEY = x_lookup_key;
378
379 return lookupId;
380 end;
381
382 function getPropertyId (
383 x_object_uid in varchar2,
384 x_prop_name in varchar2
385 )
386 return number is
387 propId number;
388 begin
389 select A.PROPERTY_ID
390 into propid
391 from IES_META_OBJ_TYPE_PROPERTIES A,
392 IES_META_PROPERTIES B
393 where A.PROPERTY_ID = B.PROPERTY_ID
394 and B.NAME = X_PROP_NAME
395 and A.OBJTYPE_ID IN (select TYPE_ID
396 from IES_META_OBJECT_TYPES
397 connect by prior PARENT_ID = TYPE_ID
398 start with TYPE_ID = (select TYPE_ID
399 from IES_META_OBJECTS c
400 where C.OBJECT_UID = X_OBJECT_UID));
401 return propId;
402 end getPropertyId;
403
404 procedure updateMetaPropertyValues (
405 x_object_uid in varchar2,
406 x_prop_name in varchar2,
407 x_prop_value in varchar2,
408 x_lookup_key in number,
409 x_user_id in number,
410 x_date in date)
411 is
412 propValId number;
413 propId number;
414 lookupId number;
415 begin
416 propValId := getPropertyValueId(x_object_uid,
417 x_prop_name);
418 propId := getPropertyId(x_object_uid,
419 x_prop_name);
420 if (x_lookup_key IS NOT NULL) then
421 lookupId := getLookupId(propId, x_lookup_key);
422 end if;
423
424 execute immediate 'update IES_META_PROPERTY_VALUES set
425 LAST_UPDATE_DATE = :1,
426 LAST_UPDATED_BY = :2,
427 STRING_VAL = :3,
428 LOOKUP_ID = :4
429 where PROPVAL_ID = :5' using x_date, x_user_id, x_prop_value, lookupId, propValId;
430 end updateMetaPropertyValues;
431
432 procedure insertMetaObjPropValues (
433 x_object_uid in varchar2,
434 x_propValId in number,
435 x_user_id in number,
436 x_date in date)
437 is
438 objId number;
439 seqVal number;
440 insertStmt varchar2(2000);
441 begin
442 objId := getObjectId(x_object_uid);
443
444 execute immediate 'select IES_META_OBJECT_PROPVALS_S.NEXTVAL from dual' into seqVal;
445
446 insertStmt := 'insert into IES_META_OBJECT_PROPVALS(
447 OBJPROPVAL_ID,
448 CREATION_DATE,
449 CREATED_BY,
450 LAST_UPDATE_DATE,
451 LAST_UPDATED_BY,
452 LAST_UPDATE_LOGIN,
453 PROPVAL_ID,
454 OBJECT_ID)
455 values (
456 :1,
457 :2,
458 :3,
459 :4,
460 :5,
461 :6,
462 :7,
463 :8)';
464 execute immediate insertStmt using seqval, x_date, x_user_id, x_date, x_user_id, 120, x_propValId, objId;
465 end insertMetaObjPropValues;
466
467 procedure insertMetaPropertyValues (
468 x_object_uid in varchar2,
469 x_prop_name in varchar2,
473 x_date in date)
470 x_prop_value in varchar2,
471 x_lookup_key in number,
472 x_user_id in number,
474 is
475 propId number;
476 propValId number;
477 lookupId number;
478
479 seqval number;
480 insertStmt varchar2(2000);
481 begin
482 propId := getPropertyId(x_object_uid,
483 x_prop_name);
484 if (x_lookup_key IS NOT NULL) then
485 lookupId := getLookupId(propId, x_lookup_key);
486 end if;
487
488 execute immediate 'select IES_META_PROPERTY_VALUES_S.NEXTVAL from dual' into seqval;
489
490 insertStmt := 'insert into IES_META_PROPERTY_VALUES (
491 PROPVAL_ID,
492 CREATION_DATE,
493 CREATED_BY,
494 LAST_UPDATE_DATE,
495 LAST_UPDATED_BY,
496 LAST_UPDATE_LOGIN,
497 PROPERTY_ID,
498 STRING_VAL,
499 LOOKUP_ID)
500 values (
501 :1,
502 :2,
503 :3,
504 :4,
505 :5,
506 :6,
507 :7,
508 :8,
509 :9) returning propval_id INTO :10';
510
511 execute immediate insertStmt using seqval, x_date, x_user_id, x_date, x_user_id, 120, propId, x_prop_value, lookupId returning into propValId ;
512 insertMetaObjPropValues(x_object_uid, propValId, x_user_id, x_date);
513 end insertMetaPropertyValues;
514
515 procedure UploadMetaPropValues(
516 x_object_uid in varchar2,
517 x_prop_name in varchar2,
518 x_prop_value in varchar2,
519 x_lookup_key in number,
520 x_user_id in varchar2,
521 x_last_update_date in varchar2,
522 x_custom_mode in varchar2)
523 is
524 f_luby number;
525 f_ludate date;
526 db_luby number;
527 db_ludate date;
528
529
530 CURSOR propvals_curs IS
531 select b.last_updated_by, b.last_update_date
532 from IES_META_OBJECTS A, IES_META_OBJECT_PROPVALS B,
533 IES_META_PROPERTY_VALUES C,
534 IES_META_PROPERTIES D
535 where A.OBJECT_UID = X_OBJECT_UID
536 and A.OBJECT_ID = B.OBJECT_ID
537 and C.PROPERTY_ID = D.PROPERTY_ID
538 and b.PROPVAL_ID = C.PROPVAL_ID
539 AND D.NAME = x_prop_name;
540 begin
541 if (x_user_id = 'SEED') then
542 f_luby := 1;
543 else
544 f_luby := 120;
545 end if;
546
547 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
548
549 open propvals_curs;
550 fetch propvals_curs into db_luby, db_ludate;
551
552 if (propvals_curs%notfound) then
553 insertMetaPropertyValues(x_object_uid,
554 x_prop_name,
555 x_prop_value,
556 x_lookup_key,
557 f_luby,
558 f_ludate);
559 else
560 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
561 db_ludate, x_custom_mode)) then
562 updateMetaPropertyValues(x_object_uid,
563 x_prop_name,
564 x_prop_value,
565 x_lookup_key,
566 f_luby,
567 f_ludate);
568 end if;
569
570 end if;
571 end;
572
573 --*********** End of Upload Meta Prop Values Procedure ************
574
575 function getRelationshipId (
576 x_prim_obj_uid in varchar2,
577 x_sec_obj_uid in varchar2,
578 x_type_name in varchar2
579 ) return number is
580 objRelId number := -1;
581 begin
582 select OBJREL_ID
583 into objRelId
584 from IES_META_OBJ_RELATIONSHIPS C,
585 IES_META_RELATIONSHIP_TYPES D
586 where PRIMARY_OBJ_ID = (select OBJECT_ID
587 from IES_META_OBJECTS
588 where OBJECT_UID = x_prim_obj_uid
589 and rownum < 2)
590 and SECONDARY_OBJ_ID = (select OBJECT_ID
591 from IES_META_OBJECTS
592 where OBJECT_UID = x_sec_obj_uid
593 and rownum < 2)
594 and C.TYPE_ID = D.TYPE_ID
595 and D.TYPE_NAME = x_type_name;
596
597
598 return objRelId;
599 exception when no_data_found then
600 return -1;
601 end getRelationshipId;
602
603 function metaObjRelationshipExists (
604 x_prim_obj_uid in varchar2,
605 x_sec_obj_uid in varchar2,
606 x_type_name in varchar2
607 ) return boolean is
608 objRelId number := -1;
609 begin
610 objRelId := getRelationshipId(x_prim_obj_uid,
611 x_sec_obj_uid,
615 end metaObjRelationshipExists;
612 x_type_name);
613
614 return (objRelId <> -1);
616
617 function getRelationshipTypeId (
618 x_type_name in varchar2
619 ) return number is
620 typeId number := -1;
621 begin
622 select TYPE_ID
623 into typeId
624 from IES_META_RELATIONSHIP_TYPES
625 where TYPE_NAME = x_type_name;
626
627 return typeId;
628 end getRelationshipTypeId;
629
630
631
632 procedure updateMetaObjRelationships (
633 x_prim_obj_uid in varchar2,
634 x_sec_obj_uid in varchar2,
635 x_type_name in varchar2,
636 x_obj_order in number,
637 x_user_id in number,
638 x_date in date
639 ) is
640 typeId number;
641 relId number;
642 begin
643 typeId := getRelationshipTypeId(x_type_name);
644 relId := getRelationshipId(x_prim_obj_uid,
645 x_sec_obj_uid,
646 x_type_name);
647
648 execute immediate 'update IES_META_OBJ_RELATIONSHIPS set
649 LAST_UPDATE_DATE = :1,
650 LAST_UPDATED_BY = :2,
651 DELETED_STATUS = :3,
652 TYPE_ID = :4,
653 OBJ_ORDER = :5
654 where OBJREL_ID = :6' using x_date, x_user_id, 0, typeId, x_obj_order, relId;
655 end updateMetaObjRelationships;
656
657 procedure insertMetaObjRelationships (
658 x_prim_obj_uid in varchar2,
659 x_sec_obj_uid in varchar2,
660 x_type_name in varchar2,
661 x_obj_order in number,
662 x_user_id in number,
663 x_date in date
664 ) is
665 typeId number;
666 primObjId number;
667 secObjId number;
668
669 seqval number;
670 insertStmt varchar2(2000);
671 begin
672 typeId := getRelationshipTypeId(x_type_name);
673 primObjId := getObjectId(x_prim_obj_uid);
674 secObjId := getObjectId(x_sec_obj_uid);
675
676 execute immediate 'select IES_META_OBJ_RELATIONSHIPS_S.NEXTVAL from dual' into seqval;
677
678 insertStmt := 'insert into IES_META_OBJ_RELATIONSHIPS (
679 OBJREL_ID,
680 CREATION_DATE,
681 CREATED_BY,
682 LAST_UPDATE_DATE,
683 LAST_UPDATED_BY,
684 LAST_UPDATE_LOGIN,
685 TYPE_ID,
686 PRIMARY_OBJ_ID,
687 SECONDARY_OBJ_ID,
688 OBJ_ORDER,
689 DELETED_STATUS)
690 values (
691 :1,
692 :2,
693 :3,
694 :4,
695 :5,
696 :6,
697 :7,
698 :8,
699 :9,
700 :10,
701 :11)';
702 execute immediate insertStmt using seqval, x_date, x_user_id, x_date, x_user_id, 120, typeId, primObjId, secObjId, x_obj_order, 0;
703 end insertMetaObjRelationships;
704
705
706 procedure UploadMetaRelationships (
707 x_prim_obj_uid in varchar2,
708 x_sec_obj_uid in varchar2,
709 x_type_name in varchar2,
710 x_obj_order in number,
711 x_user_id in varchar2,
712 x_last_update_date in varchar2,
713 x_custom_mode in varchar2
714 )
715 IS
716 objRelId number;
717 f_luby number;
718 f_ludate date;
719 db_luby number;
720 db_ludate date;
721
722 CURSOR rels_curs IS
723 select c.last_updated_by, c.last_update_date
724 from IES_META_OBJ_RELATIONSHIPS C,
725 IES_META_RELATIONSHIP_TYPES D
726 where PRIMARY_OBJ_ID = (select OBJECT_ID
727 from IES_META_OBJECTS
728 where OBJECT_UID = x_prim_obj_uid
729 and rownum < 2)
730 and SECONDARY_OBJ_ID = (select OBJECT_ID
731 from IES_META_OBJECTS
732 where OBJECT_UID = x_sec_obj_uid
733 and rownum < 2)
734 and C.TYPE_ID = D.TYPE_ID
735 and D.TYPE_NAME = x_type_name;
736 begin
737 if (x_user_id = 'SEED') then
738 f_luby := 1;
739 else
740 f_luby := 120;
741 end if;
742
743 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
744
745 open rels_curs;
746 fetch rels_curs into db_luby, db_ludate;
747
748 if (rels_curs%notfound) then
749 insertMetaObjRelationships(x_prim_obj_uid,
750 x_sec_obj_uid,
751 x_type_name,
752 x_obj_order,
753 f_luby,
754 f_ludate);
755 else
756 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
757 db_ludate, x_custom_mode)) then
758 updateMetaObjRelationships(x_prim_obj_uid,
759 x_sec_obj_uid,
760 x_type_name,
761 x_obj_order,
762 f_luby,
763 f_ludate);
764 end if;
765
766 end if;
767 end UploadMetaRelationships;
768
769 --*********** End of Upload Meta Obj Relationships procedure *******
770
771 procedure UploadMetaObjRelationships (
772 x_object_uid in varchar2
773 ) is
774 begin
775 null; -- do nothing.. R12 change.
776 end UploadMetaObjRelationships;
777
778 --*********** End of Upload Meta Relationship procedure *******
779 end IES_META_OBJ_PKG;