-- Create sql in-place upgrade patch for some up.xml -- property changes. The sql will be shown (as much as -- possible) in-line with associated segment of up.xml. -- The xml will be set off from the sql by commenting each -- line with "-- up.xml ->". -- -- Bug #'s/Properties added -- -- Bug 9276601 - MMM1034: PROPERTY USING_INDEX DOES NOT EXIST WHILE IMPORTING A TABLE CONTAINS PK -- SET SERVEROUTPUT ON SET LINESIZE 500 -- ########################################################################## DECLARE -- Outer block for utility functions/variables BUGBUG: Should these be packagized (uprop_util) -- ########################################################################## SCRIPTID CONSTANT VARCHAR2(40) := 'bug 9276601'; -- For output logging EOL CONSTANT VARCHAR2(01) := CHR(10); -- new line COLON CONSTANT VARCHAR2(01) := CHR(58); -- : TRACEON CONSTANT BOOLEAN := TRUE; -- Provide function level trace output OUTINITED BOOLEAN := FALSE; -- Flag indicating output has been enabled PROPERTYTYPE_CORE NUMBER:= 0; PROPERTYTYPE_LOGICAL NUMBER:= 1; PROPERTYTYPE_PHYSICAL NUMBER:= 2; PROPERTYTYPE_CONFIGURATION NUMBER:= 2; PROPERTYTYPE_USERDEFINED NUMBER:= 3; -- Record definitions for the various views -- Handy sql to make record definitions (some hand editing required (in sqlworksheet anyway) -- ========================================================================== TYPE CMPPrimitiveType IS RECORD ( -- ========================================================================== WORKSPACEID CMPPrimitiveType_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPPrimitiveType_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPPrimitiveType_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPPrimitiveType_r.CLASSNAME%TYPE DEFAULT 'CMPPrimitiveType' -- VARCHAR2(255) 4 ,COMPLETED CMPPrimitiveType_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPPrimitiveType_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPPrimitiveType_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPPrimitiveType_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPPrimitiveType_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPPrimitiveType_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPPrimitiveType_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPPrimitiveType_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPPrimitiveType_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPPrimitiveType_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPPrimitiveType_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPPrimitiveType_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPPrimitiveType_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPPrimitiveType_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPPrimitiveType_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPPrimitiveType_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPPrimitiveType_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPPrimitiveType_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPPrimitiveType_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPPrimitiveType_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPPrimitiveType_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPPrimitiveType_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPPrimitiveType_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPPrimitiveType_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPPrimitiveType_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPPrimitiveType_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPPrimitiveType_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPPrimitiveType_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,COMPARATOR CMPPrimitiveType_r.COMPARATOR%TYPE DEFAULT 'oracle.wh.repos.impl.domain.comparator.PrimitiveValueComparator' -- VARCHAR2(255) 33 ,OWNINGMODEL CMPPrimitiveType_r.OWNINGMODEL%TYPE DEFAULT null -- NUMBER(9,0) 34 ,ACLCONTAINER CMPPrimitiveType_r.ACLCONTAINER%TYPE DEFAULT null -- NUMBER(9,0) 35 ,VALIDATIONRESULT CMPPrimitiveType_r.VALIDATIONRESULT%TYPE DEFAULT null -- NUMBER(9,0) 36 ,OWNINGFOLDER CMPPrimitiveType_r.OWNINGFOLDER%TYPE DEFAULT null -- NUMBER(9,0) 37 ,POSITION CMPPrimitiveType_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 38 ,FORMATOR CMPPrimitiveType_r.FORMATOR%TYPE DEFAULT null -- VARCHAR2(255) 39 ); -- ========================================================================== TYPE CMPClassDefinition IS RECORD ( -- ========================================================================== WORKSPACEID CMPClassDefinition_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPClassDefinition_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPClassDefinition_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPClassDefinition_r.CLASSNAME%TYPE DEFAULT 'CMPClassDefinition' -- VARCHAR2(255) 4 ,COMPLETED CMPClassDefinition_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPClassDefinition_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPClassDefinition_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPClassDefinition_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPClassDefinition_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPClassDefinition_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPClassDefinition_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPClassDefinition_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPClassDefinition_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPClassDefinition_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPClassDefinition_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPClassDefinition_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPClassDefinition_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPClassDefinition_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPClassDefinition_r.NOTM%TYPE DEFAULT 1 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPClassDefinition_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPClassDefinition_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPClassDefinition_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPClassDefinition_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPClassDefinition_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPClassDefinition_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPClassDefinition_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPClassDefinition_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPClassDefinition_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPClassDefinition_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPClassDefinition_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPClassDefinition_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPClassDefinition_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,COMPARATOR CMPClassDefinition_r.COMPARATOR%TYPE DEFAULT 'oracle.wh.repos.impl.domain.comparator.ElementNameComparator' -- VARCHAR2(255) 33 ,OWNINGMODEL CMPClassDefinition_r.OWNINGMODEL%TYPE DEFAULT null -- NUMBER(9,0) 34 ,ACLCONTAINER CMPClassDefinition_r.ACLCONTAINER%TYPE DEFAULT null -- NUMBER(9,0) 35 ,VALIDATIONRESULT CMPClassDefinition_r.VALIDATIONRESULT%TYPE DEFAULT null -- NUMBER(9,0) 36 ,OWNINGFOLDER CMPClassDefinition_r.OWNINGFOLDER%TYPE DEFAULT null -- NUMBER(9,0) 37 ,POSITION CMPClassDefinition_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 38 ,ABSTRACT CMPClassDefinition_r.ABSTRACT%TYPE DEFAULT '0' -- CHAR(1) 39 ,CLASSPERSISTENT CMPClassDefinition_r.CLASSPERSISTENT%TYPE DEFAULT '1' -- CHAR(1) 40 ,DISPLAYNAME CMPClassDefinition_r.DISPLAYNAME%TYPE DEFAULT null -- VARCHAR2(255) 41 ,EXTENSIBLE CMPClassDefinition_r.EXTENSIBLE%TYPE DEFAULT '1' -- CHAR(1) 42 ,FOLDERTREEICON CMPClassDefinition_r.FOLDERTREEICON%TYPE DEFAULT null -- VARCHAR2(255) 43 ,GENERATABLE CMPClassDefinition_r.GENERATABLE%TYPE DEFAULT '0' -- CHAR(1) 44 ,NAMESPACEDOMAIN CMPClassDefinition_r.NAMESPACEDOMAIN%TYPE DEFAULT null -- VARCHAR2(255) 45 ,PACKAGENAME CMPClassDefinition_r.PACKAGENAME%TYPE DEFAULT null -- VARCHAR2(255) 46 ,PUBLICCLASSNAME CMPClassDefinition_r.PUBLICCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 47 ,PUBLICWEAKLYTYPED CMPClassDefinition_r.PUBLICWEAKLYTYPED%TYPE DEFAULT '1' -- CHAR(1) 48 ,SHORTCUTTREEICON CMPClassDefinition_r.SHORTCUTTREEICON%TYPE DEFAULT null -- VARCHAR2(255) 49 ,STEREOTYPE CMPClassDefinition_r.STEREOTYPE%TYPE DEFAULT 2 -- NUMBER(9,0) 50 ,TREEICON CMPClassDefinition_r.TREEICON%TYPE DEFAULT null -- VARCHAR2(255) 51 ,WEAKLYTYPED CMPClassDefinition_r.WEAKLYTYPED%TYPE DEFAULT '1' -- CHAR(1) 52 ,OVERRIDEE CMPClassDefinition_r.OVERRIDEE%TYPE DEFAULT null -- NUMBER(9,0) 53 ,SUPERCLASS CMPClassDefinition_r.SUPERCLASS%TYPE DEFAULT null -- NUMBER(9,0) 54 ); -- ========================================================================== TYPE CMPPropertySetDefinition IS RECORD ( -- ========================================================================== WORKSPACEID CMPPropertySetDefinition_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPPropertySetDefinition_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPPropertySetDefinition_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPPropertySetDefinition_r.CLASSNAME%TYPE DEFAULT 'CMPPropertySetDefinition' -- VARCHAR2(255) 4 ,COMPLETED CMPPropertySetDefinition_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPPropertySetDefinition_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPPropertySetDefinition_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPPropertySetDefinition_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPPropertySetDefinition_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPPropertySetDefinition_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPPropertySetDefinition_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPPropertySetDefinition_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPPropertySetDefinition_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPPropertySetDefinition_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPPropertySetDefinition_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPPropertySetDefinition_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPPropertySetDefinition_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPPropertySetDefinition_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPPropertySetDefinition_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPPropertySetDefinition_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPPropertySetDefinition_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPPropertySetDefinition_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPPropertySetDefinition_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPPropertySetDefinition_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPPropertySetDefinition_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPPropertySetDefinition_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPPropertySetDefinition_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPPropertySetDefinition_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPPropertySetDefinition_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPPropertySetDefinition_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPPropertySetDefinition_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPPropertySetDefinition_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,FIRSTCLASSOBJECT CMPPropertySetDefinition_r.FIRSTCLASSOBJECT%TYPE DEFAULT null --FIRSTCLASSOBJECT -- NUMBER(9,0) 33 ,POSITION CMPPropertySetDefinition_r.POSITION%TYPE DEFAULT 0 --POSITION -- NUMBER(9,0) 34 ,PROPERTYTYPE CMPPropertySetDefinition_r.PROPERTYTYPE%TYPE DEFAULT PROPERTYTYPE_PHYSICAL --PROPERTYTYPE -- NUMBER(9,0) 35 ,OWNINGCLASSDEFINITION CMPPropertySetDefinition_r.OWNINGCLASSDEFINITION%TYPE DEFAULT 0 --OWNINGCLASSDEFINITION -- NUMBER(9,0) 36 ,OVERRIDEE CMPPropertySetDefinition_r.OVERRIDEE%TYPE DEFAULT null --OVERRIDEE -- NUMBER(9,0) 37 ,PARENTPROPERTYSET CMPPropertySetDefinition_r.PARENTPROPERTYSET%TYPE DEFAULT null --PARENTPROPERTYSET -- NUMBER(9,0) 38 ,SUPERPROPERTYSET CMPPropertySetDefinition_r.SUPERPROPERTYSET%TYPE DEFAULT null --SUPERPROPERTYSET -- NUMBER(9,0) 39 ); -- ========================================================================== TYPE CMPPropertyDefinition IS RECORD ( -- ========================================================================== WORKSPACEID CMPPropertyDefinition_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPPropertyDefinition_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPPropertyDefinition_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPPropertyDefinition_r.CLASSNAME%TYPE DEFAULT 'CMPPropertyDefinition' -- VARCHAR2(255) 4 ,COMPLETED CMPPropertyDefinition_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPPropertyDefinition_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPPropertyDefinition_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPPropertyDefinition_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPPropertyDefinition_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPPropertyDefinition_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPPropertyDefinition_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPPropertyDefinition_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPPropertyDefinition_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPPropertyDefinition_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPPropertyDefinition_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPPropertyDefinition_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPPropertyDefinition_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPPropertyDefinition_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPPropertyDefinition_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPPropertyDefinition_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPPropertyDefinition_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPPropertyDefinition_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPPropertyDefinition_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPPropertyDefinition_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPPropertyDefinition_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPPropertyDefinition_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPPropertyDefinition_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPPropertyDefinition_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPPropertyDefinition_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPPropertyDefinition_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPPropertyDefinition_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPPropertyDefinition_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,FIRSTCLASSOBJECT CMPPropertyDefinition_r.FIRSTCLASSOBJECT%TYPE DEFAULT null --FIRSTCLASSOBJECT -- NUMBER(9,0) 33 ,POSITION CMPPropertyDefinition_r.POSITION%TYPE DEFAULT 0 --POSITION -- NUMBER(9,0) 34 ,ADVANCED CMPPropertyDefinition_r.ADVANCED%TYPE DEFAULT 0 -- CHAR(1) 35 ,CONTRIBUTETOSIGNATURE CMPPropertyDefinition_r.CONTRIBUTETOSIGNATURE%TYPE DEFAULT 1 --CONTRIBUTETOSIGNATURE-- CHAR(1) 36 ,CUSTOMEDITOR CMPPropertyDefinition_r.CUSTOMEDITOR%TYPE DEFAULT null -- VARCHAR2(255) 37 ,DEFAULTVALUE CMPPropertyDefinition_r.DEFAULTVALUE%TYPE DEFAULT null -- VARCHAR2(4000) 38 ,DEFINITIONKEY CMPPropertyDefinition_r.DEFINITIONKEY%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(255) 39 ,DYNAMICDEFAULT CMPPropertyDefinition_r.DYNAMICDEFAULT%TYPE DEFAULT null -- VARCHAR2(255) 40 ,EXPORTCONTROL CMPPropertyDefinition_r.EXPORTCONTROL%TYPE DEFAULT 0 -- NUMBER(9,0) 41 ,HIDDEN CMPPropertyDefinition_r.HIDDEN%TYPE DEFAULT 0 -- CHAR(1) 42 ,INPLACEEDITOR CMPPropertyDefinition_r.INPLACEEDITOR%TYPE DEFAULT null -- VARCHAR2(255) 43 ,ISPUBLISHEDTOPUBLICAPI CMPPropertyDefinition_r.ISPUBLISHEDTOPUBLICAPI%TYPE DEFAULT 1 -- CHAR(1) 44 ,ISROLE CMPPropertyDefinition_r.ISROLE%TYPE DEFAULT 0 -- CHAR(1) 45 ,NAMECHECKED CMPPropertyDefinition_r.NAMECHECKED%TYPE DEFAULT 0 -- CHAR(1) 46 ,OVERRIDE CMPPropertyDefinition_r.OVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 47 ,PASSWORD CMPPropertyDefinition_r.PASSWORD%TYPE DEFAULT 0 -- CHAR(1) 48 ,PROPERTYREADONLY CMPPropertyDefinition_r.PROPERTYREADONLY%TYPE DEFAULT 0 -- CHAR(1) 49 ,PROPERTYTYPE CMPPropertyDefinition_r.PROPERTYTYPE%TYPE DEFAULT null --propertyset type -- NUMBER(9,0) 50 ,TRANSLATABLE CMPPropertyDefinition_r.TRANSLATABLE%TYPE DEFAULT 0 -- CHAR(1) 51 ,USERCHOICEALLOWED CMPPropertyDefinition_r.USERCHOICEALLOWED%TYPE DEFAULT 0 -- CHAR(1) 52 ,TYPE CMPPropertyDefinition_r.TYPE%TYPE DEFAULT null --datatype id -- NUMBER(9,0) 53 ,OVERRIDEE CMPPropertyDefinition_r.OVERRIDEE%TYPE DEFAULT null -- NUMBER(9,0) 54 ,PROPERTYGROUPDEFINITION CMPPropertyDefinition_r.PROPERTYGROUPDEFINITION%TYPE DEFAULT null --property group -- NUMBER(9,0) 55 ,OWNINGPROPERTYSETDEFINITION CMPPropertyDefinition_r.OWNINGPROPERTYSETDEFINITION%TYPE DEFAULT null --propertyset -- NUMBER(9,0) 56 ); -- ========================================================================== TYPE CMPPropertyGroupDefinition IS RECORD ( -- ========================================================================== WORKSPACEID CMPPropertyGroupDefinition_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPPropertyGroupDefinition_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPPropertyGroupDefinition_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPPropertyGroupDefinition_r.CLASSNAME%TYPE DEFAULT 'CMPPropertyGroupDefinition' -- VARCHAR2(255) 4 ,COMPLETED CMPPropertyGroupDefinition_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPPropertyGroupDefinition_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPPropertyGroupDefinition_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPPropertyGroupDefinition_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPPropertyGroupDefinition_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPPropertyGroupDefinition_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPPropertyGroupDefinition_r.DESCRIPTION%TYPE DEFAULT null -- VARCHAR2(4000) 11 ,EDITABLE CMPPropertyGroupDefinition_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPPropertyGroupDefinition_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPPropertyGroupDefinition_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPPropertyGroupDefinition_r.LOGICALNAME%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPPropertyGroupDefinition_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPPropertyGroupDefinition_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPPropertyGroupDefinition_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPPropertyGroupDefinition_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPPropertyGroupDefinition_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPPropertyGroupDefinition_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPPropertyGroupDefinition_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPPropertyGroupDefinition_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPPropertyGroupDefinition_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPPropertyGroupDefinition_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPPropertyGroupDefinition_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPPropertyGroupDefinition_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPPropertyGroupDefinition_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPPropertyGroupDefinition_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPPropertyGroupDefinition_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPPropertyGroupDefinition_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPPropertyGroupDefinition_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,FIRSTCLASSOBJECT CMPPropertyGroupDefinition_r.FIRSTCLASSOBJECT%TYPE DEFAULT null --FIRSTCLASSOBJECT -- NUMBER(9,0) 33 ,POSITION CMPPropertyGroupDefinition_r.POSITION%TYPE DEFAULT 0 --POSITION -- NUMBER(9,0) 34 ,DEFINITIONKEY CMPPropertyGroupDefinition_r.DEFINITIONKEY%TYPE DEFAULT null -- VARCHAR2(255) 35 ,HIDDEN CMPPropertyGroupDefinition_r.HIDDEN%TYPE DEFAULT 0 -- CHAR(1) 36 ,TYPE CMPPropertyGroupDefinition_r.TYPE%TYPE DEFAULT null -- NUMBER(9,0) 37 ,PROPERTYGROUPOWNER CMPPropertyGroupDefinition_r.PROPERTYGROUPOWNER%TYPE DEFAULT null --property set -- NUMBER(9,0) 38 ); -- ========================================================================== TYPE CMPAnonymousDomain IS RECORD ( -- ========================================================================== WORKSPACEID CMPAnonymousDomain_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPAnonymousDomain_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPAnonymousDomain_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null -- TIMESTAMP(6) 3 ,CLASSNAME CMPAnonymousDomain_r.CLASSNAME%TYPE DEFAULT 'CMPAnonymousDomain' -- VARCHAR2(255) 4 ,COMPLETED CMPAnonymousDomain_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPAnonymousDomain_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPAnonymousDomain_r.CREATIONTIMESTAMP%TYPE DEFAULT null -- DATE 7 ,CUSTOMERDELETABLE CMPAnonymousDomain_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPAnonymousDomain_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPAnonymousDomain_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPAnonymousDomain_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPAnonymousDomain_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPAnonymousDomain_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPAnonymousDomain_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPAnonymousDomain_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPAnonymousDomain_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPAnonymousDomain_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPAnonymousDomain_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPAnonymousDomain_r.NOTM%TYPE DEFAULT 1 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPAnonymousDomain_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPAnonymousDomain_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPAnonymousDomain_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPAnonymousDomain_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPAnonymousDomain_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPAnonymousDomain_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPAnonymousDomain_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPAnonymousDomain_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPAnonymousDomain_r.UPDATETIMESTAMP%TYPE DEFAULT null -- DATE 28 ,ICONOBJECT CMPAnonymousDomain_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPAnonymousDomain_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPAnonymousDomain_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPAnonymousDomain_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,COMPARATOR CMPAnonymousDomain_r.COMPARATOR%TYPE DEFAULT 'oracle.wh.repos.impl.domain.comparator.PrimitiveValueComparator' -- VARCHAR2(255) 33 ,OWNINGMODEL CMPAnonymousDomain_r.OWNINGMODEL%TYPE DEFAULT null -- NUMBER(9,0) 34 ,CHOOSER CMPAnonymousDomain_r.CHOOSER%TYPE DEFAULT null -- VARCHAR2(255) 35 ,DATATYPEAGSG CMPAnonymousDomain_r.DATATYPEAGSG%TYPE DEFAULT null -- TIMESTAMP(6) 36 ,DATATYPEFQN CMPAnonymousDomain_r.DATATYPEFQN%TYPE DEFAULT null -- VARCHAR2(4000) 37 ,DATATYPELUPD CMPAnonymousDomain_r.DATATYPELUPD%TYPE DEFAULT null -- TIMESTAMP(6) 38 ,DATATYPEUOID CMPAnonymousDomain_r.DATATYPEUOID%TYPE DEFAULT null -- VARCHAR2(40) 39 ,USERCHOICEALLOWED CMPAnonymousDomain_r.USERCHOICEALLOWED%TYPE DEFAULT 0 -- CHAR(1) 40 ,VALUEINTERPRETER CMPAnonymousDomain_r.VALUEINTERPRETER%TYPE DEFAULT null -- VARCHAR2(255) 41 ,DATATYPE CMPAnonymousDomain_r.DATATYPE%TYPE DEFAULT null -- NUMBER(9,0) 42 ,ACLCONTAINER CMPAnonymousDomain_r.ACLCONTAINER%TYPE DEFAULT null -- NUMBER(9,0) 43 ,VALIDATIONRESULT CMPAnonymousDomain_r.VALIDATIONRESULT%TYPE DEFAULT null -- NUMBER(9,0) 44 ,OWNINGFOLDER CMPAnonymousDomain_r.OWNINGFOLDER%TYPE DEFAULT null -- NUMBER(9,0) 45 ,POSITION CMPAnonymousDomain_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 46 ); -- ========================================================================== TYPE CMPArrayType IS RECORD ( -- ========================================================================== WORKSPACEID CMPArrayType_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPArrayType_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPArrayType_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPArrayType_r.CLASSNAME%TYPE DEFAULT 'CMPArrayType' -- VARCHAR2(255) 4 ,COMPLETED CMPArrayType_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPArrayType_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPArrayType_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPArrayType_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPArrayType_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPArrayType_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPArrayType_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPArrayType_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPArrayType_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPArrayType_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPArrayType_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPArrayType_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPArrayType_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPArrayType_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPArrayType_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPArrayType_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPArrayType_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPArrayType_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPArrayType_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPArrayType_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPArrayType_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPArrayType_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPArrayType_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPArrayType_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPArrayType_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPArrayType_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPArrayType_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPArrayType_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,COMPARATOR CMPArrayType_r.COMPARATOR%TYPE DEFAULT 'oracle.wh.repos.impl.domain.comparator.CollectionValueComparator' -- VARCHAR2(255) 33 ,OWNINGMODEL CMPArrayType_r.OWNINGMODEL%TYPE DEFAULT null -- NUMBER(9,0) 34 ,ACLCONTAINER CMPArrayType_r.ACLCONTAINER%TYPE DEFAULT null -- NUMBER(9,0) 35 ,VALIDATIONRESULT CMPArrayType_r.VALIDATIONRESULT%TYPE DEFAULT null -- NUMBER(9,0) 36 ,OWNINGFOLDER CMPArrayType_r.OWNINGFOLDER%TYPE DEFAULT null -- NUMBER(9,0) 37 ,POSITION CMPArrayType_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 38 ,BASEELEMENTTYPEAGSG CMPArrayType_r.BASEELEMENTTYPEAGSG%TYPE DEFAULT null -- TIMESTAMP(6) 39 ,BASEELEMENTTYPEFQN CMPArrayType_r.BASEELEMENTTYPEFQN%TYPE DEFAULT null -- VARCHAR2(4000) 40 ,BASEELEMENTTYPELUPD CMPArrayType_r.BASEELEMENTTYPELUPD%TYPE DEFAULT null -- TIMESTAMP(6) 41 ,BASEELEMENTTYPEUOID CMPArrayType_r.BASEELEMENTTYPEUOID%TYPE DEFAULT null -- VARCHAR2(40) 42 ,BASEELEMENTTYPE CMPArrayType_r.BASEELEMENTTYPE%TYPE DEFAULT null -- NUMBER(9,0) 43 ); -- ========================================================================== TYPE CMPArrayModelAttribute IS RECORD ( -- ========================================================================== WORKSPACEID CMPArrayModelAttribute_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPArrayModelAttribute_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPArrayModelAttribute_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPArrayModelAttribute_r.CLASSNAME%TYPE DEFAULT 'CMPArrayModelAttribute' -- VARCHAR2(255) 4 ,COMPLETED CMPArrayModelAttribute_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPArrayModelAttribute_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPArrayModelAttribute_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPArrayModelAttribute_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPArrayModelAttribute_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPArrayModelAttribute_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPArrayModelAttribute_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPArrayModelAttribute_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPArrayModelAttribute_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPArrayModelAttribute_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPArrayModelAttribute_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPArrayModelAttribute_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPArrayModelAttribute_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPArrayModelAttribute_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPArrayModelAttribute_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPArrayModelAttribute_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPArrayModelAttribute_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPArrayModelAttribute_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPArrayModelAttribute_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPArrayModelAttribute_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPArrayModelAttribute_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPArrayModelAttribute_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPArrayModelAttribute_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPArrayModelAttribute_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPArrayModelAttribute_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPArrayModelAttribute_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPArrayModelAttribute_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPArrayModelAttribute_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,ATTRIBUTETYPEAGSG CMPArrayModelAttribute_r.ATTRIBUTETYPEAGSG%TYPE DEFAULT null -- TIMESTAMP(6) 33 ,ATTRIBUTETYPEFQN CMPArrayModelAttribute_r.ATTRIBUTETYPEFQN%TYPE DEFAULT null -- VARCHAR2(4000) 34 ,ATTRIBUTETYPELUPD CMPArrayModelAttribute_r.ATTRIBUTETYPELUPD%TYPE DEFAULT null -- TIMESTAMP(6) 35 ,ATTRIBUTETYPEUOID CMPArrayModelAttribute_r.ATTRIBUTETYPEUOID%TYPE DEFAULT null -- VARCHAR2(40) 36 ,HASNAME CMPArrayModelAttribute_r.HASNAME%TYPE DEFAULT '0' -- CHAR(1) 37 ,ATTRIBUTETYPE CMPArrayModelAttribute_r.ATTRIBUTETYPE%TYPE DEFAULT null -- NUMBER(9,0) 38 ,MODELATTRIBUTEOWNER CMPArrayModelAttribute_r.MODELATTRIBUTEOWNER%TYPE DEFAULT null -- NUMBER(9,0) 39 ,FIRSTCLASSOBJECT CMPArrayModelAttribute_r.FIRSTCLASSOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 40 ,POSITION CMPArrayModelAttribute_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 41 ); -- ========================================================================== TYPE CMPPrimitiveModelAttribute IS RECORD ( -- ========================================================================== WORKSPACEID CMPPrimitiveModelAttribute_r.WORKSPACEID%TYPE DEFAULT 1 -- NUMBER(9,0) 1 ,DELETIONPARENT CMPPrimitiveModelAttribute_r.DELETIONPARENT%TYPE DEFAULT null -- NUMBER(9,0) 2 ,AGGREGATEDSIGNATURE CMPPrimitiveModelAttribute_r.AGGREGATEDSIGNATURE%TYPE DEFAULT null --sysdate -- TIMESTAMP(6) 3 ,CLASSNAME CMPPrimitiveModelAttribute_r.CLASSNAME%TYPE DEFAULT 'CMPPrimitiveModelAttribute' -- VARCHAR2(255) 4 ,COMPLETED CMPPrimitiveModelAttribute_r.COMPLETED%TYPE DEFAULT 1 -- CHAR(1) 5 ,CREATEDBY CMPPrimitiveModelAttribute_r.CREATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 6 ,CREATIONTIMESTAMP CMPPrimitiveModelAttribute_r.CREATIONTIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 7 ,CUSTOMERDELETABLE CMPPrimitiveModelAttribute_r.CUSTOMERDELETABLE%TYPE DEFAULT 1 -- CHAR(1) 8 ,CUSTOMERRENAMABLE CMPPrimitiveModelAttribute_r.CUSTOMERRENAMABLE%TYPE DEFAULT 0 -- CHAR(1) 9 ,DELETEINOVERRIDE CMPPrimitiveModelAttribute_r.DELETEINOVERRIDE%TYPE DEFAULT 0 -- CHAR(1) 10 ,DESCRIPTION CMPPrimitiveModelAttribute_r.DESCRIPTION%TYPE DEFAULT null --DEFINITIONKEY -- VARCHAR2(4000) 11 ,EDITABLE CMPPrimitiveModelAttribute_r.EDITABLE%TYPE DEFAULT 1 -- CHAR(1) 12 ,ELEMENTID CMPPrimitiveModelAttribute_r.ELEMENTID%TYPE DEFAULT null --ELEMENTID -- NUMBER(9,0) 13 ,IMPORTED CMPPrimitiveModelAttribute_r.IMPORTED%TYPE DEFAULT 0 -- CHAR(1) 14 ,LOGICALNAME CMPPrimitiveModelAttribute_r.LOGICALNAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 15 ,METADATASIGNATURE CMPPrimitiveModelAttribute_r.METADATASIGNATURE%TYPE DEFAULT null --METADATASIGNATURE -- VARCHAR2(255) 16 ,NAME CMPPrimitiveModelAttribute_r.NAME%TYPE DEFAULT null --NAME -- VARCHAR2(1000) 17 ,NOTE CMPPrimitiveModelAttribute_r.NOTE%TYPE DEFAULT null -- VARCHAR2(4000) 18 ,NOTM CMPPrimitiveModelAttribute_r.NOTM%TYPE DEFAULT 0 -- NUMBER(9,0) 19 ,OVERRIDEATTRIBUTES CMPPrimitiveModelAttribute_r.OVERRIDEATTRIBUTES%TYPE DEFAULT 0 -- CHAR(1) 20 ,OVERRIDECHILDREN CMPPrimitiveModelAttribute_r.OVERRIDECHILDREN%TYPE DEFAULT 0 -- CHAR(1) 21 ,OVERRIDEROLES CMPPrimitiveModelAttribute_r.OVERRIDEROLES%TYPE DEFAULT 0 -- CHAR(1) 22 ,PERSISTENT CMPPrimitiveModelAttribute_r.PERSISTENT%TYPE DEFAULT 1 -- CHAR(1) 23 ,SEEDED CMPPrimitiveModelAttribute_r.SEEDED%TYPE DEFAULT 0 -- CHAR(1) 24 ,STRONGTYPENAME CMPPrimitiveModelAttribute_r.STRONGTYPENAME%TYPE DEFAULT null -- VARCHAR2(255) 25 ,UOID CMPPrimitiveModelAttribute_r.UOID%TYPE DEFAULT null --UOID -- VARCHAR2(40) 26 ,UPDATEDBY CMPPrimitiveModelAttribute_r.UPDATEDBY%TYPE DEFAULT 'OWBSYS' -- VARCHAR2(40) 27 ,UPDATETIMESTAMP CMPPrimitiveModelAttribute_r.UPDATETIMESTAMP%TYPE DEFAULT null --sysdate -- DATE 28 ,ICONOBJECT CMPPrimitiveModelAttribute_r.ICONOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 29 ,EDITORCLASSNAME CMPPrimitiveModelAttribute_r.EDITORCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 30 ,PROPERTYSHEETCLASSNAME CMPPrimitiveModelAttribute_r.PROPERTYSHEETCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 31 ,WIZARDCLASSNAME CMPPrimitiveModelAttribute_r.WIZARDCLASSNAME%TYPE DEFAULT null -- VARCHAR2(255) 32 ,ATTRIBUTETYPEAGSG CMPPrimitiveModelAttribute_r.ATTRIBUTETYPEAGSG%TYPE DEFAULT null -- TIMESTAMP(6) 33 ,ATTRIBUTETYPEFQN CMPPrimitiveModelAttribute_r.ATTRIBUTETYPEFQN%TYPE DEFAULT null -- VARCHAR2(4000) 34 ,ATTRIBUTETYPELUPD CMPPrimitiveModelAttribute_r.ATTRIBUTETYPELUPD%TYPE DEFAULT null -- TIMESTAMP(6) 35 ,ATTRIBUTETYPEUOID CMPPrimitiveModelAttribute_r.ATTRIBUTETYPEUOID%TYPE DEFAULT null -- VARCHAR2(40) 36 ,HASNAME CMPPrimitiveModelAttribute_r.HASNAME%TYPE DEFAULT '0' -- CHAR(1) 37 ,ATTRIBUTETYPE CMPPrimitiveModelAttribute_r.ATTRIBUTETYPE%TYPE DEFAULT null -- NUMBER(9,0) 38 ,MODELATTRIBUTEOWNER CMPPrimitiveModelAttribute_r.MODELATTRIBUTEOWNER%TYPE DEFAULT null -- NUMBER(9,0) 39 ,FIRSTCLASSOBJECT CMPPrimitiveModelAttribute_r.FIRSTCLASSOBJECT%TYPE DEFAULT null -- NUMBER(9,0) 40 ,POSITION CMPPrimitiveModelAttribute_r.POSITION%TYPE DEFAULT 0 -- NUMBER(9,0) 41 ,VALUE CMPPrimitiveModelAttribute_r.VALUE%TYPE DEFAULT null -- VARCHAR2(4000) 42 ); -- ************************************************************************** -- ************************************************************************** -- Useful functions/procedures -- ************************************************************************** -- ************************************************************************** -- ========================================================================== -- put message to output (uses DBMS_OUTPUT) PROCEDURE put(msg VARCHAR2) IS -- ========================================================================== BEGIN IF NOT OUTINITED THEN OUTINITED := TRUE; DBMS_OUTPUT.ENABLE(200000); put('DBMS_OUTPUT Enabled.'); END IF; IF (LENGTH(msg) + LENGTH(SCRIPTID) + 2) > 255 THEN -- 10.1 database can't handle messages with length > 255 --DBMS_OUTPUT.put_line('Message length > 255'); --DBMS_OUTPUT.put_line(SUBSTR(msg, 0, 255)); -- Break the string up into lines or 255-byte chunks DECLARE l_msg_line VARCHAR2(255); l_eol_index NUMBER; l_curr_index NUMBER; l_msg_len NUMBER := LENGTH(msg); l_loop_index NUMBER := 0; BEGIN DBMS_OUTPUT.PUT_LINE(SCRIPTID || ':'); l_eol_index := 1; l_curr_index := 1; l_loop_index := 0; WHILE (l_curr_index < l_msg_len AND l_loop_index < 10) LOOP l_eol_index := INSTR(msg, EOL, l_curr_index); --DBMS_OUTPUT.put_line('l_eol_index = ' || TO_CHAR(l_eol_index)); IF (l_eol_index <= 0) OR (l_eol_index - l_curr_index) > 255 THEN l_msg_line := SUBSTR(msg, l_curr_index, 255); l_curr_index := l_curr_index + 255; ELSE l_msg_line := SUBSTR(msg, l_curr_index, l_eol_index - l_curr_index); l_curr_index := l_eol_index + 1; END IF; DBMS_OUTPUT.PUT_LINE(l_msg_line); l_loop_index := l_loop_index + 1; END LOOP; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END; ELSE DBMS_OUTPUT.put_line(SCRIPTID || ': ' || msg); END IF; END; -- ========================================================================== -- put message to output controlled by TRACEON variable (uses put) PROCEDURE putTrace(msg VARCHAR2) IS -- ========================================================================== BEGIN IF TRACEON THEN put(msg); END IF; END; -- ========================================================================== -- return next element id for new objects FUNCTION getNextElementId RETURN NUMBER -- ========================================================================== IS l_id NUMBER; BEGIN SELECT cwmseq.nextval INTO l_id FROM DUAL; RETURN l_id; END; -- ========================================================================== -- toString CMPPrimitiveType FUNCTION toSPrimitiveType(pType CMPPrimitiveType) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPPrimitiveType [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.OWNINGMODEL is not null) then l_str := l_str || '[OWNINGMODEL: ' || pType.OWNINGMODEL || '] '; end if; if (pType.OWNINGFOLDER is not null) then l_str := l_str || '[OWNINGFOLDER: ' || pType.OWNINGFOLDER || '] '; end if; l_str := l_str || ']'; return l_str; END toSPrimitiveType; -- ========================================================================== -- toString CMPClassDefinition FUNCTION toSClassDefinition(pType CMPClassDefinition) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPClassDefinition [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.OWNINGMODEL is not null) then l_str := l_str || '[OWNINGMODEL: ' || pType.OWNINGMODEL || '] '; end if; if (pType.OWNINGFOLDER is not null) then l_str := l_str || '[OWNINGFOLDER: ' || pType.OWNINGFOLDER || '] '; end if; if (pType.OVERRIDEE is not null) then l_str := l_str || '[OVERRIDEE: ' || pType.OVERRIDEE || '] '; end if; if (pType.SUPERCLASS is not null) then l_str := l_str || '[SUPERCLASS: ' || pType.SUPERCLASS || '] '; end if; l_str := l_str || ']'; return l_str; END toSClassDefinition; -- ========================================================================== -- toString CMPPropertySetDefinition FUNCTION toSPropertySetDefinition(pType CMPPropertySetDefinition) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPPropertySetDefinition [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.OWNINGCLASSDEFINITION is not null) then l_str := l_str || '[OWNINGCLASSDEFINITION: ' || pType.OWNINGCLASSDEFINITION || '] '; end if; if (pType.PROPERTYTYPE is not null) then l_str := l_str || '[PROPERTYTYPE: ' || pType.PROPERTYTYPE || '] '; end if; if (pType.OVERRIDEE is not null) then l_str := l_str || '[OVERRIDEE: ' || pType.OVERRIDEE || '] '; end if; if (pType.PARENTPROPERTYSET is not null) then l_str := l_str || '[PARENTPROPERTYSET: ' || pType.PARENTPROPERTYSET || '] '; end if; if (pType.SUPERPROPERTYSET is not null) then l_str := l_str || '[SUPERPROPERTYSET: ' || pType.SUPERPROPERTYSET || '] '; end if; l_str := l_str || ']'; return l_str; END toSPropertySetDefinition; -- ========================================================================== -- toString CMPPropertyDefinition FUNCTION toSPropertyDefinition(pType CMPPropertyDefinition) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPPropertyDefinition [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.POSITION is not null) then l_str := l_str || '[POSITION: ' || pType.POSITION || '] '; end if; if (pType.PROPERTYTYPE is not null) then l_str := l_str || '[PROPERTYTYPE: ' || pType.PROPERTYTYPE || '] '; end if; if (pType.TYPE is not null) then l_str := l_str || '[TYPE: ' || pType.TYPE || '] '; end if; if (pType.OVERRIDEE is not null) then l_str := l_str || '[OVERRIDEE: ' || pType.OVERRIDEE || '] '; end if; if (pType.FIRSTCLASSOBJECT is not null) then l_str := l_str || '[FIRSTCLASSOBJECT: ' || pType.FIRSTCLASSOBJECT || '] '; end if; if (pType.PROPERTYGROUPDEFINITION is not null) then l_str := l_str || '[PROPERTYGROUPDEFINITION: ' || pType.PROPERTYGROUPDEFINITION || '] '; end if; if (pType.OWNINGPROPERTYSETDEFINITION is not null) then l_str := l_str || '[OWNINGPROPERTYSETDEFINITION: ' || pType.OWNINGPROPERTYSETDEFINITION || '] '; end if; l_str := l_str || ']'; return l_str; END toSPropertyDefinition; -- ========================================================================== -- toString CMPPropertyGroupDefinition FUNCTION toSPropertyGroupDefinition(pType CMPPropertyGroupDefinition) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPPropertyGroupDefinition [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.POSITION is not null) then l_str := l_str || '[POSITION: ' || pType.POSITION || '] '; end if; if (pType.DEFINITIONKEY is not null) then l_str := l_str || '[DEFINITIONKEY: ' || pType.DEFINITIONKEY || '] '; end if; if (pType.PROPERTYGROUPOWNER is not null) then l_str := l_str || '[PROPERTYGROUPOWNER: ' || pType.PROPERTYGROUPOWNER || '] '; end if; if (pType.FIRSTCLASSOBJECT is not null) then l_str := l_str || '[FIRSTCLASSOBJECT: ' || pType.FIRSTCLASSOBJECT || '] '; end if; l_str := l_str || ']'; return l_str; END toSPropertyGroupDefinition; -- ========================================================================== -- toString CMPAnonymousDomain FUNCTION toSAnonymousDomain(pType CMPAnonymousDomain) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPAnonymousDomain [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.CHOOSER is not null) then l_str := l_str || '[CHOOSER: ' || pType.CHOOSER || '] '; end if; if (pType.VALUEINTERPRETER is not null) then l_str := l_str || '[VALUEINTERPRETER: ' || pType.VALUEINTERPRETER || '] '; end if; if (pType.DATATYPEFQN is not null) then l_str := l_str || '[DATATYPEFQN: ' || pType.DATATYPEFQN || '] '; end if; if (pType.DATATYPE is not null) then l_str := l_str || '[DATATYPE: ' || pType.DATATYPE || '] '; end if; if (pType.OWNINGMODEL is not null) then l_str := l_str || '[OWNINGMODEL: ' || pType.OWNINGMODEL || '] '; end if; if (pType.OWNINGFOLDER is not null) then l_str := l_str || '[OWNINGFOLDER: ' || pType.OWNINGFOLDER || '] '; end if; l_str := l_str || ']'; return l_str; END toSAnonymousDomain; -- ========================================================================== -- toString CMPArrayType FUNCTION toSArrayType(pType CMPArrayType) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPArrayType [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.BASEELEMENTTYPEFQN is not null) then l_str := l_str || '[BASEELEMENTTYPEFQN: ' || pType.BASEELEMENTTYPEFQN || '] '; end if; if (pType.BASEELEMENTTYPE is not null) then l_str := l_str || '[BASEELEMENTTYPE: ' || pType.BASEELEMENTTYPE || '] '; end if; if (pType.OWNINGMODEL is not null) then l_str := l_str || '[OWNINGMODEL: ' || pType.OWNINGMODEL || '] '; end if; if (pType.OWNINGFOLDER is not null) then l_str := l_str || '[OWNINGFOLDER: ' || pType.OWNINGFOLDER || '] '; end if; l_str := l_str || ']'; return l_str; END toSArrayType; -- ========================================================================== -- toString CMPArrayModelAttribute FUNCTION toSArrayModelAttribute(pType CMPArrayModelAttribute) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPArrayModelAttribute [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.ATTRIBUTETYPEFQN is not null) then l_str := l_str || '[ATTRIBUTETYPEFQN: ' || pType.ATTRIBUTETYPEFQN || '] '; end if; if (pType.ATTRIBUTETYPE is not null) then l_str := l_str || '[ATTRIBUTETYPE: ' || pType.ATTRIBUTETYPE || '] '; end if; if (pType.MODELATTRIBUTEOWNER is not null) then l_str := l_str || '[MODELATTRIBUTEOWNER: ' || pType.MODELATTRIBUTEOWNER || '] '; end if; if (pType.FIRSTCLASSOBJECT is not null) then l_str := l_str || '[FIRSTCLASSOBJECT: ' || pType.FIRSTCLASSOBJECT || '] '; end if; l_str := l_str || ']'; return l_str; END toSArrayModelAttribute; -- ========================================================================== -- toString CMPPrimitiveModelAttribute FUNCTION toSPrimitiveModelAttribute(pType CMPPrimitiveModelAttribute) RETURN VARCHAR2 IS -- ========================================================================== l_str VARCHAR2(4000); BEGIN l_str := 'CMPPrimitiveModelAttribute [ '; if (pType.NAME is not null) then l_str := l_str || '[NAME: ' || pType.NAME || '] '; end if; if (pType.LOGICALNAME is not null) then l_str := l_str || '[LOGICALNAME: ' || pType.LOGICALNAME || '] '; end if; if (pType.ELEMENTID is not null) then l_str := l_str || '[ELEMENTID: ' || pType.ELEMENTID || '] '; end if; if (pType.UOID is not null) then l_str := l_str || '[UOID: ' || pType.UOID || '] '; end if; if (pType.ATTRIBUTETYPEFQN is not null) then l_str := l_str || '[ATTRIBUTETYPEFQN: ' || pType.ATTRIBUTETYPEFQN || '] '; end if; if (pType.ATTRIBUTETYPE is not null) then l_str := l_str || '[ATTRIBUTETYPE: ' || pType.ATTRIBUTETYPE || '] '; end if; if (pType.MODELATTRIBUTEOWNER is not null) then l_str := l_str || '[MODELATTRIBUTEOWNER: ' || pType.MODELATTRIBUTEOWNER || '] '; end if; if (pType.FIRSTCLASSOBJECT is not null) then l_str := l_str || '[FIRSTCLASSOBJECT: ' || pType.FIRSTCLASSOBJECT || '] '; end if; if (pType.POSITION is not null) then l_str := l_str || '[POSITION: ' || pType.POSITION || '] '; end if; if (pType.VALUE is not null) then l_str := l_str || '[VALUE: ' || pType.VALUE || '] '; end if; l_str := l_str || ']'; return l_str; END toSPrimitiveModelAttribute; -- ========================================================================== FUNCTION getPlatformIdByName( p_platformName VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS p_id NUMBER(9,0); BEGIN SELECT ELEMENTID INTO p_id FROM CMPPlatform_r WHERE WORKSPACEID=1 AND NAME=p_platformName; putTrace( 'Found Platform [name: ' || p_platformName || '; elementid: ' || p_id || ']' || EOL); RETURN p_id; END; -- ========================================================================== FUNCTION getPropertyGroupId( p_propertySetId NUMBER, p_definitionKey VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS p_propertyGroupId NUMBER(9,0); BEGIN SELECT ELEMENTID INTO p_propertyGroupId FROM CMPPropertyGroupDefinition_r WHERE PROPERTYGROUPOWNER=p_propertySetId AND LOGICALNAME=p_definitionKey; RETURN p_propertyGroupId; END; -- ========================================================================== FUNCTION getCMPPrimitiveType( logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT null ,owningFolder IN NUMBER DEFAULT null ) RETURN CMPPrimitiveType -- ========================================================================== IS ptype CMPPrimitiveType; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPPrimitiveType_r WHERE 1=1'; if (logicalName is not null) then l_str := l_str || ' and LOGICALNAME=''' || logicalName || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (owningModel is not null) then l_str := l_str || ' and OWNINGMODEL=' || owningModel; end if; if (owningFolder is not null) then l_str := l_str || ' and OWNINGFOLDER=' || owningFolder; end if; EXECUTE IMMEDIATE l_str INTO ptype; putTrace('Queried ' || toSPrimitiveType(ptype) || EOL); RETURN ptype; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN ptype; END getCMPPrimitiveType; -- ========================================================================== -- Get ElementID of PrimitiveType from name. -- Valid values for parameter p_name: Timestamp, String, Double, Integer, -- Long, Boolean, Date, Float FUNCTION getPrimitiveTypeId( p_name IN VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS ptype CMPPrimitiveType; BEGIN ptype := getCMPPrimitiveType( null,--logicalName p_name,--name null,--owningModel null--owningFolder ); RETURN ptype.ELEMENTID; END; -- ========================================================================== FUNCTION getStringDatatypeId RETURN NUMBER -- ========================================================================== IS p_datatypeId NUMBER(9,0); BEGIN p_datatypeId := getPrimitiveTypeId('String'); RETURN p_datatypeId; END; -- ========================================================================== FUNCTION getIntegerDatatypeId RETURN NUMBER -- ========================================================================== IS p_datatypeId NUMBER(9,0); BEGIN p_datatypeId := getPrimitiveTypeId('Integer'); RETURN p_datatypeId; END; -- ========================================================================== FUNCTION getBooleanDatatypeId RETURN NUMBER -- ========================================================================== IS p_datatypeId NUMBER(9,0); BEGIN p_datatypeId := getPrimitiveTypeId('Boolean'); RETURN p_datatypeId; END; -- ========================================================================== -- NewCMPClassDefinition FUNCTION newCMPClassDefinition( logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT 0 ,owningFolder IN NUMBER DEFAULT 0 ,packageName IN VARCHAR2 DEFAULT null ,publicClassName IN VARCHAR2 DEFAULT null ,superClass IN NUMBER DEFAULT 0 ) RETURN CMPClassDefinition -- ========================================================================== IS cdef CMPClassDefinition; BEGIN cdef.AGGREGATEDSIGNATURE := SYSDATE; cdef.CREATIONTIMESTAMP := SYSDATE; cdef.ELEMENTID := getNextElementId; cdef.LOGICALNAME := logicalName; cdef.METADATASIGNATURE := metadataSignature; cdef.NAME := name; cdef.UOID := RAWTOHEX(SYS_GUID()); cdef.UPDATETIMESTAMP := SYSDATE; cdef.OWNINGMODEL := owningModel; cdef.OWNINGFOLDER := owningFolder; cdef.PACKAGENAME := packageName; cdef.PUBLICCLASSNAME := publicClassName; cdef.SUPERCLASS := superClass; putTrace('Created ' || toSClassDefinition(cdef) || EOL); RETURN cdef; END newCMPClassDefinition; -- ========================================================================== PROCEDURE AddCMPClassDefinition( cdef IN OUT CMPClassDefinition ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPClassDefinition_r where name = cdef.NAME and owningModel=cdef.OWNINGMODEL and owningFolder=cdef.OWNINGFOLDER and workspaceid=cdef.WORKSPACEID; If l_count = 1 then l_str := 'select * from CMPClassDefinition_r where name = ''' || cdef.NAME || ''' and owningModel=' || cdef.OWNINGMODEL || ' and owningFolder=' || cdef.OWNINGFOLDER || ' and workspaceid=' || cdef.WORKSPACEID; EXECUTE IMMEDIATE l_str INTO cdef; putTrace('Found ' || toSClassDefinition(cdef) || EOL); else If l_count = 0 then insert into CMPClassDefinition_r VALUES cdef; putTrace('Inserted ' || toSClassDefinition(cdef) ||EOL); else putTrace('Error! Found ' || l_count || ' ClassDefinitions with same name ''' || cdef.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== FUNCTION getCMPClassDefinition( logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT null ,owningFolder IN NUMBER DEFAULT null ,packageName IN VARCHAR2 DEFAULT null ,publicClassName IN VARCHAR2 DEFAULT null ,superClass IN NUMBER DEFAULT null ) RETURN CMPClassDefinition -- ========================================================================== IS cdef CMPClassDefinition; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPClassDefinition_r WHERE 1=1'; if (logicalName is not null) then l_str := l_str || ' and LOGICALNAME=''' || logicalName || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (owningModel is not null) then l_str := l_str || ' and OWNINGMODEL=' || owningModel; end if; if (owningFolder is not null) then l_str := l_str || ' and OWNINGFOLDER=' || owningFolder; end if; if (packageName is not null) then l_str := l_str || ' and PACKAGENAME=''' || packageName || ''''; end if; if (superClass is not null) then l_str := l_str || ' and SUPERCLASS=' || superClass; end if; EXECUTE IMMEDIATE l_str INTO cdef; putTrace('Queried ' || toSClassDefinition(cdef) || EOL); RETURN cdef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN cdef; END getCMPClassDefinition; -- ========================================================================== FUNCTION getClassIdByName( p_platformId NUMBER, p_className VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS cdef CMPClassDefinition; BEGIN cdef := getCMPClassDefinition( null,--logicalName p_className,--name p_platformId,--owningModel p_platformId,--owningFolder null,--packageName null,--publicClassName null--superClass ); RETURN cdef.ELEMENTID; END; -- ========================================================================== -- NewCMPPropertySetDefinition FUNCTION newCMPPropertySetDefinition( description IN VARCHAR2 DEFAULT null ,logicalName IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,firstClassObject IN NUMBER DEFAULT 0 ,propertyType IN NUMBER DEFAULT 0 ,owningClassDefinition IN NUMBER DEFAULT null ,parentPropertySet IN NUMBER DEFAULT null ) RETURN CMPPropertySetDefinition -- ========================================================================== IS psdef CMPPropertySetDefinition; BEGIN psdef.AGGREGATEDSIGNATURE := SYSDATE; psdef.CREATIONTIMESTAMP := SYSDATE; psdef.DESCRIPTION := description; psdef.ELEMENTID := getNextElementId; psdef.LOGICALNAME := logicalName; psdef.METADATASIGNATURE := metadataSignature; psdef.NAME := name; psdef.UOID := RAWTOHEX(SYS_GUID()); psdef.UPDATETIMESTAMP := SYSDATE; psdef.FIRSTCLASSOBJECT := firstClassObject; psdef.PROPERTYTYPE := propertyType; psdef.OWNINGCLASSDEFINITION := owningClassDefinition; psdef.PARENTPROPERTYSET := parentPropertySet; putTrace('Created ' || toSPropertySetDefinition(psdef) || EOL); RETURN psdef; END newCMPPropertySetDefinition; -- ========================================================================== PROCEDURE AddCMPPropertySetDefinition( psdef IN OUT CMPPropertySetDefinition ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPPropertySetDefinition_r where name = psdef.NAME and logicalname=psdef.LOGICALNAME and owningClassDefinition=psdef.OWNINGCLASSDEFINITION and propertyType=psdef.PROPERTYTYPE and workspaceid=psdef.WORKSPACEID; If l_count = 1 then l_str := 'select * from CMPPropertySetDefinition_r where name = ''' || psdef.NAME || ''' and logicalname=''' || psdef.LOGICALNAME || ''' and owningClassDefinition=' || psdef.OWNINGCLASSDEFINITION || ' and propertyType=' || psdef.PROPERTYTYPE || ' and workspaceid=' || psdef.WORKSPACEID; EXECUTE IMMEDIATE l_str INTO psdef; putTrace('Found ' || toSPropertySetDefinition(psdef) || EOL); else If l_count = 0 then insert into CMPPropertySetDefinition_r VALUES psdef; putTrace('Inserted ' || toSPropertySetDefinition(psdef) || EOL); else putTrace('Error! Found ' || l_count || ' PropertySetDefinitions with same name ''' || psdef.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== FUNCTION getCMPPropertySetDefinition( description IN VARCHAR2 DEFAULT null ,logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,firstClassObject IN NUMBER DEFAULT null ,propertyType IN NUMBER DEFAULT null ,owningClassDefinition IN NUMBER DEFAULT null ,parentPropertySet IN NUMBER DEFAULT null ) RETURN CMPPropertySetDefinition -- ========================================================================== IS psdef CMPPropertySetDefinition; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPPropertySetDefinition_r WHERE 1=1'; if (description is not null) then l_str := l_str || ' and DESCRIPTION=''' || description || ''''; end if; if (logicalName is not null) then l_str := l_str || ' and LOGICALNAME=''' || logicalName || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (firstClassObject is not null) then l_str := l_str || ' and FIRSTCLASSOBJECT=' || firstClassObject; end if; if (propertyType is not null) then l_str := l_str || ' and PROPERTYTYPE=' || propertyType; end if; if (owningClassDefinition is not null) then l_str := l_str || ' and OWNINGCLASSDEFINITION=' || owningClassDefinition; end if; if (parentPropertySet is not null) then l_str := l_str || ' and PARENTPROPERTYSET=' || parentPropertySet; end if; EXECUTE IMMEDIATE l_str INTO psdef; putTrace('Queried ' || toSPropertySetDefinition(psdef) || EOL); RETURN psdef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN psdef; END getCMPPropertySetDefinition; -- ========================================================================== FUNCTION getPropertySetId( p_classId NUMBER, p_propertyType NUMBER, p_name VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS psdef CMPPropertySetDefinition; BEGIN psdef := getCMPPropertySetDefinition( null,--description null,--logicalName p_name,--name p_classId,--firstClassObject p_propertyType,--propertyType null,--owningClassDefinition null--parentPropertySet ); RETURN psdef.ELEMENTID; END getPropertySetId; -- ========================================================================== -- NewCMPPropertyDefinition FUNCTION newCMPPropertyDefinition( definitionKey IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,firstClassObjectId IN NUMBER DEFAULT null ,position IN NUMBER DEFAULT 0 ,contributeToSignature IN VARCHAR DEFAULT null ,propertyTypeId IN NUMBER DEFAULT null ,datatypeId IN NUMBER DEFAULT 0 ,propertyGroupId IN NUMBER DEFAULT 0 ,propertySetId IN NUMBER DEFAULT 0 ) RETURN CMPPropertyDefinition -- ========================================================================== IS pdef CMPPropertyDefinition; BEGIN pdef.AGGREGATEDSIGNATURE := SYSDATE; pdef.CREATIONTIMESTAMP := SYSDATE; pdef.DESCRIPTION := definitionKey; pdef.ELEMENTID := getNextElementId; pdef.LOGICALNAME := name; pdef.METADATASIGNATURE := metadataSignature; pdef.NAME := name; pdef.UOID := RAWTOHEX(SYS_GUID()); pdef.UPDATETIMESTAMP := SYSDATE; pdef.FIRSTCLASSOBJECT := firstClassObjectId; pdef.POSITION := position; pdef.CONTRIBUTETOSIGNATURE := contributeToSignature; pdef.DEFINITIONKEY := definitionKey; pdef.PROPERTYTYPE := propertyTypeId; pdef.TYPE := datatypeId; pdef.PROPERTYGROUPDEFINITION := propertyGroupId; pdef.OWNINGPROPERTYSETDEFINITION := propertySetId; putTrace('Created ' || toSPropertyDefinition(pdef) || EOL); RETURN pdef; END newCMPPropertyDefinition; -- ========================================================================== PROCEDURE AddCMPPropertyDefinition( pdef IN OUT CMPPropertyDefinition ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPPropertyDefinition_r where name = pdef.NAME and logicalname=pdef.LOGICALNAME and firstclassobject=pdef.FIRSTCLASSOBJECT and definitionkey=pdef.DEFINITIONKEY and propertyType=pdef.PROPERTYTYPE and owningPropertySetDefinition=pdef.OWNINGPROPERTYSETDEFINITION and workspaceid=pdef.WORKSPACEID; If l_count = 1 then l_str := 'select * from CMPPropertyDefinition_r where name = ''' || pdef.NAME || ''' and logicalname=''' || pdef.LOGICALNAME || ''' and firstclassobject=' || pdef.FIRSTCLASSOBJECT || ' and definitionkey=''' || pdef.DEFINITIONKEY || ''' and propertyType=' || pdef.PROPERTYTYPE || ' and owningPropertySetDefinition=' || pdef.OWNINGPROPERTYSETDEFINITION || ' and workspaceid=' || pdef.WORKSPACEID; EXECUTE IMMEDIATE l_str INTO pdef; putTrace('Found ' || toSPropertyDefinition(pdef) || EOL); else If l_count = 0 then insert into CMPPropertyDefinition_r VALUES pdef; putTrace('Inserted ' || toSPropertyDefinition(pdef) || EOL); else putTrace('Error! Found ' || l_count || ' PropertyDefinitions with same name ''' || pdef.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== FUNCTION getCMPPropertyDefinition( definitionKey IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,propertyTypeId IN NUMBER DEFAULT null ,datatypeId IN NUMBER DEFAULT null ,propertyGroupId IN NUMBER DEFAULT null ,propertySetId IN NUMBER DEFAULT null ) RETURN CMPPropertyDefinition -- ========================================================================== IS pdef CMPPropertyDefinition; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPPropertyDefinition_r WHERE 1=1'; if (definitionKey is not null) then l_str := l_str || ' and DEFINITIONKEY=''' || definitionKey || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (propertyTypeId is not null) then l_str := l_str || ' and PROPERTYTYPE=' || propertyTypeId; end if; if (datatypeId is not null) then l_str := l_str || ' and TYPE=' || datatypeId; end if; if (propertyGroupId is not null) then l_str := l_str || ' and PROPERTYGROUPDEFINITION=' || propertyGroupId; end if; if (propertySetId is not null) then l_str := l_str || ' and OWNINGPROPERTYSETDEFINITION=' || propertySetId; end if; EXECUTE IMMEDIATE l_str INTO pdef; putTrace('Queried ' || toSPropertyDefinition(pdef) || EOL); RETURN pdef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN pdef; END getCMPPropertyDefinition; -- ========================================================================== FUNCTION getPropertyDefinitionId( p_propertySetId NUMBER, p_definitionKey VARCHAR2 ) RETURN NUMBER -- ========================================================================== IS pdef CMPPropertyDefinition; BEGIN pdef := getCMPPropertyDefinition( p_definitionKey,--definitionKey null,--name null,--propertyTypeId null,--datatypeId null,--propertyGroupId p_propertySetId--propertySetId ); RETURN pdef.ELEMENTID; END; -- ========================================================================== -- NewCMPPropertyGroupdefinition FUNCTION newCMPPropertyGroupdefinition( definitionKey IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,firstClassObjectId IN NUMBER DEFAULT null ,position IN NUMBER DEFAULT 0 ,propertySetId IN NUMBER DEFAULT 0 ) RETURN CMPPropertyGroupdefinition -- ========================================================================== IS pgdef CMPPropertyGroupdefinition; BEGIN pgdef.AGGREGATEDSIGNATURE := SYSDATE; pgdef.CREATIONTIMESTAMP := SYSDATE; pgdef.ELEMENTID := getNextElementId; pgdef.LOGICALNAME := definitionKey; pgdef.METADATASIGNATURE := metadataSignature; pgdef.NAME := name; pgdef.UOID := RAWTOHEX(SYS_GUID()); pgdef.UPDATETIMESTAMP := SYSDATE; pgdef.FIRSTCLASSOBJECT := firstClassObjectId; pgdef.POSITION := position; pgdef.PROPERTYGROUPOWNER := propertySetId; putTrace('Created ' || toSPropertyGroupdefinition(pgdef) || EOL); RETURN pgdef; END newCMPPropertyGroupdefinition; -- ========================================================================== PROCEDURE AddCMPPropertyGroupDefinition( pgdeg IN OUT CMPPropertyGroupDefinition ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPPropertyGroupDefinition_r where name = pgdeg.NAME and logicalname=pgdeg.LOGICALNAME and firstclassobject=pgdeg.FIRSTCLASSOBJECT and propertyGroupOwner=pgdeg.PROPERTYGROUPOWNER and workspaceid=pgdeg.WORKSPACEID; If l_count = 1 then l_str := 'select * from CMPPropertyGroupDefinition_r where name = ''' || pgdeg.NAME || ''' and logicalname=''' || pgdeg.LOGICALNAME || ''' and firstclassobject=' || pgdeg.FIRSTCLASSOBJECT || ' and propertyGroupOwner=' || pgdeg.propertyGroupOwner || ' and workspaceid=' || pgdeg.WORKSPACEID; EXECUTE IMMEDIATE l_str INTO pgdeg; putTrace('Found ' || toSPropertyGroupdefinition(pgdeg) || EOL); else If l_count = 0 then insert into CMPPropertyGroupDefinition_r VALUES pgdeg; putTrace('Inserted ' || toSPropertyGroupdefinition(pgdeg) || EOL); else putTrace('Error! Found ' || l_count || ' PropertyGroupDefinitions with same name ''' || pgdeg.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== -- NewCMPArrayType FUNCTION newCMPArrayType( logicalName IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT 0 ,owningFolder IN NUMBER DEFAULT 0 ,baseElementTypeFqn IN VARCHAR2 DEFAULT null ,baseType IN CMPClassDefinition DEFAULT null ) RETURN CMPArrayType -- ========================================================================== IS adef CMPArrayType; BEGIN adef.AGGREGATEDSIGNATURE := SYSDATE; adef.CREATIONTIMESTAMP := SYSDATE; adef.ELEMENTID := getNextElementId; adef.LOGICALNAME := logicalName; adef.METADATASIGNATURE := metadataSignature; adef.NAME := name; adef.UOID := RAWTOHEX(SYS_GUID()); adef.UPDATETIMESTAMP := SYSDATE; adef.OWNINGMODEL := owningModel; adef.OWNINGFOLDER := owningFolder; adef.BASEELEMENTTYPEAGSG := baseType.AGGREGATEDSIGNATURE; adef.BASEELEMENTTYPEFQN := baseElementTypeFqn; adef.BASEELEMENTTYPELUPD := baseType.UPDATETIMESTAMP; adef.BASEELEMENTTYPEUOID := baseType.UOID; adef.BASEELEMENTTYPE := baseType.ELEMENTID; putTrace('Created ' || toSArrayType(adef) || EOL); RETURN adef; END newCMPArrayType; -- ========================================================================== PROCEDURE AddCMPArrayType( adef IN OUT CMPArrayType ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPArrayType_r where name = adef.NAME and owningModel=adef.OWNINGMODEL and owningFolder=adef.OWNINGFOLDER and workspaceid=adef.WORKSPACEID and baseElementType=adef.BASEELEMENTTYPE; If l_count = 1 then l_str := 'select * from CMPArrayType_r where name = ''' || adef.NAME || ''' and owningModel=' || adef.OWNINGMODEL || ' and owningFolder=' || adef.OWNINGFOLDER || ' and workspaceid=' || adef.WORKSPACEID || ' and baseElementType=' || adef.BASEELEMENTTYPE; EXECUTE IMMEDIATE l_str INTO adef; putTrace('Found ' || toSArrayType(adef) || EOL); else If l_count = 0 then insert into CMPArrayType_r VALUES adef; putTrace('Inserted ' || toSArrayType(adef) || EOL); else putTrace('Error! Found ' || l_count || ' ArrayTypes with same name ''' || adef.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== FUNCTION getCMPArrayType( logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT null ,owningFolder IN NUMBER DEFAULT null ,baseElementTypeFqn IN VARCHAR2 DEFAULT null ,baseElementType IN NUMBER DEFAULT null ) RETURN CMPArrayType -- ========================================================================== IS adef CMPArrayType; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPArrayType_r WHERE 1=1'; if (logicalName is not null) then l_str := l_str || ' and LOGICALNAME=''' || logicalName || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (owningModel is not null) then l_str := l_str || ' and OWNINGMODEL=' || owningModel; end if; if (owningFolder is not null) then l_str := l_str || ' and OWNINGFOLDER=' || owningFolder; end if; if (baseElementTypeFqn is not null) then l_str := l_str || ' and BASEELEMENTTYPEFQN=''' || baseElementTypeFqn || ''''; end if; if (baseElementType is not null) then l_str := l_str || ' and BASEELEMENTTYPE=' || baseElementType; end if; EXECUTE IMMEDIATE l_str INTO adef; putTrace('Queried ' || toSArrayType(adef) || EOL); RETURN adef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN adef; END getCMPArrayType; -- ========================================================================== -- ArrayType of related PropertyDefinition FUNCTION getCMPArrayTypeOfPDef( pdef IN CMPPropertyDefinition ) RETURN CMPArrayType -- ========================================================================== IS adef CMPArrayType; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPArrayType_r WHERE ELEMENTID=' || pdef.TYPE; EXECUTE IMMEDIATE l_str INTO adef; putTrace('Queried ' || toSArrayType(adef) || EOL); RETURN adef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN adef; END getCMPArrayTypeOfPDef; -- ========================================================================== FUNCTION getCMPAnonymousDomain( logicalName IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,owningModel IN NUMBER DEFAULT null ,owningFolder IN NUMBER DEFAULT null ,dataTypeFqn IN VARCHAR2 DEFAULT null ,dataType IN NUMBER DEFAULT null ) RETURN CMPAnonymousDomain -- ========================================================================== IS adom CMPAnonymousDomain; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPAnonymousDomain_r WHERE 1=1'; if (logicalName is not null) then l_str := l_str || ' and LOGICALNAME=''' || logicalName || ''''; end if; if (name is not null) then l_str := l_str || ' and NAME=''' || name || ''''; end if; if (owningModel is not null) then l_str := l_str || ' and OWNINGMODEL=' || owningModel; end if; if (owningFolder is not null) then l_str := l_str || ' and OWNINGFOLDER=' || owningFolder; end if; if (dataTypeFqn is not null) then l_str := l_str || ' and DATATYPEFQN=''' || dataTypeFqn || ''''; end if; if (dataType is not null) then l_str := l_str || ' and DATATYPE=' || dataType; end if; EXECUTE IMMEDIATE l_str INTO adom; putTrace('Queried ' || toSAnonymousDomain(adom) || EOL); RETURN adom; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN adom; END getCMPAnonymousDomain; -- ========================================================================== -- AnonymousDomain of related PropertyDefinition FUNCTION getCMPAnonymousDomainOfPDef( pdef IN CMPPropertyDefinition ) RETURN CMPAnonymousDomain -- ========================================================================== IS ddef CMPAnonymousDomain; l_str VARCHAR2(4000); BEGIN l_str := 'SELECT * FROM CMPAnonymousDomain_r WHERE ELEMENTID=' || pdef.TYPE; EXECUTE IMMEDIATE l_str INTO ddef; putTrace('Queried ' || toSAnonymousDomain(ddef) || EOL); RETURN ddef; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN putTrace ('Not found -->' || l_str || EOL); RETURN null; END; RETURN ddef; END getCMPAnonymousDomainOfPDef; -- ========================================================================== -- NewCMPArrayModelAttribute FUNCTION newCMPArrayModelAttribute( logicalName IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,arrayTypeFqn IN VARCHAR2 DEFAULT null ,arrayType IN CMPArrayType DEFAULT null ,modelAttributeOwner IN NUMBER DEFAULT 0 ,firstClassObject IN NUMBER DEFAULT 0 ) RETURN CMPArrayModelAttribute -- ========================================================================== IS adef CMPArrayModelAttribute; BEGIN adef.AGGREGATEDSIGNATURE := SYSDATE; adef.CREATIONTIMESTAMP := SYSDATE; adef.ELEMENTID := getNextElementId; adef.LOGICALNAME := logicalName; adef.METADATASIGNATURE := metadataSignature; adef.NAME := name; adef.UOID := RAWTOHEX(SYS_GUID()); adef.UPDATETIMESTAMP := SYSDATE; adef.ATTRIBUTETYPEAGSG := arrayType.AGGREGATEDSIGNATURE; adef.ATTRIBUTETYPEFQN := arrayTypeFqn; adef.ATTRIBUTETYPELUPD := arrayType.UPDATETIMESTAMP; adef.ATTRIBUTETYPEUOID := arrayType.UOID; adef.ATTRIBUTETYPE := arrayType.ELEMENTID; adef.MODELATTRIBUTEOWNER := modelAttributeOwner; adef.FIRSTCLASSOBJECT := firstClassObject; putTrace('Created ' || toSArrayModelAttribute(adef) || EOL); RETURN adef; END newCMPArrayModelAttribute; -- ========================================================================== PROCEDURE AddCMPArrayModelAttribute( adef IN OUT CMPArrayModelAttribute ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPArrayModelAttribute_r where name = adef.NAME and attributeType=adef.ATTRIBUTETYPE and modelAttributeOwner=adef.MODELATTRIBUTEOWNER and workspaceid=adef.WORKSPACEID and firstClassObject=adef.FIRSTCLASSOBJECT; If l_count = 1 then l_str := 'select * from CMPArrayModelAttribute_r where name = ''' || adef.NAME || ''' and attributeType=' || adef.ATTRIBUTETYPE || ' and modelAttributeOwner=' || adef.MODELATTRIBUTEOWNER || ' and workspaceid=' || adef.WORKSPACEID || ' and firstClassObject=' || adef.FIRSTCLASSOBJECT; EXECUTE IMMEDIATE l_str INTO adef; putTrace('Found ' || toSArrayModelAttribute(adef) || EOL); else If l_count = 0 then insert into CMPArrayModelAttribute_r VALUES adef; putTrace('Inserted ' || toSArrayModelAttribute(adef) || EOL); else putTrace('Error! Found ' || l_count || ' ArrayModelAttributes with same name ''' || adef.NAME || '''!' || EOL); end if; end if; END; -- ========================================================================== -- NewCMPPrimitiveModelAttribute FUNCTION newCMPPrimitiveModelAttribute( logicalName IN VARCHAR2 DEFAULT null ,metadataSignature IN VARCHAR2 DEFAULT null ,name IN VARCHAR2 DEFAULT null ,attributeTypeFqn IN VARCHAR2 DEFAULT null ,primitiveType IN CMPPrimitiveType DEFAULT null ,modelAttributeOwner IN NUMBER DEFAULT 0 ,firstClassObject IN NUMBER DEFAULT 0 ,value IN VARCHAR2 DEFAULT null ) RETURN CMPPrimitiveModelAttribute -- ========================================================================== IS ptype CMPPrimitiveModelAttribute; BEGIN ptype.AGGREGATEDSIGNATURE := SYSDATE; ptype.CREATIONTIMESTAMP := SYSDATE; ptype.ELEMENTID := getNextElementId; ptype.LOGICALNAME := logicalName; ptype.METADATASIGNATURE := metadataSignature; ptype.NAME := name; ptype.UOID := RAWTOHEX(SYS_GUID()); ptype.UPDATETIMESTAMP := SYSDATE; ptype.ATTRIBUTETYPEAGSG := primitiveType.AGGREGATEDSIGNATURE; ptype.ATTRIBUTETYPEFQN := attributeTypeFqn; ptype.ATTRIBUTETYPELUPD := primitiveType.UPDATETIMESTAMP; ptype.ATTRIBUTETYPEUOID := primitiveType.UOID; ptype.ATTRIBUTETYPE := primitiveType.ELEMENTID; ptype.MODELATTRIBUTEOWNER := modelAttributeOwner; ptype.FIRSTCLASSOBJECT := firstClassObject; ptype.VALUE := value; putTrace('Created ' || toSPrimitiveModelAttribute(ptype) || EOL); RETURN ptype; END newCMPPrimitiveModelAttribute; -- ========================================================================== PROCEDURE AddCMPPrimitiveModelAttribute( ptype IN OUT CMPPrimitiveModelAttribute ) -- ========================================================================== IS l_count NUMBER := 0; l_str VARCHAR2(4000); BEGIN select count(1) into l_count from CMPPrimitiveModelAttribute_r where name = ptype.NAME and attributeType=ptype.ATTRIBUTETYPE and modelAttributeOwner=ptype.MODELATTRIBUTEOWNER and workspaceid=ptype.WORKSPACEID and firstClassObject=ptype.FIRSTCLASSOBJECT; If l_count = 1 then l_str := 'select * from CMPPrimitiveModelAttribute_r where name = ''' || ptype.NAME || ''' and attributeType=' || ptype.ATTRIBUTETYPE || ' and modelAttributeOwner=' || ptype.MODELATTRIBUTEOWNER || ' and workspaceid=' || ptype.WORKSPACEID || ' and firstClassObject=' || ptype.FIRSTCLASSOBJECT; EXECUTE IMMEDIATE l_str INTO ptype; putTrace('Found ' || toSPrimitiveModelAttribute(ptype) || EOL); else If l_count = 0 then insert into CMPPrimitiveModelAttribute_r VALUES ptype; putTrace('Inserted ' || toSPrimitiveModelAttribute(ptype) || EOL); else putTrace('Error! Found ' || l_count || ' PrimitiveModelAttributes with same name ''' || ptype.NAME || '''!' || EOL); end if; end if; END; -- ########################################################################## -- ########################################################################## BEGIN -- Outer block - utility functions/variables now defined -- ########################################################################## -- ########################################################################## -- ======================================================= DECLARE -- Inner block for utility function/variable usage -- aka 'user' declarations -- ======================================================= platformId NUMBER; classdefinitionId NUMBER; genClassId NUMBER; strType CMPPrimitiveType; parentCDefId NUMBER; parentPSDef CMPPropertySetDefinition; propertySetId NUMBER; psdef CMPPropertySetDefinition; pgdef CMPPropertyGroupdefinition; pdef CMPPropertyDefinition; booleanType CMPPrimitiveType; genericPlatformId NUMBER; primitiveModelAttribute CMPPrimitiveModelAttribute; anonymousDomain CMPAnonymousDomain; l_sqlStr VARCHAR2(4000); -- ======================================================= BEGIN -- start handling data types defined in up.xml -- ======================================================= -- up.xml -> platformId := getPlatformIdByName('ORACLE'); genericPlatformId := getPlatformIdByName('GENERIC'); -- up.xml -> name='oracle.wh.repos.impl.relational.CMPWBTable' -- up.xml -> extends='oracle.wh.repos.impl.abstractRelation.CMPRelationalDBObject' -- up.xml -> implements='oracle.wh.repos.impl.derivation.CMPDerivationSourceFCO, oracle.wh.repos.sdk.WBDerivationSourceFCO' -- up.xml -> > classdefinitionId := getClassIdByName(platformId,'oracle.wh.repos.impl.relational.CMPWBTable'); -- up.xml -> name='SELECTOR' -- up.xml -> dataType='String' -- up.xml -> defaultValue='oracle.wh.repos.impl.relational.TableSelctor' -- up.xml -> /> -- Add the MetaAttribute under generic class definition genClassId := getClassIdByName(genericPlatformId,'oracle.wh.repos.impl.relational.CMPWBTable'); strType := getCMPPrimitiveType( 'String',--logicalName 'String',--name genericPlatformId,--owningModel genericPlatformId--owningFolder ); primitiveModelAttribute := newCMPPrimitiveModelAttribute( 'SELECTOR',--logicalName '84c281c10603c92b40de399716e246d7',--metadataSignature 'SELECTOR',--name 'OMB//\oracle.wh.repos.impl.platform.CMPPlatform\GENERIC\oracle.wh.repos.impl.domain.CMPPrimitiveType\String',--attributeTypeFqn strType,--primitiveType genClassId,--modelAttributeOwner genClassId,--firstClassObject 'oracle.wh.repos.impl.relational.TableSelctor'--value ); AddCMPPrimitiveModelAttribute(primitiveModelAttribute); -- up.xml -> Position='0' -- up.xml -> aggregateAncestor='oracle.wh.repos.impl.application.CMPWBTMSchema$#TTSSET' -- up.xml -> definitionKey='8i.TABLES' -- up.xml -> name='#TMSchema' -- up.xml -> propertyType='physical' -- up.xml -> > -- find parent property set parentCDefId := getClassIdByName(platformId,'oracle.wh.repos.impl.application.CMPWBTMSchema'); parentPSDef := getCMPPropertySetDefinition( '#TTSSET',--description '2'||COLON||'8i.TTSSET.TARGETSCHEMA'||COLON||'0',--logicalName 'CONFIGURATION'||COLON||'TTSSET',--name parentCDefId,--firstClassObject PROPERTYTYPE_PHYSICAL,--propertyType parentCDefId,--owningClassDefinition null--parentPropertySet ); -- create new property set psdef := newCMPPropertySetDefinition( '#TMSchema',--description '2'||COLON||'8i.TABLES'||COLON||parentPSDef.ELEMENTID,--logicalName '991eb0eb6234fea02d57a7f5b2baab18',--metadataSignature ''||parentCDefId||COLON||parentPSDef.NAME||COLON||'TMSCHEMA',--name classdefinitionId,--firstClassObject PROPERTYTYPE_PHYSICAL,--propertyType classdefinitionId,--owningClassDefinition parentPSDef.ELEMENTID--parentPropertySet ); AddCMPPropertySetDefinition(psdef); -- up.xml -> Position='3' -- up.xml -> definitionKey='8i.TABLES.IDENTIFICATION' -- up.xml -> name='IDENTIFICATION' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.IDENTIFICATION',--definitionKey 'IDENTIFICATION',--name '4e355a013a33a9b11d7f6416dbbdcee2',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='boolean' -- up.xml -> definitionKey='8i.TABLES.DEPLOYABLE' -- up.xml -> description='Warehouse Builder generates a set of scripts to create an object only for those object marked as Deployable = true.' -- up.xml -> exportControl='public' -- up.xml -> initValue='true' -- up.xml -> isTranslatable='false' -- up.xml -> name='DEPLOYABLE' -- up.xml -> > -- up.xml -> booleanType := getCMPPrimitiveType( 'Boolean',--logicalName 'Boolean',--name genericPlatformId,--owningModel genericPlatformId--owningFolder ); pdef := newCMPPropertyDefinition( '8i.TABLES.DEPLOYABLE',--definitionKey 'DEPLOYABLE',--name 'cd5c9a57f42caa29d1c02f05ffc0b814',--metadataSignature classdefinitionId,--firstClassObjectId 1,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId booleanType.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.DEPLOYABLE'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- add default value of property definition primitiveModelAttribute := newCMPPrimitiveModelAttribute( 'DEFAULTVALUE',--logicalName '4f1652e94cecb8a8059c0ee44e1dd49a',--metadataSignature 'DEFAULTVALUE',--name 'OMB//\oracle.wh.repos.impl.platform.CMPPlatform\GENERIC\oracle.wh.repos.impl.domain.CMPPrimitiveType\Boolean',--attributeTypeFqn booleanType,--primitiveType pdef.ELEMENTID,--modelAttributeOwner classdefinitionId,--firstClassObject 'true'--value ); AddCMPPrimitiveModelAttribute(primitiveModelAttribute); -- up.xml -> Position='1' -- up.xml -> dataType='boolean' -- up.xml -> definitionKey='8i.TABLES.SHADOWTABLE.GENERATE_ERROR_TABLE_ONLY' -- up.xml -> description='If deployable, generate scripts to create only the error table' -- up.xml -> exportControl='public' -- up.xml -> initValue='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='GENERATE_ERROR_TABLE_ONLY' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.SHADOWTABLE.GENERATE_ERROR_TABLE_ONLY',--definitionKey 'GENERATE_ERROR_TABLE_ONLY',--name 'a30257e85e49c7bdec6c4ac16e8d5558',--metadataSignature classdefinitionId,--firstClassObjectId 2,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId booleanType.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.SHADOWTABLE.GENERATE_ERROR_TABLE_ONLY'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- add default value of property definition primitiveModelAttribute := newCMPPrimitiveModelAttribute( 'DEFAULTVALUE',--logicalName '1b43f8c036605ed0c2d3fea08138d33c',--metadataSignature 'DEFAULTVALUE',--name 'OMB//\oracle.wh.repos.impl.platform.CMPPlatform\GENERIC\oracle.wh.repos.impl.domain.CMPPrimitiveType\Boolean',--attributeTypeFqn booleanType,--primitiveType pdef.ELEMENTID,--modelAttributeOwner classdefinitionId,--firstClassObject 'false'--value ); AddCMPPrimitiveModelAttribute(primitiveModelAttribute); -- up.xml -> Position='4' -- up.xml -> definitionKey='8i.TABLES.PARTITIONING' -- up.xml -> name='PARTITION_PARAMETERS' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.PARTITIONING',--definitionKey 'PARTITION_PARAMETERS',--name 'd44a50bab346d48901b8340b1a47690e',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='1' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.STOREIN' -- up.xml -> description='Enter a comma separated list of tablespaces. For simple-partitoned object, it is used for HASH BY QUANTITY partition tablespaces. The number of tablespaces does not have to equal the number of partitions. If the number of partitions is greater than the number of tablespaces, then Oracle cycles through the names of the tablespaces. For composite-partitioned tables, it is used for subpartition template to store a list of tablespaces.' -- up.xml -> exportControl='public' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='PARTITION_TABLESPACE_LIST' -- up.xml -> validator='oracle.wh.service.impl.integrator.validator.PartionTablespaceListValidator' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'PARTITION_TABLESPACE_LIST',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.STOREIN',--definitionKey 'PARTITION_TABLESPACE_LIST',--name '2a4cb67bd95af689a67806e4a9b15711',--metadataSignature classdefinitionId,--firstClassObjectId 3,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.STOREIN'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='2' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.OVERFLOW' -- up.xml -> description='Enter a comma separated list of tablespaces for overflow data. For simple-partitoned object, it is used for HASH BY QUANTITY partition overflow tablespaces. The number of tablespaces does not have to equal the number of partitions. If the number of partitions is greater than the number of tablespaces, then Oracle cycles through the names of the tablespaces.' -- up.xml -> exportControl='public' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='OVERFLOW' -- up.xml -> validator='oracle.wh.service.impl.integrator.validator.PartionTablespaceListValidator' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'OVERFLOW',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.OVERFLOW',--definitionKey 'OVERFLOW',--name 'f1570e32e8fb8f4c49cdfaf3b062b389',--metadataSignature classdefinitionId,--firstClassObjectId 4,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.OVERFLOW'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='5' -- up.xml -> definitionKey='8i.TABLES.PHYSICALATTRIBUTES' -- up.xml -> name='PHYSICALATTRIBUTES' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.PHYSICALATTRIBUTES',--definitionKey 'PHYSICALATTRIBUTES',--name '12cfaa893acf0da4e1e7dfeb90fc74e5',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.PCTFREE' -- up.xml -> description='Specify a whole number representing the percentage (0-99) of space in each data block of the database object reserved for future updates to the rows of the object. The default is 10.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='PCTFREE' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.PCTFREE',--definitionKey 'PCTFREE',--name '73b592d5f18e527744c27130c705c845',--metadataSignature classdefinitionId,--firstClassObjectId 5,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.PCTFREE'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.PCTUSED' -- up.xml -> description='Specify a whole number representing the minimum percentage (0-99) of used space that Oracle maintains for each data block of the database object. The default is 40.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='PCTUSED' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.PCTUSED',--definitionKey 'PCTUSED',--name 'e98ff6898d87ec322b4ad8ba18be6612',--metadataSignature classdefinitionId,--firstClassObjectId 6,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.PCTUSED'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='2' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.INITRANS' -- up.xml -> description='Specify the initial number (1-255) of concurrent transaction entries allocated within each data block allocated to the database object. The default is 1.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='INITRANS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.INITRANS',--definitionKey 'INITRANS',--name '0160b7bbbf4fad9932b66db6d1a3f8a7',--metadataSignature classdefinitionId,--firstClassObjectId 7,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.INITRANS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='3' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.MAXTRANS' -- up.xml -> description='Specify the maximum number (1-255) of concurrent transactions that can update a data block allocated to the database object.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='MAXTRANS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.MAXTRANS',--definitionKey 'MAXTRANS',--name '825239babecac68bbaf1942fe3f09db6',--metadataSignature classdefinitionId,--firstClassObjectId 8,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.MAXTRANS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='6' -- up.xml -> definitionKey='8i.TABLES.STORAGESPACE' -- up.xml -> name='STORAGE_SPACE' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.STORAGESPACE',--definitionKey 'STORAGESPACE',--name 'b75d5ab256651b9040eb39c15d809093',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.TABLESPACE' -- up.xml -> description='Use the Tablespace parameter to specify the name of tablespace.' -- up.xml -> exportControl='public' -- up.xml -> isNameChecked='true' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='TABLESPACE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'TABLESPACE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.TABLESPACE',--definitionKey 'TABLESPACE',--name '3d1a0dfabf479023d3012cc68f45ca34',--metadataSignature classdefinitionId,--firstClassObjectId 9,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.TABLESPACE'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> choices=',KEEP,RECYCLE,DEFAULT' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.BUFFERPOOL' -- up.xml -> description='Specify a default buffer pool (cache) for table or partition object. The default is DEFAULT.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='BUFFER_POOL' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'BUFFER_POOL',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.BUFFERPOOL',--definitionKey 'BUFFER_POOL',--name 'eab4e1ffb729d9c89f00bf1a8550e4a9',--metadataSignature classdefinitionId,--firstClassObjectId 10,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.BUFFERPOOL'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='2' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.FREELISTGROUPS' -- up.xml -> description='Specify the number of groups of free lists for the database object you are creating. The default is 1.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='FREELISTGROUPS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.FREELISTGROUPS',--definitionKey 'FREELISTGROUPS',--name '45151f7dc927504d7d21e71a5da68a15',--metadataSignature classdefinitionId,--firstClassObjectId 11,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.FREELISTGROUPS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='3' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.FREELISTS' -- up.xml -> description='Specify the number of free lists for each of the free list groups for the table, partition, cluster, or index. The default is 1.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='FREELISTS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.FREELISTS',--definitionKey 'FREELISTS',--name '7ea05d82a414fc59677a75f0af0b6c85',--metadataSignature classdefinitionId,--firstClassObjectId 12,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.FREELISTS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='4' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.INITIAL' -- up.xml -> description='Specify in bytes the size of the first extent. Use K or M to specify size in kilobytes or megabytes.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='INITIAL' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.INITIAL',--definitionKey 'INITIAL',--name '062bcceb33c6bd0025f6f9a525c146b4',--metadataSignature classdefinitionId,--firstClassObjectId 13,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.INITIAL'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='5' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.MINEXTENTS' -- up.xml -> description='Specify the total number of extents to allocate when the object is created. The default and minimum value is 1, meaning that Oracle allocates only the initial extent. The maximum value depends on your operating system.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='MINEXTENTS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.MINEXTENTS',--definitionKey 'MINEXTENTS',--name '83a138f3bb396e26abdf0430c5acd01a',--metadataSignature classdefinitionId,--firstClassObjectId 14,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.MINEXTENTS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='6' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.MAXEXTENTS' -- up.xml -> description='Specify the total number of extents, including the first, that Oracle can allocate for the object. The minimum value is 1. The default value depends on your data block size. Specify UNLIMITED if you want extents to be allocated automatically as needed. Must be no less than MINEXTENTS.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isTranslatable='false' -- up.xml -> name='MAXEXTENTS' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.MAXEXTENTS',--definitionKey 'MAXEXTENTS',--name 'd53990175a3a56c6bb125c79015a3992',--metadataSignature classdefinitionId,--firstClassObjectId 15,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.MAXEXTENTS'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='7' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.NEXT' -- up.xml -> description='Specify in bytes the size of the next extent to be allocated. Use K or M to specify size in kilobytes or megabytes.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='NEXT' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.NEXT',--definitionKey 'NEXT',--name 'ac1d0b3b5ae7c9ce61ffa7c415e6e76d',--metadataSignature classdefinitionId,--firstClassObjectId 16,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.NEXT'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='8' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.PCTINCREASE' -- up.xml -> description='Specify the percent by which the third and subsequent extents grow over the preceding extent. The default is 50.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='PCTINCREASE' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.PCTINCREASE',--definitionKey 'PCTINCREASE',--name '0997f242b121a17f8db1f5168382bb32',--metadataSignature classdefinitionId,--firstClassObjectId 17,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.PCTINCREASE'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='7' -- up.xml -> definitionKey='8i.TABLES.PARALLELISM' -- up.xml -> name='PARALLELISM' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.PARALLELISM',--definitionKey 'PARALLELISM',--name 'a8f7793fd05c37f345e0253eb037a386',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> choices=',PARALLEL,NOPARALLEL' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.PARALLEL' -- up.xml -> description='Enables or disables parallel processing when the table is created. Also enables or disables parallel processing or access. The default is PARALLEL.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='PARALLEL_ACCESS_MODE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition l_sqlStr := 'select * from cmpanonymousdomain_r where name like ''%PARALLEL_ACCESS_MODE%'''; execute immediate l_sqlStr into anonymousDomain; putTrace(l_sqlStr || EOL); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.PARALLEL',--definitionKey 'PARALLEL_ACCESS_MODE',--name '90af77123353a067aadf08b44714c843',--metadataSignature classdefinitionId,--firstClassObjectId 18,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.PARALLEL'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.PARALLELDEGREE' -- up.xml -> description='Enter degree of parallelism, which is the number of parallel threads used in the parallel operation.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='PARALLEL_DEGREE' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.PARALLELDEGREE',--definitionKey 'PARALLEL_DEGREE',--name '812bcdd475d4944978b610786b191826',--metadataSignature classdefinitionId,--firstClassObjectId 19,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.PARALLELDEGREE'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='8' -- up.xml -> definitionKey='8i.TABLES.PERFORMANCEPARAM' -- up.xml -> name='PERFORMANCE_PARAMETERS' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.PERFORMANCEPARAM',--definitionKey 'PERFORMANCE_PARAMETERS',--name '62ad7a4e225344170038f74f0d86c085',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.ESTIMATEPCT' -- up.xml -> description='Value represents the sample size as a percentage (0-100) of total rows. When set to a nonzero value, Builder generates a DDL script to analyze the table. The default is 99.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isHidden='true' -- up.xml -> isPublishedToPublicApi='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='ANALYZE_TABLE_ESTIMATE_PERCENT' -- up.xml -> contributeToSignature='false' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.ESTIMATEPCT',--definitionKey 'ANALYZE_TABLE_ESTIMATE_PERCENT',--name '3be43d857f56716e1939cb83664727fd',--metadataSignature classdefinitionId,--firstClassObjectId 20,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.ESTIMATEPCT'; pdef.EXPORTCONTROL := 0; pdef.HIDDEN := '1'; pdef.ISPUBLISHEDTOPUBLICAPI := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> choices=',CACHE,NOCACHE' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.CACHE' -- up.xml -> description='Indicate how Oracle should store blocks in the buffer cache. The default is NOCACHE.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='CACHE_MODE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'CACHE_MODE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.CACHE',--definitionKey 'CACHE_MODE',--name '540485d5afaa184d0c1e989897d82e05',--metadataSignature classdefinitionId,--firstClassObjectId 21,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.CACHE'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='3' -- up.xml -> choices=',NOCOMPRESS,COMPRESS,COMPRESS ALL' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.DATASEGMENTCOMPRESSION' -- up.xml -> description='Use this clause to instruct Oracle whether to compress data segments to reduce disk use. The default is NOCOMPRESS. To to compress data during all DML operations on the table, choose COMPRESS ALL. To compress data during direct-path INSERT operations when it is productive to do so, choose COMPRESS.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='DATA_SEGMENT_COMPRESSION' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'DATA_SEGMENT_COMPRESSION',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.DATASEGMENTCOMPRESSION',--definitionKey 'DATA_SEGMENT_COMPRESSION',--name '2e94564b9b28a6ec64e56d6ad62fa035',--metadataSignature classdefinitionId,--firstClassObjectId 22,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.DATASEGMENTCOMPRESSION'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='4' -- up.xml -> choices=',LOGGING,NOLOGGING' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.LOGGING' -- up.xml -> description='Recovery requirements for a data warehouse : Logging or not logging to Redo Log File. The default is LOGGING.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='LOGGING_MODE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'LOGGING_MODE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.LOGGING',--definitionKey 'LOGGING_MODE',--name '60a69c10603576424e8c7a88b7b3ef0d',--metadataSignature classdefinitionId,--firstClassObjectId 23,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.LOGGING'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='5' -- up.xml -> dataType='String' -- up.xml -> choices=',MONITORING,NOMONITORING' -- up.xml -> definitionKey='8i.TABLES.MONITORING' -- up.xml -> description='Deprecated in Oracle 10g. Specify MONITORING if you want modification statistics to be collected on this table. The default is NOMONITORING.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='MONITORING_MODE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'MONITORING_MODE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.MONITORING',--definitionKey 'MONITORING_MODE',--name '868e9db6e8d99bcd8fa1135d416cc4ba',--metadataSignature classdefinitionId,--firstClassObjectId 24,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.MONITORING'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='6' -- up.xml -> dataType='String' -- up.xml -> choices=',ROWDEPENDENCIES,NOROWDEPENDENCIES' -- up.xml -> definitionKey='8i.TABLES.ROWDEPENDENCIES' -- up.xml -> description='Specify ROWDEPENDENCIES to use row-level dependency tracking. The default is NOROWDEPENDENCIES.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='ROWDEPENDENCIES_MODE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'ROWDEPENDENCIES_MODE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.ROWDEPENDENCIES',--definitionKey 'ROWDEPENDENCIES_MODE',--name '69b45666b2c0c74aa99623b3001a85d4',--metadataSignature classdefinitionId,--firstClassObjectId 25,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.ROWDEPENDENCIES'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='7' -- up.xml -> dataType='String' -- up.xml -> choices=',ENABLE,DISABLE' -- up.xml -> definitionKey='8i.TABLES.ROWMOVEMENT' -- up.xml -> description='Specify whether Oracle can move a table row. The default is DISABLE.' -- up.xml -> exportControl='public' -- up.xml -> initValue='' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> isUserChoiceAllowed='false' -- up.xml -> name='ROW_MOVEMENT' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'ROW_MOVEMENT',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.ROWMOVEMENT',--definitionKey 'ROW_MOVEMENT',--name '4dafc37039303d0b914f7605cac37056',--metadataSignature classdefinitionId,--firstClassObjectId 26,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.ROWMOVEMENT'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; pdef.USERCHOICEALLOWED := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='9' -- up.xml -> definitionKey='8i.TABLES.SHADOWTABLE' -- up.xml -> name='ERROR_TABLE' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.SHADOWTABLE',--definitionKey 'ERROR_TABLE',--name '1cb28f42823d4a488d03bff820f42e30',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.SHADOWTABLE.TABLENAME' -- up.xml -> description='Use the shadow table name to specify the name of Shadow Table.' -- up.xml -> exportControl='public' -- up.xml -> isNameChecked='true' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='ERROR_TABLE_NAME' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'ERROR_TABLE_NAME',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.SHADOWTABLE.TABLENAME',--definitionKey 'ERROR_TABLE_NAME',--name 'ebda1e1c50816b29f1d059a822063950',--metadataSignature classdefinitionId,--firstClassObjectId 27,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.SHADOWTABLE.TABLENAME'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> dataType='String' -- up.xml -> definitionKey='8i.TABLES.SHADOWTABLE.TABLESPACE' -- up.xml -> description='Use the Tablespace parameter to specify the name of tablespace.' -- up.xml -> exportControl='public' -- up.xml -> isNameChecked='true' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='ERROR_TABLESPACE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'ERROR_TABLESPACE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '8i.TABLES.SHADOWTABLE.TABLESPACE',--definitionKey 'ERROR_TABLESPACE',--name 'e6b536dd38fb938ee963fedd33df73a8',--metadataSignature classdefinitionId,--firstClassObjectId 28,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.SHADOWTABLE.TABLESPACE'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='10' -- up.xml -> definitionKey='8i.TABLES.JOURNALING' -- up.xml -> name='JOURNALING' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '8i.TABLES.JOURNALING',--definitionKey 'JOURNALING',--name '48d45dad605f1fc3aa2e5ff327a27006',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='boolean' -- up.xml -> definitionKey='8i.TABLES.JOURNALING.IS_CDC' -- up.xml -> description='A boolean value to indicate whether this object is in change data capture' -- up.xml -> exportControl='public' -- up.xml -> initValue='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='IS_CDC' -- up.xml -> > -- up.xml -> -- up.xml -> Position='1' -- up.xml -> dataType='int' -- up.xml -> definitionKey='8i.TABLES.JOURNALING.CDC_POSITION' -- up.xml -> description='A number to set the position for change data capture.' -- up.xml -> exportControl='public' -- up.xml -> initValue= '0' -- up.xml -> isTranslatable='false' -- up.xml -> name='CDC_POSITION' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '8i.TABLES.JOURNALING.CDC_POSITION',--definitionKey 'CDC_POSITION',--name 'c5695b775e9d035ca954d96fe040c61d',--metadataSignature classdefinitionId,--firstClassObjectId 30,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getIntegerDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '8i.TABLES.JOURNALING.CDC_POSITION'; pdef.EXPORTCONTROL := 0; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='0' -- up.xml -> dataType='String' -- up.xml -> definitionKey='FIRSTCLASSOBJECT.GENERATION_COMMENTS' -- up.xml -> description='The comments for the code generation' -- up.xml -> isHidden='false' -- up.xml -> isPassword='false' -- up.xml -> name='GENERATION_COMMENTS'/> pdef := newCMPPropertyDefinition( 'FIRSTCLASSOBJECT.GENERATION_COMMENTS',--definitionKey 'GENERATION_COMMENTS',--name 'ea93a86b35ea483b6e513dd740e797d1',--metadataSignature classdefinitionId,--firstClassObjectId 31,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getStringDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := 'FIRSTCLASSOBJECT.GENERATION_COMMENTS'; AddCMPPropertyDefinition(pdef); -- up.xml -> name='oracle.wh.repos.impl.items.CMPUniqueKey' -- up.xml -> extends='oracle.wh.repos.impl.items.CMPItemSet' -- up.xml -> > parentCDefId := classdefinitionId; classdefinitionId := getClassIdByName(platformId,'oracle.wh.repos.impl.items.CMPUniqueKey'); -- up.xml -> Position='1' -- up.xml -> aggregateAncestor='oracle.wh.repos.impl.application.CMPWBTMSchema$#TTSSET,oracle.wh.repos.impl.relational.CMPWBTable$#TMSchema' -- up.xml -> description='Created by: 9i.TABLE.CONSTRAINT' -- up.xml -> definitionKey='9i.TABLE.CONSTRAINT' -- up.xml -> name='CMPWBTMSchema#TTSSET' -- up.xml -> propertyType='physical' -- up.xml -> > parentPSDef := psdef; psdef := newCMPPropertySetDefinition( 'CMPWBTMSchema#TTSSET',--description '2'||COLON||'ORACLE'||COLON||'DEFAULT'||COLON||parentPSDef.ELEMENTID,--logicalName '97447f9ee160f8ed312bb9201d70d35e',--metadataSignature ''||parentCDefId||COLON||parentPSDef.NAME||COLON||'DEFAULT',--name classdefinitionId,--firstClassObject PROPERTYTYPE_PHYSICAL,--propertyType classdefinitionId,--owningClassDefinition parentPSDef.ELEMENTID--parentPropertySet ); AddCMPPropertySetDefinition(psdef); -- up.xml -> Position='1' -- up.xml -> definitionKey='9i.TABLE.CONSTRAINT.CREATIONMETHOD' -- up.xml -> name='CREATION_METHOD' -- up.xml -> > pgdef := newCMPPropertyGroupdefinition( '9i.TABLE.CONSTRAINT.CREATIONMETHOD',--definitionKey 'CREATION_METHOD',--name '234bd205aafd83c1b12a9eb013aecde1',--metadataSignature classdefinitionId,--firstClassObjectId 0,--position psdef.ELEMENTID--propertySetId ); AddCMPPropertyGroupDefinition(pgdef); -- up.xml -> Position='0' -- up.xml -> dataType='boolean' -- up.xml -> definitionKey='9i.TABLE.CONSTRAINT.USINGINDEX' -- up.xml -> description='Use of Index on Table Constraint' -- up.xml -> exportControl='public' -- up.xml -> initValue='false' -- up.xml -> name='USING_INDEX' -- up.xml -> > -- up.xml -> pdef := newCMPPropertyDefinition( '9i.TABLE.CONSTRAINT.USINGINDEX',--definitionKey 'USING_INDEX',--name 'd125683a2dddf585bae14deaf107a82b',--metadataSignature classdefinitionId,--firstClassObjectId 4,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId getBooleanDatatypeId(),--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '9i.TABLE.CONSTRAINT.USINGINDEX'; AddCMPPropertyDefinition(pdef); -- up.xml -> Position='1' -- up.xml -> dataType='String' -- up.xml -> definitionKey='9i.TABLE.CONSTRAINT.INDEXTABLESPACE' -- up.xml -> description='Tablespace to store Index on Table Constraint' -- up.xml -> exportControl='public' -- up.xml -> isNameChecked='true' -- up.xml -> isPassword='false' -- up.xml -> isTranslatable='false' -- up.xml -> name='INDEX_TABLESPACE' -- up.xml -> > -- up.xml -> --Find out the domain of propertydefinition anonymousDomain := getCMPAnonymousDomain( null,--logicalName 'INDEX_TABLESPACE',--name null,--owningModel null,--owningFolder null,--dataTypeFqn null--dataType ); --Add new property definition with the domain as its type pdef := newCMPPropertyDefinition( '9i.TABLE.CONSTRAINT.INDEXTABLESPACE',--definitionKey 'INDEX_TABLESPACE',--name 'fcfd9cd96fafac23af50ef456e5e0503',--metadataSignature classdefinitionId,--firstClassObjectId 5,--position '1',--contributeToSignature PROPERTYTYPE_PHYSICAL,--propertyTypeId anonymousDomain.ELEMENTID,--datatypeId pgdef.ELEMENTID,--propertyGroupId psdef.ELEMENTID--propertySetId ); pdef.DESCRIPTION := '9i.TABLE.CONSTRAINT.INDEXTABLESPACE'; pdef.EXPORTCONTROL := 0; pdef.PASSWORD := '0'; pdef.TRANSLATABLE := '0'; AddCMPPropertyDefinition(pdef); -- ======================================================= END; -- Inner block for utility function/variable usage -- ======================================================= -- ########################################################################## END; -- Outer block for utility functions/variables -- ########################################################################## /