Blame | Last modification | View Log | RSS feed
-- CONNECT RELEASE_MANAGER-- new object type path is: SCHEMA_EXPORT/USER-- CONNECT SYSTEMCREATE USER "RELEASE_MANAGER" IDENTIFIED BY VALUES '1F0884EAE574CCCE'DEFAULT TABLESPACE "USERS"TEMPORARY TABLESPACE "TEMP";-- new object type path is: SCHEMA_EXPORT/TABLESPACE_QUOTADECLARETEMP_COUNT NUMBER;SQLSTR VARCHAR2(200);BEGINSQLSTR := 'ALTER USER "RELEASE_MANAGER" QUOTA UNLIMITED ON "USERS"';EXECUTE IMMEDIATE SQLSTR;EXCEPTIONWHEN OTHERS THENIF SQLCODE = -30041 THENSQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACESWHERE TABLESPACE_NAME = ''USERS'' AND CONTENTS = ''TEMPORARY''';EXECUTE IMMEDIATE SQLSTR INTO TEMP_COUNT;IF TEMP_COUNT = 1 THEN RETURN;ELSE RAISE;END IF;ELSERAISE;END IF;END;/-- new object type path is: SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA-- CONNECT RELEASE_MANAGERBEGINsys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'RELMAND1', inst_scn=>'192130887');COMMIT;END;/-- new object type path is: SCHEMA_EXPORT/SYNONYM/SYNONYMCREATE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";CREATE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";CREATE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";CREATE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";CREATE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";CREATE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";CREATE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";CREATE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";CREATE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";CREATE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";CREATE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";CREATE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";CREATE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";CREATE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";-- new object type path is: SCHEMA_EXPORT/TYPE/TYPE_SPECCREATE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T"OID 'B3A08BE610F011D8BD1F00104B0E428C' as TABLE of NUMBER/ALTER TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSE/CREATE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T"OID 'F7327D0030312415E0340003BA71070D'as TABLE of VARCHAR2(4000)/ALTER TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSE/CREATE TYPE "RELEASE_MANAGER"."TDICTIONARY"OID 'F7327D00302E2415E0340003BA71070D' AS TABLE OF VARCHAR2(4000) INDEX BY VARCHAR2(4000)/ALTER TYPE "RELEASE_MANAGER"."TDICTIONARY"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSE/-- new object type path is: SCHEMA_EXPORT/SEQUENCE/SEQUENCECREATE SEQUENCE "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 21669 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_CR_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 2221 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_GBE_ID" MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 10 START WITH 840 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID" MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 722 CACHE 20 NOORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_MSG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 402 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PKG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 28845 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PROJ_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 481 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PV_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 157986 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_RCON_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 4023 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_RTAG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 9763 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SCHEDULED_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 16741 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SESSION_NUM" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 221309 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_UNIT_TESTS" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 93390 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_USER_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_VIEW_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3701 CACHE 20 ORDER NOCYCLE ;CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_VTREE_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 6582 CACHE 20 ORDER NOCYCLE ;-- new object type path is: SCHEMA_EXPORT/TABLE/TABLECREATE TABLE "RELEASE_MANAGER"."ACTION_LOG"( "USER_ID" NUMBER NOT NULL ENABLE,"ACTION_DATETIME" DATE NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000),"ACTTYPE_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE"( "ACTTYPE_ID" NUMBER NOT NULL ENABLE,"NAME" VARCHAR2(255) NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES"( "NOTE_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"NOTE_TITLE" VARCHAR2(2000) NOT NULL ENABLE,"NOTE_BODY" VARCHAR2(4000),"MOD_DATE" DATE NOT NULL ENABLE,"MOD_USER" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS"( "BE_ID" NUMBER NOT NULL ENABLE,"BE_NAME" VARCHAR2(255) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS"( "BE_ID" NUMBER NOT NULL ENABLE,"DOC_NUM" VARCHAR2(255) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS"( "PV_ID" NUMBER NOT NULL ENABLE,"DATE_OF_REVIEW" DATE,"TIME_SPENT" FLOAT(126),"REVIEW_REASON" VARCHAR2(4000),"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000),"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000),"RTEAM_PEER_DEVELOPER" VARCHAR2(4000),"RTEAM_AUTHOR" VARCHAR2(4000),"FILES_REVIEWED" VARCHAR2(4000),"REVIEW_RESULTS" NUMBER,"ISSUES_RAISED" VARCHAR2(4000),"REVIEW_COMMENTS" VARCHAR2(4000),"FNC_S_MEETS_FUNCTIONALITY" CHAR(1),"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000),"RBS_S_BOUND_COND_HANDLED" CHAR(1),"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000),"RBS_S_CLASS_INTERF_PRECOND" CHAR(1),"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000),"RBS_S_NO_UNITIALISED_DATE" CHAR(1),"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000),"RBS_S_EXCEP_HANDING" CHAR(1),"RBS_C_EXCEP_HANDING" VARCHAR2(4000),"RBS_S_RESOURCE_MNG" CHAR(1),"RBS_C_RESOURCE_MNG" VARCHAR2(4000),"RBS_S_TRANS_COMPLET" CHAR(1),"RBS_C_TRANS_COMPLET" VARCHAR2(4000),"RBS_S_THREADSAFETY" CHAR(1),"RBS_C_THREADSAFETY" VARCHAR2(4000),"RBS_S_RET_VALS" CHAR(1),"RBS_C_RET_VALS" VARCHAR2(4000),"RBS_S_CORR_ERR_HANDLING" CHAR(1),"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000),"RBS_S_SQL_STD" CHAR(1),"RBS_C_SQL_STD" VARCHAR2(4000),"MNT_S_EXT_REF" CHAR(1),"MNT_C_EXT_REF" VARCHAR2(4000),"MNT_S_CLASS_SIZE" CHAR(1),"MNT_C_CLASS_SIZE" VARCHAR2(4000),"MNT_S_METHOD_SIZE" CHAR(1),"MNT_C_METHOD_SIZE" VARCHAR2(4000),"MNT_S_APPROP_COMM" CHAR(1),"MNT_C_APPROP_COMM" VARCHAR2(4000),"MNT_S_IDENT_NAME_STD" CHAR(1),"MNT_C_IDENT_NAME_STD" VARCHAR2(4000),"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1),"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000),"MNT_S_NO_LIT_NUM" CHAR(1),"MNT_C_NO_LIT_NUM" VARCHAR2(4000),"MNT_S_NO_DEAD_CODE" CHAR(1),"MNT_C_NO_DEAD_CODE" VARCHAR2(4000),"DEI_S_STD_DES_PATT" CHAR(1),"DEI_C_STD_DES_PATT" VARCHAR2(4000),"DEI_S_APPROP_ALGOR" CHAR(1),"DEI_C_APPROP_ALGOR" VARCHAR2(4000),"DEI_S_APPROP_OBJ" CHAR(1),"DEI_C_APPROP_OBJ" VARCHAR2(4000),"DEI_S_APPROP_ERR_MSG" CHAR(1),"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000),"DEI_S_STD_FRAMEW_COMP" CHAR(1),"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000),"DEI_S_APPROP_LOGGING" CHAR(1),"DEI_C_APPROP_LOGGING" VARCHAR2(4000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES"( "PV_ID" NUMBER NOT NULL ENABLE,"ISS_DB" NUMBER NOT NULL ENABLE,"ISS_ID" NUMBER NOT NULL ENABLE,"ISS_STATE" NUMBER NOT NULL ENABLE,"MOD_DATE" DATE NOT NULL ENABLE,"NOTES" VARCHAR2(255)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"DPV_ID" NUMBER NOT NULL ENABLE,"IS_PATCH_IGNORE" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD"( "MSG_ID" NUMBER NOT NULL ENABLE,"MSG_DETAILS" VARCHAR2(2000) NOT NULL ENABLE,"SUBMITION_DATE" DATE NOT NULL ENABLE,"EXPIRY_DATE" DATE,"DUE_DATE" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES"( "ID" NUMBER CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE,"OBJECTID" NUMBER,"PROPERTY" VARCHAR2(64) CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE,"VALUE" VARCHAR2(255),"LVALUE" LONG RAW,"VERSION" NUMBER DEFAULT (0) CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER"( "NID" VARCHAR2(30) NOT NULL ENABLE,"LAST_USER" VARCHAR2(20),"LAST_DATE" DATE,"DESCRIPTION" VARCHAR2(4000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"USER_ID" NUMBER NOT NULL ENABLE,"DATE_TIME_STAMP" DATE NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGES"( "PKG_ID" NUMBER NOT NULL ENABLE,"PKG_NAME" VARCHAR2(255) NOT NULL ENABLE,"SUNOS_ELECTRONIC_NAME" VARCHAR2(255),"WIN_ELECTRONIC_NAME" VARCHAR2(255)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV"( "PV_ID" NUMBER NOT NULL ENABLE,"BE_ID" NUMBER NOT NULL ENABLE,"BUILD_TYPE" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"( "PV_ID" NUMBER NOT NULL ENABLE,"DPV_ID" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER NOT NULL ENABLE,"DPKG_ID" NUMBER NOT NULL ENABLE,"BUILD_TYPE" CHAR(1) NOT NULL ENABLE,"DISPLAY_ORDER" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 327680 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS"( "PV_ID" NUMBER NOT NULL ENABLE,"TEST_ID" NUMBER,"DOC_ID" NUMBER NOT NULL ENABLE,"DOC_NUM" VARCHAR2(50) NOT NULL ENABLE,"IS_LATEST" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES"( "PV_ID" NUMBER NOT NULL ENABLE,"PATCH_ID" NUMBER NOT NULL ENABLE,"INSTALL_ORDER" NUMBER NOT NULL ENABLE,"PATCH_OBSOLETED_BY" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS"( "PV_ID" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER NOT NULL ENABLE,"PKG_VERSION" VARCHAR2(50) NOT NULL ENABLE,"DLOCKED" CHAR(1) NOT NULL ENABLE,"RELEASED_AT" NUMBER,"MODIFIED_STAMP" DATE,"MODIFIER_ID" NUMBER NOT NULL ENABLE,"CREATED_STAMP" DATE,"CREATOR_ID" NUMBER NOT NULL ENABLE,"COMMENTS" VARCHAR2(4000),"V_MM" VARCHAR2(50),"V_NMM" VARCHAR2(50),"V_EXT" VARCHAR2(50),"PKG_LABEL" VARCHAR2(60),"SRC_PATH" VARCHAR2(2000),"PV_DESCRIPTION" VARCHAR2(4000),"OWNER_ID" NUMBER NOT NULL ENABLE,"PV_OVERVIEW" VARCHAR2(4000),"IS_PATCH" CHAR(1),"LAST_PV_ID" NUMBER NOT NULL ENABLE,"RELEASE_NOTES_INFO" VARCHAR2(1000),"IS_DEPLOYABLE" CHAR(1),"IS_BUILD_ENV_REQUIRED" CHAR(1),"IS_OBSOLETE" CHAR(1),"OBSOLETE_COMMENTS" VARCHAR2(4000),"BUILD_TYPE" CHAR(1) NOT NULL ENABLE,"CHANGE_TYPE" CHAR(1),"LINK" VARCHAR2(4000),"PATCH_ELECTRONIC_NAME" VARCHAR2(4000),"BS_ID" NUMBER,"IS_AUTOBUILDABLE" CHAR(1),"SBOM_PRIORITY" CHAR(1),"RIPPLE_FIELD" CHAR(1 CHAR),"MAXIMUM_BUILD_TIME" NUMBER,"ESTIMATED_COMPLETION_TIME" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 196608 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."PROCESSES"( "PROC_ID" NUMBER NOT NULL ENABLE,"PROC_NAME" VARCHAR2(255) NOT NULL ENABLE,"PROC_DESCRIPTION" VARCHAR2(255),"RUN_AS" VARCHAR2(255),"PKG_OWNER" VARCHAR2(4000),"IS_INTERFACE" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PROJECTS"( "PROJ_ID" NUMBER NOT NULL ENABLE,"PROJ_NAME" VARCHAR2(50) NOT NULL ENABLE,"BASE_URL" VARCHAR2(4000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS"( "PROJ_ID" NUMBER NOT NULL ENABLE,"EXT_NAME" VARCHAR2(10) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS"( "PV_ID" NUMBER NOT NULL ENABLE,"FILE_NAME" VARCHAR2(255),"FILE_PATH" VARCHAR2(2000),"BYTE_SIZE" NUMBER,"CRC_CKSUM" VARCHAR2(50),"CRC_MODCRC" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"BASE_VIEW_ID" NUMBER NOT NULL ENABLE,"INSERT_STAMP" DATE NOT NULL ENABLE,"INSERTOR_ID" NUMBER NOT NULL ENABLE,"PKG_STATE" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER,"DEPRECATED_STATE" NUMBER,"PRODUCT_STATE" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS"( "RTAG_ID" NUMBER NOT NULL ENABLE,"VTREE_ID" NUMBER,"RTAG_NAME" VARCHAR2(50) NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000),"CREATED_STAMP" DATE,"CREATOR_ID" NUMBER,"OFFICIAL_STAMP" DATE,"RELEASOR_ID" NUMBER,"OFFICIAL" CHAR(1) NOT NULL ENABLE,"REBUILD_ENV" CHAR(1) NOT NULL ENABLE,"REBUILD_STAMP" NUMBER NOT NULL ENABLE,"RTAG_VERSION" VARCHAR2(4000),"RTAG_LIFE_CYCLE" NUMBER,"PARENT_RTAG_ID" NUMBER NOT NULL ENABLE,"PROJ_ID" NUMBER NOT NULL ENABLE,"DISPLAY_ORDER" NUMBER,"OWNER_EMAIL" VARCHAR2(1000),"ASSOC_MASS_REF" NUMBER,"OWNER_PERSONAL_EMAIL" VARCHAR2(1000),"CONFIG_SPEC_BRANCH" VARCHAR2(4000),"PRODUCT_STATE_USED" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES"( "PV_ID" NUMBER NOT NULL ENABLE,"RTD_ID" NUMBER,"RTD_COMMENTS" VARCHAR2(2000),"RTD_URL" VARCHAR2(2000),"MOD_DATE" DATE NOT NULL ENABLE,"MOD_USER" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES"( "SESSION_NUM" NUMBER NOT NULL ENABLE,"LEVEL_NUM" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER NOT NULL ENABLE,"V_EXT" VARCHAR2(50),"TES_STATE" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES"( "TEST_TYPE_ID" NUMBER NOT NULL ENABLE,"TEST_TYPE_NAME" VARCHAR2(50) NOT NULL ENABLE,"DISPLAY_ORDER" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS"( "TEST_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"TEST_TYPES_FK" NUMBER NOT NULL ENABLE,"TEST_SUMMARY" VARCHAR2(4000),"COMPLETION_DATE" DATE,"COMPLETED_BY" NUMBER,"RESULTS_URL" VARCHAR2(2000),"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000),"TEST_ACCEPTED" CHAR(1),"ACCEPTANCE_DATE" DATE,"ACCEPTED_BY" NUMBER,"REVIEW_COMMENTS" VARCHAR2(4000),"NUMOF_TEST" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES"( "FIELD_NAME" VARCHAR2(1000) NOT NULL ENABLE,"IS_REQUIRED" CHAR(1) NOT NULL ENABLE,"IS_NUMERIC" CHAR(1),"MIN_NUMERIC_VALUE" NUMBER,"MAX_NUMERIC_VALUE" NUMBER,"IS_DATE" CHAR(1),"START_DATE" DATE,"END_DATE" DATE,"MIN_STRING_LENGTH" NUMBER,"MAX_STRING_LENGTH" NUMBER,"REGEXP" VARCHAR2(4000),"REGEXP_DESCRIPTION" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."VIEWS"( "VIEW_ID" NUMBER NOT NULL ENABLE,"VIEW_NAME" VARCHAR2(30) NOT NULL ENABLE,"OWNER_ID" NUMBER NOT NULL ENABLE,"BASE_VIEW" CHAR(1) NOT NULL ENABLE,"PUBLIC_READ" CHAR(1) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF"( "VIEW_ID" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS"( "USER_ID" NUMBER NOT NULL ENABLE,"VIEW_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."VTREES"( "VTREE_ID" NUMBER NOT NULL ENABLE,"PROJ_ID" NUMBER NOT NULL ENABLE,"VTREE_NAME" VARCHAR2(50) NOT NULL ENABLE,"HIDE" CHAR(1) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD"( "WORLD_ID" NUMBER NOT NULL ENABLE,"VTREE_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."WORLDS"( "WORLD_ID" NUMBER NOT NULL ENABLE,"WORLD_NAME" VARCHAR2(30) NOT NULL ENABLE,"WORLD_DESC" VARCHAR2(255)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE"( "SESSION_NUM" NUMBER,"LEVEL_NUM" NUMBER,"PV_ID" NUMBER,"PKG_ID" NUMBER,"V_EXT" VARCHAR2(50),"DIRECTION" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER"( "RTAG_ID" NUMBER NOT NULL ENABLE,"STEP_NUM" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"UNRESOLVED" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS"( "PV_ID" NUMBER NOT NULL ENABLE,"OS_ID" NUMBER NOT NULL ENABLE,"FILE_PATH" VARCHAR2(4000),"FILE_NAME" VARCHAR2(4000),"DESTINATION_PATH" VARCHAR2(4000),"BYTE_SIZE" NUMBER,"CRC_CKSUM" VARCHAR2(2000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"( "PKG_ID" NUMBER,"PKG_NAME" VARCHAR2(50),"PV_ID" NUMBER,"PKG_VERSION" VARCHAR2(50),"DPV_ID" NUMBER,"DPKG_NAME" VARCHAR2(50),"DPKG_VERSION" VARCHAR2(50),"ISS_DB" NUMBER,"ISS_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"VIEW_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PLANNED"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"VIEW_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."DEF_ACTION_BUTTONS"( "ABTN_ID" NUMBER NOT NULL ENABLE,"ABTN_NAME" VARCHAR2(1000) NOT NULL ENABLE,"TEXT" VARCHAR2(50),"ACTION_LINK" VARCHAR2(4000),"EVENT_HANDLER" VARCHAR2(4000),"IMG_ENABLED" VARCHAR2(1000),"IMG_DISABLED" VARCHAR2(1000),"HINT" VARCHAR2(255),"VISIBLE" CHAR(1) NOT NULL ENABLE,"ACTIVE" CHAR(1) NOT NULL ENABLE,"IS_READONLY_ACTION" CHAR(1) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PLATFORMS"( "CODE" NUMBER NOT NULL ENABLE,"NAME" VARCHAR2(255) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS"( "RTAG_ID" NUMBER NOT NULL ENABLE,"REF_RTAG_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG"( "USER_ID" NUMBER NOT NULL ENABLE,"ACTION_DATETIME" DATE NOT NULL ENABLE,"PROJ_ID" NUMBER NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000),"ACTTYPE_ID" NUMBER NOT NULL ENABLE,"RTAG_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH"( "RTAG_ID" NUMBER,"PROJ_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES"( "PV_ID" NUMBER NOT NULL ENABLE,"ISS_KEY" VARCHAR2(4000),"DATE_TIME_STAMP" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ;CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PKG_ID" NUMBER NOT NULL ENABLE,"COMMENTS" VARCHAR2(4000) NOT NULL ENABLE,"V_EXT" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE"( "GROUP_EMAIL_ID" NUMBER NOT NULL ENABLE,"PROJ_ID" NUMBER,"VIEW_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP"( "GROUP_EMAIL_ID" NUMBER NOT NULL ENABLE,"USER_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST"( "PKG_ID" NUMBER NOT NULL ENABLE,"PROJ_ID" NUMBER NOT NULL ENABLE,"USER_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES"( "PV_ID" NUMBER NOT NULL ENABLE,"PROC_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA"( "RTAG_ID" NUMBER(*,0) NOT NULL ENABLE,"PV_ID" NUMBER(*,0) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG"( "USER_ID" NUMBER NOT NULL ENABLE,"DATE_TIME_STAMP" DATE NOT NULL ENABLE,"RTAG_ID" NUMBER NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000) NOT NULL ENABLE) PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES"( "BM_ID" NUMBER NOT NULL ENABLE,"BM_NAME" VARCHAR2(20) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS"( "BS_ID" NUMBER NOT NULL ENABLE,"BS_NAME" VARCHAR2(20) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO"( "PV_ID" NUMBER NOT NULL ENABLE,"BM_ID" NUMBER NOT NULL ENABLE,"BSA_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG"( "SERVICE" VARCHAR2(50) NOT NULL ENABLE,"CONFIG" VARCHAR2(2000) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE"( "GBE_ID" NUMBER NOT NULL ENABLE,"GBE_VALUE" VARCHAR2(20) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG"( "RCON_ID" NUMBER NOT NULL ENABLE,"RTAG_ID" NUMBER NOT NULL ENABLE,"GBE_ID" NUMBER NOT NULL ENABLE,"DAEMON_HOSTNAME" VARCHAR2(50),"DAEMON_MODE" CHAR(1 CHAR),"GBE_BUILDFILTER" VARCHAR2(255)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD"( "PROJ_ID" NUMBER NOT NULL ENABLE,"RTAG_ID" NUMBER NOT NULL ENABLE,"LAST_BUILD_TIME" DATE NOT NULL ENABLE,"AUTOMATED_PACKAGES" NUMBER NOT NULL ENABLE,"TOTAL_PACKAGES" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES"( "STATE_ID" NUMBER NOT NULL ENABLE,"STATE" VARCHAR2(4000) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM"( "BSA_ID" NUMBER NOT NULL ENABLE,"BSA_NAME" VARCHAR2(4000) NOT NULL ENABLE,"BS_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS"( "PKG_ID" NUMBER,"PKG_VERSION" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE"( "RTAG_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES"( "STATE_ID" NUMBER NOT NULL ENABLE,"STATE_ACRONYM" CHAR(1) NOT NULL DISABLE,"STATE_NAME" VARCHAR2(50)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."REPEAT_SCHEDULE"( "RPT_ID" NUMBER,"REPEAT" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"( "SCHEDULED_ID" NUMBER NOT NULL ENABLE,"SCHEDULED_PAUSE" DATE,"SCHEDULED_RESUME" DATE,"REPEAT" CHAR(1),"INDEFINITE_PAUSE" CHAR(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG"( "USER_ID" NUMBER NOT NULL ENABLE,"ACTION_DATETIME" DATE,"RCON_ID" NUMBER NOT NULL ENABLE,"DESCRIPTION" VARCHAR2(4000),"ACTTYPE_ID" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL"( "CR_ID" NUMBER NOT NULL ENABLE,"PV_ID" NUMBER NOT NULL ENABLE,"PROJ_ID" NUMBER NOT NULL ENABLE,"URL" VARCHAR2(4000) NOT NULL ENABLE,"REASON" VARCHAR2(4000),"DATE_OF_REVIEW" DATE NOT NULL ENABLE,"LAST_MODIFIED" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG"( "RCON_ID" NUMBER NOT NULL ENABLE,"ACTION_DATETIME" DATE,"ACTION" VARCHAR2(4000)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS"( "PV_ID" NUMBER NOT NULL ENABLE,"BRANCHES" NUMBER,"BRANCH_LIST" VARCHAR2(4000),"CODE_FILES" NUMBER,"IGNORED_FILES" NUMBER,"DIRECTORIES" NUMBER,"DIRECTORY_DEPTH" NUMBER,"TOTAL_FILES" NUMBER,"MAKEFILES" NUMBER,"BLANK_LINES" NUMBER,"CODE_LINES" NUMBER,"COMMENT_LINES" NUMBER,"CREATED_STAMP" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS"( "RTAG_ID" NUMBER NOT NULL ENABLE,"TOTAL_PACKAGES" NUMBER,"AUTOBUILT" NUMBER,"LINES_OF_CODE" NUMBER,"UNIT_TESTED" NUMBER,"AUTOTESTED" NUMBER,"BRANCHES" NUMBER,"LAST_BUILD_TIME" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES"( "PKG_ID" NUMBER,"PKG_NAME" VARCHAR2(50),"PV_ID" NUMBER,"PKG_VERSION" VARCHAR2(50),"DPV_ID" NUMBER,"DPKG_NAME" VARCHAR2(50),"DPKG_VERSION" VARCHAR2(50),"ISS_DB" NUMBER,"ISS_ID" NUMBER) ON COMMIT PRESERVE ROWS ;CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL"( "RCON_ID" NUMBER,"CURRENT_BUILD_FILES" CLOB,"CURRENT_RUN_LEVEL" NUMBER,"PAUSE" NUMBER,"CURRENT_PKG_ID_BEING_BUILT" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS"LOB ("CURRENT_BUILD_FILES") STORE AS (TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10NOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)) ;-- new object type path is: SCHEMA_EXPORT/TABLE/INDEX/INDEXCREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_CQ" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_IGW" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_MSGBOARD" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_PACKAGES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 393216 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 393216 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 393216 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PROCESSES_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_PROJECTS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_RTD" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TES_PV" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES" ("FIELD_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VIEWS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_VIEWS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_VTREES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VTREES" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_WORLDS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TTB_PKG" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PLANNED" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_DEF_ACTION_BUTTONS" ON "RELEASE_MANAGER"."DEF_ACTION_BUTTONS" ("ABTN_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PK_DEF_ACTION_BUTTONS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ABTN_DEF" ON "RELEASE_MANAGER"."DEF_ACTION_BUTTONS" ("ABTN_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_ABTN_DEF" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" NOPARALLEL;CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" NOPARALLEL;-- new object type path is: SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "SYSTEM" ENABLE;ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."DEF_ACTION_BUTTONS" ADD CONSTRAINT "PK_DEF_ACTION_BUTTONS" PRIMARY KEY ("ABTN_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."REPEAT_SCHEDULE" ADD PRIMARY KEY ("RPT_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE;-- new object type path is: SCHEMA_EXPORT/TABLE/COMMENTCOMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."PKG_ID" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."PKG_NAME" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."PV_ID" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."PKG_VERSION" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."DPV_ID" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."DPKG_NAME" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."DPKG_VERSION" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."ISS_DB" IS '';COMMENT ON COLUMN "RELEASE_MANAGER"."RM_PACKAGE_ISSUES"."ISS_ID" IS '';COMMENT ON TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" IS '';-- new object type path is: SCHEMA_EXPORT/PACKAGE/PACKAGE_SPECCREATE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 26/Apr/2005|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);/*================================================================================================*/END PK_APP_UTILS;/CREATE PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE"IS/*------------------------------|| Author: Rupesh Solanki|| Date: 26 October 2006|| Version: 1.0------------------------------*//*================================================================================================*/PROCEDURE populate_packages_table;PROCEDURE populate_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE);PROCEDURE migrate_pv_to_archive_SCHEMA (nrtagid IN release_tags.rtag_id%TYPE);PROCEDURE migrate_rtag_to_archive_schema (nrtagid IN release_tags.rtag_id%TYPE);PROCEDURE clean_up_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE);PROCEDURE write_action_log (nuserid IN NUMBER,nrtagid IN release_tags.rtag_id%TYPE);/*================================================================================================*/END pk_archive;/CREATE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 26/Jun/2007|| Spec Version: 3.0------------------------------*//*================================================================================================*/PROCEDURE add_product_component (npvid IN NUMBER,sosname IN VARCHAR2,sorigfilepath IN VARCHAR2,sfilename IN VARCHAR2,sdestfilepath IN VARCHAR2,nbytesize IN NUMBER,scrccksum IN VARCHAR2);PROCEDURE remove_all_product_components (npvid IN NUMBER,sosname IN VARCHAR2);/*================================================================================================*/FUNCTION get_osid (sosname IN VARCHAR2)RETURN NUMBER;/*================================================================================================*/PROCEDURE update_build_service (sdatabaseserver IN VARCHAR2,swebserver IN VARCHAR2,smailserver IN VARCHAR2,smailsender IN VARCHAR2,sdiskspace IN VARCHAR2,ssbommanagement IN VARCHAR2);/*================================================================================================*/PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2);/*================================================================================================*/PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);/*================================================================================================*/PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2);/*================================================================================================*/PROCEDURE add_daemon (sdaemonhostname IN VARCHAR2,nrtagid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2);/*================================================================================================*/PROCEDURE delete_daemon (srconidlist IN VARCHAR2);/*================================================================================================*/PROCEDURE update_daemon (sdaemonhostname IN VARCHAR2,nrconid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2);/*================================================================================================*/PROCEDURE insert_schedule_info (dschedulepause IN DATE,dscheduleresume IN DATE,crepeat IN VARCHAR2,cindefinitepause IN VARCHAR2);/*================================================================================================*/PROCEDURE delete_schedule (nscheduleid IN NUMBER);/*================================================================================================*/PROCEDURE set_infinite_pause;/*================================================================================================*/PROCEDURE set_resume;/*================================================================================================*/PROCEDURE delete_out_of_date_schedule;/*================================================================================================*/PROCEDURE set_daemon_resume (nrconid IN NUMBER);/*================================================================================================*/PROCEDURE set_daemon_pause (nrconid IN NUMBER);/*================================================================================================*/END pk_buildapi;/CREATE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI_TEST" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 30/Mar/2005|| Spec Version: 1.0------------------------------*//*================================================================================================*/PROCEDURE Add_Product_Component ( nPvId IN NUMBER,sOsName IN VARCHAR2,sOrigFilePath IN VARCHAR2,sFileName IN VARCHAR2,sDestFilePath IN VARCHAR2,nByteSize IN NUMBER,sCRCcksum IN VARCHAR2 );PROCEDURE Remove_All_Product_Components ( nPvId IN NUMBER, sOsName IN VARCHAR2 );/*================================================================================================*/FUNCTION Get_OsId ( sOsName IN VARCHAR2 ) RETURN NUMBER;/*================================================================================================*/PROCEDURE Update_Build_Service ( sDatabaseServer IN VARCHAR2,sWebServer IN VARCHAR2,sMailServer IN VARCHAR2,sMailSender IN VARCHAR2);/*================================================================================================*/PROCEDURE ADD_GBE_MACHTYPE ( sGBEValue IN VARCHAR2 );/*================================================================================================*/PROCEDURE REMOVE_GBE_MACHTYPE ( nGBE_ID IN NUMBER );/*================================================================================================*/PROCEDURE UPDATE_GBE_MACHTYPE ( nGBE_ID IN NUMBER, sGBEValue IN VARCHAR2 );/*================================================================================================*/PROCEDURE ADD_DAEMON ( sDaemonHostname IN VARCHAR2, nRtagId IN NUMBER, nGbeId IN NUMBER );/*================================================================================================*/END PK_BUILDAPI_TEST;/CREATE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 29/Jan/2007|| Spec Version: 1.1------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt INPACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,CloneFromPvId IN NUMBER );PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );/*================================================================================================*/END PK_ENVIRONMENT;/CREATE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT_TEST" IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 29/Jan/2007|| Spec Version: 1.1------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt INPACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,CloneFromPvId IN NUMBER );PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );/*================================================================================================*/END PK_ENVIRONMENT_test;/CREATE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 24/08/2007||------------------------------*/TYPE typecur IS REF CURSOR;/*================================================================================================*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER);PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER);PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER);PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2);PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER);PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER);PROCEDURE add_code_review_url (npvid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN DATE);PROCEDURE update_code_review_url (ncrid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2);PROCEDURE remove_code_review_url (ncrid IN NUMBER);/*================================================================================================*/END pk_package;/CREATE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE_TEST"IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 18/05/2006||------------------------------*/TYPE typecur IS REF CURSOR;/*================================================================================================*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER);PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER);PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER);PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2);PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER);PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER);/*================================================================================================*/END pk_package_Test;/CREATE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 6/May/2005|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );/*================================================================================================*/END PK_PLANNED;/CREATE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS/*------------------------------|| Last Modified: J.Tweddle|| Modified Date: 23/Aug/2007|| Spec Version: 1.0------------------------------*/TYPE typecur IS REF CURSOR;/*------------------------------------------------------------------------*/PROCEDURE update_base_url (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2);/*------------------------------------------------------------------------*/END pk_project;/CREATE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 12/Sep/2005|| Body Version: 3.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER );PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, sOwnerEmail IN VARCHAR2, nUserId IN NUMBER, cState IN VARCHAR );PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER );PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER );PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );/*================================================================================================*/END PK_RELEASE;/CREATE PACKAGE "RELEASE_MANAGER"."PK_RELEASE_TEST" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 12/Sep/2005|| Body Version: 3.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER );PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, nUserId IN NUMBER );PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER );PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER );PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );/*================================================================================================*/END PK_RELEASE_TEST;/CREATE PACKAGE "RELEASE_MANAGER"."PK_RMAPI"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 08/Feb/2008|| Body Version: 3.3------------------------------*/TYPE typecur IS REF CURSOR;/*================================================================================================*/FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)RETURN typecur;FUNCTION wip_iteration_package (projname VARCHAR2,iterationname VARCHAR2,pkgname VARCHAR2)RETURN typecur;FUNCTION auto_make_release (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,label IN VARCHAR2,dependenciesimportlist IN VARCHAR2,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBER;PROCEDURE import_dependencies (pvid IN NUMBER,dependenciesimportlist IN VARCHAR2,userid IN NUMBER);FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2;FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2;PROCEDURE update_dash_board (rtagid IN NUMBER);FUNCTION exclude_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2)RETURN NUMBER;/*================================================================================================*/PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);FUNCTION insert_package_metrics (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,metricstring IN VARCHAR2)RETURN NUMBER;PROCEDURE update_release_metrics (rtagid IN NUMBER);END pk_rmapi;/CREATE PACKAGE "RELEASE_MANAGER"."PK_RMAPI_TEST" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 19/May/2005|| Spec Version: 2.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/FUNCTION PACKAGE_DEPENDENCIES ( PkgName VARCHAR2, PkgVersion VARCHAR2 ) RETURN typeCur;FUNCTION WIP_ITERATION_PACKAGE ( ProjName VARCHAR2, IterationName VARCHAR2, PkgName VARCHAR2 ) RETURN typeCur;FUNCTION AUTO_MAKE_RELEASE ( RtagId IN NUMBER,PkgName IN VARCHAR2,VExt IN VARCHAR2,NewPkgVersion IN VARCHAR2,Label IN VARCHAR2,DependenciesImportList IN VARCHAR2,IsRippled IN NUMBER,UserName IN VARCHAR2 ) RETURN NUMBER;PROCEDURE IMPORT_DEPENDENCIES ( PvId IN NUMBER, DependenciesImportList IN VARCHAR2, UserId IN NUMBER );FUNCTION RETURN_PACKAGE_VERSION ( PkgName IN VARCHAR2, RtagId IN NUMBER) RETURN VARCHAR2;PROCEDURE CQ_TEST;PROCEDURE UPDATE_DASH_BOARD ( RtagId IN NUMBER );/*================================================================================================*/END PK_RMAPI_test;/CREATE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 2/May/2005|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );/*================================================================================================*/END PK_WORK_IN_PROGRESS;/CREATE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" ASTYPE T_Cur IS REF CURSOR;FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );END Rm_Issues;/-- new object type path is: SCHEMA_EXPORT/FUNCTION/FUNCTIONCREATE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */VExt PACKAGE_VERSIONS.V_EXT%TYPE;ProjId NUMBER;RowCount NUMBER;cReleaseMode CHAR(1);BEGIN--RETURN 1;/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL) OR (nRtagId < 1)THENRETURN 0;END IF;/*-------------------------------------------------------*//*-- First Check. See if package is used through release reference --*/SELECT COUNT(rc.PV_ID) INTO RowCountFROM (SELECT rl.REF_RTAG_IDFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId) rl,RELEASE_CONTENT rcWHERE rc.RTAG_ID = rl.REF_RTAG_IDAND rc.PV_ID = nPvId;-- Decide if package can be editedIF RowCount > 0 THEN-- Package is referenced from other release, hence cannot be editedRETURN 0;ELSE-- Check is only done for releases in restrictive modeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;IF cReleaseMode = 'N'OR cReleaseMode = 'R' THEN-- Do not do any firther checking,-- Package is editable hereRETURN 1;END IF;END IF;/*-- Further checking --*/-- Get proj_idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;BEGIN-- Get v_extSELECT pv.V_EXT INTO VextFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nPvId;EXCEPTIONWHEN NO_DATA_FOUND THENVext := NULL;END;--Temp Hack for Step ProjectIF ProjId != 281 THEN-- Find if package can be edited in this projectSELECT COUNT(pe.EXT_NAME) INTO RowCountFROM PROJECT_EXTENTIONS peWHERE pe.PROJ_ID != ProjIdAND pe.EXT_NAME = VExt;END IF;-- Decide if package can be editedIF RowCount > 0 THEN-- Package extension is found in other projects, hece NOT EDITABLERETURN 0;ELSERETURN 1;END IF;END CAN_EDIT_PKG_IN_PROJECT;/CREATE FUNCTION "RELEASE_MANAGER"."DT_ADDUSEROBJECT" RETURN NUMBER IS NEWOBJECTID NUMBER; BEGIN /* GET THE NEXT VALUE FROM THE SEQUENCE FOR THE OBJECT ID */ SELECT MICROSOFTSEQDTPROPERTIES.NEXTVAL INTO NEWOBJECTID FROM DUAL; /* ADD THE PARENT NODE FOR THE NEW OBJECT */ INSERT INTO MICROSOFTDTPROPERTIES ( ID, OBJECTID, PROPERTY ) VALUES ( NEWOBJECTID, NEWOBJECTID, 'DtgSchemaOBJECT' ); RETURN( NEWOBJECTID ); END DT_ADDUSEROBJECT;/CREATE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sPkgName VARCHAR2(4000);sVext VARCHAR2(4000);BEGIN-- Get package detailsSELECT pkg.PKG_NAME, pv.V_EXT INTO sPkgName, sVextFROM PACKAGE_VERSIONS pv,PACKAGES pkgWHERE pv.PKG_ID = pkg.PKG_IDAND pv.PV_ID = nPvId;-- Generate Label for automated buildRETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );END GET_AUTOMATED_LABEL;/CREATE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2IS/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINIF is_number(s_version) AND LENGTH(s_version) > 3THENRETURN MOD(TO_NUMBER(s_version), 1000);ELSERETURN 0;END IF;END get_build_number;/CREATE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2IS/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINIF is_number(s_version) AND LENGTH(s_version) > 3THENRETURN FLOOR(TO_NUMBER(s_version) / 1000);ELSERETURN s_version;END IF;END get_patch_version;/CREATE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;lastDot NUMBER;BEGINlastDot := INSTR (SSpkg_version, '.', -1);IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )THEN-- YES dot separator found --SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);IF IS_VERSION_EXTENSION ( SSV_EXT )THENRETURN SSV_EXT;ELSERETURN NULL;END IF;ELSE-- NO dot separator found --RETURN NULL;END IF;END GET_V_EXT;/CREATE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sync_rtags RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();pos NUMBER;in_list VARCHAR2(4000) := sInList || ',';BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, ',' );sync_rtags.extend;sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN sync_rtags;END IN_LIST_NUMBER;/CREATE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sync_rtags RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();pos NUMBER;in_list VARCHAR2(32767) := sInList || ',';BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, ',' );sync_rtags.extend;sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN sync_rtags;END IN_LIST_NUMBER2;/CREATE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.1--------------------------------------------------------------------------- */cItemCollection RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();pos NUMBER;in_list VARCHAR2(4000) := sInList || cSeparator;val VARCHAR2(4000);BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, cSeparator );val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );IF (NOT val IS NULL) THENcItemCollection.extend;cItemCollection(cItemCollection.count) := val;END IF;in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN cItemCollection;END IN_LIST_VARCHAR2;/CREATE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEANIStemp_num NUMBER;/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINtemp_num := TO_NUMBER(p_val);RETURN true;EXCEPTION WHEN VALUE_ERROR THENRETURN false;END IS_NUMBER;/CREATE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEANIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINIF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0THENRETURN FALSE;ELSERETURN TRUE;END IF;END IS_VERSION_EXTENSION;/CREATE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE"RETURN DATEIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINRETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );END ORA_SYSDATE;/CREATE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME"RETURN DATEIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINRETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );END ORA_SYSDATETIME;/CREATE FUNCTION "RELEASE_MANAGER"."PERL_DBD_TESTFUNC" (a in integer, b in integer) return integer is c integer; begin if b is null then c := 0; else c := b; end if; return a * c + 1; end;/CREATE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */returnValue CHAR(1);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release modeSELECT rt.OFFICIAL INTO returnValueFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;RETURN returnValue;END RELEASE_MODE;/-- new object type path is: SCHEMA_EXPORT/PROCEDURE/PROCEDURECREATE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (nprojid IN NUMBER,nviewid IN NUMBER,suserlist IN VARCHAR2)ISgroupid NUMBER;/******************************************************************************NAME: ADD_AUTOBUILD_FAILUREPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 11/04/2006 Rupesh Solanki Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_AUTOBUILD_FAILURESysdate: 11/04/2006Date and Time: 11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINBEGINSELECT group_email_idINTO groupidFROM autobuild_failureWHERE proj_id = nprojid AND view_id = nviewid;EXCEPTIONWHEN NO_DATA_FOUNDTHEN-- Create Next Sequence Id ---SELECT seq_group_email_id.NEXTVALINTO groupidFROM DUAL;INSERT INTO autobuild_failure(group_email_id, proj_id, view_id)VALUES (groupid, nprojid, nviewid);END;add_view_members (groupid, suserlist);END add_autobuild_failure_info;/CREATE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGIN--- Insert into RELEASE_COMPONENTSINSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc );END Add_Component;/CREATE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,nPkgIdList IN VARCHAR2,nUserId IN NUMBER) IS/******************************************************************************NAME: ADD_PACKAGE_INTERESTPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 12/05/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_PACKAGE_INTERESTSysdate: 12/05/2006Date and Time: 12/05/2006, 9:11:12 AM, and 12/05/2006 9:11:12 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();nPkgId NUMBER;BEGINnpkgidcollector := in_list_number2 (nPkgIdList);FOR i IN 1..npkgidcollector.COUNTLOOPnPkgId := npkgidcollector(i);--- Insert into PACKAGE_INTEREST TABLEINSERT INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID)VALUES(nProjId, nPkgId, nUserId);END LOOP;END ADD_PACKAGE_INTEREST;/CREATE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST_TEST" (nProjId IN PROJECTS.PROJ_ID%TYPE,nPkgIdList IN VARCHAR2,nUserId IN NUMBER) IS/******************************************************************************NAME: ADD_PACKAGE_INTERESTPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 12/05/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_PACKAGE_INTERESTSysdate: 12/05/2006Date and Time: 12/05/2006, 9:11:12 AM, and 12/05/2006 9:11:12 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();nPkgId NUMBER;BEGINnpkgidcollector := in_list_number2 (nPkgIdList);FOR i IN 1..npkgidcollector.COUNTLOOPnPkgId := npkgidcollector(i);--- Insert into PACKAGE_INTEREST TABLEINSERT INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID)VALUES(nProjId, nPkgId, nUserId);END LOOP;END ADD_PACKAGE_INTEREST_TEST;/CREATE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,SSrtd_name IN PACKAGES.pkg_name%TYPE,SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.1--------------------------------------------------------------------------- */retRTD_ID NUMBER;CURSOR rtd_cur ISSELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;rtd_rec rtd_cur%ROWTYPE;BEGIN--- Seed database with package_name and version if required ---Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );OPEN rtd_cur;FETCH rtd_cur INTO rtd_rec;IF rtd_cur%NOTFOUNDTHEN/* Make sure it does not exists already as runtime dependency */--- Add new Runtime Dependency ---INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )VALUES ( NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );/* LOG ACTION */Log_Action ( NNpv_id, 'runtime_add', NNuser_id,'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );END IF;END Add_Runtime_Dependency;/CREATE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS/******************************************************************************NAME: ADD_VIEW_MEMBERSPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 11/04/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_VIEW_MEMBERSSysdate: 11/04/2006Date and Time: 11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR user_cur ISSELECT u.USER_IDFROM USERS uWHERE u.USER_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));user_rec user_cur%ROWTYPE;BEGINOPEN user_cur;FETCH user_cur INTO user_rec;WHILE user_cur%FOUNDLOOPINSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)VALUES ( nGroupId, user_rec.USER_ID);FETCH user_cur INTO user_rec;END LOOP;END ADD_VIEW_MEMBERS;/CREATE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( nFROMpv_id IN NUMBER,nTOpv_id IN NUMBER,nRtag_id IN NUMBER,nUser_id IN NUMBER,nTOpkg_id IN NUMBER DEFAULT NULL,enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.5--------------------------------------------------------------------------- */FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;BEGIN------------------------------------- Clone Dependencies ---------------------------------------------------IF NOT nRtag_id IS NULLTHEN-- Auto Update Dependencies --INSERT INTO PACKAGE_DEPENDENCIESSELECT nTOpv_id AS pv_id,DECODE(nUser_id,frc.modifier_id,frc.pv_id,DECODE(frc.dlocked,'Y',frc.pv_id,dep.dpv_id)) AS dpv_id,nTOpkg_id AS pkg_id,dep.dpkg_id,dep.build_type,dep.display_orderFROM PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pv,(/* Full Release Contents used for reference*/SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlockedFROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpvWHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id) frcWHERE dep.pv_id = nFROMpv_idAND dep.dpv_id = pv.pv_idAND pv.pkg_id = frc.pkg_id(+)AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);ELSE-- Clone Dependencies --INSERT INTO PACKAGE_DEPENDENCIESSELECT nTOpv_id AS pv_id,dep.dpv_id,nTOpkg_id AS pkg_id,dep.dpkg_id,dep.build_type,dep.display_orderFROM PACKAGE_DEPENDENCIES depWHERE dep.pv_id = nFROMpv_id;END IF;----------------------------------------- Clone Issues -------------------------------------------------------IF enumISSUES_STATE_IMPORTED IS NULLTHEN/* All Issues */INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notesFROM CQ_ISSUESWHERE pv_id = nFROMpv_id;ELSE/* Outstanding Issues Only */INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notesFROM CQ_ISSUESWHERE pv_id = nFROMpv_idAND iss_state = enumISSUES_STATE_IMPORTED;END IF;------------------------------------ Clone Runtime Dependencies -----------------------------------------------INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_userFROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;--------------------------------------- Clone Additional Notes ------------------------------------------------INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )SELECT an.NOTE_ID,nTOpv_id AS PV_ID,an.NOTE_TITLE,an.NOTE_BODY,an.MOD_DATE,an.MOD_USERFROM ADDITIONAL_NOTES anWHERE an.PV_ID = nFROMpv_id;-------------------------------------------- Clone Unit Tests --------------------------------------------------- Clone only Automatic unit tests --INSERT INTO UNIT_TESTS (TEST_ID,PV_ID,TEST_TYPES_FK,TEST_SUMMARY,COMPLETION_DATE,COMPLETED_BY,RESULTS_URL,RESULTS_ATTACHMENT_NAME,NUMOF_TEST)SELECT ut.TEST_ID,nTOpv_id AS PV_ID,ut.TEST_TYPES_FK,ut.TEST_SUMMARY,Ora_Sysdate AS COMPLETION_DATE,nUser_id AS COMPLETED_BY,ut.RESULTS_URL,ut.RESULTS_ATTACHMENT_NAME,ut.NUMOF_TESTFROM UNIT_TESTS utWHERE ut.PV_ID = nFROMpv_idAND ut.TEST_TYPES_FK IN ( 5, 7 );-- Clone only Interactive Unit Tests --INSERT INTO UNIT_TESTS (TEST_ID,PV_ID,TEST_TYPES_FK,TEST_SUMMARY)SELECT ut.TEST_ID,nTOpv_id AS PV_ID,ut.TEST_TYPES_FK,ut.TEST_SUMMARYFROM UNIT_TESTS utWHERE ut.PV_ID = nFROMpv_idAND ut.TEST_TYPES_FK IN (6);-------------------------------------------- Clone Package Documents ------------------------------------------INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )SELECT nTOpv_id AS PV_ID,pd.test_id,pd.doc_num,pd.doc_id,pd.IS_LATESTFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nFROMpv_id;-------------------------------------------- Clone Build Environments -----------------------------------------INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )SELECT nTOpv_id AS PV_ID,pkgbe.BE_ID,pkgbe.BUILD_TYPEFROM PACKAGE_BUILD_ENV pkgbeWHERE pkgbe.PV_ID = nFROMpv_id;---------------------------------------------Clone Package Build Info------------------------------------------INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)SELECT nTOpv_id AS PV_ID,pkgbinfo.BM_ID,pkgbinfo.BSA_IDFROM PACKAGE_BUILD_INFO pkgbinfoWHERE pkgbinfo.PV_ID = nFROMpv_id;---------------------------------------------Clone Package Version Processes-----------------------------------INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )SELECT nTOpv_id AS PV_ID,pp.PROC_IDFROM PACKAGE_PROCESSES ppWHERE pp.PV_ID = nFROMpv_id;---------------------------------------------------------------------------------------------------------------/* LOG ACTION */SELECT pv.PKG_VERSION INTO FromVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nFROMpv_id;Log_Action ( nTOpv_id, 'clone_from', nUser_id,'Details cloned from: '|| FromVersion );---------------------------------------------------------------------------------------------------------------END Basic_Clone;/CREATE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,retSessionNum OUT NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */rowCnt NUMBER := 0; -- Iterations counteriteration NUMBER := 1; -- Maximum number of iterations allowed.maxIterations NUMBER := 50; -- This will prevent infinite loops if cyrcular dependencies are foundUP_THE_TREE CONSTANT NUMBER DEFAULT 1;DOWN_THE_TREE CONSTANT NUMBER DEFAULT -1;sessionNum NUMBER;levelNum NUMBER;BEGINSELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;/*|| Start UP THE TREE*//* Packages with no dependencies */INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rc.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,dep.pv_id, pv.pkg_id, pv.v_extFROM package_dependencies dep,package_versions pvWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )AND dep.pv_id = pv.pv_id;/* Browse UP the build tree */iteration := iteration + 1;LOOPINSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT DISTINCTsessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rdep.pv_id, rdep.pkg_id, rdep.v_extFROM (SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_extFROM package_dependencies dep,release_content rc,package_versions pv,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_id) rdep,temp_tree_browse ttbWHERE rdep.dpkg_id = ttb.pkg_idAND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')AND ttb.SESSION_NUM = sessionNumAND ttb.LEVEL_NUM = iteration - 1MINUS/* Packages with all depencencies NOT matched */SELECT DISTINCTsessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rdep.pv_id, rdep.pkg_id, rdep.v_extFROM (SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_extFROM package_dependencies dep,release_content rc,package_versions pv,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_id) rdep,(SELECT tb.*FROM temp_tree_browse tbWHERE tb.SESSION_NUM = sessionNum) ttbWHERE rdep.dpkg_id = ttb.pkg_id (+)AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')AND ttb.SESSION_NUM IS NULL;rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration + 1;END IF;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;/*---------------------------------------------------------------------------------------------------------------------*//* Check for unresolved dependencies||*//* UNRESOLVED */SELECT COUNT(*) INTO rowCntFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum);IF rowCnt > 0THEN/* Circular dependencies detected.|| Try to resolve build order from the top now.|| Start DOWN THE TREE*/iteration := 0;/* Top Level packages */INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,DOWN_THE_TREE AS DIRECTION,pv.pv_id, pv.pkg_id, pv.v_extFROM (/* Packages no one depends on ( Top level packages )*/(/* All parents*/SELECT pv.pkg_id, pv.v_extFROM package_dependencies dep,release_content rc,package_versions pvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idMINUS/* All children */SELECT dpv.pkg_id, dpv.v_extFROM package_dependencies dep,release_content rc,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.dpv_id = dpv.pv_id)MINUS/* Packages with resolved dependencies from UP THE TREE */SELECT ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) tpkg,package_versions pv,release_content rcWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idAND tpkg.pkg_id = pv.pkg_idAND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');/* Keep taking packages which no one depende on */iteration := iteration - 1;LOOPINSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,DOWN_THE_TREE AS DIRECTION,pv.pv_id, pv.pkg_id, pv.v_extFROM (/* All Unresolved */(SELECT pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum)MINUS(/* Children of Unresolved */SELECT dpv.pkg_id, dpv.V_EXTFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) unr,package_dependencies dep,package_versions dpvWHERE unr.pv_id = dep.pv_idAND dep.dpv_id = dpv.pv_id)) tpkg,package_versions pv,release_content rcWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idAND tpkg.pkg_id = pv.pkg_idAND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration - 1;END IF;EXIT WHEN (rowCnt < 1);END LOOP;END IF;/*---------------------------------------------------------------------------------------------------------------------*//*|| Save results from temp table*//* Clean up build_order table */DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;/* Save UP THE TREE */INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )SELECT nRtag_id AS rtag_id,ttb.level_num AS step_num,ttb.PV_IDFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNumAND ttb.direction = UP_THE_TREE;/*Get last step_num */SELECT MAX(ttb.level_num) + 1 INTO levelNumFROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;/* UNRESOLVED */SELECTCOUNT(*) INTO rowCntFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum);IF rowCnt > 0THEN/* Save unresolved packages */INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )SELECT nRtag_id AS rtag_id,levelNum AS step_num,upv.PV_ID,'Y' AS UNRESOLVEDFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) upv;END IF;/* Save DOWN THE TREE */levelNum := 1000;INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )SELECT nRtag_id AS rtag_id,levelNum + ttb.level_num AS step_num,ttb.PV_IDFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNumAND ttb.direction = DOWN_THE_TREE;/*---------------------------------------------------------------------------------------------------------------------*//* Clean up temp table */DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;retSessionNum := sessionNum;END Build_Tree;/CREATE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Unlock PackageUPDATE RELEASE_CONTENT rc SETrc.PKG_STATE = 0WHERE rc.PV_ID = nPvIdAND rc.RTAG_ID = nRtagId;/* LOG ACTION *//* Log_Action ( nPvId, 'unlock_package', nUserId );*/END Change_Package_State;/CREATE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */cMode CHAR(1) := NULL;nProjId NUMBER;BEGIN/*Author: Rupesh SolankiModified: 24th October 2006Reason: Added the archive mode state into Release Manager|| 1 - Open Mode|| 2 - Restrictive Mode|| 3 - Closed Mode|| 4 - CCB Mode|| 5 - Archive Mode*/-- Get project IdSELECT rt.PROJ_ID INTO nProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;IF nModeCode = 1 THEN-- Open ModecMode := 'N';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );ELSIF nModeCode = 2 THEN-- Restrictive ModecMode := 'R';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );ELSIF nModeCode = 3 THEN-- Closed ModecMode := 'Y';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId );ELSIF nModeCode = 4 THEN-- CCB ModecMode := 'C';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId );ELSIF nModeCode = 5 THEN-- Archive ModecMode := 'A';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId );END IF;-- Now update tableIF NOT cMode IS NULL THENUPDATE RELEASE_TAGS rt SETrt.OFFICIAL = cModeWHERE rt.RTAG_ID = nRtagId;END IF;END CHANGE_RELEASE_MODE;/CREATE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (nrtagid IN release_content.rtag_id%TYPE)IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */BEGIN/*--------------- Business Rules Here -------------------*//*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THENRAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );END IF/*-------------------------------------------------------*/UPDATE release_content rcSET rc.pkg_state = 5 -- enumPKG_STATE_NEW_PATCHWHERE rc.pv_id IN (SELECT prod.pv_idFROM (SELECT pp.pv_id AS orig_parent_id,COUNT (*) AS num_of_patchesFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id) orig,(SELECT prodpp.pv_id, pp.pv_id AS parent_id,COUNT (*) AS num_of_patchesFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_id) prod,release_content rcWHERE orig.orig_parent_id = prod.pv_idAND orig.num_of_patches != prod.num_of_patchesAND rc.rtag_id = nrtagidAND rc.pv_id = prod.pv_idAND rc.pkg_state = 0UNIONSELECT prodpp.pv_idFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_idMINUSSELECT pp.pv_idFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id);END check_new_patches;/CREATE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)IS/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINDELETE FROM do_not_rippleWHERE rtag_id = nrtagid AND pv_id NOT IN (SELECT pv_idFROM release_contentWHERE rtag_id = nrtagid);END clean_do_not_ripple;/CREATE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Clear Advisory Ripple PackageDELETE FROM ADVISORY_RIPPLEWHERE PV_ID = nPvIdAND RTAG_ID = nRtagId;/* LOG ACTION */Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );/*Rebuild_Environment(nRtagId);*/END Clear_Advisory_Ripple;/CREATE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect distinct proc_id, prod_id from deployment_manager.processes_config;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPinsert into package_processes (PROC_ID, PV_ID)values( ripple_rec.proc_id, ripple_rec.prod_id);FETCH ripple_curINTO ripple_rec;END LOOP;END CLONED_PACKAGE_PROCESSES;/CREATE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPselect deployment_manager.seq_proc_id.nextval into proc_id from dual;insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);FETCH ripple_curINTO ripple_rec;END LOOP;END CLONED_PROCESSES;/CREATE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO"IS/******************************************************************************NAME: DELETE_AUTOBUILD_FAILURE_INFOPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 2/06/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_AUTOBUILD_FAILURE_INFOSysdate: 2/06/2006Date and Time: 2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINDELETE FROM autobuild_failureWHERE group_email_id NOT IN (SELECT group_email_idFROM members_group);END delete_autobuild_failure_info;/CREATE PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE" IS/************************************************************************************************************************************************************/CURSOR curInfo ISSELECT DISTINCTqry.DPV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.PV_ID IN (69124,63479,60048,49566,49562,54351,63560,54360,46053,59753,97060,97061,100883,78236,75241,92371,92372,105682,135506,127204,135615,136498,137571,61534,76540,96787,133102,96770,96771,116692,133768,61537,88935,110216,96797,69469,98123,111626,96802,100289,97233,97623,135801,69700,77808,43026,77809,43027,100825,126854,105589,96405,102105,133770,134408,91177,91179,96822,96824,48031,78965,78936,78935,79114,76620,125164,61804,96826,61977,67592,72594,134415,135804,65097,64850,64851,64879,64881,64882,64884,67612,67613,67614,67615,68501,68502,68503,68516,68518,68519,68521,71974,68659,69764,68662,68661,68757,69765,69766,69767,71975,71976,71977,71978,71979,71980,75149,71982,71983,75153,75158,71986,75160,75161,75162,72418,72419,71987,71988,71990,75164,72420,72421,72423,72424,72425,75165,75181,75182,83285,75184,75201,75220,75240,75260,75280,75242,76320,75320,76340,76321,82031,76341,76342,76344,76345,76806,76350,76810,76811,76360,76361,76362,76380,76637,76638,76639,76647,76649,76812,76650,78261,76815,77603,76818,76846,76847,76848,76849,77604,77606,77016,77607,77608,77609,78518,77671,77610,78519,78520,78205,78206,77795,78262,78263,78666,78521,78669,78767,78768,78770,78771,82032,79471,78772,82033,80856,80210,80898,82449,80211,80212,80214,80215,80216,80611,80217,82034,82035,80749,80750,82036,94266,82037,82038,82039,82040,82041,82042,82043,82044,82045,82046,82450,82296,82297,82451,82047,82298,82299,82300,82452,82453,82454,82455,82456,82457,82769,82458,82459,82770,82460,82461,82771,83286,85069,83543,83544,83287,85070,84959,85071,85072,84960,85073,85074,84975,85194,85075,85195,85196,85197,85198,85199,94267,85231,85237,94268,94269,94270,94271,94273,94274,94275,94276,94277,94278,94279,94280,94281,94282,94283,94284,94285,94286,94287,94288,94289,94290,94291,94292,94293,94294,94295,94296,94297,94298,94299,94300,94301,94302,94303,94304,94305,94306,94307,94308,94309,94310,94311,94312,94313,94314,94315,94316,94634,94317,94635,97035,94319,94320,94636,94637,94322,96536,96552,96554,96555,96556,96568,96569,96570,96571,96572,96573,96574,96575,96576,96577,96578,96579,96580,96581,96582,96583,96584,96585,96586,96818,97435,96819,96820,97599,97436,97437,97438,97439,97440,97434,97723,97640,97641,97642,97724,97725,97729,97743,97825,98097,98098,98099,98100,97999,98049,98101,98102,98103,99506,98268,98207,99507,99508,99509,99159,99510,99511,99512,102883,99513,99514,100243,99515,99880,99562,99563,99676,99677,99678,99881,99882,99883,99884,100244,100245,100623,100247,100624,100625,100626,100885,100719,100886,100887,100888,100889,100890,100990,100991,101301,101603,110065,101605,102180,102627,102181,102182,102183,102184,102185,102186,102187,102188,102189,102190,102191,104378,102192,104379,102193,102379,102380,102381,102884,102410,102411,102628,102465,102629,102630,102885,102886,102887,104380,104381,104382,104383,104384,104385,104387,110063,104389,106409,104561,104594,104660,105088,105089,105090,105091,105093,105097,105673,105768,106410,109314,106173,110064,137890,106433,106960,109080,111665,122015,110954,116763,110066,116764,110123,111867,110713,116765,111666,116869,111667,111668,116766,116767,115142,115143,121477,113924,114594,116768,115144,116769,115170,115172,115171,115644,120042,120043,116092,116870,116871,118382,116872,116876,120044,118026,119364,121485,120045,120416,121478,120417,122016,124577,129495,123602,123600,124578,124579,124580,124581,124784,125238,127096,127097,129496,129497,128036,128415,129498,129499,129914,130063,130064,130680,130681,131333,131488,133886,132219,132477,132478,133887,136537,136552,136538,136539,136540,136553,136554,136555,137869,85076,80857,62418,64889,64890,64891,64893,68666,68667,68668,68670,68671,68672,68673,72019,72020,72023,72024,72227,77745,77746,77747,77748,77749,77750,77751,77798,78773,80751,82464,82465,83288,92874,92875,92876,92877,92878,94122,94123,96290,96882,96883,97554,97514,97726,98008,98009,98051,99193,100248,99608,100249,100250,100670,100671,100672,101059,101061,101607,102194,102195,102412,102413,102633,104390,104391,106421,104560,104595,105767,106174,106426,109081,122017,137851,110712,116873,115145,115146,114597,115645,116095,120046,123551,122018,124584,124585,129500,129501,129502,128417,129503,129915,130066,131487,133897,133882,133883,136559,85078,100673,63475,78264,78265,78266,78267,78775,80753,94118,94119,94120,94121,96888,100251,100252,102631,102590,102632,65229,43366,69139,132551,59764,127129,101196,96830,61535,105433,96833,96835,96839,83795,77723,126868,99146,70188,117523,117524,117525,99237,100854,100855,137314,137315,96868,138232,138233,69709,96907,130854,119208,69520,124772,96878,60049,47875,70354,59371,54558,59849,33893,43087,43134,33894,60054,24345,49563,49558,97474,84982,31770,30950,49926,60050,52670,59846,59891,30966,59744,61988,59745,59881,59746,59741,47449,59747,64101,63480,63562,105382,105383,60052,48955,49561,49556,47401,65896,65906,65909,65985,108670,68697,68698,59754,59752,59751,62526,59805,59799,66981,46050,59756,46044,59806,46051,59807,82290,66980,59808,46046,61536,88834,70260,111081,105409,66093,66095,66094,47440,65778,59750,56748,99152,78409)CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pvWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDand (pv.is_patch is null or pv.is_patch = 'N');recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPinsert into release_content(RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)VALUES(8027, recInfo.dpv_id, 7, ora_sysdatetime, 0, 0);FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END DEPLOY_TO_RELEASE; /CREATE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,nUserId IN NUMBER) ISext VARCHAR2(50);BEGIN--Extract the package version extensionSELECT V_EXT into extFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;-- Deprecate PackageINSERT INTO DEPRECATED_PACKAGES (RTAG_ID, PKG_ID, COMMENTS, V_EXT)VALUES (nRtagId, nPkgId, sComments, ext);IF ext IS NOT NULL THENUPDATE RELEASE_CONTENTSET PKG_ID = nPkgId, DEPRECATED_STATE = 6WHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PV.V_EXT = extAND PKG.PKG_ID = nPkgId);ELSEUPDATE RELEASE_CONTENTSET PKG_ID = nPkgId, DEPRECATED_STATE = 6WHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PV.V_EXT IS NULLAND PKG.PKG_ID = nPkgId);END IF;UPDATE RELEASE_CONTENTSET PKG_ID = nPkgId, DEPRECATED_STATE = 7WHERE RTAG_ID = nRtagIdAND PV_ID IN ( SELECT DISTINCTqry.PV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.DPV_ID IN ( nPvId )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_IDAND rc.DEPRECATED_STATE IS NULL);/* LOG ACTION *//*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/END Deprecate_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;/CREATE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" ( PARAM_ID IN NUMBER, PARAM_PROPERTY IN VARCHAR2, PARAM_VALUE IN VARCHAR2, PARAM_LVALUE IN LONG RAW ) AS BEGIN DECLARE X NUMBER(40); BEGIN SELECT COUNT(*) INTO X FROM MICROSOFTDTPROPERTIES WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; IF X = 0 THEN INSERT INTO MICROSOFTDTPROPERTIES (ID, PROPERTY, OBJECTID, VALUE, LVALUE, VERSION) VALUES (MICROSOFTSEQDTPROPERTIES.NEXTVAL, PARAM_PROPERTY, PARAM_ID, PARAM_VALUE, PARAM_LVALUE, 0); ELSE UPDATE MICROSOFTDTPROPERTIES SET VALUE=PARAM_VALUE, LVALUE=PARAM_LVALUE, VERSION=VERSION+1 WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; END IF; END; END DT_SETPROPERTYBYID;/CREATE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,sIgnoreIdList IN VARCHAR2,bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,nUserId IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 5.0--------------------------------------------------------------------------- */oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();ReleaseLocation VARCHAR2(4000);ActionTypeId NUMBER;BEGINIF (NOT bDoPatchIgnore) THEN/* Manual Ignore Warnings */oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );/* Log Action */-- Get Release LocationSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = nRtagId;-- Get Action Type Id for IGNORE_ONSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = 'ignore_on';-- Get Ignored (Current MINUS Old)INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId, ORA_SYSDATETIME, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeIdFROM (SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )MINUSSELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvId) qry,PACKAGE_VERSIONS pv,PACKAGES pkg,RELEASE_CONTENT rc,PACKAGE_VERSIONS rpvWHERE pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagIdAND rc.PV_ID = rpv.PV_IDAND rpv.PKG_ID = pv.PKG_IDAND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )AND qry.DPV_ID = pv.PV_ID;-- Get Action Type Id for IGNORE_OFFSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = 'ignore_off';-- Get UnIgnored (Old MINUS Current)INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId, ORA_SYSDATETIME, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeIdFROM (SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvIdMINUSSELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )) qry,PACKAGE_VERSIONS pv,PACKAGES pkg,RELEASE_CONTENT rc,PACKAGE_VERSIONS rpvWHERE pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagIdAND rc.PV_ID = rpv.PV_IDAND rpv.PKG_ID = pv.PKG_IDAND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )AND qry.DPV_ID = pv.PV_ID;-- Delete Current Ignore WarningsDELETEFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvIdAND igw.IS_PATCH_IGNORE IS NULL;IF (oIgnoreIdCollector.COUNT > 0) THEN-- Insert Ignore WarningsINSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )SELECT nRtagId,nPvId,pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END IF;-- Touch Release if package is in Release AreaIF PK_ENVIRONMENT.GET_PACKAGE_AREA ( nPvId, nRtagId ) = 2 THENTouch_Release (nRtagId);END IF;ELSE/* Patch Ignore Warnings */-- Delete Current Patch Ignore WarningsDELETEFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.IS_PATCH_IGNORE = 'Y';-- Delete Manual Ignores that need to be Patch IgnoresDELETEFROM IGNORE_WARNINGS igwWHERE ( RTAG_ID, PV_ID, DPV_ID ) IN(SELECT DISTINCTnRtagId,err.PV_ID,err.ERR_DPV AS DPV_IDFROM(/* Full Release Contents used for reference*/SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext --, rpv.pkg_version, rpv.v_nmm, rpv.v_mmFROM release_content rel, package_versions rpvWHERE rel.pv_id = rpv.pv_idAND rtag_id = nRtagId) frc,(/* DPV_IDs not fount in release*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )) err,(SELECT DISTINCT pp.PV_ID, dep.DPV_IDFROM PACKAGE_PATCHES pp,PACKAGE_DEPENDENCIES dep,RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = pp.PV_IDAND dep.PV_ID = pp.PATCH_ID) pp,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_idAND err.PV_ID = pp.PV_IDAND frc.PV_ID = pp.DPV_ID);/*----------------------------------------------------- Make sure that select statement above and below are same---------------------------------------------------*/-- Insert Patch IgnoresINSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )SELECT DISTINCTnRtagId,err.PV_ID,err.ERR_DPV AS DPV_ID,'Y'FROM(/* Full Release Contents used for reference*/SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext --, rpv.pkg_version, rpv.v_nmm, rpv.v_mmFROM release_content rel, package_versions rpvWHERE rel.pv_id = rpv.pv_idAND rtag_id = nRtagId) frc,(/* DPV_IDs not fount in release*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )) err,(SELECT DISTINCT pp.PV_ID, dep.DPV_IDFROM PACKAGE_PATCHES pp,PACKAGE_DEPENDENCIES dep,RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = pp.PV_IDAND dep.PV_ID = pp.PATCH_ID) pp,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_idAND err.PV_ID = pp.PV_IDAND frc.PV_ID = pp.DPV_ID;END IF;END Ignore_Dependency_Warnings;/CREATE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS/******************************************************************************NAME: INSERT_INTO_PACKAGE_BUILD_INFOPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 6/12/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: INSERT_INTO_PACKAGE_BUILD_INFOSysdate: 6/12/2006Date and Time: 6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR curInfo ISSELECT PV_IDFROM PACKAGE_BUILD_ENVWHERE BE_ID IN (11, 12);recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )VALUES( recInfo.PV_ID, 2, 5);UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END INSERT_INTO_PACKAGE_BUILD_INFO;/CREATE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS/******************************************************************************NAME: INSERT_MULTIPLE_STICKY_NOTESPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 6/12/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: INSERT_MULTIPLE_STICKY_NOTESSysdate: 6/12/2006Date and Time: 6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR curInfo ISSELECT PV_IDFROM PACKAGE_BUILD_ENVWHERE BE_ID IN (11, 12);recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPINSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END INSERT_MULTIPLE_STICKY_NOTES;/CREATE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (nnrtag_id IN NUMBER,nnsession_num IN NUMBER,nnrowcnt OUT NUMBER,nniteration IN NUMBER)IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */previteration NUMBER := nniteration - 1;BEGIN/* --------- LEVEL 1 CONFILCTS -----------|| Following states are used:|| 0 -> NOT FOUND|| 1 -> MAJOR|| 2 -> MINOR MINOR*/INSERT INTO temp_env_statesSELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,pv.pv_id, pv.pkg_id, pv.v_ext,DECODE (tes.tes_state, 2, 2, 1) AS MESSAGEFROM package_dependencies dep,package_versions dpv,package_versions pv,release_content rel,temp_env_states tesWHERE rel.pv_id = dep.pv_idAND rel.rtag_id = nnrtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_idAND dpv.pkg_id = tes.pkg_idAND NVL (dpv.v_ext, '|LINK_A_NULL|') =NVL (tes.v_ext, '|LINK_A_NULL|')AND tes.session_num = nnsession_numAND tes.level_num = previterationAND (dep.pv_id, dep.dpv_id) IN/* Remove packages listed in IGNORE_WARNINGS table and|| packages already stored in Temp Table.*/(SELECT pd.pv_id, pd.dpv_idFROM package_dependencies pd, release_content rcWHERE pd.pv_id = rc.pv_id AND rc.rtag_id = nnrtag_id--AND pd.pv_id NOT IN ( SELECT pv_id FROM temp_env_states WHERE session_num = NNsession_num AND level_num > 5 )MINUSSELECT igw.pv_id, igw.dpv_idFROM ignore_warnings igwWHERE igw.rtag_id = nnrtag_id);nnrowcnt := SQL%ROWCOUNT;END level_n_conflicts;/CREATE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (nnrtag_id IN NUMBER,nnsession_num IN NUMBER)IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGIN/* --------- LEVEL 1 CONFILCTS -----------|| Following states are used:|| 0 -> NOT FOUND|| 1 -> MAJOR|| 2 -> MINOR MINOR*/INSERT INTO temp_env_statesSELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,err.pv_id, errpkg.pkg_id, errpkg.v_ext,DECODE (frc.v_nmm,NULL, 0,errpv.v_nmm, DECODE (frc.v_mm,errpv.v_mm, NULL,2),1) AS MESSAGEFROM (/* Full Release Contents used for reference*/SELECT rpv.pkg_id,NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,rpv.pkg_version, rpv.v_nmm, rpv.v_mmFROM release_content rel, package_versions rpvWHERE rel.pv_id = rpv.pv_id AND rtag_id = nnrtag_id) frc,(/* DPV_IDs not fount in release*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN (SELECT pv_idFROM release_contentWHERE rtag_id = nnrtag_id)AND NOT dep.dpv_id IN (SELECT pv_idFROM release_contentWHERE rtag_id = nnrtag_id)MINUS/* MINUS Dependencies to be ignored */SELECT igw.pv_id, igw.dpv_id AS err_dpvFROM ignore_warnings igwWHERE rtag_id = nnrtag_id) err,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_id;END level_one_conflicts;/CREATE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Lock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'Y'WHERE pv.PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'lock_package', nUserId );END Lock_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,enumActionTypeName IN ACTION_TYPE.NAME%TYPE,nUserId IN ACTION_LOG.USER_ID%TYPE,sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )VALUES ( nUserId, ORA_SYSDATETIME, nPvId, sAdditionalComments, ActionTypeId );END Log_Action;/CREATE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,enumActionTypeName IN ACTION_TYPE.NAME%TYPE,nUserId IN ACTION_LOG.USER_ID%TYPE,sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( nPvIdList );-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;-- Log ActionINSERT INTO ACTION_LOG ( USER_ID, ACTION_DATETIME, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId,ORA_SYSDATETIME,pv.PV_ID,sAdditionalComments,ActionTypeIdFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Log_Action_Bulk;/CREATE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,enumActionTypeName IN VARCHAR2,nUserId IN NUMBER,sAdditionalComments IN VARCHAR2 DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO DAEMON_ACTION_LOGVALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );END Log_Daemon_Action;/CREATE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,enumActionTypeName IN VARCHAR2,nUserId IN NUMBER,sAdditionalComments IN VARCHAR2 DEFAULT NULL,nRtagId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);END Log_Project_Action;/CREATE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,pnUser_id IN NUMBER,outErrCode OUT NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */newID NUMBER;CURSOR an_duplicate_cur ISSELECT note_idFROM ADDITIONAL_NOTESWHERE pv_id = pnPv_idAND note_title = psNote_title;an_duplicate_rec an_duplicate_cur%ROWTYPE;BEGINoutErrCode := -1; -- Set default return error code to ERROR stateOPEN an_duplicate_cur;FETCH an_duplicate_cur INTO an_duplicate_rec;IF an_duplicate_cur%NOTFOUNDTHEN/* No duplicate titles */-- Get new ID --SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;--- Add Additional Note ---INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user )VALUES ( newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );outErrCode := 0; -- Set return to SUCCESSEND IF;CLOSE an_duplicate_cur;END New_Additional_Note;/CREATE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,retPKG_ID OUT NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */CURSOR packages_cur ISSELECT pkg.pkg_idFROM packages pkgWHERE pkg.pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;BEGIN/* ---------------------------------------------------- *//* Find if package name exists *//* ---------------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN-- Create new pkg_name --SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;INSERT INTO packages ( pkg_id, pkg_name )VALUES ( retPKG_ID, SSpkg_name );ELSEretPKG_ID := packages_rec.pkg_id;END IF;CLOSE packages_cur;END New_Package_Name;/CREATE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNparent_id IN NUMBER,sPatchIdList IN VARCHAR2,NNuser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.5--------------------------------------------------------------------------- */patchPv_id NUMBER;parPkg_id NUMBER;LastInstallOrder NUMBER;isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();CURSOR parent_cur ISSELECT pv.*, pkg.pkg_nameFROM package_versions pv,packages pkgWHERE pv.pv_id = NNparent_idAND pv.pkg_id = pkg.pkg_id;parent_rec parent_cur%ROWTYPE;CURSOR patch_cur ISSELECT pv.*, pg.pkg_nameFROM package_versions pv,packages pgWHERE pv.pkg_id = parPkg_idAND pv.pkg_version = SSpatch_versionAND pv.pkg_id = pg.pkg_id;patch_rec patch_cur%ROWTYPE;CURSOR releases_cur ISSELECT rc.pv_idFROM release_content rcWHERE rc.pv_id = patch_rec.pv_id;releases_rec releases_cur%ROWTYPE;BEGIN-- Get Last Install OrderSELECT Count(*) INTO LastInstallOrderFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = NNparent_id;-- Get parent detailsOPEN parent_cur;FETCH parent_cur INTO parent_rec;parPkg_id := parent_rec.pkg_id;-- Find if patch exists in databaseOPEN patch_cur;FETCH patch_cur INTO patch_rec;-- Parent must be officialIF parent_rec.dlocked = 'Y' THENIF patch_cur%NOTFOUNDTHENisPatchDlocked := 'N';-- Create new patch version --SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );INSERT INTO package_versions ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT, src_path, pv_description, owner_id, is_patch, LAST_PV_ID, bs_id, is_autobuildable, ripple_field )VALUES (patchPv_id,parPkg_id,SSpatch_version,isPatchDlocked,ORA_SYSDATE,NNuser_id,ORA_SYSDATETIME,NNuser_id,SSV_MM,SSV_NMM,SSV_EXT,parent_rec.src_path,'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,NNuser_id,'Y',patchPv_id,parent_rec.bs_id,parent_rec.is_autobuildable,parent_rec.ripple_field);INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )( SELECT NNparent_id AS pv_id,pv.pv_id AS patch_id,LastInstallOrder + 1 AS INSTALL_ORDERFROM package_versions pvWHERE pv.pv_id = patchPv_idAND pv.is_patch = 'Y' );/* LOG ACTION */Log_Action ( patchPv_id, 'new_version', NNuser_id,'Patch version created: '|| SSpatch_version );Log_Action ( NNparent_id, 'patch_add', NNuser_id,'New patch created and attached: '|| SSpatch_version );ELSEpatchPv_id := patch_rec.pv_id;isPatchDlocked := patch_rec.dlocked;-- Find if pv_id exists in release content (i.e. it cannot be a patch)OPEN releases_cur;FETCH releases_cur INTO releases_rec;IF releases_cur%NOTFOUNDTHEN-- This pv_id is trully a patch, hence add Y to column IS_PATCHUPDATE package_versions SETis_patch = 'Y'WHERE pv_id = patchPv_id;INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )( SELECT NNparent_id AS pv_id,pv.pv_id AS patch_id,LastInstallOrder + 1 AS INSTALL_ORDERFROM package_versions pvWHERE pv.pv_id = patchPv_idAND pv.is_patch = 'Y' );END IF;CLOSE releases_cur;/* LOG ACTION */Log_Action ( NNparent_id, 'patch_add', NNuser_id,'Patch version was found and attached: '|| SSpatch_version );END IF;END IF;/* Create Patch Dependencies */oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );-- Make sure patch is unofficial before altering its dependenciesIF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN-- Delete Existing DependenciesDELETEFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = patchPv_id;-- Insert new dependenciesINSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )SELECT patchPv_id AS PV_ID,pv.PV_ID AS DPV_ID,parPkg_id AS PKG_ID,pv.PKG_ID AS DPKG_ID,'L' AS BUILD_TYPEFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );END IF;CLOSE parent_cur;CLOSE patch_cur;END New_Patch;/CREATE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,sDpkg_path IN VARCHAR2,sResults IN VARCHAR2,sCompletion_date IN VARCHAR2,nCompleted_by IN NUMBER,enumTEST_TYPE_AUTOMATIC IN NUMBER,enumTEST_TYPE_NOT_DONE IN NUMBER,outFileName OUT VARCHAR2) IS/* ---------------------------------------------------------------------------Version: 3.2.0--------------------------------------------------------------------------- */FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';newID NUMBER;ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;BEGIN-- Get new ID --SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THENResultsURL := sResults;ELSEIF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || newID ||'_'|| sResults;ResultsAttachment := sDpkg_path || '/' || outFileName;END IF;END IF;-- Remove NOT_DONE entry if existsDELETE FROM UNIT_TESTSWHERE pv_id = nPv_idAND test_types_fk = enumTEST_TYPE_NOT_DONE;--- Add Additional Note ---INSERT INTO UNIT_TESTS ( TEST_ID,PV_ID,TEST_TYPES_FK,TEST_SUMMARY,COMPLETION_DATE,COMPLETED_BY,RESULTS_URL,RESULTS_ATTACHMENT_NAME,NUMOF_TEST )VALUES (newID,nPv_id,nTestTypeId,sTest_summary,TO_DATE( sCompletion_date,'DD/MM/YYYY' ),nCompleted_by,ResultsURL,ResultsAttachment,sNumOfTest );END New_Unit_Test;/CREATE PROCEDURE "RELEASE_MANAGER"."NEW_VERSION" ( NNorig_pv_id IN NUMBER,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE DEFAULT NULL,NNsetto_pv_id IN NUMBER DEFAULT NULL,NNrtag_id IN NUMBER,NNuser_id IN NUMBER,enumISSUES_STATE_IMPORTED IN NUMBER,retPv_id OUT NUMBER ) ISTO BE REMOVED !!!/* ---------------------------------------------------------------------------Version: 3.3--------------------------------------------------------------------------- */ReleaseLocation VARCHAR2(4000);origPkg_id PACKAGE_VERSIONS.pkg_id%TYPE;origDlocked PACKAGE_VERSIONS.dlocked%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;nIssuesTypes NUMBER;CURSOR package_versions_cur ISSELECT pv.pv_id, pv.is_patchFROM PACKAGE_VERSIONS pvWHERE pv.pkg_version = SSpkg_versionAND pv.pkg_id IN ( SELECT DISTINCT origpv.pkg_id FROM PACKAGE_VERSIONS origpv WHERE origpv.pv_id = NNorig_pv_id );package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_cur ISSELECT DISTINCT pkg_id, dlocked FROM PACKAGE_VERSIONS WHERE pv_id = NNorig_pv_id;clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGINIF NNsetto_pv_id IS NULLTHEN-- SetToPv_id is not supplied, hence proceed./* ---------------------------------------------------- *//* Find id package_version exists *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHENSELECT SEQ_PV_ID.NEXTVAL INTO retPv_id FROM DUAL;Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );OPEN clone_package_versions_cur;FETCH clone_package_versions_cur INTO clone_package_versions_rec;origPkg_id := clone_package_versions_rec.pkg_id;origDlocked := clone_package_versions_rec.dlocked;CLOSE clone_package_versions_cur;-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, IS_DEPLOYABLE, IS_BUILD_ENV_REQUIRED )SELECT retPv_id AS pv_id,origPkg_id AS pkg_id,SSpkg_version AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,NNuser_id AS creator_id,Ora_Sysdatetime AS modified_stamp,NNuser_id AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,NNorig_pv_id AS LAST_PV_ID,pv.owner_id,pv.IS_DEPLOYABLE,pv.IS_BUILD_ENV_REQUIREDFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = NNorig_pv_id;-- Set Issues Type for cloning ---IF origDlocked = 'Y'THENnIssuesTypes := enumISSUES_STATE_IMPORTED;ELSEnIssuesTypes := NULL;END IF;Basic_Clone ( NNorig_pv_id, retPv_id, NNrtag_id, NNuser_id, origPkg_id, nIssuesTypes );ELSEretPv_id := package_versions_rec.pv_id;END IF;CLOSE package_versions_cur;ELSEretPv_id := NNsetto_pv_id;END IF;/* ---------------------------------------------------- *//* Insert into Release Contents (EXCLUDE PATCHES) *//* ---------------------------------------------------- */IF (package_versions_rec.is_patch != 'Y') OR (package_versions_rec.is_patch IS NULL) THENUPDATE RELEASE_CONTENTSET pv_id = retPv_id,insert_stamp = Ora_Sysdate,insertor_id = NNuser_idWHERE rtag_id = NNrtag_idAND pv_id = NNorig_pv_id;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| vt.VTREE_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,VTREES vt,RELEASE_TAGS rtWHERE rt.VTREE_ID = vt.VTREE_IDAND vt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = NNrtag_id;Log_Action ( NNorig_pv_id, 'replaced_with', NNuser_id, 'Replacing version: '|| SSpkg_version ||' at '|| ReleaseLocation );Log_Action ( retPv_id, 'add', NNuser_id, 'Location: '|| ReleaseLocation );END IF;END New_Version;/CREATE PROCEDURE "RELEASE_MANAGER"."OLE"IS retval VARCHAR2(40);BEGIN retval := RELEASE_MANAGER.Pk_Rmapi.RETURN_WIP ( 'daf_br_applets', 2362 )DBMS_OUTPUT.PUT_LINE(retval);/CREATE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) ISsessionNumber NUMBER := 0;iteration NUMBER := 1;rowCnt NUMBER := 0;maxIterations NUMBER := 50;BEGININSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )SELECT sessionNumber, iteration, rc.PV_IDFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtag_id;iteration := iteration + 1;LOOPINSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )SELECT sessionNumber,iteration,dep.DPV_IDFROM TEMP_TREE_BROWSE ttb,PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = ttb.PV_IDAND ttb.LEVEL_NUM = iteration - 1MINUSSELECT sessionNumber, iteration, ttb.PV_IDFROM TEMP_TREE_BROWSE ttb;rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration + 1;END IF;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;END PAOLO_Build_Tree;/CREATE PROCEDURE "RELEASE_MANAGER"."PENDING_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Lock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'A'WHERE pv.PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'lock_package', nUserId );END Pending_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.3--------------------------------------------------------------------------- */rowCnt NUMBER := 0;iteration NUMBER := 2; -- Iterations countermaxIterations NUMBER := 50; -- Maximum number of iterations allowed.-- This will prevent infinite loops if cyrcular dependencies are foundsessionNum NUMBER;BEGINSELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;-- Redo Patch Ignore warningsIgnore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );Level_One_Conflicts ( NNrtag_id, sessionNum );LOOPLevel_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );iteration := iteration + 1;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;Update_Package_States ( NNrtag_id, sessionNum );DELETE FROM temp_env_states WHERE temp_env_states.session_num = sessionNum;-- Flag Packages with New Patches AvailableCheck_New_Patches ( NNrtag_id );Clean_Do_Not_Ripple( NNrtag_id );/* Circular Dependency Flag *//*IF iteration > maxIterationsTHENUPDATE release_tags SETcircular_dependency = 'Y'WHERE rtag_id = NNrtag_id;ELSEUPDATE release_tags SETcircular_dependency = NULLWHERE rtag_id = NNrtag_id;END IF;*/END Rebuild_Environment;/CREATE PROCEDURE "RELEASE_MANAGER"."RELEASE_MANAGER_MAILOUT" (sender IN VARCHAR2,recipient IN VARCHAR2,ccrecipient IN VARCHAR2,subject IN VARCHAR2,message IN VARCHAR2) IScrlf VARCHAR2(2):= UTL_TCP.CRLF;connection utl_smtp.connection;mailhost VARCHAR2(30) := 'aupera03.aupera.erggroup.com';header VARCHAR2(1000);BEGIN---- Start the connection.--connection := utl_smtp.open_connection(mailhost,25);header:= 'Date: '||TO_CHAR(SYSDATE,'dd Mon yy hh24:mi:ss')||crlf||'From: '||sender||''||crlf||'Subject: '||subject||crlf||'To: '||recipient||crlf||'CC: '||ccrecipient;---- Handshake with the SMTP server--utl_smtp.helo(connection, mailhost);utl_smtp.mail(connection, sender);utl_smtp.rcpt(connection, recipient);utl_smtp.rcpt(connection, ccrecipient);utl_smtp.open_data(connection);---- Write the header--utl_smtp.write_data(connection, header);---- The crlf is required to distinguish that what comes next is not simply part of the header..--utl_smtp.write_data(connection, crlf ||message);utl_smtp.close_data(connection);utl_smtp.quit(connection);EXCEPTIONWHEN UTL_SMTP.INVALID_OPERATION THENdbms_output.put_line(' Invalid Operation in SMTP transaction.');WHEN UTL_SMTP.TRANSIENT_ERROR THENdbms_output.put_line(' Temporary problems with sending email - try again later.');WHEN UTL_SMTP.PERMANENT_ERROR THENdbms_output.put_line(' Errors in code for SMTP transaction.');END RELEASE_MANAGER_MAILOUT;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGIN--- Delete From RELEASE_COMPONENTSDELETE FROM RELEASE_COMPONENTSWHERE PV_ID = nPvId;END Remove_Components;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;BEGIN-- Get Doc NumSELECT pd.DOC_NUM INTO DocNumberFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nPvIdAND pd.DOC_ID = nDocId;-- Delete DocumentDELETEFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nPvIdAND pd.DOC_ID = nDocId;/* LOG ACTION */Log_Action ( nPvId, 'document_remove', nUserId,'Document number: '|| DocNumber );END Remove_Document;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,nPkgId IN PACKAGES.PKG_ID%TYPE,nUserId IN NUMBER) IS/******************************************************************************NAME: REMOVE_PACKAGE_INTERESTPURPOSE: To remove interest in a given package per projectREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 12/05/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: REMOVE_PACKAGE_INTERESTSysdate: 12/05/2006Date and Time: 12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGIN--Delete from PACKAGE_INTERESTDELETE FROM PACKAGE_INTERESTWHERE PROJ_ID = nProjIdAND PKG_ID = nPkgIdAND USER_ID = nUserId;END REMOVE_PACKAGE_INTEREST;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;CURSOR curPatch ISSELECT pp.PV_ID,pp.PATCH_ID,ROWNUM AS NEW_INSTALL_ORDERFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdORDER BY pp.INSTALL_ORDER;recPatch curPatch%ROWTYPE;BEGIN-- Delete PatchDELETEFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;-- Redo Install OrderOPEN curPatch;FETCH curPatch INTO recPatch;WHILE curPatch%FOUNDLOOPUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDERWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = recPatch.PATCH_ID;FETCH curPatch INTO recPatch;END LOOP;CLOSE curPatch;/* LOG ACTION */SELECT pv.PKG_VERSION INTO PatchVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nPatchId;Log_Action ( nPvId, 'patch_remove', nUserId,'Version: '|| PatchVersion );END Remove_Patch;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,nViewId IN NUMBER,sUserIdList IN VARCHAR2,nUserId IN NUMBER ) ISGroupId NUMBER;/******************************************************************************NAME: UPDATE_VIEWPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 10/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: UPDATE_VIEWSysdate: 10/04/2006Date and Time: 10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINSELECT GROUP_EMAIL_ID into GroupIdFROM AUTOBUILD_FAILUREWHERE PROJ_ID = nProjIdAND VIEW_ID = nViewId;DELETE FROM MEMBERS_GROUPWHERE GROUP_EMAIL_ID = GroupIdAND USER_ID IN (SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));END REMOVE_PROJECT_VIEW_OWNER;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,sNotPvIdList IN VARCHAR2,nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( sPvIdList );oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );-- Delete From Release ContentDELETEFROM RELEASE_CONTENTWHERE rtag_id = nRTagIdAND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Remove_Release_Content;/CREATE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */RuntimeDependency VARCHAR2(4000);BEGIN-- Get Runtime dependencySELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION INTO RuntimeDependencyFROM RUNTIME_DEPENDENCIES rtd,PACKAGES pkg,PACKAGE_VERSIONS pvWHERE rtd.PV_ID = nPvIdAND pv.PKG_ID = pkg.PKG_IDAND rtd.RTD_ID = pv.PV_IDAND rtd.RTD_ID = nRuntimeId;-- Delete DocumentDELETEFROM RUNTIME_DEPENDENCIES rtdWHERE rtd.PV_ID = nPvIdAND rtd.RTD_ID = nRuntimeId;/* LOG ACTION */Log_Action ( nPvId, 'runtime_remove', nUserId,'Runtime package: '|| RuntimeDependency );END Remove_Runtime;/CREATE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,cBuildType IN CHAR,NNuser_id IN NUMBER,errMessage OUT VARCHAR2 ) IS/* ---------------------------------------------------------------------------Version: 3.2--------------------------------------------------------------------------- */sPackageVersion VARCHAR2(4000);sLabel VARCHAR2(4000) := NULL;OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR package_versions_cur ISSELECT pv_idFROM package_versionsWHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )AND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;BEGIN/* ---------------------------------------------------- *//* Find if package_version exists *//* ---------------------------------------------------- */errMessage := NULL;-- Get previous versionSELECT pv.PKG_VERSION INTO OldPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = NNpv_id;sPackageVersion := SSpkg_version;IF OldPkgVersion != sPackageVersion THENOPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN-- Split current version in partsSplit_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );-- Automated built configIF (cBuildType = 'A') THENsPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT; -- Make sure that version is still uniqueEND IF;-- Packge version not found, hence rename it.UPDATE package_versionsSET pkg_version = sPackageVersion,v_mm = SSV_MM,v_nmm = SSV_NMM,v_ext = SSV_EXT,modified_stamp = ORA_SYSDATETIME,modifier_id = NNuser_id,build_type = cBuildType,pkg_label = NULLWHERE pv_id = NNpv_id;IF (cBuildType = 'A') THENsLabel := GET_AUTOMATED_LABEL( NNpv_id );UPDATE PACKAGE_VERSIONS pv SETpv.PKG_LABEL = sLabelWHERE pv_id = NNpv_id;END IF;/* LOG ACTION */Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| SSpkg_version );ELSE-- Package version exists. Cannot proceed.errMessage := 'enum_MSG_VERSION_EXISTS';END IF;CLOSE package_versions_cur;END IF;END Rename_Package_Version;/CREATE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 5.0--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( sPvIdList );-- Remove Ignore WarningsDELETEFROM ignore_warningsWHERE (rtag_id, pv_id, dpv_id) IN(SELECT igw.rtag_id, igw.pv_id, igw.dpv_idFROM ignore_warnings igw,package_versions dpv,package_versions pvWHERE igw.dpv_id = dpv.pv_idAND igw.rtag_id = nRTagIdAND dpv.pkg_id = pv.pkg_idAND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) ));END Reset_Ignore_Warnings;/CREATE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (sPvIdList IN VARCHAR2,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 4.1--------------------------------------------------------------------------- */BEGINIF (sPvIdList IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;-- Ripple PackageDELETE FROM DO_NOT_RIPPLEWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT *FROM THE (SELECT CAST( IN_LIST_NUMBER( sPvIdList )AS RELMGR_NUMBER_TAB_t )FROM DUAL));/* LOG ACTION */Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );END Ripple_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER,retPV_ID OUT NUMBER,nCloneFromPvId IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */parPkg_id NUMBER;parPv_id NUMBER;cloneFrom_pv_id NUMBER;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR packages_cur ISSELECT pkg_id FROM PACKAGESWHERE pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;CURSOR package_versions_cur ISSELECT pv_id FROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_cur ISSELECT MAX(pv_id) AS pv_idFROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGIN/* -------------------------------------------- *//* Find if pkg_name exists and seed if required *//* -------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN/* INSERT into packages table */SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );ELSEparPkg_id := packages_rec.pkg_id;END IF;CLOSE packages_cur;/* ---------------------------------------------------- *//* Find if package_version exists and seed if required *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHENSELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;/* LOG ACTION */Log_Action ( parPv_id, 'new_version', NNuser_id,'New package version: '|| SSpkg_version );Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );/* Find similar pkg_name + ext to clone from */OPEN clone_package_versions_cur;FETCH clone_package_versions_cur INTO clone_package_versions_rec;IF NOT clone_package_versions_rec.pv_id IS NULLTHEN/* CLONE details from similar version OR from nCloneFromPvId */IF ( NOT nCloneFromPvId IS NULL) THENcloneFrom_pv_id := nCloneFromPvId;ELSEcloneFrom_pv_id := clone_package_versions_rec.pv_id;END IF;-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable, ripple_field )SELECT parPv_id AS pv_id,parPkg_id AS pkg_id,SSpkg_version AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,NNuser_id AS creator_id,Ora_Sysdatetime AS modified_stamp,NNuser_id AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,cloneFrom_pv_id AS LAST_PV_ID,pv.owner_id,pv.BUILD_TYPE,pv.IS_BUILD_ENV_REQUIRED,pv.BS_ID,pv.is_autobuildable,pv.IS_DEPLOYABLE,pv.ripple_fieldFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = cloneFrom_pv_id;Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );ELSE/* BRAND NEW version + ext */INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT, owner_id, LAST_PV_ID, BUILD_TYPE, ripple_field )VALUES (parPv_id,parPkg_id,SSpkg_version,'N',Ora_Sysdate,NNuser_id,Ora_Sysdatetime,NNuser_id,SSV_MM,SSV_NMM,SSV_EXT,NNuser_id,parPv_id,'M','b');END IF;CLOSE clone_package_versions_cur;retPV_ID := parPv_id;ELSEretPV_ID := package_versions_rec.pv_id;END IF;CLOSE package_versions_cur;END Seed_Package_Names_Versions;/CREATE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS2" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER,retPV_ID OUT NUMBER,nCloneFromPvId IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */parPkg_id NUMBER;parPv_id NUMBER;cloneFrom_pv_id NUMBER;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR packages_cur ISSELECT pkg_id FROM PACKAGESWHERE pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;CURSOR package_versions_cur ISSELECT pv_id FROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_cur ISSELECT MAX(pv_id) AS pv_idFROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGIN/* -------------------------------------------- *//* Find if pkg_name exists and seed if required *//* -------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN/* INSERT into packages table */SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );ELSEparPkg_id := packages_rec.pkg_id;END IF;CLOSE packages_cur;/* ---------------------------------------------------- *//* Find if package_version exists and seed if required *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHENSELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;/* LOG ACTION */Log_Action ( parPv_id, 'new_version', NNuser_id,'New package version: '|| SSpkg_version );Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );/* CLONE details from similar version OR from nCloneFromPvId */IF ( NOT nCloneFromPvId IS NULL) THENcloneFrom_pv_id := nCloneFromPvId;ELSEcloneFrom_pv_id := clone_package_versions_rec.pv_id;END IF;-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable, ripple_field )SELECT parPv_id AS pv_id,parPkg_id AS pkg_id,SSpkg_version AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,NNuser_id AS creator_id,Ora_Sysdatetime AS modified_stamp,NNuser_id AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,cloneFrom_pv_id AS LAST_PV_ID,pv.owner_id,pv.BUILD_TYPE,pv.IS_BUILD_ENV_REQUIRED,pv.bs_id,pv.is_autobuildable,pv.IS_DEPLOYABLE,pv.ripple_fieldFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = cloneFrom_pv_id;Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );retPV_ID := parPv_id;ELSEretPV_ID := package_versions_rec.pv_id;END IF;CLOSE package_versions_cur;END Seed_Package_Names_Versions2;/CREATE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Set Advisory Ripple PackageINSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)VALUES (nRtagId, nPvId);/* LOG ACTION */Log_Action ( nPvId, 'set_advisory_ripple', nUserId );/*Rebuild_Environment(nRtagId);*/END Set_Advisory_Ripple;/CREATE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,sBuildEnvIdList IN VARCHAR2 ) IS/* ---------------------------------------------------------------------------Last Modified: Rupesh SolankiVersion: 3.0.1--------------------------------------------------------------------------- */BEGIN-- Delete Current Build Env settingsDELETE FROM PACKAGE_BUILD_ENVWHERE pv_id = nPvId;-- Delet Current Package Build Info SettingsDELETE FROM PACKAGE_BUILD_INFOWHERE pv_id = nPvId;-- Reset flag to NUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'N'WHERE PV_ID = nPvId;-- Set new Build EnvIF NOT sBuildEnvIdList IS NULL THEN-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;END IF;END Set_Package_Build_Env;/CREATE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,sBuildEnvIdList IN VARCHAR2,nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE) IS/* ---------------------------------------------------------------------------Last Modified: Rupesh SolankiVersion: 3.0.1--------------------------------------------------------------------------- */nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BsId NUMBER;HackBsId NUMBER;BEGINnBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );-- Delete Current Build Env settingsDELETE FROM PACKAGE_BUILD_ENVWHERE pv_id = nPvId;-- Delet Current Package Build Info SettingsDELETE FROM PACKAGE_BUILD_INFOWHERE pv_id = nPvId;-- Reset flag to NUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'N'WHERE PV_ID = nPvId;-- Set new Build EnvIF NOT sBuildEnvIdList IS NULL THENFOR i IN 1..nBsCollector.COUNTLOOPBsId := nBsCollector(i);IF nBuildStandard = 2 THENIF BsId = 1 THENHackBsId := 11;ELSEHackBsId := 12;END IF;-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN ( HackBsId );-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN ( BsId );-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;ELSE-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN ( BsId );-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN ( BsId );-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;END IF;END LOOP;END IF;END Set_Package_Build_Env_Temp;/CREATE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (nrtagid IN NUMBER,spvidlist IN VARCHAR2)IS/******************************************************************************NAME: SET_TO_AUTOBUILDABLEPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 15/12/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: SET_TO_AUTOBUILDABLESysdate: 15/12/2006Date and Time: 15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/npvidcollector relmgr_number_tab_t := relmgr_number_tab_t ();PvId NUMBER;BEGINnpvidcollector := in_list_number2 (spvidlist);UPDATE package_versionsSET is_autobuildable = 'N'WHERE pv_id IN (SELECT pv_idFROM release_contentWHERE rtag_id = nrtagid);FOR i IN 1..npvidcollector.COUNTLOOPPvId := npvidcollector(i);UPDATE package_versionsset is_autobuildable = 'Y'where pv_id = PvId;END LOOP;END set_to_autobuildable;/CREATE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */currInstallOrder NUMBER;FromInstallOrder NUMBER;BEGIN-- Get Current Install OrderSELECT pp.INSTALL_ORDER INTO currInstallOrderFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;IF currInstallOrder > nToInstallOrderTHENFromInstallOrder := nToInstallOrder;-- Shift others UpUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = pp.INSTALL_ORDER + 1WHERE pp.PV_ID = nPvIdAND pp.PATCH_ID != nPatchIdAND pp.INSTALL_ORDER BETWEEN FromInstallOrder AND currInstallOrder - 1;ELSIF currInstallOrder < nToInstallOrderTHENFromInstallOrder := currInstallOrder + 1;-- Shift others DownUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = pp.INSTALL_ORDER - 1WHERE pp.PV_ID = nPvIdAND pp.PATCH_ID != nPatchIdAND pp.INSTALL_ORDER BETWEEN FromInstallOrder AND nToInstallOrder;END IF;-- Move Patch to new install orderUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = nToInstallOrderWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;END Shift_Install_Order;/CREATE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)INDEX BY BINARY_INTEGER;version_components VERSION_COMPONENTS_TYPE;lastDot NUMBER := 0;currDot NUMBER := 0;BEGINcurrDot := INSTR ( SSpkg_version, '.', -1 ); -- Find 1st dot from the rightIF ( currDot > 0 )THEN-- YES dot separator found --SSV_EXT := GET_V_EXT( SSpkg_version );IF NOT SSV_EXT IS NULLTHENlastDot := currDot;currDot := INSTR ( SSpkg_version, '.', -1, 2 ); -- Find 2nd dot from the rightIF ( currDot > 0 )THEN-- XXXX.M.ESSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;ELSE-- XXXX.ESSV_MM := NULL;SSV_NMM := SSpkg_version;END IF;ELSE-- XXXX.MSSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );END IF;ELSE-- NO dot separator found ---- XXXXXXSSV_MM := NULL;SSV_NMM := SSpkg_version;SSV_EXT := NULL;END IF;END Split_Version;/CREATE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)ISAuto CHAR;/******************************************************************************NAME: SWITCH_REPRODUCIBLE_PACKAGEPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 14/12/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: SWITCH_REPRODUCIBLE_PACKAGESysdate: 14/12/2006Date and Time: 14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINSELECT IS_AUTOBUILDABLE into AutoFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;IF Auto = 'N' ThenUPDATE PACKAGE_VERSIONSSET IS_AUTOBUILDABLE = 'Y'WHERE PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'reproducible_package', nUserId );ElseUPDATE PACKAGE_VERSIONSSET IS_AUTOBUILDABLE = 'N'WHERE PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'unreproducible_package', nUserId );End If;END SWITCH_REPRODUCIBLE_PACKAGE;/CREATE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id IN NUMBER,sSyncRtagsInList IN VARCHAR2,nUser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */CURSOR sync_rtags_cur ISSELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_idFROM release_content rc,package_versions pv,package_versions opvWHERE rc.pv_id = pv.pv_idAND opv.pkg_id = pv.pkg_idAND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')AND opv.pv_id = nPv_idAND rtag_id IN ( SELECT *FROM THE (SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )FROM dual));sync_rtags_rec sync_rtags_cur%ROWTYPE;BEGINOPEN sync_rtags_cur;FETCH sync_rtags_cur INTO sync_rtags_rec;WHILE sync_rtags_cur%FOUNDLOOPDELETE FROM RELEASE_CONTENTWHERE rtag_id = sync_rtags_rec.rtag_idAND pv_id = sync_rtags_rec.pv_id;INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )VALUES ( sync_rtags_rec.rtag_id,nPv_id,sync_rtags_rec.BASE_VIEW_ID,Ora_Sysdate,nUser_id,0);-- UPDATE RELEASE_CONTENT-- SET pv_id = nPv_id,-- insert_stamp = Ora_Sysdate,-- insertor_id = nUser_id-- WHERE rtag_id = sync_rtags_rec.rtag_id-- AND pv_id = sync_rtags_rec.pv_id;FETCH sync_rtags_cur INTO sync_rtags_rec;END LOOP;CLOSE sync_rtags_cur;END Sync_Projects_New_Version;/CREATE PROCEDURE "RELEASE_MANAGER"."TEST"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPselect deployment_manager.seq_proc_id.nextval into proc_id from dual;insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);FETCH ripple_curINTO ripple_rec;END LOOP;END test;/CREATE PROCEDURE "RELEASE_MANAGER"."TEST_MARCO" IS/******************************************************************************NAME: TEST_MARCOPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 2/03/2007 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: TEST_MARCOSysdate: 2/03/2007Date and Time: 2/03/2007, 3:11:11 PM, and 2/03/2007 3:11:11 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/parPv_id NUMBER;parPkg_id NUMBER;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;BEGINSELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;/* LOG ACTION */Log_Action ( parPv_id, 'new_version', 3764,'New package version: '|| parPv_id || '.' );Split_Version ( parPv_id || '.', SSV_MM, SSV_NMM, SSV_EXT );-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable )SELECT parPv_id AS pv_id,pv.pkg_id AS pkg_id,parPv_id || '.' AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,3764 AS creator_id,Ora_Sysdatetime AS modified_stamp,3764 AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,112982 AS LAST_PV_ID,pv.owner_id,pv.BUILD_TYPE,pv.IS_BUILD_ENV_REQUIRED,pv.bs_id,pv.is_autobuildable,pv.IS_DEPLOYABLEFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = 112982;Basic_Clone ( 112982, parPv_id, NULL, 3764, 22325, 0 );END TEST_MARCO;/CREATE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */BEGIN-- Touch Release for RebuildUPDATE RELEASE_TAGS rt SETrt.REBUILD_ENV = 'Y',rt.REBUILD_STAMP = 0WHERE rt.RTAG_ID = nRtagId;COMMIT;END Touch_Release;/CREATE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );-- Touch Release for RebuildUPDATE RELEASE_TAGS rt SETrt.REBUILD_ENV = 'Y',rt.REBUILD_STAMP = 0WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Touch_Release_Bulk;/CREATE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS/******************************************************************************NAME: TO_INSERT_VTREE_IDPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 2/02/2007 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: TO_INSERT_VTREE_IDSysdate: 2/02/2007Date and Time: 2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/VTreeId NUMBER;CURSOR curInfo ISSELECT RTAG_IDFROM RELEASE_TAGSWHERE VTREE_ID IS NULL;recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPSELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;UPDATE RELEASE_TAGSSET VTREE_ID = VTreeIdWHERE RTAG_ID = recInfo.RTAG_ID;FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END TO_INSERT_VTREE_ID;/CREATE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,nUserId IN NUMBER) ISext VARCHAR2(50);PvIdList VARCHAR2(32767);nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();PvId NUMBER;sComments VARCHAR2(32767);BEGIN--Extract the package extensionSELECT V_EXT into extFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;--SELECT COMMENTS into sComments--FROM DEPRECATED_PACKAGES--WHERE RTAG_ID = nRtagId--AND V_EXT = ext--AND PKG_ID = nPkgId;--SELECT PV_ID into PvIdList FROM--RELEASE_CONTENT WHERE RTAG_ID = nRtagId--AND PKG_STATE = 6--AND PV_ID NOT IN nPvId;IF ext IS NOT NULL THEN-- Undeprecate PackageDELETE FROM DEPRECATED_PACKAGESWHERE RTAG_ID = nRtagIdAND PKG_ID = nPkgIdAND V_EXT = ext;UPDATE RELEASE_CONTENTSET PKG_ID = NULL, DEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PKG.PKG_ID = nPkgIdAND PV.V_EXT = extUNIONSELECT DISTINCTqry.PV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.DPV_ID IN ( nPvId )--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID);ELSE-- Undeprecate PackageDELETE FROM DEPRECATED_PACKAGESWHERE RTAG_ID = nRtagIdAND PKG_ID = nPkgIdAND V_EXT IS NULL;UPDATE RELEASE_CONTENTSET PKG_ID = NULL, DEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PV, PACKAGES PKGWHERE PKG.PKG_ID = PV.PKG_IDAND PKG.PKG_ID = nPkgIdAND PV.V_EXT IS NULLUNIONSELECT DISTINCTqry.PV_IDFROM (SELECT dep.*,LEVEL AS LEVEL_NUMFROM PACKAGE_DEPENDENCIES depSTART WITH dep.DPV_ID IN ( nPvId )--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID);END IF;--IF PvIdList IS NOT NULL THEN-- nIdCollector := IN_LIST_NUMBER ( PvIdList );-- FOR i IN 1..nIdCollector.COUNT-- LOOP-- PvId := nIdCollector(i);-- Deprecate_Package (nPvId, nRtagId, nPkgId, sComments, nUserId );-- END LOOP;--END IF;Rebuild_environment(nRtagId);END Undeprecate_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Author: Rupesh SolankiVersion: 4.0--------------------------------------------------------------------------- */STATE CHAR;BEGINSELECT DLOCKED INTO STATEFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;IF STATE = 'A' THEN --It was made official for autobuilds-- Unlock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'P'WHERE pv.PV_ID = nPvId;ELSE-- Unlock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'N'WHERE pv.PV_ID = nPvId;END IF;/* LOG ACTION */Log_Action ( nPvId, 'unlock_package', nUserId );END Unlock_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (sPvIdList IN VARCHAR2,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 4.1--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINIF (sPvIdList IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );-- UnRipple PackageINSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )SELECT nRtagId, pv.PV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN (SELECT *FROM TABLE (CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )));/* LOG ACTION */Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );END UnRipple_Package;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,pnPv_id IN NUMBER,psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,pnUser_id IN NUMBER,outErrCode OUT NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */newID NUMBER;/* Disallow duplicate Note Titles */CURSOR an_duplicate_cur ISSELECT COUNT(*) AS cnt_noteFROM ADDITIONAL_NOTESWHERE pv_id = pnPv_idAND note_id != pnNote_idAND note_title = psNote_title;an_duplicate_rec an_duplicate_cur%ROWTYPE;BEGINoutErrCode := -1; -- Set default return error code to ERROR stateOPEN an_duplicate_cur;FETCH an_duplicate_cur INTO an_duplicate_rec;IF an_duplicate_rec.cnt_note < 1THEN--- Update Additional Note ---UPDATE ADDITIONAL_NOTES SETnote_title = psNote_title,note_body = psNote_body,mod_date = Ora_Sysdate,mod_user = pnUser_idWHERE note_id = pnNote_idAND pv_id = pnPv_id;outErrCode := 0; -- Set return to SUCCESSEND IF;CLOSE an_duplicate_cur;END Update_Additional_Note;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) ASrecno NUMBER;CURSOR deprecate_cur ISSELECT rc.pv_idFROM release_content rcWHERE rtag_id = nnrtag_idAND deprecated_state IN(7);deprecate_rec deprecate_cur % rowtype;BEGINOPEN deprecate_cur;FETCH deprecate_curINTO deprecate_rec;WHILE deprecate_cur % FOUNDLOOPSELECT COUNT(*)INTO recnoFROM package_dependencies pd,release_content rcWHERE pd.pv_id = deprecate_rec.pv_idAND rc.pv_id = pd.dpv_idAND rc.rtag_id = nnrtag_idAND rc.deprecated_state IN(6, 7);IF recno = 0 THENUPDATE release_contentSET pkg_id = NULL, deprecated_state = NULLWHERE pv_id = deprecate_rec.pv_idAND rtag_id = nnrtag_id;END IF;FETCH deprecate_curINTO deprecate_rec;END LOOP;END;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS/******************************************************************************NAME: UPDATE_MISC_VIEWPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 16/03/2007 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: UPDATE_MISC_VIEWSysdate: 16/03/2007Date and Time: 16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR view_cur /*Create a record set to store the ripple data*/ISSELECT pkg.pkg_id, rc.base_view_idFROM package_versions pv, packages pkg, release_content rcwhere rc.rtag_id = 2362and rc.pv_id = pv.pv_idand pv.pkg_id = pkg.pkg_id;view_rec view_cur%ROWTYPE;BEGINOPEN view_cur;FETCH view_curINTO view_rec;WHILE view_cur%FOUNDLOOPupdate release_contentset base_view_id = view_rec.base_view_idwhere rtag_id = 8027and pv_id IN(select pv.pv_id from release_content rc, package_versions pvwhere rc.rtag_id = 8027and pv.pv_id = rc.pv_idand pv.pkg_id = view_rec.pkg_id);FETCH view_curINTO view_rec;END LOOP;END UPDATE_MISC_VIEW; /CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,SSdep_name IN PACKAGES.pkg_name%TYPE,SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,NNuser_id IN NUMBER,NNdelete_old_dependency IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.3--------------------------------------------------------------------------- */retPV_ID NUMBER;SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;DepIsPatch PACKAGE_VERSIONS.is_patch%TYPE;PvIsPatch PACKAGE_VERSIONS.is_patch%TYPE;NNpkg_id NUMBER;NNdpkg_id NUMBER;BEGIN--- Seed database with package_name and version if required ---Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );-- get v_ext,pkg_id of current dependencySELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatchFROM PACKAGE_VERSIONSWHERE pv_id = retPV_ID;-- get pkg_id of parent packageSELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatchFROM PACKAGE_VERSIONSWHERE pv_id = NNpv_id;IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR( (PvIsPatch IS NOT NULL) )THENIF NNdelete_old_dependency = 1 THEN/* Used for CUSTOM dependency add/edit */--- Remove old dependency ---IF (PvIsPatch IS NULL) THEN-- Do it for PackagesDELETE FROM PACKAGE_DEPENDENCIESWHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN(SELECT dep.*FROM PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS dpv,PACKAGE_VERSIONS pvWHERE dep.dpv_id = dpv.pv_idAND dep.pv_id = NNpv_idAND pv.pv_id = retPV_IDAND dpv.pkg_id = pv.pkg_idAND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|'));ELSE-- Do it for PatchesDELETE FROM PACKAGE_DEPENDENCIESWHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN(SELECT dep.*FROM PACKAGE_DEPENDENCIES depWHERE dep.dpv_id = retPV_IDAND dep.pv_id = NNpv_id);END IF;END IF;/* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */--- Add new dependency ---INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );END IF;END Update_Package_Dependency;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,NNsession_num IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- *//* ============= STATE RULES =================== *//*MNR MRR MN MR | pkg_state------------------------------------0 0 0 0 | OK0 0 0 1 | MAJOR0 0 1 0 | MINOR0 0 1 1 | MAJOR------------------------------------0 1 0 0 | MAJOR_READY0 1 0 1 | MAJOR0 1 1 0 | MAJOR0 1 1 1 | MAJOR------------------------------------1 0 0 0 | MINOR_READY1 0 0 1 | MAJOR1 0 1 0 | MINOR1 0 1 1 | MAJOR------------------------------------1 1 0 0 | MAJOR_READY1 1 0 1 | MAJOR1 1 1 0 | MAJOR1 1 1 1 | MAJOR------------------------------------*/BEGIN/*----------------------------------------------|| MINOR READY*/----------------------------------------------UPDATE release_contentSET pkg_state = 4WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num = 1AND tes_state = 2);/*----------------------------------------------|| MAJOR READY*/----------------------------------------------UPDATE release_contentSET pkg_state = 3WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num = 1AND tes_state IN (0,1));/*----------------------------------------------|| MINOR*/----------------------------------------------UPDATE release_contentSET pkg_state = 2WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num >= 2AND tes_state = 2MINUSSELECT pv_idFROM release_contentWHERE rtag_id = NNrtag_idAND pkg_state = 3);/*----------------------------------------------|| MAJOR*/----------------------------------------------UPDATE release_contentSET pkg_state = 1WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num >= 2AND tes_state IN (0,1)/* MAJOR EXCEPTION - When package has Major Ready and Minor */UNIONSELECT DISTINCT tes.pv_idFROM temp_env_states tes,release_content rcWHERE tes.session_num = NNsession_numAND tes.level_num >= 2AND tes.tes_state = 2AND rtag_id = NNrtag_idAND rc.pv_id = tes.pv_idAND rc.pkg_state = 3);/*----------------------------------------------|| OK*/----------------------------------------------UPDATE release_contentSET pkg_state = 0WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT rc.pv_idFROM release_content rcWHERE rc.rtag_id = NNrtag_idAND NOT rc.pv_id IN(SELECT DISTINCT pv_idFROM temp_env_states WHERE session_num = NNsession_num));/*----------------------------------------------|| ADVISORY RIPPLE - NEW STUFF*/----------------------------------------------/* UPDATE release_contentSET pkg_state = 8WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num = 1AND tes_state = 3); *//*----------------------------------------------|| ADVISORY RIPPLE DEPENDANT*/----------------------------------------------/* UPDATE release_contentSET pkg_state = 9WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num >= 2AND tes_state = 3); */Update_Deprecation_State (NNrtag_id);END Update_Package_States;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect proc_id, proc_name, run_as, pkg_owner, is_interface from processes;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPupdate deployment_manager.processes_configset proc_id = ripple_rec.proc_idwhere pkg_health_tag = ripple_rec.proc_nameand cmd_interface IS NULLand pkg_owner IS NULLand is_interface IS NULL;FETCH ripple_curINTO ripple_rec;END LOOP;END UPDATE_PROCESSES;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,NNuser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */retRTD_ID NUMBER;CURSOR rtd_cur ISSELECT pv.pkg_version, pkg.pkg_nameFROM runtime_dependencies rtd,package_versions pv,packages pkgWHERE rtd.rtd_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rtd.pv_id = NNpv_idAND rtd.rtd_id = NNrtd_id;rtd_rec rtd_cur%ROWTYPE;CURSOR old_rtd_cur ISSELECT pv.pv_idFROM package_versions pvWHERE pv.pkg_id IN ( SELECT rtdpv.pkg_idFROM package_versions rtdpvWHERE rtdpv.pv_id = NNrtd_id )AND pv.pkg_version = SSrtd_version;old_rtd_rec old_rtd_cur%ROWTYPE;BEGIN-- Get current runtime dependency detailsOPEN rtd_cur;FETCH rtd_cur INTO rtd_rec;IF rtd_rec.pkg_version != SSrtd_version THEN-- Version has changed, hence create new runtime dependency --/* NOTE: You must create new version as updating just a version will affectall packages using this runtime dependency and user does not expect that.It is safer to create new version */OPEN old_rtd_cur;FETCH old_rtd_cur INTO old_rtd_rec;IF old_rtd_cur%NOTFOUNDTHEN-- Version not found, hence Create New version --Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );-- Update runtime dependency table --UPDATE runtime_dependencies SETrtd_id = retRTD_ID,rtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;ELSE-- Update runtime dependency table --UPDATE runtime_dependencies SETrtd_id = old_rtd_rec.pv_id,rtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;END IF;CLOSE old_rtd_cur;ELSE-- Version has not changed, hence update everithing except version --UPDATE runtime_dependencies SETrtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;END IF;CLOSE rtd_cur;END Update_Runtime_Dependency;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,nPv_id IN NUMBER,nUserId IN NUMBER,sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,sCompletion_date IN VARCHAR2,sDpkg_path IN VARCHAR2,enumTEST_TYPE_AUTOMATIC IN NUMBER,sResults IN VARCHAR2,outFileName OUT VARCHAR2) IS/* ---------------------------------------------------------------------------Version: 3.1.0--------------------------------------------------------------------------- */FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;BEGINIF nTestTypeId = enumTEST_TYPE_AUTOMATIC THENResultsURL := sResults;ELSEIF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;ResultsAttachment := sDpkg_path || '/' || outFileName;END IF;END IF;--- Update Unit Test ---UPDATE UNIT_TESTS SETTEST_SUMMARY = sTest_summary,NUMOF_TEST = sNumof_test,COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),COMPLETED_BY = nUserId,RESULTS_URL = ResultsURL,RESULTS_ATTACHMENT_NAME = ResultsAttachmentWHERE TEST_ID = nTest_idAND PV_ID = nPv_id;END Update_Unit_Test;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,pnPv_id IN NUMBER,sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,sAcceptanceDate IN VARCHAR2,sAcceptedBy IN NUMBER,sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,cUpdateAcceptedStateOnly IN CHAR) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINIF cUpdateAcceptedStateOnly = 'Y'THEN--- Update Accepted State Only ---IF ( sAccepted IS NULL )THEN-- Clear alleptanceUPDATE UNIT_TESTS SETTEST_ACCEPTED = NULL,ACCEPTANCE_DATE = NULL,ACCEPTED_BY = NULL,REVIEW_COMMENTS = NULLWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;ELSEUPDATE UNIT_TESTS SETTEST_ACCEPTED = sAccepted,ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),ACCEPTED_BY = sAcceptedByWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;END IF;ELSE--- Update Unit Test Acceptance ---UPDATE UNIT_TESTS SETTEST_ACCEPTED = sAccepted,REVIEW_COMMENTS = sReviewComments,ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),ACCEPTED_BY = sAcceptedByWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;END IF;END Update_Unit_Test_Acceptance;/CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_TEST" ( nTest_id IN NUMBER,nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,nPv_id IN NUMBER,nUserId IN NUMBER,sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,sCompletion_date IN VARCHAR2,sDpkg_path IN VARCHAR2,enumTEST_TYPE_AUTOMATIC IN NUMBER,sResults IN VARCHAR2,outFileName OUT VARCHAR2) IS/* ---------------------------------------------------------------------------Version: 3.1.0--------------------------------------------------------------------------- */FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;BEGINIF nTestTypeId = enumTEST_TYPE_AUTOMATIC THENResultsURL := sResults;ELSEIF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;ResultsAttachment := sDpkg_path || '/' || outFileName;END IF;END IF;/* IF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || newID ||'_'|| sResults;sResults_url:= 'doc' || '/' ||;END IF;*/--- Update Unit Test ---UPDATE UNIT_TESTS SETTEST_SUMMARY = sTest_summary,NUMOF_TEST = sNumof_test,COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),COMPLETED_BY = nUserId,RESULTS_URL = ResultsURL,RESULTS_ATTACHMENT_NAME = ResultsAttachmentWHERE TEST_ID = nTest_idAND PV_ID = nPv_id;END Update_Unit_Test_Test;/-- new object type path is: SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPECALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-01 16:39:47'/ALTER PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-18 12:29:42'/ALTER PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT_TEST"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-30 11:02:00'/ALTER PACKAGE "RELEASE_MANAGER"."PK_PACKAGE_TEST"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:27'/ALTER PACKAGE "RELEASE_MANAGER"."RM_ISSUES"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-03-10 14:39:00'/ALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI_TEST"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-11-24 14:53:11'/ALTER PACKAGE "RELEASE_MANAGER"."PK_PROJECT"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-23 16:12:34'/ALTER PACKAGE "RELEASE_MANAGER"."PK_RELEASE_TEST"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-03-28 08:59:35'/ALTER PACKAGE "RELEASE_MANAGER"."PK_RMAPI"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-09 14:47:07'/ALTER PACKAGE "RELEASE_MANAGER"."PK_RMAPI_TEST"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-01 09:25:39'/ALTER PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-04-11 16:21:22'/ALTER PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-01 16:39:53'/ALTER PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-09-07 12:23:44'/ALTER PACKAGE "RELEASE_MANAGER"."PK_PLANNED"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-10-11 10:18:44'/ALTER PACKAGE "RELEASE_MANAGER"."PK_RELEASE"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-04-11 13:14:35'/ALTER PACKAGE "RELEASE_MANAGER"."PK_PACKAGE"COMPILE SPECIFICATIONPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-04-11 12:58:32'/-- new object type path is: SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTIONALTER FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-12-18 09:42:17'/ALTER FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2005-07-13 10:50:12'/ALTER FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2005-07-13 10:50:12'/ALTER FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2005-07-13 10:50:12'/ALTER FUNCTION "RELEASE_MANAGER"."GET_V_EXT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:42'/ALTER FUNCTION "RELEASE_MANAGER"."DT_ADDUSEROBJECT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-02-01 09:57:30'/ALTER FUNCTION "RELEASE_MANAGER"."PERL_DBD_TESTFUNC"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2004-10-15 22:30:52'/ALTER FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:42'/ALTER FUNCTION "RELEASE_MANAGER"."IS_NUMBER"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-12 19:43:52'/ALTER FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-12 20:10:35'/ALTER FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-13 13:12:28'/ALTER FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2005-06-01 12:30:02'/ALTER FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:38'/ALTER FUNCTION "RELEASE_MANAGER"."RELEASE_MODE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-01 09:04:40'/ALTER FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:42'/-- new object type path is: SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDUREALTER PROCEDURE "RELEASE_MANAGER"."TEST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-09-25 08:38:24'/ALTER PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-05-25 14:57:25'/ALTER PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:27'/ALTER PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-11-01 13:35:34'/ALTER PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:31'/ALTER PROCEDURE "RELEASE_MANAGER"."BUILD_TREE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-19 14:59:44'/ALTER PROCEDURE "RELEASE_MANAGER"."LOG_ACTION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:39'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-19 16:18:20'/ALTER PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:42'/ALTER PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-01 16:40:34'/ALTER PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-20 16:18:28'/ALTER PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-07-13 11:01:22'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-03-29 15:50:37'/ALTER PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-20 16:18:11'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-20 16:17:01'/ALTER PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:45'/ALTER PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-01 16:40:34'/ALTER PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:42'/ALTER PROCEDURE "RELEASE_MANAGER"."NEW_VERSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:33'/ALTER PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-06-09 09:42:59'/ALTER PROCEDURE "RELEASE_MANAGER"."NEW_PATCH"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:23'/ALTER PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-03-01 12:04:59'/ALTER PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:23'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-19 15:01:50'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-07-13 11:01:53'/ALTER PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:23'/ALTER PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-01 09:04:38'/ALTER PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-01-25 10:48:17'/ALTER PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:23'/ALTER PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-07-03 14:09:33'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-06-09 09:19:13'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-07-18 13:38:34'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-19 16:18:21'/ALTER PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:44:43'/ALTER PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-01 09:04:39'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:24'/ALTER PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-06-02 08:43:39'/ALTER PROCEDURE "RELEASE_MANAGER"."TEST_MARCO"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:35'/ALTER PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:31'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-11-01 13:39:48'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-04-21 15:36:25'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-04-11 10:01:25'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-04-11 15:25:47'/ALTER PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-02 08:48:49'/ALTER PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:31'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST_TEST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-29 16:25:20'/ALTER PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-29 08:55:37'/ALTER PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:45:53'/ALTER PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-26 10:29:42'/ALTER PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-26 10:29:21'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-01-25 09:10:33'/ALTER PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-02-10 09:12:31'/ALTER PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS2"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 10:55:58'/ALTER PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-09-25 08:38:26'/ALTER PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-09-25 08:38:26'/ALTER PROCEDURE "RELEASE_MANAGER"."OLE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:35'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-09-25 08:38:26'/ALTER PROCEDURE "RELEASE_MANAGER"."PENDING_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:27'/ALTER PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:28'/ALTER PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:35'/ALTER PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-21 09:15:13'/ALTER PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_TEST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2006-07-18 12:51:44'/ALTER PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-01 09:04:39'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-29 16:25:20'/ALTER PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-29 16:25:20'/ALTER PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-02-01 09:57:31'/ALTER PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:36'/ALTER PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2005-03-29 15:50:37'/ALTER PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-01-25 13:34:37'/ALTER PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-06-15 13:52:26'/ALTER PROCEDURE "RELEASE_MANAGER"."RELEASE_MANAGER_MAILOUT"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:38'/ALTER PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-08-29 09:26:48'/ALTER PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE"COMPILEPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2007-08-29 09:26:24'/-- new object type path is: SCHEMA_EXPORT/VIEW/VIEWCREATE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") ASSELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL;CREATE FORCE VIEW "RELEASE_MANAGER"."ENVIRONMENT_VIEW" ("ENV_AREA", "PV_ID", "RTAG_ID", "VIEW_ID", "PKG_STATE", "DEPRECATED_STATE", "INSERTOR_ID", "INSERT_STAMP") ASSELECT 2 AS ENV_AREA,rc.PV_ID,rc.RTAG_ID,rc.BASE_VIEW_ID AS VIEW_ID,rc.PKG_STATE,rc.DEPRECATED_STATE,rc.INSERTOR_ID,rc.INSERT_STAMPFROM RELEASE_CONTENT rcUNIONSELECT 0 AS ENV_AREA,wip.PV_ID,wip.RTAG_ID,wip.VIEW_ID,NULL AS PKG_STATE,NULL AS DEPRECATED_STATE,NULL AS INSERTOR_ID,NULL AS INSERT_STAMPFROM WORK_IN_PROGRESS wipUNIONSELECT 1 AS ENV_AREA,pl.PV_ID,pl.RTAG_ID,pl.VIEW_ID,NULL AS PKG_STATE,NULL AS DEPRECATED_STATE,NULL AS INSERTOR_ID,NULL AS INSERT_STAMPFROM PLANNED pl;-- new object type path is: SCHEMA_EXPORT/PACKAGE/PACKAGE_BODYCREATE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 12/Sep/2005|| Body Version: 3.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER ) ISRtagId NUMBER;ParentRtagId NUMBER;RecCount NUMBER := 0;VtreeId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );END IF;-- Check for duplicate Release NamesSELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.PROJ_ID = nProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Get rtag_idSELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;-- Get Parent RtagIdParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );-- Create new releaseINSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,OFFICIAL, REBUILD_ENV, REBUILD_STAMP,PARENT_RTAG_ID, PROJ_ID, VTREE_ID )VALUES ( RtagId,sReleaseName,sReleaseComments,ORA_SYSDATE,nUserId,'N','N',0,ParentRtagId,nProjId,VtreeId );-- Update display OrderUPDATE_DISPLAY_ORDER ( nProjId );/* Log Project Action */Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );-- Import Release ContentsIF (NOT nSourceRtagId IS NULL) THENImport_Release_Contents ( nSourceRtagId, RtagId, nUserId );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/UPDATE RELEASE_TAGS urt SETurt.DISPLAY_ORDER = (SELECT qry.REC_NUMFROM (SELECT rel.*, ROWNUM AS REC_NUMFROM (SELECT rt.RTAG_ID,rt.DISPLAY_ORDER,DECODE( rt.PARENT_RTAG_ID,rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_IDFROM RELEASE_TAGS rtWHERE rt.PROJ_ID = nProjId) relSTART WITH rel.PARENT_RTAG_ID = 0CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_IDORDER SIBLINGS BY rel.DISPLAY_ORDER) qryWHERE qry.RTAG_ID = urt.RTAG_ID)WHERE urt.PROJ_ID = nProjId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER ) ISnIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();SeqNum NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/nIdCollector := IN_LIST_NUMBER ( sRtagIdList );-- Set start sequence numberSeqNum := 1;FOR i IN 1..nIdCollector.COUNTLOOP-- Update new display orderUPDATE RELEASE_TAGS rt SETrt.DISPLAY_ORDER = SeqNumWHERE rt.PROJ_ID = nProjIdAND rt.RTAG_ID = nIdCollector(i);SeqNum := SeqNum + 1;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, sOwnerEmail IN VARCHAR2, nUserId IN NUMBER, cState IN VARCHAR ) ISRecCount NUMBER := 0;ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);END IF;-- Check for duplicate Release NamesSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;SELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.RTAG_ID != nRtagIdAND rt.PROJ_ID = ProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Update release detailsUPDATE RELEASE_TAGS rt SETrt.RTAG_NAME = sReleaseName,rt.DESCRIPTION = sReleaseComments,rt.PARENT_RTAG_ID = nParentRtagId,rt.ASSOC_MASS_REF = nMASSRtagId,rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,rt.OWNER_EMAIL = sOwnerEmail,rt.PRODUCT_STATE_USED = cStateWHERE rt.RTAG_ID = nRtagId;-- Update display OrderUPDATE_DISPLAY_ORDER ( ProjId );/* Log Project Action */Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER := 0;sReleaseId VARCHAR2(4000);ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check for any kidsSELECT COUNT( rt.RTAG_ID ) INTO RecCountFROM RELEASE_TAGS rtWHERE rt.PARENT_RTAG_ID = nRtagIdAND rt.RTAG_ID != rt.PARENT_RTAG_ID;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.' );END IF;/*-------------------------------------------------------*/-- Clear the release contentsClean_Release_Contents ( nRtagId, nUserId );/* Log Project Action */SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );-- Remove ReleaseDELETEFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER ) ISsSourceLocation VARCHAR2(4000);sTargetLocation VARCHAR2(4000);ProjId NUMBER;cReleaseMode CHAR(1);RconId NUMBER;CURSOR curReleaseConfigs ISSELECT *FROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nSourceRtagId;recReleaseConfigs curReleaseConfigs%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );END IF;IF (nSourceRtagId = nTargetRtagId) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );END IF;-- Check if Target release is in OPEN modeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;IF (cReleaseMode != 'N')THENRAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );END IF;/*-------------------------------------------------------*/-- Clean target contentsClean_Release_Contents ( nTargetRtagId, nUserId );-- Import Released Area ContentsINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, PKG_ID, DEPRECATED_STATE )SELECT nTargetRtagId AS RTAG_ID,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATE,rc.PKG_ID,rc.DEPRECATED_STATEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nSourceRtagId;--Import Release Configuration InformationOPEN curReleaseConfigs;FETCH curReleaseConfigs INTO recReleaseConfigs;WHILE curReleaseConfigs%FOUNDLOOP-- Get the next rcon idSELECT SEQ_RCON_ID.NEXTVAL INTO RconId FROM DUAL;INSERT INTO RELEASE_CONFIG ( RCON_ID, RTAG_ID, GBE_ID, DAEMON_HOSTNAME, DAEMON_MODE, GBE_BUILDFILTER )VALUES ( RconId, nTargetRtagId, recReleaseConfigs.gbe_id, recReleaseConfigs.daemon_hostname, recReleaseConfigs.daemon_mode, recReleaseConfigs.gbe_buildfilter );FETCH curReleaseConfigs INTO recReleaseConfigs;END LOOP;CLOSE curReleaseConfigs;-- Import Ignore Warning statesINSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )SELECT nTargetRtagId AS RTAG_ID,igw.PV_ID,igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.rtag_id = nSourceRtagId;/* Log Project Action */-- Get Source LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sSourceLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nSourceRtagId;-- Get Target LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sTargetLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nTargetRtagId;-- Get project idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||' TARGET: '|| sTargetLocation, nTargetRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER;rconIdList VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check if other release references this releaseSELECT COUNT( rl.RTAG_ID ) INTO RecCountFROM RELEASE_LINKS rlWHERE rl.REF_RTAG_ID = nRtagId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.' );END IF;/*-------------------------------------------------------*/-- Delete Release linksDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;-- Delete ignore warningDELETEFROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagId;-- Delete Build Order cached calculationsDELETEFROM BUILD_ORDER boWHERE bo.RTAG_ID = nRtagId;-- Delete Notification HistoryDELETEFROM NOTIFICATION_HISTORY nhWHERE nh.RTAG_ID = nRtagId;-- Delete Released Area ContentsDELETEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagId;-- Delete Work In Progress Area ContentsDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = nRtagId;-- Delete Pending Area ContentsDELETEFROM PLANNED plWHERE pl.RTAG_ID = nRtagId;-- Delete Deprecated Packages (Added By Rupesh Solanki 29/06/2006)DELETEFROM DEPRECATED_PACKAGES dpWHERE dp.RTAG_ID = nRtagId;-- Delete Project Action Log (Added By Rupesh Solanki 29/06/2006)DELETEFROM PROJECT_ACTION_LOG palWHERE pal.RTAG_ID = nRtagId;-- Delete Do Not Ripple Contents (Added By Rupesh Solanki 29/06/2006)DELETEFROM DO_NOT_RIPPLE dnrWHERE dnr.RTAG_ID = nRtagId;-- Delete Dash Board Contents (Added By Rupesh Solanki 16/02/2007)DELETEFROM DASH_BOARD dbWHERE db.RTAG_ID = nRtagId;-- Delete Daemons For This Release (Added By Jeremy Tweddle 28/03/2008)FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )LOOPrconIdList := rconIdList || rcon.RCON_ID || ',';END LOOP;pk_buildapi.DELETE_DAEMON(rconIdList);-- Delete Release Metrics Contents (Added By Jeremy Tweddle 28/03/2008)DELETEFROM RELEASE_METRICS rmWHERE rm.RTAG_ID = nRtagId;-- Delete Release Configuration Contents ( Added By Rupesh Solanki 10/04/2007)DELETEFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER ISnSourceParentRtagId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL) OR (cIsBranch IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );END IF;/*-------------------------------------------------------*/IF ( nSourceRtagId IS NULL ) THEN-- Create new on main branchRETURN nRtagId;ELSE-- Create from source rtag_id-- Find parent of Source RtagIdSELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nSourceRtagId;IF (UPPER(cIsBranch) = 'Y') THENRETURN nSourceRtagId;ELSEIF (nSourceRtagId = nSourceParentRtagId) THENRETURN nRtagId;ELSERETURN nSourceParentRtagId;END IF;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,-- sNextVersion OUT VARCHAR2,-- nNextLifeCycle OUT NUMBER,-- nParentRtagId OUT NUMBER,-- nProjId IN NUMBER ) IS---- SourceBranchCount NUMBER;-- ProjRootVersion VARCHAR2(4000);-- LastLifeCycle NUMBER;-- ROOT_VERSION_NOT_FOUND NUMBER := -1;-- SET_PARENT_AS_YOURSELF NUMBER := -1;---- SourceProjId NUMBER;-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;---- BEGIN-- /*--------------- Business Rules Here -------------------*/-- /*-------------------------------------------------------*/------ BEGIN-- -- Get Project root version-- SELECT rt.RTAG_VERSION INTO ProjRootVersion-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_ID = rt.PARENT_RTAG_ID;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- ProjRootVersion := ROOT_VERSION_NOT_FOUND;-- END;---------- BEGIN-- -- Get info for source rtagid-- SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE INTO SourceProjId, SourceVersion, SourceLifeCycle-- FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = nSourceRtagId;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- SourceProjId := NULL;-- SourceVersion := NULL;-- SourceLifeCycle := NULL;-- END;------ IF (nSourceRtagId IS NULL) OR ( SourceProjId != nProjId ) THEN---- /* Blank Release Required OR Release imported from other project */---- IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN-- /* No Releases found in the project, hence calculate next version available. */---- -- Set parent rtag-- nParentRtagId := SET_PARENT_AS_YOURSELF;------ BEGIN-- -- Get Next Available Global Root Version-- SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) ) INTO ProjRootVersion--FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;---- -- Set Next Rtag Version-- sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );---- -- Restart Lifecycle-- nNextLifeCycle := 0;------ EXCEPTION-- WHEN NO_DATA_FOUND THEN-- -- Release Manager has no releases, hence start from 1-- sNextVersion := '1';-- nNextLifeCycle := 0;---- END;-------- ELSE-- /* Releases found in this project. */---- SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE INTO nParentRtagId, LastLifeCycle-- FROM (-- SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_VERSION = ProjRootVersion-- ORDER BY rt.RTAG_LIFE_CYCLE DESC-- ) qry-- WHERE ROWNUM = 1;------ -- Set same Rtag Version-- sNextVersion := ProjRootVersion;---- -- Increase Lifecycle-- nNextLifeCycle := LastLifeCycle + 1;---- END IF;-------- ELSE-- /* Create Release From other release within this project */---- -- Set parent id-- nParentRtagId := nSourceRtagId;------ -- Get number of source branches-- SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.PARENT_RTAG_ID = nSourceRtagId;------ IF SourceBranchCount = 0 THEN-- /* Release is Head (i.e. Tip on its branch ) */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion;---- -- Increase Lifecycle-- nNextLifeCycle := SourceLifeCycle + 1;------ ELSIF SourceBranchCount = 1 THEN-- /* Release IS NOT Head, but can be branched */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;---- -- Reset Lifecycle to 1-- nNextLifeCycle := 1;------ ELSE-- -- Limit of two branches is reached-- RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');---- END IF;-------------- END IF;------ END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView = 'Y') THEN-- Get Base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,rel.deprecated_state,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.BASE_VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,rel.deprecated_state,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);sPkgVersion VARCHAR2(4000);nPkgId NUMBER;sVExt VARCHAR2(4000);IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';-- Find package for replacementCURSOR curReplacePkg ISSELECT pv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.PV_ID = pv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PKG_ID = nPkgIdAND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );recReplacePkg curReplacePkg%ROWTYPE;BEGIN-- Get is_patch, pkg_id and v_extSELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT INTO IsPatch, nPkgId, sVExtFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;-- Never put patch in relesed areaIF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN-- Try to get a package to be replaced with this new one.-- Use unique constraint of PKG_ID and V_EXTOPEN curReplacePkg;FETCH curReplacePkg INTO recReplacePkg;IF curReplacePkg%FOUND THEN-- Replace packageREPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );ELSE-- Add new packageINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;SELECT pv.PKG_VERSION INTO sPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curReplacePkg;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);sPkgVersion VARCHAR2(4000);BEGIN-- Replace PackageUPDATE RELEASE_CONTENTSET pv_id = newPvId,insert_stamp = Ora_Sysdate,insertor_id = UserId,product_state = NULLWHERE rtag_id = RtagIdAND pv_id = oldPvId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;SELECT pv.PKG_VERSION INTO sPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);CURSOR curMatchingPackage ISSELECT mpv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS mpv,PACKAGE_VERSIONS pvWHERE rc.PV_ID = mpv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PV_ID = PvIdAND pv.PKG_ID = mpv.PKG_IDAND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );recMatchingPackage curMatchingPackage%ROWTYPE;BEGINOPEN curMatchingPackage;FETCH curMatchingPackage INTO recMatchingPackage;IF curMatchingPackage%FOUND THEN-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = recMatchingPackage.PV_IDAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTOReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curMatchingPackage;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT rc.BASE_VIEW_ID INTO ReturnValueFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = RtagIdAND rc.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) ISBEGIN-- Reset Ignore warnings up-the-treeRESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );-- Refresh Package statesTOUCH_RELEASE ( RtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) ISCURSOR curReleases ISSELECT rc.RTAG_IDFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvId;recReleases curReleases%ROWTYPE;BEGINOPEN curReleases;FETCH curReleases INTO recReleases;WHILE curReleases%FOUNDLOOPRUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );FETCH curReleases INTO recReleases;END LOOP;CLOSE curReleases;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE RELEASE_CONTENT rc SETrc.BASE_VIEW_ID = NewViewIdWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) ISRowCount NUMBER;CURSOR curPackageClash ISSELECT pkg.PKG_NAME,er.*FROM (/* Get existing referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_LINKS rl,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = rc.RTAG_IDAND rc.PV_ID = pv.PV_ID) er,(/* Get current reference packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,PACKAGES PKGWHERE er.PKG_ID = cr.PKG_IDAND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND er.PKG_ID = pkg.PKG_ID;recPackageClash curPackageClash%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/ProblemString := NULL;-- Check if release already has referencesSELECT COUNT(rl.RTAG_ID) INTO RowCountFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;IF RowCount > 0 THEN-- Found existing references-- Make sure there is no package clashesOPEN curPackageClash;FETCH curPackageClash INTO recPackageClash;IF curPackageClash%FOUND THENProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| UTL_TCP.CRLF;WHILE curPackageClash%FOUNDLOOPEXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || UTL_TCP.CRLF ) > 200; -- Do not allow variable overflowProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || UTL_TCP.CRLF;FETCH curPackageClash INTO recPackageClash;END LOOP;END IF;CLOSE curPackageClash;ELSE-- No references found, hence reference a release-- Remove exising package from this release to be referencedREMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);-- Add new linked packages to releaseINSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)SELECT nRtagId,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRefRtagId;-- Copy ignore warnings for referenced packagesINSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)SELECT nRtagId,iw.PV_ID,iw.DPV_ID,iw.IS_PATCH_IGNOREFROM IGNORE_WARNINGS iw,RELEASE_CONTENT rcWHERE iw.RTAG_ID = rc.RTAG_IDAND iw.PV_ID = rc.PV_IDAND rc.RTAG_ID = nRefRtagId;-- Reference releaseINSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)VALUES ( nRtagId, nRefRtagId );-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/-- Remove ignore warnings for those packages who use referenced packagesDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.DPV_ID IN (SELECT dep.DPV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,(/* Get all dependencies for current release */SELECT DISTINCTpv.PKG_ID,pv.V_EXT,dep.DPV_IDFROM RELEASE_CONTENT rc,PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = dep.PV_IDAND dep.PV_ID = pv.PV_ID) depWHERE dep.PKG_ID = cr.PKG_IDAND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|'));-- Remove ignore warnings for those package which are going to be replaced with the referenceDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove matching packages from releaseDELETE FROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove Reference releaseDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = nRefRtagId;-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IScReleaseMode CHAR(1);cPvMode CHAR(1);BEGIN-- Get Release ModeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = RtagId;-- Get Package ModeSELECT pv.DLOCKED INTO cPvModeFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = PvId;-- Only check if package is lockedIF (cPvMode = 'Y') THENIF (cReleaseMode != 'N') AND (Permission != 'Y')THENRAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/END PK_RELEASE;/ALTER PACKAGE "RELEASE_MANAGER"."PK_RELEASE"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-01 16:40:32'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 2/May/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISoldPvId NUMBER;ReleaseLocation VARCHAR2(4000);sLocation VARCHAR2(4000) := NULL;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/BEGIN-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releasesSELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME INTO sLocationFROM WORK_IN_PROGRESS wip,RELEASE_TAGS rt,PROJECTS projWHERE wip.PV_ID = newPvIdAND wip.RTAG_ID = rt.RTAG_IDAND rt.OFFICIAL != 'Y'AND rt.PROJ_ID = proj.PROJ_ID;EXCEPTIONWHEN NO_DATA_FOUND THENsLocation := NULL;END;IF (sLocation IS NULL) THEN-- Add to "Work in progress"INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )VALUES( RtagId, newPvId, ViewId );/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );ELSERAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;-- Delete from Work In ProgressDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) ISnIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();ReleaseLocation VARCHAR2(4000);PvId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (PvIdList IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;/*-------------------------------------------------------*/nIdCollector := IN_LIST_NUMBER ( PvIdList );-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;FOR i IN 1..nIdCollector.COUNTLOOPPvId := nIdCollector(i);-- Delete from Work In ProgressDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT wip.VIEW_ID INTO ReturnValueFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView = 'Y') THEN-- Get Base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM WORK_IN_PROGRESS rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM WORK_IN_PROGRESS rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE WORK_IN_PROGRESS wip SETwip.VIEW_ID = NewViewIdWHERE wip.PV_ID = PvIdAND wip.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/END PK_WORK_IN_PROGRESS;/ALTER PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-23 16:23:51'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 14/Dec/2007|| Body Version: 3.1------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_product_component (npvid IN NUMBER,sosname IN VARCHAR2,sorigfilepath IN VARCHAR2,sfilename IN VARCHAR2,sdestfilepath IN VARCHAR2,nbytesize IN NUMBER,scrccksum IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- OS Name Requirements --IF (sosname IS NULL)THENraise_application_error (-20000, 'OsName cannot be NULL.');END IF;-- File Requirements --IF (NOT sfilename IS NULL)THENIF (nbytesize IS NULL)THENraise_application_error (-20000, 'Byte Size cannot be NULL.');ELSIF (scrccksum IS NULL)THENraise_application_error (-20000, 'CRC CKSUM cannot be NULL.');END IF;END IF;-- Folder Requirements ---- No requirements for now./*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Insert component entryINSERT INTO product_components(pv_id, os_id, file_path, file_name, destination_path,byte_size, crc_cksum)VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,nbytesize, scrccksum);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Cannot have duplicate product components.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_all_product_components (npvid IN NUMBER,sosname IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Delete component entryDELETE FROM product_components pcWHERE pc.pv_id = npvid AND pc.os_id = nosid;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_osid (sosname IN VARCHAR2)RETURN NUMBERIScode NUMBER;BEGIN-- Get Platform Code --SELECT pf.codeINTO codeFROM platforms pfWHERE UPPER (pf.NAME) = UPPER (sosname);RETURN code;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Platform '|| sosname|| ' is not valid. It needs to be added to PLATFORMS table in Release Manager.');RAISE;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_build_service (sdatabaseserver IN VARCHAR2,swebserver IN VARCHAR2,smailserver IN VARCHAR2,smailsender IN VARCHAR2,sdiskspace IN VARCHAR2,ssbommanagement IN VARCHAR2)ISBEGINUPDATE build_service_configSET config = sdatabaseserverWHERE service = 'DATABASE SERVER';UPDATE build_service_configSET config = swebserverWHERE service = 'WEB SERVER';UPDATE build_service_configSET config = smailserverWHERE service = 'MAIL SERVER';UPDATE build_service_configSET config = smailsenderWHERE service = 'BUILD FAILURE MAIL SENDER';UPDATE build_service_configSET config = sdiskspaceWHERE service = 'DPKG_ARCHIVE DISK SPACE USED';UPDATE build_service_configSET config = ssbommanagementWHERE service = 'SBOM MANAGEMENT';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2)ISgbe_id NUMBER;BEGIN-- Get GBE_IDSELECT seq_gbe_id.NEXTVALINTO gbe_idFROM DUAL;INSERT INTO gbe_machtype(gbe_id, gbe_value)VALUES (gbe_id, sgbevalue);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)ISBEGINDELETE FROM gbe_machtypeWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2)ISBEGINUPDATE gbe_machtypeSET gbe_value = sgbevalueWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_daemon (sdaemonhostname IN VARCHAR2,nrtagid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2)ISnrecordnumber NUMBER;nrconid NUMBER;BEGIN-- Get RCON_IDSELECT seq_rcon_id.NEXTVALINTO nrconidFROM DUAL;SELECT COUNT (*)INTO nrecordnumberFROM release_configWHERE rtag_id = nrtagid;IF nrecordnumber = 0THENINSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter)VALUES (nrconid, nrtagid, sdaemonhostname, 'M',ngbeid, sgbebuildfilter);ELSEINSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter)VALUES (nrconid, nrtagid, sdaemonhostname, 'S',ngbeid, sgbebuildfilter);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_daemon (srconidlist IN VARCHAR2)ISBEGIN-- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.DELETE FROM daemon_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM run_levelWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM abt_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));-- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.DELETE FROM release_configWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_daemon (sdaemonhostname IN VARCHAR2,nrconid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2)ISBEGINUPDATE release_configSET daemon_hostname = sdaemonhostname,gbe_id = ngbeid,gbe_buildfilter = sgbebuildfilterWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE insert_schedule_info (dschedulepause IN DATE,dscheduleresume IN DATE,crepeat IN VARCHAR2,cindefinitepause IN VARCHAR2)ISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,cindefinitepause);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_schedule (nscheduleid IN NUMBER)ISBEGINDELETE FROM run_level_scheduleWHERE scheduled_id = nscheduleid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_infinite_pauseISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, NULL, NULL, NULL, 'P');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_resumeISBEGINDELETE FROM run_level_scheduleWHERE indefinite_pause = 'P';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_out_of_date_scheduleISBEGINDELETE FROM run_level_scheduleWHERE scheduled_resume < ora_sysdatetime AND repeat = 0;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_resume (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = NULLWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_pause (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = 1WHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/END pk_buildapi;/ALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-02 10:57:20'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_ARCHIVE"IS/*------------------------------|| Author: Rupesh Solanki|| Date: 26 October 2006|| Version: 1.0------------------------------*//*---------------------------*/PROCEDURE populate_packages_table ISBEGININSERT INTO archive_manager.PACKAGES(select * from packages where pkg_id not in(select pkg_id from archive_manager.packages));INSERT INTO archive_manager.PROCESSES(select * from processes where proc_id not in(select proc_id from archive_manager.processes));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE populate_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE)IS/*Reason: To populate the archive_data table with information regarding thenumber of package versions that exist in other releases.*/numcount NUMBER;numusedby NUMBER;numruntime NUMBER;/* Get all the package versions in the release */CURSOR archive_curISSELECT pv_idFROM release_contentWHERE rtag_id = nrtagid;archive_rec archive_cur%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/OPEN archive_cur;FETCH archive_curINTO archive_rec;WHILE archive_cur%FOUNDLOOP/* How many packages depend on this package version? */SELECT COUNT (*)INTO numusedbyFROM package_dependenciesWHERE dpv_id = archive_rec.pv_id;/* How many project releases use this package version? */SELECT COUNT (*)INTO numcountFROM release_contentWHERE pv_id = archive_rec.pv_id;/* How many packages have this package version as runtimedependency? */SELECT COUNT (*)INTO numruntimeFROM runtime_dependenciesWHERE rtd_id = archive_rec.pv_id;/* Insert into the archive_data table if they are not runtime dependantand package dependant and they exist in that particular release only*/IF numusedby = 0 AND numcount = 1 AND numruntime = 0THENINSERT INTO archive_data(rtag_id, pv_id)VALUES (nrtagid, archive_rec.pv_id);END IF;FETCH archive_curINTO archive_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE migrate_pv_to_archive_schema (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* MIGRATION - PACKAGE_VERSIONS */INSERT INTO archive_manager.package_versionsSELECT *FROM package_versionsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_BUILD_ENV */INSERT INTO archive_manager.package_build_envSELECT *FROM package_build_envWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_BUILD_ENV */DELETE FROM package_build_envWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_BUILD_INFO */INSERT INTO archive_manager.package_build_infoSELECT *FROM package_build_infoWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_BUILD_info */DELETE FROM package_build_infoWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - UNIT_TESTS */INSERT INTO archive_manager.unit_testsSELECT *FROM unit_testsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM UNIT_TESTS*/DELETE FROM unit_testsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_PROCESSES */INSERT INTO archive_manager.package_processesSELECT *FROM package_processesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_PROCESSES*/DELETE FROM package_processesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_DEPENDENCIES */INSERT INTO archive_manager.package_dependenciesSELECT *FROM package_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_DEPENDENCIES*/DELETE FROM package_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - CODE_REVIEWS */INSERT INTO archive_manager.code_reviewsSELECT *FROM code_reviewsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM CODE_REVIEWS*/DELETE FROM code_reviewsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - RUNTIME_DEPENDENCIES*/INSERT INTO archive_manager.runtime_dependenciesSELECT *FROM runtime_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM RUNTIME_DEPENDENCIES*/DELETE FROM runtime_dependenciesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_DOCUMENTS */INSERT INTO archive_manager.package_documentsSELECT *FROM package_documentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_DOCUMENTS*/DELETE FROM package_documentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PACKAGE_PATCHES */INSERT INTO archive_manager.package_patchesSELECT *FROM package_patchesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PACKAGE_PATCHES*/DELETE FROM package_patchesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - CQ_ISSUES */INSERT INTO archive_manager.cq_issuesSELECT *FROM cq_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM CQ_ISSUES*/DELETE FROM cq_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - ADDITIONAL_NOTES */INSERT INTO archive_manager.additional_notesSELECT *FROM additional_notesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM ADDITIONAL_NOTES*/DELETE FROM additional_notesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - RELEASE_COMPONENTS */INSERT INTO archive_manager.release_componentsSELECT *FROM release_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM RELEASE_COMPONENTS*/DELETE FROM release_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - IGNORE_WARNINGS */INSERT INTO archive_manager.ignore_warningsSELECT *FROM ignore_warningsWHERE pv_id IN (SELECT pv_idFROMarchive_data);/* PURGE DATA FROM IGNORE_WARNINGS*/DELETE FROM ignore_warningsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM WORK_IN_PROGRESS */DELETE FROM work_in_progressWHERE rtag_id = nrtagid;/* PURGE DATA FROM PLANNED */DELETE FROM plannedWHERE rtag_id = nrtagid;/* MIGRATION - JIRA_ISSUES */INSERT INTO archive_manager.jira_issuesSELECT *FROM jira_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM JIRA_ISSUES*/DELETE FROM jira_issuesWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - PRODUCT_COMPONENTS */INSERT INTO archive_manager.product_componentsSELECT *FROM product_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM PRODUCT_COMPONENTS*/DELETE FROM product_componentsWHERE pv_id IN (SELECT pv_idFROM archive_data);/* MIGRATION - ACTION_LOG */INSERT INTO archive_manager.action_logSELECT *FROM action_logWHERE pv_id IN (SELECT pv_idFROM archive_data);/* PURGE DATA FROM ACTION_LOG*/DELETE FROM action_logWHERE pv_id IN (SELECT pv_idFROM archive_data);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE migrate_rtag_to_archive_schema (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* MIGRATION - DO_NOT_RIPPLE */INSERT INTO archive_manager.do_not_rippleSELECT *FROM do_not_ripple dnpWHERE rtag_id = nrtagid;/* PURGE DATA FROM DO_NOT_RIPPLE */DELETE FROM do_not_rippleWHERE rtag_id = nrtagid;/* MIGRATION - ADVISORY_RIPPLES*/INSERT INTO archive_manager.advisory_ripplesSELECT *FROM advisory_ripple dnpWHERE rtag_id = nrtagid;/* PURGE DATA FROM ADVISORY_RIPPLES*/DELETE FROM advisory_rippleWHERE rtag_id = nrtagid;/* MIGRATION - RELEASE_CONTENT */INSERT INTO archive_manager.release_contentSELECT *FROM release_contentWHERE rtag_id = nrtagid;/* PURGE DATA FROM RELEASE_CONTENT*/DELETE FROM release_contentWHERE rtag_id = nrtagid;/* MIGRATION - NOTIFICATION_HISTORY */INSERT INTO archive_manager.notification_historySELECT *FROM notification_historyWHERE rtag_id = nrtagid;/* PURGE DATA FROM NOTIFICATION_HISTORY*/DELETE FROM notification_historyWHERE rtag_id = nrtagid;/* MIGRATION - BUILD_ORDER */INSERT INTO archive_manager.build_orderSELECT *FROM build_orderWHERE rtag_id = nrtagid;/* PURGE DATA FROM BUILD_ORDER*/DELETE FROM build_orderWHERE rtag_id = nrtagid;/* MIGRATION - PROJECT_ACTION_LOG */INSERT INTO archive_manager.project_action_logSELECT *FROM project_action_logWHERE rtag_id = nrtagid;/* PURGE DATA FROM PROJECT_ACTION_LOG */DELETE FROM project_action_logWHERE rtag_id = nrtagid;/* MIGRATION - DEPRECATED_PACKAGES */INSERT INTO archive_manager.deprecated_packagesSELECT *FROM deprecated_packagesWHERE rtag_id = nrtagid;/* PURGE DATA FROM DEPRECATED_PACKAGES */DELETE FROM deprecated_packagesWHERE rtag_id = nrtagid;/* MIGRATION - RELEASE_TAGS */INSERT INTO archive_manager.release_tagsSELECT *FROM release_tagsWHERE rtag_id = nrtagid;/* PURGE DATA FROM PACKAGE_VERSIONS*/DELETE FROM package_versionsWHERE pv_id IN (SELECT pv_idFROM archive_data);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE clean_up_archive_data_table (nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* Cleaning Up The Archive_Data Table */DELETE FROM archive_dataWHERE rtag_id = nrtagid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE write_action_log (nuserid IN NUMBER,nrtagid IN release_tags.rtag_id%TYPE)ISBEGIN/* Write Into Archive_Action_Log Table */INSERT INTO archive_action_log(user_id, date_time_stamp, rtag_id,description)VALUES (nuserid, ora_sysdatetime, nrtagid,'Release has been archived to the ARCHIVE_MANAGER schema');END;/*-------------------------------------------------------------------------------------------------------*/END pk_archive;/ALTER PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-02-18 13:19:10'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT_TEST"IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 29/Jan/2007|| Body Version: 1.1------------------------------*//*-------------------------------------------------------------------------------------------------------*/FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)RETURN NUMBERISBEGIN/*|| N - unlocked|| Y - release and locked|| P - penging approval|| A - approved package ready for auto-build*/IF cdlock = 'N' OR cdlock = 'R'THEN-- WORK IN PROGRESS --RETURN 0;ELSIF cdlock = 'P' OR cdlock = 'A'THEN-- PENDING --RETURN 1;ELSIF cdlock = 'Y'THEN-- RELEASED --RETURN 2;ELSE-- NOT FOUND --raise_application_error(-20000,'Cannot decide where to place package. [cDlock='|| cdlock|| ']');END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER := -1;CURSOR curareaISSELECT 2 AS envtabFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT 0 AS envtabFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT 1 AS envtabFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recarea curarea%ROWTYPE;BEGINOPEN curarea;FETCH curareaINTO recarea;IF curarea%FOUNDTHENenvtab := recarea.envtab;END IF;CLOSE curarea;RETURN envtab;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISispatch package_versions.dlocked%TYPE;viewid NUMBER := -1;CURSOR curviewISSELECT rc.base_view_id AS view_idFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT wip.view_id AS view_idFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT pl.view_id AS view_idFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recview curview%ROWTYPE;BEGIN-- Get dlock stateSELECT pv.is_patchINTO ispatchFROM package_versions pvWHERE pv.pv_id = pvid;-- Decide which view id should package go under.IF (ispatch != 'Y') OR (ispatch IS NULL)THEN-- Get VIEW ID of PackageOPEN curview;FETCH curviewINTO recview;IF curview%FOUNDTHENviewid := recview.view_id;ELSEraise_application_error(-20000,'Cannot find view_id to proceed. [PvId='|| pvid|| ']. The current version may not exist in the release anymore.');END IF;CLOSE curview;ELSE-- Get VIEW ID of Patch (view id of parent package)SELECT rc.base_view_idINTO viewidFROM release_content rc, package_patches ppvWHERE rc.rtag_id = rtagidAND rc.pv_id = ppv.pv_idAND ppv.patch_id = pvid;END IF;RETURN viewid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package (pvid IN NUMBER,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISdlocked package_versions.dlocked%TYPE;envtab NUMBER;BEGINIF can_edit_pkg_in_project (pvid, rtagid) = 1THEN-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = pvid;-- Get which area should go underenvtab := select_environment_area (dlocked);-- Loglog_action (pvid, 'action', userid, 'Start of Package Add...');-- Remove PackageIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.add_package (pvid, viewid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED ---- NOTE: this package will be replaced with matching packagepk_release.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);END IF;-- Loglog_action (pvid, 'action', userid, 'End of Package Add...');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_bulk (pvidlist IN VARCHAR2,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISnidcollector relmgr_number_tab_t := relmgr_number_tab_t();dlocked package_versions.dlocked%TYPE;pvid NUMBER;envtab NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (pvidlist IS NULL)THENraise_application_error (-20000,'Please select at least one package.');END IF;/*-------------------------------------------------------*/nidcollector := in_list_number (pvidlist);FOR i IN 1 .. nidcollector.COUNTLOOPpvid := nidcollector (i);add_package (pvid, viewid, rtagid, userid);END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE replace_package (newpvid IN NUMBER,oldpvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISdlocked package_versions.dlocked%TYPE;viewid NUMBER;envtab NUMBER;ROWCOUNT NUMBER;creleasemode CHAR (1);npkgid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check if oldPvId exists. It could have been removedSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pv_id = oldpvid;/*-------------------------------------------------------*//* This procedure is usually used by "History" option in Release Manager */-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = newpvid;-- Get VIEW_ID ---IF ROWCOUNT = 1THENviewid := get_view_location (oldpvid, rtagid);ELSE-- Set ViewID to defaultviewid := 7;END IF;-- Get which area should go underenvtab := select_environment_area (dlocked);-- Loglog_action (oldpvid, 'action', userid, 'Start of Package Replace...');-- Replace packageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete old packagepk_work_in_progress.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);ELSIFenvtab = 1THEN-- PENDING ---- Delete old packagepk_planned.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_planned.add_package (newpvid, viewid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED ---- Delete old packagepk_release.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_release.add_package (newpvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (newpvid, rtagid);END IF;-- Loglog_action (oldpvid, 'action', userid, 'End of Package Replace...');END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION remove_package (pvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,forceremove IN CHAR)RETURN NUMBERISenvtab NUMBER;isused BOOLEAN;recordcount NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Find location of packageenvtab := get_package_area (pvid, rtagid);-- Remove PackageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete packagepk_work_in_progress.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 1THEN-- PENDING ---- Delete packagepk_planned.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 2THEN-- RELEASED ---- Check if is used by other packagesisused := TRUE;IF forceremove = 'N'THENSELECT COUNT (pv.pv_id)INTO recordcountFROM (SELECT dpv.pkg_id, dpv.v_extFROM release_content rc,package_dependencies dep,package_versions dpvWHERE rc.rtag_id = rtagidAND rc.pv_id = dep.pv_idAND dep.dpv_id = dpv.pv_id) rdep,package_versions pvWHERE pv.pkg_id = rdep.pkg_idAND NVL (pv.v_ext, '|LINK_A_NULL|') =NVL (rdep.v_ext, '|LINK_A_NULL|')AND pv.pv_id = pvid;IF recordcount > 0THENRETURN 1; -- Return 1 as package being usedELSEisused := FALSE;END IF;END IF;IF forceremove = 'Y' OR NOT isusedTHEN-- Delete old packagepk_release.remove_package (pvid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);RETURN 0;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_environment_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM environment_view plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM environment_view rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM environment_view rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM environment_view rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM environment_view rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,environment_view rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,environment_view rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_released_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel, views viWHERE rel.base_view_id = vi.view_idAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel,view_settings vs,views viWHERE rel.base_view_id = vi.view_idAND vs.view_id = rel.base_view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,release_content rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,release_content rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_work_in_progress_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (wip.pv_id)INTO ntruerecordcountFROM work_in_progress wipWHERE wip.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,work_in_progress rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,work_in_progress rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_pending_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM planned plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM planned rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM planned rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM planned rel, view_settings vs, views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM planned rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,planned rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,planned rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_view_content (rtagid IN NUMBER,viewid IN NUMBER,recordset OUT typecur)ISisbaseview CHAR (1);BEGIN-- Check if the view is BASE VIEWSELECT vi.base_viewINTO isbaseviewFROM views viWHERE vi.view_id = viewid;IF (isbaseview = 'Y')THEN-- Get Base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_typeFROM environment_view rel, PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = viewidAND rel.rtag_id = rtagidORDER BY UPPER (pkg.pkg_name);ELSE-- Get non base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_typeFROM environment_view rel,PACKAGES pkg,package_versions pv,view_def vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.view_id = viewidAND vd.pkg_id = pv.pkg_idORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER;returnvalue NUMBER;return_not_found NUMBER := -1;BEGINenvtab := get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);ELSIF envtab = 1THEN-- PENDING --returnvalue := pk_planned.get_package_view (pvid, rtagid);ELSIF envtab = 2THEN-- RELEASED --returnvalue := pk_release.get_package_view (pvid, rtagid);ELSE-- This may be a Patch not located anywhere but unlockedreturnvalue := return_not_found;END IF;RETURN returnvalue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_release (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;envtab NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;lastversionid NUMBER;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_type, pv.last_pv_idINTO ispatch, buildtype, lastversionidFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);-- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple buildsIF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Release...');IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package statepk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;IF (ispatch IS NULL)THEN-- Add package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Now delete old version from DO_NOT_RIPPLE Table if it ExistsDELETE FROM do_not_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Now delete old version from ADVISORY_RIPPLES Table if it ExistsDELETE FROM advisory_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Release...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE auto_make_release (pvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,vext IN package_versions.v_ext%TYPE,ssv_ext IN package_versions.v_ext%TYPE,clonefrompvid IN NUMBER)ISviewid NUMBER;envtab NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;lastversionid NUMBER;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_type, pv.last_pv_idINTO ispatch, buildtype, lastversionidFROM package_versions pvWHERE pv.pv_id = pvid;IF vext <> ssv_extTHEN-- Get ViewIdviewid := get_package_view (clonefrompvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (clonefrompvid, rtagid);ELSE-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Removefrom current areaenvtab := pk_environment.get_package_area (pvid, rtagid);END IF;-- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple buildsIF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Release...');IF vext <> ssv_extTHENIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (clonefrompvid, rtagid,userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (clonefrompvid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED --pk_release.remove_package (clonefrompvid, rtagid, userid);END IF;ELSEIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;END IF;-- Change package statepk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;IF (ispatch IS NULL)THEN-- Add package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Now update the Dash_Board Tablepk_rmapi.update_dash_board (rtagid);-- Now delete old version from DO_NOT_RIPPLE Table if it ExistsDELETE FROM do_not_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Now delete old version from ADVISORY_RIPPLES Table if it ExistsDELETE FROM advisory_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Release...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;envtab NUMBER;BEGIN-- Get ViewId--ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );viewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);-- Loglog_action (pvid,'action',userid,'Start of Make Package UnRelease...');IF envtab = 2THEN-- RELEASE AREA --pk_release.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package statepk_package.change_state (pvid, 'N', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Loglog_action (pvid, 'action', userid, 'End of Make Package UnRelease...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_typeINTO ispatch, buildtypeFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);--ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Pending...');IF (ispatch IS NULL)THEN-- Remove from current areapk_work_in_progress.remove_package (pvid, rtagid, userid);-- Change package statepk_package.change_state (pvid, 'P', userid);-- Add package to new areapk_planned.add_package (pvid, viewid, rtagid, userid);END IF;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Pending...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISBEGIN-- Loglog_action (pvid,'action',userid,'Start of Package Pending Approval...');-- Change package statepk_package.change_state (pvid, 'A', userid);-- Loglog_action (pvid, 'action', userid,'End of Package Pending Approval...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;BEGIN-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );-- Loglog_action (pvid, 'action', userid, 'Start of Reject Package...');-- Remove from current areapk_planned.remove_package (pvid, rtagid, userid);-- Change package statepk_package.change_state (pvid, 'R', userid);-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);-- Loglog_action (pvid, 'action', userid, 'Start of Reject Package...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_package_view (pvid IN NUMBER,rtagid IN NUMBER,newviewid IN NUMBER)ISenvtab NUMBER;BEGINenvtab := pk_environment.get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 1THEN-- PENDING --pk_planned.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 2THEN-- RELEASED --pk_release.change_package_view (pvid, rtagid, newviewid);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_package (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,work_in_progress rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,planned rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,release_content rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.base_view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,environment_view rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_file (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,npagesize IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) ASpatch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_prodrelease_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state, --rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND pv.pv_id NOT IN (SELECT DISTINCT prod_idFROM deployment_manager.os_contents)AND rel.product_state IS NULLORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_integration_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 1;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (1, 5)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_test_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of test productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 2;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 2ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_deploy_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of deploy productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 3;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (3, 5)AND pv.pv_id NOT IN (SELECT DISTINCT prod_idFROM deployment_manager.os_contents)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_reject_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of reject productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 4;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 4ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/END pk_environment_test;/ALTER PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT_TEST"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:44'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE_TEST"IS/*------------------------------|| Last Modified: R. Solanki|| Modified Date: 09/03/2006|| Body Version: 1.7------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER)ISorigpkg_id package_versions.pkg_id%TYPE;origdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;spackageversion VARCHAR2 (4000);nissuestypes NUMBER;nviewid NUMBER;reccount NUMBER;isreleased package_versions.dlocked%TYPE := 'N';slabel VARCHAR2 (4000) := NULL;CURSOR package_versions_curISSELECT pv.pv_id, pv.is_patch, pv.dlockedFROM package_versions pvWHERE pv.pkg_version = snewpkgversionAND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_idFROM package_versions origpvWHERE origpv.pv_id = nlastpvid);package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_curISSELECT DISTINCT pkg_id, dlockedFROM package_versionsWHERE pv_id = nlastpvid;clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGINspackageversion := snewpkgversion;IF nsettopvid IS NULLTHEN-- SetToPv_id is not supplied, hence proceed./* ---------------------------------------------------- *//* Find id package_version exists *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_curINTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN--- Create brand new package ---SELECT seq_pv_id.NEXTVALINTO returnpvidFROM DUAL;-- Split Version to get extention + othersplit_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);-- Get previous package to clone fromOPEN clone_package_versions_cur;FETCH clone_package_versions_curINTO clone_package_versions_rec;origpkg_id := clone_package_versions_rec.pkg_id;origdlocked := clone_package_versions_rec.dlocked;CLOSE clone_package_versions_cur;-- Automated built configIF (cbuildtype = 'A')THENspackageversion := '(' || returnpvid || ')' || ssv_ext;-- Make sure that version is still uniqueEND IF;-- Clone Package Version Details --INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,creator_id, modified_stamp, modifier_id, v_mm, v_nmm,v_ext, src_path, pv_description, pv_overview,last_pv_id, owner_id, is_deployable,is_build_env_required, build_type, bs_id, is_autobuildable)SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,spackageversion AS pkg_version, 'N' AS dlocked,ora_sysdate AS created_stamp, nuserid AS creator_id,ora_sysdatetime AS modified_stamp,nuserid AS modifier_id, ssv_mm AS v_mm,ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,pv.pv_description, pv.pv_overview,nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,pv.is_build_env_required, cbuildtype, pv.bs_id, pv.is_autobuildableFROM package_versions pvWHERE pv.pv_id = nlastpvid;-- Set Issues Type for cloning ---IF origdlocked = 'Y'THENnissuestypes := enumissues_state_imported;ELSEnissuestypes := NULL;END IF;-- Update Label for automated builtIF (cbuildtype = 'A')THENslabel := get_automated_label (returnpvid);UPDATE package_versions pvSET pv.pkg_label = slabelWHERE pv.pv_id = returnpvid;END IF;basic_clone (nlastpvid,returnpvid,nrtagid,nuserid,origpkg_id,nissuestypes);ELSE--- Package already exists, hence reuse ---returnpvid := package_versions_rec.pv_id;isreleased := package_versions_rec.dlocked;END IF;CLOSE package_versions_cur;ELSEreturnpvid := nsettopvid;END IF;END new_version;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER)ISBEGIN-- Set package in Released modeUPDATE package_versions pvSET pv.dlocked = newstate,pv.modified_stamp = ora_sysdatetime,pv.modifier_id = useridWHERE pv.pv_id = pvid;-- Log action --IF newstate = 'Y'THEN-- RELEASED --log_action (pvid,'makeofficial',userid,'Package state change to: Released');ELSIF newstate = 'N'THEN-- UNLOCKED --log_action (pvid,'makeunofficial',userid,'Package state change to: Ulocked');ELSIF newstate = 'P'THEN-- PENDING APPROVAL --log_action (pvid,'add_to_planned',userid,'Package state change to: Pending Approval');ELSIF newstate = 'R'THEN-- REJECTED --log_action (pvid,'reject_package',userid,'Package state change to: Rejected');ELSIF newstate = 'A'THEN-- APPROVED --log_action (pvid,'approve_package',userid,'Package state change to: Approved');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2)ISLOCKED CHAR;pkgid NUMBER;ROWCOUNT NUMBER;BEGIN/*|| This will destroy all package details from database.|| It will only be used to remove unwanted work in progress packages,|| or mestaken versions*//*--------------- Business Rules Here -------------------*/problemstring:= NULL;IF overridewarnings = 'N'THEN-- Package must not be officialSELECT pv.dlockedINTO LOCKEDFROM package_versions pvWHERE pv.pv_id = pvid;IF LOCKED = 'Y'THENproblemstring :=problemstring|| '- Package is locked and released.'|| UTL_TCP.crlf;END IF;-- Cannot remove if used in BOMsSELECT COUNT (osc.prod_id)INTO ROWCOUNTFROM deployment_manager.os_contents oscWHERE osc.prod_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as build dependencySELECT COUNT (dep.pv_id)INTO ROWCOUNTFROM package_dependencies depWHERE dep.dpv_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as build dependency.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as runtime dependencySELECT COUNT (rd.pv_id)INTO ROWCOUNTFROM runtime_dependencies rdWHERE rd.rtd_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as runtime dependency.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as patchSELECT COUNT (pp.pv_id)INTO ROWCOUNTFROM package_patches ppWHERE pp.patch_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is used as patch by other package.'|| UTL_TCP.crlf;END IF;END IF;/*-------------------------------------------------------*/IF (problemstring IS NULL)THEN--- Remove From Work in ProgressDELETE FROM work_in_progress wipWHERE wip.pv_id = pvid;--- Remove From PendingDELETE FROM planned plWHERE pl.pv_id = pvid;--- Remove From Released areaDELETE FROM release_content rcWHERE rc.pv_id = pvid;---Remove From Package ProcessesDELETE FROM package_processes ppWHERE pp.pv_id = pvid;--- Remove DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;DELETE FROM package_dependencies depWHERE dep.dpv_id = pvid;--- Remove Runtime dependenciesDELETE FROM runtime_dependencies rtdWHERE rtd.pv_id = pvid;DELETE FROM runtime_dependencies rtdWHERE rtd.rtd_id = pvid;--- Remove componentsDELETE FROM product_components pcWHERE pc.pv_id = pvid;DELETE FROM release_components rcWHERE rc.pv_id = pvid;--- Remove From Notification HistoryDELETE FROM notification_history nhWHERE nh.pv_id = pvid;--- Remove From Ignore WarningsDELETE FROM ignore_warnings iwWHERE iw.pv_id = pvid;--- Remove From Additional NotesDELETE FROM additional_notes anWHERE an.pv_id = pvid;--- Remove From CQ IssuesDELETE FROM cq_issues cqWHERE cq.pv_id = pvid;--- Remove from Package PatchesDELETE FROM package_patches ppWHERE pp.pv_id = pvid;DELETE FROM package_patches ppWHERE pp.patch_id = pvid;--- Remove From Package DocumentsDELETE FROM package_documents pdWHERE pd.pv_id = pvid;--- Remove from Code ReviewDELETE FROM code_reviews crWHERE cr.pv_id = pvid;--- Remove from Unit TestsDELETE FROM unit_tests utWHERE ut.pv_id = pvid;--- Remove from Package BuildEnvDELETE FROM package_build_env pbeWHERE pbe.pv_id = pvid;--- Remove from Package Build InfoDELETE FROM package_build_info pbiWHERE pbi.pv_id = pvid;--- Remove from Build OrderDELETE FROM build_order boWHERE bo.pv_id = pvid;--- Remove from Note ManagerDELETE FROM note_manager nmWHERE nm.nid = pvid;--- Remove from Action logDELETE FROM action_log alWHERE al.pv_id = pvid;--- Remove from Do Not RippleDELETE FROM DO_NOT_RIPPLE dnrWHERE dnr.PV_ID = pvid;--- Remove from Jira IssuesDELETE FROM JIRA_ISSUES jiraWHERE jira.PV_ID = pvid;--- Finally Remove From Package Versions--- Get Package nameSELECT pv.pkg_idINTO pkgidFROM package_versions pvWHERE pv.pv_id = pvid;DELETE FROM package_versions pvWHERE pv.pv_id = pvid;--- Remove package name if not used any moreSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pkg_id = pkgid;IF ROWCOUNT < 1THENDELETE FROM PACKAGES pkgWHERE pkg.pkg_id = pkgid;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER)ISpatchpv_id NUMBER;parpkg_id NUMBER;lastinstallorder NUMBER;ispatchdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;opatchdepcollector relmgr_number_tab_t := relmgr_number_tab_t();CURSOR parent_curISSELECT pv.*, pkg.pkg_nameFROM package_versions pv, PACKAGES pkgWHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;parent_rec parent_cur%ROWTYPE;CURSOR patch_curISSELECT pv.*, pg.pkg_nameFROM package_versions pv, PACKAGES pgWHERE pv.pkg_id = parpkg_idAND pv.pkg_version = snewpatchversionAND pv.pkg_id = pg.pkg_id;patch_rec patch_cur%ROWTYPE;CURSOR releases_curISSELECT rc.pv_idFROM release_content rcWHERE rc.pv_id = patch_rec.pv_id;releases_rec releases_cur%ROWTYPE;BEGIN-- Get Last Install OrderSELECT COUNT (*)INTO lastinstallorderFROM package_patches ppWHERE pp.pv_id = nparentpvid;-- Get parent detailsOPEN parent_cur;FETCH parent_curINTO parent_rec;parpkg_id := parent_rec.pkg_id;-- Find if patch exists in databaseOPEN patch_cur;FETCH patch_curINTO patch_rec;-- Parent must be officialIF parent_rec.dlocked = 'Y'THENIF patch_cur%NOTFOUNDTHENispatchdlocked := 'N';-- Create new patch version --SELECT seq_pv_id.NEXTVALINTO patchpv_idFROM DUAL;split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);INSERT INTO package_versions(pv_id,pkg_id, pkg_version,dlocked, created_stamp, creator_id,modified_stamp, modifier_id, v_mm, v_nmm, v_ext,src_path,pv_description,owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,is_autobuildable)VALUES (patchpv_id, parpkg_id, snewpatchversion,ispatchdlocked, ora_sysdate, nuserid,ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,parent_rec.src_path,'This is a patch to '|| parent_rec.pkg_name|| ' '|| parent_rec.pkg_version,nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N');INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');/* LOG ACTION */log_action (patchpv_id,'new_version',nuserid,'Patch version created: ' || snewpatchversion);log_action (nparentpvid,'patch_add',nuserid,'New patch created and attached: ' || snewpatchversion);ELSEpatchpv_id := patch_rec.pv_id;ispatchdlocked := patch_rec.dlocked;-- Find if pv_id exists in release content (i.e. it cannot be a patch)OPEN releases_cur;FETCH releases_curINTO releases_rec;IF releases_cur%NOTFOUNDTHEN-- This pv_id is trully a patch, hence add Y to column IS_PATCHUPDATE package_versionsSET is_patch = 'Y'WHERE pv_id = patchpv_id;INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');END IF;CLOSE releases_cur;/* LOG ACTION */log_action (nparentpvid,'patch_add',nuserid,'Patch version was found and attached: '|| snewpatchversion);END IF;END IF;/* Create Patch Dependencies */opatchdepcollector := in_list_number (spatchidlist);-- Make sure patch is unofficial before altering its dependenciesIF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')THEN-- Delete Existing DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = patchpv_id;-- Insert new dependenciesINSERT INTO package_dependencies(pv_id, dpv_id, pkg_id, dpkg_id, build_type)SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,'L' AS build_typeFROM package_versions pvWHERE pv.pv_id IN (SELECT *FROM TABLE(CAST(opatchdepcollector AS relmgr_number_tab_t)));END IF;-- Return patch_idreturnpatchid := patchpv_id;CLOSE parent_cur;CLOSE patch_cur;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Patch version '|| snewpatchversion|| ' already exist.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id = patchid;/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTION */IF isobsolete IS NOT NULLTHENlog_action (patchid,'patch_obsolete',userid,'Obsolete patch. ' || obsoletecomments);ELSElog_action (patchid,'patch_obsolete',userid,'Undo patch obsolete.');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN/*--------------- Business Rules Here -------------------*/IF spatchidlist IS NULLTHENraise_application_error (-20000,'Please select one or more Patches.');END IF;/*-------------------------------------------------------*/-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (spatchidlist) AS relmgr_number_tab_t)FROM DUAL));/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTIONIF IsObsolete IS NOT NULL THENLog_Action ( PatchId, 'patch_obsolete', UserId,'Obsolete patch. '|| ObsoleteComments );ELSELog_Action ( PatchId, 'patch_obsolete', UserId,'Undo patch obsolete.' );END IF; */END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISpkgname VARCHAR2 (100);/*Rupesh Release on 17/05/2006*/BEGININSERT INTO processes(proc_id, proc_name, proc_description, run_as, pkg_owner,is_interface)VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,sisinterface);pk_package.add_package_process (nprocid, npvid, nuserid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);/*Rupesh Release on 17/05/2006*/CURSOR proc_curISSELECT prc.proc_idFROM processes prcWHERE prc.proc_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (nprocidlist) AS relmgr_number_tab_t)FROM DUAL));proc_rec proc_cur%ROWTYPE;BEGINOPEN proc_cur;FETCH proc_curINTO proc_rec;WHILE proc_cur%FOUNDLOOPINSERT INTO package_processes(proc_id, pv_id)VALUES (proc_rec.proc_id, npvid);SELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = proc_rec.proc_id;-- Log Action --log_action (npvid,'process_add',nuserid,'Added process with health tag ' || processname);FETCH proc_curINTO proc_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);/* Rupesh Release on 17/05/2006*/BEGINSELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = nprocid;DELETE FROM package_processesWHERE proc_id = nprocid AND pv_id = npvid;-- Log Action --log_action (npvid,'process_remove',nuserid,'Removed process with health tag ' || processname);END;/*-------------------------------------------------------------------------------------------------------*//*Author: Rupesh SolankiPurpose: To move package versions from one release to anotherRelease: 4th September 2006*/PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER)ISoldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);BEGINSELECT rtag_name into oldrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nrtagid;SELECT rtag_name into newrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nnewrtagid;/* Table Work In Progress*/UPDATE WORK_IN_PROGRESSSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;/* Table PLANNED*/UPDATE PLANNEDSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;-- Log Action --log_action (npvid,'move_package_version',nuserid,'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER) ISsStateName VARCHAR(4000);/*Author: Rupesh SolankiPurpose: To modify the product state from integration to test to deploymentRelease: 25th January 2006*/BEGINUPDATE PACKAGE_VERSIONSSET PRODUCT_STATE = nstateidWHERE PV_ID = npvid;SELECT STATE INTO sStateNameFROM PRODUCT_STATESWHERE STATE_ID = nstateid;-- Log Action --log_action (npvid,'modify_product_state',nuserid,sStateName);END;/*-------------------------------------------------------------------------------------------------------*/END pk_package_Test;/ALTER PACKAGE "RELEASE_MANAGER"."PK_PACKAGE_TEST"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:45'/CREATE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS-- Private Implementation -----------------------------------------------------FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBERASBEGIN-- start boundary caseIF ( XXstart < XX ) THENRETURN 1;ELSIF ( XXstart = XX ) THEN-- need to consider YYIF ( YYstart < YY ) THENRETURN 1;ELSIF ( YYstart = YY ) THEN-- need to consider ZZIF ( ZZstart <= ZZ ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBERASBEGIN-- end boundary caseIF ( XX < XXend ) THENRETURN 1;ELSIF ( XX = XXend ) THEN-- need to consider YYIF ( YY < YYend ) THENRETURN 1;ELSIF ( YY = YYend ) THEN-- need to consider ZZIF ( ZZ <= ZZend ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;/*- version format: XX.YY.ZZ.abc*/FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBERASXXstart NUMBER := 0;XXend NUMBER := 0;XX NUMBER := 0;YYstart NUMBER := 0;YYend NUMBER := 0;YY NUMBER := 0;ZZstart NUMBER := 0;ZZend NUMBER := 0;ZZ NUMBER := 0;first_dot NUMBER := 0;second_dot NUMBER := 0;third_dot NUMBER := 0;ProjExtstart VARCHAR2(10);ProjExtend VARCHAR2(10);ProjExt VARCHAR2(10);BEGIN-- strip the version numberfirst_dot := INSTR(version_start, '.', 1, 1);second_dot := INSTR(version_start, '.', 1, 2);third_dot := INSTR(version_start, '.', 1, 3);XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );first_dot := INSTR(version_end, '.', 1, 1);second_dot := INSTR(version_end, '.', 1, 2);third_dot := INSTR(version_end, '.', 1, 3);XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );first_dot := INSTR(version, '.', 1, 1);second_dot := INSTR(version, '.', 1, 2);third_dot := INSTR(version, '.', 1, 3);XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );-- only include versions if all project extensions are the sameIF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THENIF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBERASpkg_id NUMBER;BEGINSELECTp.PKG_IDINTOpkg_idFROMPACKAGES pWHEREp.PKG_NAME = pkgName;RETURN pkg_id;EXCEPTIONWHEN OTHERS THENdbms_output.put_line('GetPkgId exception: ' || SQLERRM );RETURN -1;END;-- Public Implementation ------------------------------------------------------/*-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep---- INPUT PARAMETERS:---- pkg_name - The name of the top level package to get issues for-- version_start - The start version for the comparison-- version_end - The end version for the comparison*/PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )ASpkgId NUMBER;BEGIN-- get pkg_id of the input package:pkgId := GetPkgId( pkg_name );OPEN vCursor FORSELECTpv.PKG_ID,pv.PKG_VERSION,pv.PV_ID,i_pkg.ISS_ID,( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,pd.DPKG_ID,( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,pd.DPV_ID,i_dpkg.ISS_ID AS ISSUE_IDFROMPACKAGE_VERSIONS pvLEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_IDLEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_IDLEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_IDWHEREpv.PKG_ID = pkgIdANDVersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1AND( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )ORDER BYpv.PKG_ID,pv.PV_ID,pd.DPKG_ID,pd.DPV_ID;EXCEPTIONWHEN OTHERS THENdbms_output.put_line('AllIssues exception: ' || SQLERRM );END;-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok/*-- Proc: LoadIssuesTable---- Populates Package_Issues table with details of issues from all dependent packages.-- This will be for all package versions of the input pkg_name between the-- version_start and version_end.---- INPUT PARAMETERS:---- pkg_name - The name of the top level package to get issues for-- version_start - The start version for the comparison-- version_end - The end version for the comparison*/PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )ASpkgId NUMBER;CURSOR pack_vers_cur ISSELECTpv.PV_ID,pv.PKG_VERSION,pv.PKG_ID,p.PKG_NAMEFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDWHEREpv.PKG_ID = pkgIdANDVersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;BEGINDELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/-- get the pkg_id we are finding issues forpkgId := GetPkgId( pkg_name );-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.FOR pack_ver_rec IN pack_vers_curLOOPInsertIssuesForDepends( pack_ver_rec.PV_ID, pack_ver_rec.PKG_ID, pack_ver_rec.PKG_NAME, pack_ver_rec.PV_ID, pack_ver_rec.PKG_VERSION );COMMIT;END LOOP;-- The output cursor - shows the individual versions of the top level package then were reported onOPEN vCursor FORSELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*//*removedSELECTPKG_VERSIONFROMRELEASE_MANAGER.RM_PACKAGE_ISSUES;*/EXCEPTIONWHEN OTHERS THENdbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );END;/*-- Proc: InsertIssuesForDepends---- Used by LoadIssuesTable to recursively find issues for all dependent packages---- INPUT PARAMETERS:---- pvID - The package version id of the package to get issues for-- top_pkgID - The package id of the top level package to get issues for - should be the same as pvID when called from LoadIssuesTable (different when called recursively)-- top_pkgName - The package name of the top level package-- top_pvID - The package version id of the top level package-- top_pkgVer - The package version description of the top level package*/PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER,top_pkgVer IN VARCHAR2 )ASpkgId NUMBER;issCnt NUMBER := 0;pkgCheck NUMBER := 0;depCheck NUMBER := 0;dpkgName VARCHAR(50);dpkgVersion VARCHAR(50);CURSOR dep_packs_cur ISSELECTDPV_IDFROMPACKAGE_DEPENDENCIESWHEREPV_ID = pvID;BEGIN-- check to see if the package has been processed previouslySELECTCOUNT(*)INTOpkgCheckFROMRM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/WHEREDPV_ID = pvID;dbms_output.put_line('pkgCheck: ' || pkgCheck );-- Package not already processed (no cyclic dependency) - process itIF ( pkgCheck = 0 ) THEN-- check to see if this package version has any issues assigned to itSELECTCOUNT(*)INTOissCntFROMCQ_ISSUES iWHEREi.PV_ID = pvID;dbms_output.put_line('issCnt: ' || issCnt );-- Always enter a marker row into the table even if there are no issues for the package.-- This allows us to pick up any cyclic dependencies.IF ( issCnt > 0 ) THEN-- get issues and insert into RM_PACKAGE_ISSUES/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )SELECT DISTINCTtop_pkgID AS PKG_ID,top_pkgName AS PKG_NAME,top_pvID AS PV_ID,top_pkgVer AS PKG_VERSION,pv.PV_ID AS DPV_ID,p.PKG_NAME AS DPKG_NAME,pv.PKG_VERSION AS DPKG_VERSION,ci.ISS_DB,ci.ISS_IDFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDJOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_IDWHEREpv.PV_ID = pvID;ELSE-- get the dpkg details - there will always be a row returned hereSELECTp.PKG_NAMEINTOdpkgNameFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDWHEREpv.PV_ID = pvID;SELECTpv.PKG_VERSIONINTOdpkgVersionFROMPACKAGE_VERSIONS pvWHEREpv.PV_ID = pvID;-- enter a marker row/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )VALUES (top_pkgID,top_pkgName,top_pvID,top_pkgVer,pvID,dpkgName,dpkgVersion,NULL,NULL );END IF;-- If this package version has dependencies then recurseSELECTCOUNT(*)INTOdepCheckFROMPACKAGE_DEPENDENCIESWHEREPV_ID = pvID;IF ( depCheck > 0 ) THEN-- get dependencies and call this function recursively for each oneFOR dep_rec IN dep_packs_curLOOPInsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );END LOOP;END IF;END IF;/*EXCEPTIONWHEN OTHERS THENno exception handling required*/END;END Rm_Issues;/ALTER PACKAGE "RELEASE_MANAGER"."RM_ISSUES"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2008-05-26 11:58:46'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI_TEST" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 30/Mar/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE Add_Product_Component ( nPvId IN NUMBER,sOsName IN VARCHAR2,sOrigFilePath IN VARCHAR2,sFileName IN VARCHAR2,sDestFilePath IN VARCHAR2,nByteSize IN NUMBER,sCRCcksum IN VARCHAR2 ) ISnOsId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- OS Name Requirements --IF (sOsName IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'OsName cannot be NULL.');END IF;-- File Requirements --IF (NOT sFileName IS NULL) THENIF (nByteSize IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'Byte Size cannot be NULL.');ELSIF (sCRCcksum IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'CRC CKSUM cannot be NULL.');END IF;END IF;-- Folder Requirements ---- No requirements for now./*-------------------------------------------------------*/-- Get OsIdnOsId := Get_OsId ( sOsName );-- Insert component entryINSERT INTO PRODUCT_COMPONENTS ( PV_ID, OS_ID, FILE_PATH, FILE_NAME, DESTINATION_PATH, BYTE_SIZE, CRC_CKSUM )VALUES (nPvId,nOsId,sOrigFilePath,sFileName,sDestFilePath,nByteSize,sCRCcksum);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENRAISE_APPLICATION_ERROR (-20000, 'Cannot have duplicate product components.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Remove_All_Product_Components ( nPvId IN NUMBER, sOsName IN VARCHAR2 ) ISnOsId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get OsIdnOsId := Get_OsId ( sOsName );-- Delete component entryDELETEFROM PRODUCT_COMPONENTS pcWHERE pc.PV_ID = nPvIdAND pc.OS_ID = nOsId;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION Get_OsId ( sOsName IN VARCHAR2 ) RETURN NUMBER ISCode NUMBER;BEGIN-- Get Platform Code --SELECT pf.CODE INTO CodeFROM PLATFORMS pfWHERE UPPER( pf.NAME ) = UPPER( sOsName );RETURN Code;EXCEPTIONWHEN NO_DATA_FOUND THENRAISE_APPLICATION_ERROR (-20000, 'Platform '|| sOsName ||' is not valid. It needs to be added to PLATFORMS table in Release Manager.' );RAISE;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Update_Build_Service ( sDatabaseServer IN VARCHAR2,sWebServer IN VARCHAR2,sMailServer IN VARCHAR2,sMailSender IN VARCHAR2) ISBEGINUPDATE BUILD_SERVICE_CONFIGSET CONFIG = sDatabaseServerWHERE SERVICE = 'DATABASE SERVER';UPDATE BUILD_SERVICE_CONFIGSET CONFIG = sWebServerWHERE SERVICE = 'WEB SERVER';UPDATE BUILD_SERVICE_CONFIGSET CONFIG = sMailServerWHERE SERVICE = 'MAIL SERVER';UPDATE BUILD_SERVICE_CONFIGSET CONFIG = sMailSenderWHERE SERVICE = 'BUILD FAILURE MAIL SENDER';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_GBE_MACHTYPE ( sGBEValue in VARCHAR2 ) ISGBE_ID NUMBER;BEGIN-- Get GBE_IDSELECT SEQ_GBE_ID.NEXTVAL INTO GBE_ID FROM DUAL;INSERT INTO GBE_MACHTYPE (GBE_ID, GBE_VALUE)VALUES( GBE_ID, sGBEValue);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_GBE_MACHTYPE ( nGBE_ID IN NUMBER ) ISBEGINDELETE FROM GBE_MACHTYPE WHERE GBE_ID = nGBE_ID;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE UPDATE_GBE_MACHTYPE ( nGBE_ID IN NUMBER, sGBEValue IN VARCHAR2 ) ISBEGINUPDATE GBE_MACHTYPESET GBE_VALUE = sGBEValueWHERE GBE_ID = nGBE_ID;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_DAEMON ( sDaemonHostname IN VARCHAR2, nRtagId IN NUMBER, nGbeId IN NUMBER ) ISnRecordNumber NUMBER;nRconId NUMBER;BEGIN-- Get RCON_IDSELECT SEQ_RCON_ID.NEXTVAL INTO nRconId FROM DUAL;SELECT count(*) INTO nRecordNumberFROM RELEASE_CONFIGWHERE RTAG_ID = nRtagId;IF nRecordNumber = 0 THENINSERT INTO RELEASE_CONFIG (RCON_ID, RTAG_ID, DAEMON_HOSTNAME, DAEMON_MODE, GBE_ID)VALUES (nRconId, nRtagId, sDaemonHostname, 'M', nGbeId);ELSEINSERT INTO RELEASE_CONFIG (RCON_ID, RTAG_ID, DAEMON_HOSTNAME, DAEMON_MODE, GBE_ID)VALUES (nRconId, nRtagId, sDaemonHostname, 'S', nGbeId);END IF;END;/*-------------------------------------------------------------------------------------------------------*/END PK_BUILDAPI_TEST;/ALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI_TEST"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-07-04 14:13:56'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS/*------------------------------|| Last Modified: J.Tweddle|| Modified Date: 23/Aug/2007|| Body Version: 1.0------------------------------*//*------------------------------------------------------------------------*/PROCEDURE update_base_url (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2) ISBEGINUPDATE projectsSET base_url = sbaseurlWHERE proj_id = nprojid;END update_base_url;/*------------------------------------------------------------------------*/END pk_project;/ALTER PACKAGE "RELEASE_MANAGER"."PK_PROJECT"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-23 16:12:34'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE_TEST" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 12/Sep/2005|| Body Version: 3.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER ) ISRtagId NUMBER;ParentRtagId NUMBER;RecCount NUMBER := 0;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );END IF;-- Check for duplicate Release NamesSELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.PROJ_ID = nProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Get rtag_idSELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;-- Get Parent RtagIdParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );-- Create new releaseINSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,OFFICIAL, REBUILD_ENV, REBUILD_STAMP,PARENT_RTAG_ID, PROJ_ID )VALUES ( RtagId,sReleaseName,sReleaseComments,ORA_SYSDATE,nUserId,'N','N',0,ParentRtagId,nProjId );-- Update display OrderUPDATE_DISPLAY_ORDER ( nProjId );/* Log Project Action */Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );-- Import Release ContentsIF (NOT nSourceRtagId IS NULL) THENImport_Release_Contents ( nSourceRtagId, RtagId, nUserId );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/UPDATE RELEASE_TAGS urt SETurt.DISPLAY_ORDER = (SELECT qry.REC_NUMFROM (SELECT rel.*, ROWNUM AS REC_NUMFROM (SELECT rt.RTAG_ID,rt.DISPLAY_ORDER,DECODE( rt.PARENT_RTAG_ID,rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_IDFROM RELEASE_TAGS rtWHERE rt.PROJ_ID = nProjId) relSTART WITH rel.PARENT_RTAG_ID = 0CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_IDORDER SIBLINGS BY rel.DISPLAY_ORDER) qryWHERE qry.RTAG_ID = urt.RTAG_ID)WHERE urt.PROJ_ID = nProjId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER ) ISnIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();SeqNum NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/nIdCollector := IN_LIST_NUMBER ( sRtagIdList );-- Set start sequence numberSeqNum := 1;FOR i IN 1..nIdCollector.COUNTLOOP-- Update new display orderUPDATE RELEASE_TAGS rt SETrt.DISPLAY_ORDER = SeqNumWHERE rt.PROJ_ID = nProjIdAND rt.RTAG_ID = nIdCollector(i);SeqNum := SeqNum + 1;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, nUserId IN NUMBER ) ISRecCount NUMBER := 0;ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);END IF;-- Check for duplicate Release NamesSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;SELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.RTAG_ID != nRtagIdAND rt.PROJ_ID = ProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Update release detailsUPDATE RELEASE_TAGS rt SETrt.RTAG_NAME = sReleaseName,rt.DESCRIPTION = sReleaseComments,rt.PARENT_RTAG_ID = nParentRtagId,rt.ASSOC_MASS_REF = nMASSRtagId,rt.CONFIG_SPEC_BRANCH = nConfigSpecBranchWHERE rt.RTAG_ID = nRtagId;-- Update display OrderUPDATE_DISPLAY_ORDER ( ProjId );/* Log Project Action */Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER := 0;sReleaseId VARCHAR2(4000);ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check for any kidsSELECT COUNT( rt.RTAG_ID ) INTO RecCountFROM RELEASE_TAGS rtWHERE rt.PARENT_RTAG_ID = nRtagIdAND rt.RTAG_ID != rt.PARENT_RTAG_ID;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.' );END IF;/*-------------------------------------------------------*/-- Clear the release contentsClean_Release_Contents ( nRtagId, nUserId );/* Log Project Action */SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );-- Remove ReleaseDELETEFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER ) ISsSourceLocation VARCHAR2(4000);sTargetLocation VARCHAR2(4000);ProjId NUMBER;cReleaseMode CHAR(1);BEGIN/*--------------- Business Rules Here -------------------*/IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );END IF;IF (nSourceRtagId = nTargetRtagId) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );END IF;-- Check if Target release is in OPEN modeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;IF (cReleaseMode != 'N') THENRAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );END IF;/*-------------------------------------------------------*/-- Clean target contentsClean_Release_Contents ( nTargetRtagId, nUserId );-- Import Released Area ContentsINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID,PKG_STATE )SELECT nTargetRtagId AS RTAG_ID,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nSourceRtagId;-- Import Ignore Warning statesINSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )SELECT nTargetRtagId AS RTAG_ID,igw.PV_ID,igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.rtag_id = nSourceRtagId;/* Log Project Action */-- Get Source LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sSourceLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nSourceRtagId;-- Get Target LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sTargetLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nTargetRtagId;-- Get project idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||' TARGET: '|| sTargetLocation, nTargetRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check if other release references this releaseSELECT COUNT( rl.RTAG_ID ) INTO RecCountFROM RELEASE_LINKS rlWHERE rl.REF_RTAG_ID = nRtagId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.' );END IF;/*-------------------------------------------------------*/-- Delete Release linksDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;-- Delete ignore warningDELETEFROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagId;-- Delete Build Order cached calculationsDELETEFROM BUILD_ORDER boWHERE bo.RTAG_ID = nRtagId;-- Delete Notification HistoryDELETEFROM NOTIFICATION_HISTORY nhWHERE nh.RTAG_ID = nRtagId;-- Delete Released Area ContentsDELETEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagId;-- Delete Work In Progress Area ContentsDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = nRtagId;-- Delete Pending Area ContentsDELETEFROM PLANNED plWHERE pl.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER ISnSourceParentRtagId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL) OR (cIsBranch IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );END IF;/*-------------------------------------------------------*/IF ( nSourceRtagId IS NULL ) THEN-- Create new on main branchRETURN nRtagId;ELSE-- Create from source rtag_id-- Find parent of Source RtagIdSELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nSourceRtagId;IF (UPPER(cIsBranch) = 'Y') THENRETURN nSourceRtagId;ELSEIF (nSourceRtagId = nSourceParentRtagId) THENRETURN nRtagId;ELSERETURN nSourceParentRtagId;END IF;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,-- sNextVersion OUT VARCHAR2,-- nNextLifeCycle OUT NUMBER,-- nParentRtagId OUT NUMBER,-- nProjId IN NUMBER ) IS---- SourceBranchCount NUMBER;-- ProjRootVersion VARCHAR2(4000);-- LastLifeCycle NUMBER;-- ROOT_VERSION_NOT_FOUND NUMBER := -1;-- SET_PARENT_AS_YOURSELF NUMBER := -1;---- SourceProjId NUMBER;-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;---- BEGIN-- /*--------------- Business Rules Here -------------------*/-- /*-------------------------------------------------------*/------ BEGIN-- -- Get Project root version-- SELECT rt.RTAG_VERSION INTO ProjRootVersion-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_ID = rt.PARENT_RTAG_ID;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- ProjRootVersion := ROOT_VERSION_NOT_FOUND;-- END;---------- BEGIN-- -- Get info for source rtagid-- SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE INTO SourceProjId, SourceVersion, SourceLifeCycle-- FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = nSourceRtagId;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- SourceProjId := NULL;-- SourceVersion := NULL;-- SourceLifeCycle := NULL;-- END;------ IF (nSourceRtagId IS NULL) OR ( SourceProjId != nProjId ) THEN---- /* Blank Release Required OR Release imported from other project */---- IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN-- /* No Releases found in the project, hence calculate next version available. */---- -- Set parent rtag-- nParentRtagId := SET_PARENT_AS_YOURSELF;------ BEGIN-- -- Get Next Available Global Root Version-- SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) ) INTO ProjRootVersion-- FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;---- -- Set Next Rtag Version-- sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );---- -- Restart Lifecycle-- nNextLifeCycle := 0;------ EXCEPTION-- WHEN NO_DATA_FOUND THEN-- -- Release Manager has no releases, hence start from 1-- sNextVersion := '1';-- nNextLifeCycle := 0;---- END;-------- ELSE-- /* Releases found in this project. */---- SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE INTO nParentRtagId, LastLifeCycle-- FROM (-- SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_VERSION = ProjRootVersion-- ORDER BY rt.RTAG_LIFE_CYCLE DESC-- ) qry-- WHERE ROWNUM = 1;------ -- Set same Rtag Version-- sNextVersion := ProjRootVersion;---- -- Increase Lifecycle-- nNextLifeCycle := LastLifeCycle + 1;---- END IF;-------- ELSE-- /* Create Release From other release within this project */---- -- Set parent id-- nParentRtagId := nSourceRtagId;------ -- Get number of source branches-- SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.PARENT_RTAG_ID = nSourceRtagId;------ IF SourceBranchCount = 0 THEN-- /* Release is Head (i.e. Tip on its branch ) */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion;---- -- Increase Lifecycle-- nNextLifeCycle := SourceLifeCycle + 1;------ ELSIF SourceBranchCount = 1 THEN-- /* Release IS NOT Head, but can be branched */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;---- -- Reset Lifecycle to 1-- nNextLifeCycle := 1;------ ELSE-- -- Limit of two branches is reached-- RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');---- END IF;-------------- END IF;------END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView = 'Y') THEN-- Get Base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.BASE_VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);sPkgVersion VARCHAR2(4000);nPkgId NUMBER;sVExt VARCHAR2(4000);IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';-- Find package for replacementCURSOR curReplacePkg ISSELECT pv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.PV_ID = pv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PKG_ID = nPkgIdAND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );recReplacePkg curReplacePkg%ROWTYPE;BEGIN-- Get is_patch, pkg_id and v_extSELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT INTO IsPatch, nPkgId, sVExtFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;-- Never put patch in relesed areaIF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN-- Try to get a package to be replaced with this new one.-- Use unique constraint of PKG_ID and V_EXTOPEN curReplacePkg;FETCH curReplacePkg INTO recReplacePkg;IF curReplacePkg%FOUND THEN-- Replace packageREPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );ELSE-- Add new packageINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;SELECT pv.PKG_VERSION INTO sPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curReplacePkg;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);sPkgVersion VARCHAR2(4000);BEGIN-- Replace PackageUPDATE RELEASE_CONTENTSET pv_id = newPvId,insert_stamp = Ora_Sysdate,insertor_id = UserIdWHERE rtag_id = RtagIdAND pv_id = oldPvId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;SELECT pv.PKG_VERSION INTO sPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);CURSOR curMatchingPackage ISSELECT mpv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS mpv,PACKAGE_VERSIONS pvWHERE rc.PV_ID = mpv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PV_ID = PvIdAND pv.PKG_ID = mpv.PKG_IDAND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );recMatchingPackage curMatchingPackage%ROWTYPE;BEGINOPEN curMatchingPackage;FETCH curMatchingPackage INTO recMatchingPackage;IF curMatchingPackage%FOUND THEN-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = recMatchingPackage.PV_IDAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curMatchingPackage;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT rc.BASE_VIEW_ID INTO ReturnValueFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = RtagIdAND rc.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) ISBEGIN-- Reset Ignore warnings up-the-treeRESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );-- Refresh Package statesTOUCH_RELEASE ( RtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) ISCURSOR curReleases ISSELECT rc.RTAG_IDFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvId;recReleases curReleases%ROWTYPE;BEGINOPEN curReleases;FETCH curReleases INTO recReleases;WHILE curReleases%FOUNDLOOPRUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );FETCH curReleases INTO recReleases;END LOOP;CLOSE curReleases;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE RELEASE_CONTENT rc SETrc.BASE_VIEW_ID = NewViewIdWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) ISRowCount NUMBER;CURSOR curPackageClash ISSELECT pkg.PKG_NAME,er.*FROM (/* Get existing referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_LINKS rl,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = rc.RTAG_IDAND rc.PV_ID = pv.PV_ID) er,(/* Get current reference packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,PACKAGES PKGWHERE er.PKG_ID = cr.PKG_IDAND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND er.PKG_ID = pkg.PKG_ID;recPackageClash curPackageClash%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/ProblemString := NULL;-- Check if release already has referencesSELECT COUNT(rl.RTAG_ID) INTO RowCountFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;IF RowCount > 0 THEN-- Found existing references-- Make sure there is no package clashesOPEN curPackageClash;FETCH curPackageClash INTO recPackageClash;IF curPackageClash%FOUND THENProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| UTL_TCP.CRLF;WHILE curPackageClash%FOUNDLOOPEXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || UTL_TCP.CRLF ) > 200; -- Do not allow variable overflowProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || UTL_TCP.CRLF;FETCH curPackageClash INTO recPackageClash;END LOOP;END IF;CLOSE curPackageClash;ELSE-- No references found, hence reference a release-- Remove exising package from this release to be referencedREMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);-- Add new linked packages to releaseINSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)SELECT nRtagId,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRefRtagId;-- Copy ignore warnings for referenced packagesINSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)SELECT nRtagId,iw.PV_ID,iw.DPV_ID,iw.IS_PATCH_IGNOREFROM IGNORE_WARNINGS iw,RELEASE_CONTENT rcWHERE iw.RTAG_ID = rc.RTAG_IDAND iw.PV_ID = rc.PV_IDAND rc.RTAG_ID = nRefRtagId;-- Reference releaseINSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)VALUES ( nRtagId, nRefRtagId );-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/-- Remove ignore warnings for those packages who use referenced packagesDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.DPV_ID IN (SELECT dep.DPV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,(/* Get all dependencies for current release */SELECT DISTINCTpv.PKG_ID,pv.V_EXT,dep.DPV_IDFROM RELEASE_CONTENT rc,PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = dep.PV_IDAND dep.PV_ID = pv.PV_ID) depWHERE dep.PKG_ID = cr.PKG_IDAND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|'));-- Remove ignore warnings for those package which are going to be replaced with the referenceDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove matching packages from releaseDELETE FROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove Reference releaseDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = nRefRtagId;-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IScReleaseMode CHAR(1);cPvMode CHAR(1);BEGIN-- Get Release ModeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = RtagId;-- Get Package ModeSELECT pv.DLOCKED INTO cPvModeFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = PvId;-- Only check if package is lockedIF (cPvMode = 'Y') THENIF (cReleaseMode != 'N') AND (Permission != 'Y')THENRAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/END PK_RELEASE_TEST;/ALTER PACKAGE "RELEASE_MANAGER"."PK_RELEASE_TEST"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-29 16:25:16'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 08/Feb/2008|| Body Version: 3.3------------------------------*//*-------------------------------------------------------------------------------------------------------*/FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)RETURN typecurISnpvid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get PV_ID --SELECT pv.pv_idINTO npvidFROM PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000, 'Package Not Found!');--WHEN OTHERS THEN-- Consider logging the error and then re-raiseRAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_versionFROM package_dependencies dep, PACKAGES dpkg, package_versions dpvWHERE dep.pv_id = npvidAND dpv.pkg_id = dpkg.pkg_idAND dpv.pv_id = dep.dpv_id;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION wip_iteration_package (projname VARCHAR2,iterationname VARCHAR2,pkgname VARCHAR2)RETURN typecurISnrtagid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get latest rtag_id --SELECT rt.rtag_idINTO nrtagidFROM projects proj, release_tags rtWHERE rt.proj_id = proj.proj_idAND UPPER (proj.proj_name) = UPPER (projname)AND UPPER (rt.rtag_name) = UPPER (iterationname);IF (nrtagid IS NULL)THENraise_application_error (-20000,'Work In Progress is Not Found!');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000,'Work In Progress is Not Found!');RAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,pv.src_pathFROM PACKAGES pkg, package_versions pv, work_in_progress wipWHERE pv.pkg_id = pkg.pkg_idAND wip.pv_id = pv.pv_idAND wip.rtag_id = nrtagidAND pkg.pkg_name = pkgname;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION auto_make_release (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,label IN VARCHAR2,dependenciesimportlist IN VARCHAR2,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBERISpkgid NUMBER;pvid NUMBER := 0;userid NUMBER;dlocked VARCHAR2 (20) := NULL;clonefrompvid NUMBER;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;return_package_not_found NUMBER := -1;return_package_already_exists NUMBER := -2;return_not_approved NUMBER := -3;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENraise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pkgname IS NULL)THENraise_application_error (-20000, 'PkgName must be supplied.');END IF;IF (newpkgversion IS NULL)THENraise_application_error (-20000, 'PkgVersion must be supplied.');END IF;IF (label IS NULL)THENraise_application_error (-20000, 'Label must be supplied.');END IF;IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)THENraise_application_error(-20000,'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');END IF;IF (username IS NULL)THENraise_application_error (-20000, 'UserName must be supplied.');END IF;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000,'UserName '|| username|| ' is not valid or disabled.');END;/*-------------------------------------------------------*/-- Create package if necessaryIF isrippled = 1THEN/* Ripple Build */BEGIN-- Make sure that package does not existSELECT pv.pv_idINTO pvidFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = newpkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);BEGIN-- Find package to be replaced with thie ripple packageIF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THENSELECT pv.pv_idINTO clonefrompvidFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');ELSESELECT pv.pv_idINTO clonefrompvidFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Cannot get CloneFromPvId. VExt='|| vext|| ', RtagId='|| rtagid|| ', PkgName='|| pkgname|| ', SSV_EXT='|| ssv_ext);END;IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THEN-- Create packageseed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);ELSE-- Create packageseed_package_names_versions2 (pkgname,newpkgversion,userid,pvid,clonefrompvid);END IF;-- Update Package reason for releaseUPDATE package_versions pvSET pv.comments = 'Rippled Build.',pv.build_type = 'Y'WHERE pv.pv_id = pvid;ELSE-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END IF;ELSE/* Auto build from Pending area */-- Find package in pending areaBEGINSELECT pv.pv_id, pv.dlockedINTO pvid, dlockedFROM planned pl, package_versions pv, PACKAGES pkgWHERE pl.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND pl.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.dlocked = 'A'AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Package does not exist in pending area, hence report itRETURN return_package_not_found;ELSIF (dlocked != 'A')THEN-- Package is not approved for autobuildRETURN return_not_approved;END IF;END IF;BEGIN-- Import Dependenciesimport_dependencies (pvid, dependenciesimportlist, userid);END;BEGIN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);-- Update Package DetailsUPDATE package_versions pvSET pv.pkg_version = newpkgversion,pv.v_ext = ssv_ext,pv.v_mm = ssv_mm,pv.v_nmm = ssv_nmm,pv.pkg_label = labelWHERE pv.pv_id = pvid;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHEN-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END;-- Update the is_autobuildableUPDATE package_versionsSET is_autobuildable = 'Y'WHERE pv_id = pvid;-- Now release packagepk_environment.auto_make_release (pvid,rtagid,userid,vext,ssv_ext,clonefrompvid);--Now clean the PLANNED_VERSIONS tableSELECT pkg_idINTO pkgidFROM PACKAGESWHERE pkg_name = pkgname;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = newpkgversion;RETURN pvid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE import_dependencies (pvid IN NUMBER,dependenciesimportlist IN VARCHAR2,userid IN NUMBER)IS/*|| DependenciesImportList Format:|| "pkgA","1.0.0";"pkgB","2.0.0";|| OR 'pkgA','1.0.0';'pkgB','2.0.0';*/TYPE tdictionary IS TABLE OF VARCHAR2 (4000)INDEX BY VARCHAR2 (4000);seperator VARCHAR2 (2) := '||';pkgname VARCHAR2 (4000);pkgversion VARCHAR2 (4000);buildtype VARCHAR2 (50);pkgid NUMBER;vext VARCHAR2 (4000);dpvid NUMBER;slist VARCHAR2 (4000);cbuildtypes tdictionary;dependencyrow NUMBER;sdependency VARCHAR2 (4000);first_pos VARCHAR2 (4000);second_pos VARCHAR2 (4000);third_pos VARCHAR2 (4000);forth_pos VARCHAR2 (4000);citemcollection relmgr_varchar2_tab_t := relmgr_varchar2_tab_t ();CURSOR curbuildtypeISSELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,dep.build_typeFROM package_dependencies dep, package_versions dpvWHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;recbuildtype curbuildtype%ROWTYPE;BEGINslist := dependenciesimportlist;-- Preformat StringIF NOT slist IS NULLTHENslist := REPLACE (slist, ' '); -- Remove spacesslist := REPLACE (slist, UTL_TCP.crlf);-- Remove new line and carriage-return charactersslist := REPLACE (slist, '''', '"'); -- Replace ' with "END IF;-- Get Current DependenciesOPEN curbuildtype;FETCH curbuildtypeINTO recbuildtype;WHILE curbuildtype%FOUNDLOOPcbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;FETCH curbuildtypeINTO recbuildtype;END LOOP;CLOSE curbuildtype;-- Separate dependencies with ; separatorcitemcollection := in_list_varchar2 (slist, ';');BEGIN-- Remove old dependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;-- Loop through dependenciesFOR dependencyrow IN 1 .. citemcollection.COUNTLOOP-- Extract pkg_name and pkg_versionsdependency := citemcollection (dependencyrow);first_pos := INSTR (sdependency, '"', 1, 1);second_pos := INSTR (sdependency, '"', 1, 2);third_pos := INSTR (sdependency, '"', 1, 3);forth_pos := INSTR (sdependency, '"', 1, 4);pkgname :=SUBSTR (sdependency,(first_pos + 1),(second_pos - first_pos - 1));pkgversion :=SUBSTR (sdependency,(third_pos + 1),(forth_pos - third_pos - 1));-- Dependency must exits to be linked againstBEGINSELECT pv.pv_id, pv.pkg_id, pv.v_extINTO dpvid, pkgid, vextFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Dependency ['|| pkgname|| ' '|| pkgversion|| '] does not exist yet and cannot be used!');END;-- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)BEGINbuildtype := cbuildtypes (pkgid || seperator || vext);IF buildtype IS NULLTHEN-- Set build type to LinkPackageArchive by defaultbuildtype := 'L';END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENbuildtype := 'L';END;-- Insert Dependenciesupdate_package_dependency (pvid,pkgname,pkgversion,buildtype,userid,0);END LOOP;END;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2ISpkgversion VARCHAR2 (4000);BEGINBEGINSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND rc.rtag_id = rtagid;RETURN pkgversion;END;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2ISpkgversion VARCHAR2 (4000);BEGINBEGINSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, work_in_progress wip, package_versions pvWHERE pv.pv_id = wip.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND wip.rtag_id = rtagid;IF pkgversion IS NULLTHENSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, planned pl, package_versions pvWHERE pv.pv_id = pl.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND pl.rtag_id = rtagid;END IF;RETURN pkgversion;END;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_dash_board (rtagid IN NUMBER)ISprojid NUMBER;projiddb NUMBER;total NUMBER;auto_total NUMBER;rtagiddb NUMBER;BEGINSELECT COUNT (*)INTO totalFROM release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;SELECT COUNT (*)INTO auto_totalFROM release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_idAND pv.is_autobuildable = 'Y'AND rc.rtag_id = rtagid;BEGINSELECT rtag_idINTO rtagiddbFROM dash_boardWHERE rtag_id = rtagid;SELECT proj_idINTO projiddbFROM dash_boardWHERE rtag_id = rtagid;EXCEPTIONWHEN NO_DATA_FOUNDTHENrtagiddb := '';END;IF rtagiddb IS NULLTHENSELECT proj_idINTO projidFROM release_tagsWHERE rtag_id = rtagid;INSERT INTO dash_board(proj_id, rtag_id, last_build_time, automated_packages,total_packages)VALUES (projid, rtagid, ora_sysdatetime, auto_total,total);ELSEUPDATE dash_boardSET last_build_time = ora_sysdatetime,automated_packages = auto_total,total_packages = totalWHERE proj_id = projiddb AND rtag_id = rtagiddb;END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION exclude_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2)RETURN NUMBERISuserid NUMBER;outerrcode NUMBER;pkgid NUMBER;CURSOR dnr_duplicate_curISSELECT *FROM do_not_rippleWHERE pv_id = pvid AND rtag_id = rtagid;dnr_duplicate_rec dnr_duplicate_cur%ROWTYPE;BEGINouterrcode := -1; -- Set default return error code to ERROR state/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pvid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'PvId must be supplied.');END IF;IF (username IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'UserName must be supplied.');END IF;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENRETURN outerrcode;-- raise_application_error (-20000,-- 'UserName '-- || username-- || ' is not valid or disabled.'-- );END;OPEN dnr_duplicate_cur;FETCH dnr_duplicate_curINTO dnr_duplicate_rec;IF dnr_duplicate_cur%FOUNDTHENouterrcode := 0;END IF;IF dnr_duplicate_cur%NOTFOUNDTHEN/* No duplicate recordset */unripple_package (pvid, rtagid, userid);outerrcode := 0; -- Set return to SUCCESSEND IF;CLOSE dnr_duplicate_cur;SELECT pkg_idINTO pkgidFROM package_versionsWHERE pv_id = pvid;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = spkgversion;RETURN outerrcode;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)ISBEGININSERT INTO abt_action_log(rcon_id, action_datetime, action)VALUES (rconid, ora_sysdatetime, action);END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION insert_package_metrics (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,metricstring IN VARCHAR2)RETURN NUMBERIScitemcollection relmgr_varchar2_tab_t := relmgr_varchar2_tab_t ();pvid NUMBER := 0;rownumber NUMBER;rowcontent VARCHAR2(4000);metricname VARCHAR2(1000);metricvalue VARCHAR2(4000);return_insert_error NUMBER := -1;return_insert_success NUMBER := 0;/* Metrics */branches NUMBER;branchlist VARCHAR2(4000);codefiles NUMBER;ignoredfiles NUMBER;directories NUMBER;directorydepth NUMBER;totalfiles NUMBER;makefiles NUMBER;blanklines NUMBER;codelines NUMBER;commentlines NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENRETURN return_insert_error;END IF;IF (pkgname IS NULL)THENRETURN return_insert_error;END IF;IF (metricstring IS NULL)THENRETURN return_insert_error;END IF;BEGINSELECT pv.pv_idINTO pvidFROM package_versions pv, packages pkg, release_content rcWHEREpv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pv.pv_id = rc.pv_idAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;citemcollection := in_list_varchar2 (metricstring, ';');FOR rownumber IN 1 .. citemcollection.COUNTLOOProwcontent := citemcollection(rownumber);metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');IF metricname = 'ccbranch.count' THEN branches := metricvalue;ELSIF metricname = 'ccbranch.list' THEN branchlist := metricvalue;ELSIF metricname = 'code.files' THEN codefiles := metricvalue;ELSIF metricname = 'code.ignored' THEN ignoredfiles := metricvalue;ELSIF metricname = 'count.dir' THEN directories := metricvalue;ELSIF metricname = 'count.dirdepth' THEN directorydepth := metricvalue;ELSIF metricname = 'count.file' THEN totalfiles := metricvalue;ELSIF metricname = 'count.makefile' THEN makefiles := metricvalue;ELSIF metricname = 'lines.blank' THEN blanklines := metricvalue;ELSIF metricname = 'lines.code' THEN codelines := metricvalue;ELSIF metricname = 'lines.comment' THEN commentlines := metricvalue;END IF;END LOOP;IF (pvid > 0)THEN-- Delete any existing entries for this package version to makes sure our data is untaintedDELETE FROM package_metrics pmWHERE pm.pv_id = pvid;-- Insert the new data into the metrics tableINSERT INTO package_metrics(pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp)VALUES (pvid, branches, branchlist, codefiles, ignoredfiles, directories, directorydepth,totalfiles, makefiles, blanklines, codelines, commentlines, ora_sysdatetime);-- Now update the Release_Metrics Tableupdate_release_metrics(rtagid);RETURN return_insert_success;ELSERETURN return_insert_error;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_release_metrics (rtagid IN NUMBER)IStotalpackages NUMBER;autobuilt NUMBER;linesofcode NUMBER;unittested NUMBER;autotested NUMBER;numOfbranches NUMBER;lastbuildtime DATE;BEGINIF (rtagid > 0)THEN-- Get the total number of packages in this release and the number of-- those that are autobuiltSELECT COUNT (DISTINCT rc.pv_id),COUNT (DISTINCT autobuilt_qry.pv_id)INTO totalpackages, autobuiltFROM release_content rc,package_versions pv,(SELECT rc.pv_idFROM release_content rc,package_versions pvWHERE pv.is_autobuildable = 'Y'AND pv.pv_id = rc.pv_idAND rc.rtag_id = rtagid) autobuilt_qryWHERE pv.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND autobuilt_qry.pv_id (+) = rc.pv_id;-- Get the build time of the last package built in this release and the-- total number of lines of codeSELECT MAX(pm.created_stamp),SUM(pm.code_lines)INTO lastbuildtime, linesofcodeFROM package_metrics pm, release_content rcWHERE pm.pv_id = rc.pv_idAND rc.rtag_id = rtagid;-- Get the number of packages with unit tests in this release and the-- number of those that are autotestedSELECT COUNT(DISTINCT ut.pv_id),COUNT(DISTINCT autotest_qry.pv_id)INTO unittested, autotestedFROM unit_tests ut,release_content rc,(SELECT ut.pv_idFROM unit_tests ut, release_content rcWHERE ut.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND ut.test_types_fk = 7) autotest_qryWHERE ut.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND autotest_qry.pv_id (+) = ut.pv_id;-- Count the number of unique branches in the packages in this release.-- SELECT COUNT(DISTINCT branch) INTO numOfbranches-- FROM (-- SELECT pv_id,-- regexp_substr(str, '[^,]+', 1, level) branch,-- level lv,-- lag(level, 1, 0) over (partition by pv_id order by level) lg-- FROM (-- SELECT pm.pv_id,-- ','||pm.branch_list str-- FROM package_metrics pm,-- release_content rc-- WHERE pm.pv_id = rc.pv_id-- AND rc.rtag_id = rtagid-- )-- CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL-- )-- WHERE lv != lg;UPDATE release_metrics rmSET rm.total_packages = totalpackages,rm.autobuilt = autobuilt,rm.lines_of_code = linesofcode,rm.unit_tested = unittested,rm.autotested = autotested,-- rm.branches = numOfbranches,rm.last_build_time = lastbuildtimeWHERE rtag_id = rtagid;IF (SQL%ROWCOUNT = 0)THENINSERT INTO release_metrics(rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,autotested, last_build_time)VALUES (rtagid, totalpackages, autobuilt, linesofcode, unittested,autotested, lastbuildtime);END IF;-- IF (SQL%ROWCOUNT = 0)-- THEN-- INSERT INTO release_metrics-- (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,-- autotested, branches, last_build_time-- )-- VALUES (rtagid, totalpackages, autobuilt, linesofcode, unittested,-- autotested, numOfbranches, lastbuildtime-- );-- END IF;-- ELSE-- raise_application_error (-20000, 'RtagId must be supplied.');END IF;END;/*-------------------------------------------------------------------------------------------------------*/END pk_rmapi;/ALTER PACKAGE "RELEASE_MANAGER"."PK_RMAPI"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-09 14:47:11'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI_TEST"IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 11 September 2006|| Body Version: 2.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)RETURN typecurISnpvid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get PV_ID --SELECT pv.pv_idINTO npvidFROM PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000, 'Package Not Found!');--WHEN OTHERS THEN-- Consider logging the error and then re-raiseRAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_versionFROM package_dependencies dep, PACKAGES dpkg, package_versions dpvWHERE dep.pv_id = npvidAND dpv.pkg_id = dpkg.pkg_idAND dpv.pv_id = dep.dpv_id;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION wip_iteration_package (projname VARCHAR2,iterationname VARCHAR2,pkgname VARCHAR2)RETURN typecurISnrtagid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get latest rtag_id --SELECT rt.rtag_idINTO nrtagidFROM projects proj, release_tags rtWHERE rt.proj_id = proj.proj_idAND UPPER (proj.proj_name) = UPPER (projname)AND UPPER (rt.rtag_name) = UPPER (iterationname);IF (nrtagid IS NULL)THENraise_application_error (-20000,'Work In Progress is Not Found!');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000,'Work In Progress is Not Found!');RAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,pv.src_pathFROM PACKAGES pkg, package_versions pv, work_in_progress wipWHERE pv.pkg_id = pkg.pkg_idAND wip.pv_id = pv.pv_idAND wip.rtag_id = nrtagidAND pkg.pkg_name = pkgname;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION auto_make_release (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,label IN VARCHAR2,dependenciesimportlist IN VARCHAR2,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBERISpvid NUMBER := 0;userid NUMBER;dlocked VARCHAR2 (20) := NULL;clonefrompvid NUMBER;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;return_package_not_found NUMBER := -1;return_package_already_exists NUMBER := -2;return_not_approved NUMBER := -3;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENraise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pkgname IS NULL)THENraise_application_error (-20000, 'PkgName must be supplied.');END IF;IF (newpkgversion IS NULL)THENraise_application_error (-20000, 'PkgVersion must be supplied.');END IF;IF (label IS NULL)THENraise_application_error (-20000, 'Label must be supplied.');END IF;IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)THENraise_application_error(-20000,'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');END IF;IF (username IS NULL)THENraise_application_error (-20000, 'UserName must be supplied.');END IF;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000,'UserName '|| username|| ' is not valid or disabled.');END;/*-------------------------------------------------------*/-- Create package if necessaryIF isrippled = 1THEN/* Ripple Build */BEGIN-- Make sure that package does not existSELECT pv.pv_idINTO pvidFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = newpkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);BEGIN-- Find package to be replaced with thie ripple packageIF vext = ssv_extTHENSELECT pv.pv_idINTO clonefrompvidFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.v_ext = ssv_ext;ELSESELECT pv.pv_idINTO clonefrompvidFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.v_ext = vext;END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Cannot get CloneFromPvId. VExt='|| vext|| ', RtagId='|| rtagid|| ', PkgName='|| pkgname|| ', SSV_EXT='|| ssv_ext);END;IF vext = ssv_extTHEN-- Create packageseed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);ELSE-- Create packageseed_package_names_versions2 (pkgname,newpkgversion,userid,pvid,clonefrompvid);END IF;-- Update Package reason for releaseUPDATE package_versions pvSET pv.comments = 'Rippled Build.',pv.build_type = 'Y'WHERE pv.pv_id = pvid;ELSE-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END IF;ELSE/* Auto build from Pending area */-- Find package in pending areaBEGINSELECT pv.pv_id, pv.dlockedINTO pvid, dlockedFROM planned pl, package_versions pv, PACKAGES pkgWHERE pl.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND pl.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.dlocked = 'A'AND NVL (pv.v_ext, '|LINK_A_NULL|') =NVL (vext, '|LINK_A_NULL|');EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Package does not exist in pending area, hence report itRETURN return_package_not_found;ELSIF (dlocked != 'A')THEN-- Package is not approved for autobuildRETURN return_not_approved;END IF;END IF;BEGIN-- Import Dependenciesimport_dependencies (pvid, dependenciesimportlist, userid);END;BEGIN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);-- Update Package DetailsUPDATE package_versions pvSET pv.pkg_version = newpkgversion,pv.v_ext = ssv_ext,pv.v_mm = ssv_mm,pv.v_nmm = ssv_nmm,pv.pkg_label = labelWHERE pv.pv_id = pvid;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHEN-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END;-- Update the is_autobuildableupdate package_versionsset is_autobuildable = 'Y'where pv_id = pvid;-- Now release packagepk_environment.auto_make_release (pvid,rtagid,userid,vext,ssv_ext,clonefrompvid);RETURN pvid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE import_dependencies (pvid IN NUMBER,dependenciesimportlist IN VARCHAR2,userid IN NUMBER)IS/*|| DependenciesImportList Format:|| "pkgA","1.0.0";"pkgB","2.0.0";|| OR 'pkgA','1.0.0';'pkgB','2.0.0';*/TYPE tdictionary IS TABLE OF VARCHAR2 (4000)INDEX BY VARCHAR2 (4000);seperator VARCHAR2 (2) := '||';pkgname VARCHAR2 (4000);pkgversion VARCHAR2 (4000);buildtype VARCHAR2 (50);pkgid NUMBER;vext VARCHAR2 (4000);dpvid NUMBER;slist VARCHAR2 (4000);cbuildtypes tdictionary;dependencyrow NUMBER;sdependency VARCHAR2 (4000);first_pos VARCHAR2 (4000);second_pos VARCHAR2 (4000);third_pos VARCHAR2 (4000);forth_pos VARCHAR2 (4000);citemcollection relmgr_varchar2_tab_t := relmgr_varchar2_tab_t ();CURSOR curbuildtypeISSELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,dep.build_typeFROM package_dependencies dep, package_versions dpvWHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;recbuildtype curbuildtype%ROWTYPE;BEGINslist := dependenciesimportlist;-- Preformat StringIF NOT slist IS NULLTHENslist := REPLACE (slist, ' '); -- Remove spacesslist := REPLACE (slist, UTL_TCP.crlf);-- Remove new line and carriage-return charactersslist := REPLACE (slist, '''', '"'); -- Replace ' with "END IF;-- Get Current DependenciesOPEN curbuildtype;FETCH curbuildtypeINTO recbuildtype;WHILE curbuildtype%FOUNDLOOPcbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;FETCH curbuildtypeINTO recbuildtype;END LOOP;CLOSE curbuildtype;-- Separate dependencies with ; separatorcitemcollection := in_list_varchar2 (slist, ';');BEGIN-- Remove old dependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;-- Loop through dependenciesFOR dependencyrow IN 1 .. citemcollection.COUNTLOOP-- Extract pkg_name and pkg_versionsdependency := citemcollection (dependencyrow);first_pos := INSTR (sdependency, '"', 1, 1);second_pos := INSTR (sdependency, '"', 1, 2);third_pos := INSTR (sdependency, '"', 1, 3);forth_pos := INSTR (sdependency, '"', 1, 4);pkgname :=SUBSTR (sdependency,(first_pos + 1),(second_pos - first_pos - 1));pkgversion :=SUBSTR (sdependency,(third_pos + 1),(forth_pos - third_pos - 1));-- Dependency must exits to be linked againstBEGINSELECT pv.pv_id, pv.pkg_id, pv.v_extINTO dpvid, pkgid, vextFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Dependency ['|| pkgname|| ' '|| pkgversion|| '] does not exist yet and cannot be used!');END;-- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)BEGINbuildtype := cbuildtypes (pkgid || seperator || vext);IF buildtype IS NULLTHEN-- Set build type to LinkPackageArchive by defaultbuildtype := 'L';END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENbuildtype := 'L';END;-- Insert Dependenciesupdate_package_dependency (pvid,pkgname,pkgversion,buildtype,userid,0);END LOOP;END;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2ISpkgversion VARCHAR2 (4000);BEGINBEGINSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND rc.rtag_id = rtagid;RETURN pkgversion;END;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CQ_TEST ISINPUT NUMBER(8,2);RESULT VARCHAR2(50);BEGININPUT := 33558440;RESULT := dbo.sp_RM_getIssueDetails@DEVI(INPUT);INSERT INTO CQ_TEST (ID) VALUES (RESULT);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE UPDATE_DASH_BOARD ( RtagId IN NUMBER ) ISprojId NUMBER;projIdDB NUMBER;TOTAL NUMBER;AUTO_TOTAL NUMBER;rtagIdDB NUMBER;BEGINSELECT count(*) INTO TOTALFROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pvWHERE pv.pv_id = rc.pv_id and rc.rtag_id = RtagId;SELECT count(*) INTO AUTO_TOTALFROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pvWHERE pv.pv_id = rc.pv_id and pv.is_autobuildable = 'Y'and rc.rtag_id = RtagId;BEGINSELECT RTAG_ID INTO rtagIdDBFROM DASH_BOARDWHERE RTAG_ID = RtagId;SELECT PROJ_ID INTO projIdDBFROM DASH_BOARDWHERE RTAG_ID = RtagId;EXCEPTIONWHEN NO_DATA_FOUNDTHEN rtagIdDB := '';END;IF rtagIdDB IS NULL THENSELECT PROJ_ID INTO projIdFROM RELEASE_TAGSWHERE RTAG_ID = RtagId;INSERT INTO DASH_BOARD (PROJ_ID, RTAG_ID, LAST_BUILD_TIME, AUTOMATED_PACKAGES, TOTAL_PACKAGES)VALUES ( projId, RtagId, ORA_SYSDATETIME, AUTO_TOTAL, TOTAL);ELSEUPDATE DASH_BOARDSET LAST_BUILD_TIME = ORA_SYSDATETIME,AUTOMATED_PACKAGES = AUTO_TOTAL,TOTAL_PACKAGES = TOTALWHERE PROJ_ID = projIdDBAND RTAG_ID = rtagIdDB;END IF;END;/*-------------------------------------------------------------------------------------------------------*/END pk_rmapi_test;/ALTER PACKAGE "RELEASE_MANAGER"."PK_RMAPI_TEST"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-02-06 11:21:54'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 26/Apr/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur) ISBEGINIF (NOT RtagId IS NULL) THEN-- Case with RTAG_ID presentOPEN records FORSELECT rt.PROJ_ID,rt.RTAG_ID AS RTAG_IDFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = TO_NUMBER(RtagId);ELSIF (NOT ProjId IS NULL) THEN-- Case with PROJ_ID presentOPEN records FORSELECT TO_NUMBER(ProjId) AS PROJ_ID,-1 AS RTAG_IDFROM DUAL;ELSE-- Case with none presentOPEN records FORSELECT -1 AS PROJ_ID,-1 AS RTAG_IDFROM DUAL;END IF;--RETURN records;END;/*-------------------------------------------------------------------------------------------------------*/END PK_APP_UTILS;/ALTER PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-04-11 16:21:37'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT"IS/*------------------------------|| Last Modified: Rupesh Solanki|| Modified Date: 30/Aug/2007|| Body Version: 1.2------------------------------*//*-------------------------------------------------------------------------------------------------------*/FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)RETURN NUMBERISBEGIN/*|| N - unlocked|| Y - release and locked|| P - penging approval|| A - approved package ready for auto-build*/IF cdlock = 'N' OR cdlock = 'R'THEN-- WORK IN PROGRESS --RETURN 0;ELSIF cdlock = 'P' OR cdlock = 'A'THEN-- PENDING --RETURN 1;ELSIF cdlock = 'Y'THEN-- RELEASED --RETURN 2;ELSE-- NOT FOUND --raise_application_error(-20000,'Cannot decide where to place package. [cDlock='|| cdlock|| ']');END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER := -1;CURSOR curareaISSELECT 2 AS envtabFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT 0 AS envtabFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT 1 AS envtabFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recarea curarea%ROWTYPE;BEGINOPEN curarea;FETCH curareaINTO recarea;IF curarea%FOUNDTHENenvtab := recarea.envtab;END IF;CLOSE curarea;RETURN envtab;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISispatch package_versions.dlocked%TYPE;viewid NUMBER := -1;CURSOR curviewISSELECT rc.base_view_id AS view_idFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT wip.view_id AS view_idFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT pl.view_id AS view_idFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recview curview%ROWTYPE;BEGIN-- Get dlock stateSELECT pv.is_patchINTO ispatchFROM package_versions pvWHERE pv.pv_id = pvid;-- Decide which view id should package go under.IF (ispatch != 'Y') OR (ispatch IS NULL)THEN-- Get VIEW ID of PackageOPEN curview;FETCH curviewINTO recview;IF curview%FOUNDTHENviewid := recview.view_id;ELSEraise_application_error(-20000,'Cannot find view_id to proceed. [PvId='|| pvid|| ']. The current version may not exist in the release anymore.');END IF;CLOSE curview;ELSE-- Get VIEW ID of Patch (view id of parent package)SELECT rc.base_view_idINTO viewidFROM release_content rc, package_patches ppvWHERE rc.rtag_id = rtagidAND rc.pv_id = ppv.pv_idAND ppv.patch_id = pvid;END IF;RETURN viewid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package (pvid IN NUMBER,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISdlocked package_versions.dlocked%TYPE;envtab NUMBER;BEGINIF can_edit_pkg_in_project (pvid, rtagid) = 1THEN-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = pvid;-- Get which area should go underenvtab := select_environment_area (dlocked);-- Loglog_action (pvid, 'action', userid, 'Start of Package Add...');-- Remove PackageIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.add_package (pvid, viewid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED ---- NOTE: this package will be replaced with matching packagepk_release.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);END IF;-- Loglog_action (pvid, 'action', userid, 'End of Package Add...');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_bulk (pvidlist IN VARCHAR2,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISnidcollector relmgr_number_tab_t := relmgr_number_tab_t();dlocked package_versions.dlocked%TYPE;pvid NUMBER;envtab NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (pvidlist IS NULL)THENraise_application_error (-20000,'Please select at least one package.');END IF;/*-------------------------------------------------------*/nidcollector := in_list_number (pvidlist);FOR i IN 1 .. nidcollector.COUNTLOOPpvid := nidcollector (i);add_package (pvid, viewid, rtagid, userid);END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE replace_package (newpvid IN NUMBER,oldpvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISdlocked package_versions.dlocked%TYPE;viewid NUMBER;envtab NUMBER;ROWCOUNT NUMBER;creleasemode CHAR (1);npkgid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check if oldPvId exists. It could have been removedSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pv_id = oldpvid;/*-------------------------------------------------------*//* This procedure is usually used by "History" option in Release Manager */-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = newpvid;-- Get VIEW_ID ---IF ROWCOUNT = 1THENviewid := get_view_location (oldpvid, rtagid);ELSE-- Set ViewID to defaultviewid := 7;END IF;-- Get which area should go underenvtab := select_environment_area (dlocked);-- Loglog_action (oldpvid, 'action', userid, 'Start of Package Replace...');-- Replace packageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete old packagepk_work_in_progress.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);ELSIF envtab= 1THEN-- PENDING ---- Delete old packagepk_planned.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_planned.add_package (newpvid, viewid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED ---- Delete old packagepk_release.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_release.add_package (newpvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (newpvid, rtagid);END IF;-- Loglog_action (oldpvid, 'action', userid, 'End of Package Replace...');END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION remove_package (pvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,forceremove IN CHAR)RETURN NUMBERISenvtab NUMBER;isused BOOLEAN;recordcount NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Find location of packageenvtab := get_package_area (pvid, rtagid);-- Remove PackageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete packagepk_work_in_progress.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 1THEN-- PENDING ---- Delete packagepk_planned.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 2THEN-- RELEASED ---- Check if is used by other packagesisused := TRUE;IF forceremove = 'N'THENSELECT COUNT (pv.pv_id)INTO recordcountFROM (SELECT dpv.pkg_id, dpv.v_extFROM release_content rc,package_dependencies dep,package_versions dpvWHERE rc.rtag_id = rtagidAND rc.pv_id = dep.pv_idAND dep.dpv_id = dpv.pv_id) rdep,package_versions pvWHERE pv.pkg_id = rdep.pkg_idAND NVL (pv.v_ext, '|LINK_A_NULL|') =NVL (rdep.v_ext, '|LINK_A_NULL|')AND pv.pv_id = pvid;IF recordcount > 0THENRETURN 1; -- Return 1 as package being usedELSEisused := FALSE;END IF;END IF;IF forceremove = 'Y' OR NOT isusedTHEN-- Delete old packagepk_release.remove_package (pvid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);RETURN 0;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_environment_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM environment_view plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM environment_view rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM environment_view rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM environment_view rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM environment_view rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,environment_view rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,environment_view rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_released_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel, views viWHERE rel.base_view_id = vi.view_idAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel,view_settings vs,views viWHERE rel.base_view_id = vi.view_idAND vs.view_id = rel.base_view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,release_content rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,release_content rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_work_in_progress_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (wip.pv_id)INTO ntruerecordcountFROM work_in_progress wipWHERE wip.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,work_in_progress rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,work_in_progress rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_pending_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM planned plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM planned rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM planned rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM planned rel, view_settings vs, views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM planned rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,planned rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,planned rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_view_content (rtagid IN NUMBER,viewid IN NUMBER,recordset OUT typecur)ISisbaseview CHAR (1);BEGIN-- Check if the view is BASE VIEWSELECT vi.base_viewINTO isbaseviewFROM views viWHERE vi.view_id = viewid;IF (isbaseview = 'Y')THEN-- Get Base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_typeFROM environment_view rel, PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = viewidAND rel.rtag_id = rtagidORDER BY UPPER (pkg.pkg_name);ELSE-- Get non base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_typeFROM environment_view rel,PACKAGES pkg,package_versions pv,view_def vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.view_id = viewidAND vd.pkg_id = pv.pkg_idORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER;returnvalue NUMBER;return_not_found NUMBER := -1;BEGINenvtab := get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);ELSIF envtab = 1THEN-- PENDING --returnvalue := pk_planned.get_package_view (pvid, rtagid);ELSIF envtab = 2THEN-- RELEASED --returnvalue := pk_release.get_package_view (pvid, rtagid);ELSE-- This may be a Patch not located anywhere but unlockedreturnvalue := return_not_found;END IF;RETURN returnvalue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_release (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;envtab NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;lastversionid NUMBER;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_type, pv.last_pv_idINTO ispatch, buildtype, lastversionidFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);-- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple buildsIF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Release...');IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package statepk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;IF (ispatch IS NULL)THEN-- Add package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Now delete old version from DO_NOT_RIPPLE Table if it ExistsDELETE FROM do_not_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Now delete old version from ADVISORY_RIPPLES Table if it ExistsDELETE FROM advisory_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Release...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE auto_make_release (pvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,vext IN package_versions.v_ext%TYPE,ssv_ext IN package_versions.v_ext%TYPE,clonefrompvid IN NUMBER)ISviewid NUMBER;envtab NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;lastversionid NUMBER;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_type, pv.last_pv_idINTO ispatch, buildtype, lastversionidFROM package_versions pvWHERE pv.pv_id = pvid;IF vext <> ssv_extTHEN-- Get ViewIdviewid := get_package_view (clonefrompvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (clonefrompvid, rtagid);ELSE-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Removefrom current areaenvtab := pk_environment.get_package_area (pvid, rtagid);END IF;-- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple buildsIF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Release...');IF vext <> ssv_extTHENIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (clonefrompvid, rtagid,userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (clonefrompvid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED --pk_release.remove_package (clonefrompvid, rtagid, userid);END IF;ELSEIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;END IF;-- Change package statepk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;IF (ispatch IS NULL)THEN-- Add package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Now update the Dash_Board Table (DEPRECATED)pk_rmapi.update_dash_board (rtagid);-- Now delete old version from DO_NOT_RIPPLE Table if it ExistsDELETE FROM do_not_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Now delete old version from ADVISORY_RIPPLES Table if it ExistsDELETE FROM advisory_rippleWHERE rtag_id = rtagid AND pv_id = lastversionid;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Release...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;envtab NUMBER;BEGIN-- Get ViewId--ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );viewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);-- Loglog_action (pvid,'action',userid,'Start of Make Package UnRelease...');IF envtab = 2THEN-- RELEASE AREA --pk_release.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package statepk_package.change_state (pvid, 'N', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Loglog_action (pvid, 'action', userid, 'End of Make Package UnRelease...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_typeINTO ispatch, buildtypeFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);--ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );-- Loglog_action (pvid, 'action', userid, 'Start of Make Package Pending...');IF (ispatch IS NULL)THEN-- Remove from current areapk_work_in_progress.remove_package (pvid, rtagid, userid);-- Change package statepk_package.change_state (pvid, 'P', userid);-- Add package to new areapk_planned.add_package (pvid, viewid, rtagid, userid);END IF;-- Loglog_action (pvid, 'action', userid, 'End of Make Package Pending...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISBEGIN-- Loglog_action (pvid,'action',userid,'Start of Package Pending Approval...');-- Change package statepk_package.change_state (pvid, 'A', userid);-- Loglog_action (pvid, 'action', userid,'End of Package Pending Approval...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;BEGIN-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );-- Loglog_action (pvid, 'action', userid, 'Start of Reject Package...');-- Remove from current areapk_planned.remove_package (pvid, rtagid, userid);-- Change package statepk_package.change_state (pvid, 'R', userid);-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);-- Loglog_action (pvid, 'action', userid, 'Start of Reject Package...');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_package_view (pvid IN NUMBER,rtagid IN NUMBER,newviewid IN NUMBER)ISenvtab NUMBER;BEGINenvtab := pk_environment.get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 1THEN-- PENDING --pk_planned.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 2THEN-- RELEASED --pk_release.change_package_view (pvid, rtagid, newviewid);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_package (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,work_in_progress rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,planned rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,release_content rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.base_view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,environment_view rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_file (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,npagesize IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_prodrelease_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state, --rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND pv.pv_id NOT IN (SELECT DISTINCT prod_idFROM deployment_manager.os_contents)AND rel.product_state IS NULLORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_integration_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 1;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (1, 5)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_test_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of test productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 2;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 2ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_deploy_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of deploy productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 3;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (3, 5)AND pv.pv_id NOT IN (SELECT DISTINCTprod_idFROM deployment_manager.os_contents)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_reject_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of reject productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 4;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 4ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/END pk_environment;/ALTER PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-09 14:47:20'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE"IS/*------------------------------|| Last Modified: J. Tweddle|| Modified Date: 24/08/2007|| Body Version: 1.8------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER)ISorigpkg_id package_versions.pkg_id%TYPE;origdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;spackageversion VARCHAR2 (4000);nissuestypes NUMBER;nviewid NUMBER;reccount NUMBER;isreleased package_versions.dlocked%TYPE := 'N';slabel VARCHAR2 (4000) := NULL;CURSOR package_versions_curISSELECT pv.pv_id, pv.is_patch, pv.dlockedFROM package_versions pvWHERE pv.pkg_version = snewpkgversionAND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_idFROM package_versions origpvWHERE origpv.pv_id = nlastpvid);package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_curISSELECT DISTINCT pkg_id, dlockedFROM package_versionsWHERE pv_id = nlastpvid;clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGINspackageversion := snewpkgversion;IF nsettopvid IS NULLTHEN-- SetToPv_id is not supplied, hence proceed./* ---------------------------------------------------- *//* Find id package_version exists *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_curINTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN--- Create brand new package ---SELECT seq_pv_id.NEXTVALINTO returnpvidFROM DUAL;-- Split Version to get extention + othersplit_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);-- Get previous package to clone fromOPEN clone_package_versions_cur;FETCH clone_package_versions_curINTO clone_package_versions_rec;origpkg_id := clone_package_versions_rec.pkg_id;origdlocked := clone_package_versions_rec.dlocked;CLOSE clone_package_versions_cur;-- Automated built configIF (cbuildtype = 'A')THENspackageversion := '(' || returnpvid || ')' || ssv_ext;-- Make sure that version is still uniqueEND IF;-- Clone Package Version Details --INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,creator_id, modified_stamp, modifier_id, v_mm, v_nmm,v_ext, src_path, pv_description, pv_overview,last_pv_id, owner_id, is_deployable,is_build_env_required, build_type, bs_id, is_autobuildable, ripple_field)SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,spackageversion AS pkg_version, 'N' AS dlocked,ora_sysdate AS created_stamp, nuserid AS creator_id,ora_sysdatetime AS modified_stamp,nuserid AS modifier_id, ssv_mm AS v_mm,ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,pv.pv_description, pv.pv_overview,nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,pv.is_build_env_required, cbuildtype, pv.bs_id, pv.is_autobuildable, pv.ripple_fieldFROM package_versions pvWHERE pv.pv_id = nlastpvid;-- Set Issues Type for cloning ---IF origdlocked = 'Y'THENnissuestypes := enumissues_state_imported;ELSEnissuestypes := NULL;END IF;-- Update Label for automated builtIF (cbuildtype = 'A')THENslabel := get_automated_label (returnpvid);UPDATE package_versions pvSET pv.pkg_label = slabelWHERE pv.pv_id = returnpvid;END IF;basic_clone (nlastpvid,returnpvid,nrtagid,nuserid,origpkg_id,nissuestypes);ELSE--- Package already exists, hence reuse ---returnpvid := package_versions_rec.pv_id;isreleased := package_versions_rec.dlocked;END IF;CLOSE package_versions_cur;ELSEreturnpvid := nsettopvid;END IF;END new_version;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER)ISBEGIN-- Set package in Released modeUPDATE package_versions pvSET pv.dlocked = newstate,pv.modified_stamp = ora_sysdatetime,pv.modifier_id = useridWHERE pv.pv_id = pvid;-- Log action --IF newstate = 'Y'THEN-- RELEASED --log_action (pvid,'makeofficial',userid,'Package state change to: Released');ELSIF newstate = 'N'THEN-- UNLOCKED --log_action (pvid,'makeunofficial',userid,'Package state change to: Ulocked');ELSIF newstate = 'P'THEN-- PENDING APPROVAL --log_action (pvid,'add_to_planned',userid,'Package state change to: Pending Approval');ELSIF newstate = 'R'THEN-- REJECTED --log_action (pvid,'reject_package',userid,'Package state change to: Rejected');ELSIF newstate = 'A'THEN-- APPROVED --log_action (pvid,'approve_package',userid,'Package state change to: Approved');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2)ISLOCKED CHAR;pkgid NUMBER;ROWCOUNT NUMBER;BEGIN/*|| This will destroy all package details from database.|| It will only be used to remove unwanted work in progress packages,|| or mestaken versions*//*--------------- Business Rules Here-------------------*/problemstring := NULL;IF overridewarnings = 'N'THEN-- Package must not be officialSELECT pv.dlockedINTO LOCKEDFROM package_versions pvWHERE pv.pv_id = pvid;IF LOCKED = 'Y'THENproblemstring :=problemstring|| '- Package is locked and released.'|| UTL_TCP.crlf;END IF;-- Cannot remove if used in BOMsSELECT COUNT (osc.prod_id)INTO ROWCOUNTFROM deployment_manager.os_contents oscWHERE osc.prod_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as build dependencySELECT COUNT (dep.pv_id)INTO ROWCOUNTFROM package_dependencies depWHERE dep.dpv_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as build dependency.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as runtime dependencySELECT COUNT (rd.pv_id)INTO ROWCOUNTFROM runtime_dependencies rdWHERE rd.rtd_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as runtime dependency.'|| UTL_TCP.crlf;END IF;-- Cannot remove if Referenced as patchSELECT COUNT (pp.pv_id)INTO ROWCOUNTFROM package_patches ppWHERE pp.patch_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is used as patch by other package.'|| UTL_TCP.crlf;END IF;END IF;/*-------------------------------------------------------*/IF (problemstring IS NULL)THEN--- Remove From Work in ProgressDELETE FROM work_in_progress wipWHERE wip.pv_id = pvid;--- Remove From PendingDELETE FROM planned plWHERE pl.pv_id = pvid;--- Remove From Released areaDELETE FROM release_content rcWHERE rc.pv_id = pvid;---Remove From Package ProcessesDELETE FROM package_processes ppWHERE pp.pv_id = pvid;--- Remove DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;DELETE FROM package_dependencies depWHERE dep.dpv_id = pvid;--- Remove Runtime dependenciesDELETE FROM runtime_dependencies rtdWHERE rtd.pv_id = pvid;DELETE FROM runtime_dependencies rtdWHERE rtd.rtd_id = pvid;--- Remove componentsDELETE FROM product_components pcWHERE pc.pv_id = pvid;DELETE FROM release_components rcWHERE rc.pv_id = pvid;--- Remove From Notification HistoryDELETE FROM notification_history nhWHERE nh.pv_id = pvid;--- Remove From Ignore WarningsDELETE FROM ignore_warnings iwWHERE iw.pv_id = pvid;--- Remove From Additional NotesDELETE FROM additional_notes anWHERE an.pv_id = pvid;--- Remove From CQ IssuesDELETE FROM cq_issues cqWHERE cq.pv_id = pvid;--- Remove from Package PatchesDELETE FROM package_patches ppWHERE pp.pv_id = pvid;DELETE FROM package_patches ppWHERE pp.patch_id = pvid;--- Remove From Package DocumentsDELETE FROM package_documents pdWHERE pd.pv_id = pvid;--- Remove from Code ReviewDELETE FROM code_reviews crWHERE cr.pv_id = pvid;--- Remove from Code Review URLDELETE FROM code_review_url cruWHERE cru.pv_id = pvid;--- Remove from Unit TestsDELETE FROM unit_tests utWHERE ut.pv_id = pvid;--- Remove from Package BuildEnvDELETE FROM package_build_env pbeWHERE pbe.pv_id = pvid;--- Remove from Package Build InfoDELETE FROM package_build_info pbiWHERE pbi.pv_id = pvid;--- Remove from Build OrderDELETE FROM build_order boWHERE bo.pv_id = pvid;--- Remove from Note ManagerDELETE FROM note_manager nmWHERE nm.nid = pvid;--- Remove from Action logDELETE FROM action_log alWHERE al.pv_id = pvid;--- Remove from Do Not RippleDELETE FROM DO_NOT_RIPPLE dnrWHERE dnr.PV_ID = pvid;--- Remove from Advisory RippleDELETE FROM ADVISORY_RIPPLE arWHERE ar.PV_ID = pvid;--- Remove from Jira IssuesDELETE FROM JIRA_ISSUES jiraWHERE jira.PV_ID = pvid;--- Finally Remove From Package Versions--- Get Package nameSELECT pv.pkg_idINTO pkgidFROM package_versions pvWHERE pv.pv_id = pvid;DELETE FROM package_versions pvWHERE pv.pv_id = pvid;--- Remove package name if not used any moreSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pkg_id = pkgid;IF ROWCOUNT < 1THENDELETE FROM PACKAGES pkgWHERE pkg.pkg_id = pkgid;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER)ISpatchpv_id NUMBER;parpkg_id NUMBER;lastinstallorder NUMBER;ispatchdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;opatchdepcollector relmgr_number_tab_t := relmgr_number_tab_t();CURSOR parent_curISSELECT pv.*, pkg.pkg_nameFROM package_versions pv, PACKAGES pkgWHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;parent_rec parent_cur%ROWTYPE;CURSOR patch_curISSELECT pv.*, pg.pkg_nameFROM package_versions pv, PACKAGES pgWHERE pv.pkg_id = parpkg_idAND pv.pkg_version = snewpatchversionAND pv.pkg_id = pg.pkg_id;patch_rec patch_cur%ROWTYPE;CURSOR releases_curISSELECT rc.pv_idFROM release_content rcWHERE rc.pv_id = patch_rec.pv_id;releases_rec releases_cur%ROWTYPE;BEGIN-- Get Last Install OrderSELECT COUNT (*)INTO lastinstallorderFROM package_patches ppWHERE pp.pv_id = nparentpvid;-- Get parent detailsOPEN parent_cur;FETCH parent_curINTO parent_rec;parpkg_id := parent_rec.pkg_id;-- Find if patch exists in databaseOPEN patch_cur;FETCH patch_curINTO patch_rec;-- Parent must be officialIF parent_rec.dlocked = 'Y'THENIF patch_cur%NOTFOUNDTHENispatchdlocked:= 'N';-- Create new patch version --SELECT seq_pv_id.NEXTVALINTO patchpv_idFROM DUAL;split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);INSERT INTO package_versions(pv_id, pkg_id, pkg_version,dlocked, created_stamp, creator_id,modified_stamp, modifier_id, v_mm, v_nmm, v_ext,src_path,pv_description,owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,is_autobuildable, ripple_field)VALUES (patchpv_id, parpkg_id, snewpatchversion,ispatchdlocked, ora_sysdate, nuserid,ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,parent_rec.src_path,'This is a patch to '|| parent_rec.pkg_name|| ' '|| parent_rec.pkg_version,nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field);INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');/* LOG ACTION */log_action (patchpv_id,'new_version',nuserid,'Patch version created: ' || snewpatchversion);log_action (nparentpvid,'patch_add',nuserid,'New patch created and attached: ' || snewpatchversion);ELSEpatchpv_id := patch_rec.pv_id;ispatchdlocked := patch_rec.dlocked;-- Find if pv_id exists in release content (i.e. it cannot be a patch)OPEN releases_cur;FETCH releases_curINTO releases_rec;IF releases_cur%NOTFOUNDTHEN-- This pv_id is trully a patch, hence add Y to column IS_PATCHUPDATE package_versionsSET is_patch = 'Y'WHERE pv_id = patchpv_id;INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');END IF;CLOSE releases_cur;/* LOG ACTION */log_action (nparentpvid,'patch_add',nuserid,'Patch version was found and attached: '|| snewpatchversion);END IF;END IF;/* Create Patch Dependencies */opatchdepcollector := in_list_number (spatchidlist);-- Make sure patch is unofficial before altering its dependenciesIF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')THEN-- Delete Existing DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = patchpv_id;-- Insert new dependenciesINSERT INTO package_dependencies(pv_id, dpv_id, pkg_id, dpkg_id, build_type)SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,'L' AS build_typeFROM package_versions pvWHERE pv.pv_id IN (SELECT *FROM TABLE(CAST(opatchdepcollector AS relmgr_number_tab_t)));END IF;-- Return patch_idreturnpatchid := patchpv_id;CLOSE parent_cur;CLOSE patch_cur;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Patch version '|| snewpatchversion|| ' already exist.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id = patchid;/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTION */IF isobsolete IS NOT NULLTHENlog_action (patchid,'patch_obsolete',userid,'Obsolete patch. ' || obsoletecomments);ELSElog_action (patchid,'patch_obsolete',userid,'Undo patch obsolete.');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN/*--------------- Business Rules Here -------------------*/IF spatchidlist IS NULLTHENraise_application_error (-20000,'Please select one or more Patches.');END IF;/*-------------------------------------------------------*/-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (spatchidlist) AS relmgr_number_tab_t)FROM DUAL));/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTIONIF IsObsolete IS NOT NULL THENLog_Action ( PatchId,'patch_obsolete', UserId,'Obsolete patch. '|| ObsoleteComments );ELSELog_Action ( PatchId, 'patch_obsolete', UserId,'Undo patch obsolete.' );END IF; */END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISpkgname VARCHAR2 (100);/*Rupesh Release on 17/05/2006*/BEGININSERT INTO processes(proc_id, proc_name, proc_description, run_as, pkg_owner,is_interface)VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,sisinterface);pk_package.add_package_process (nprocid, npvid, nuserid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);/*Rupesh Release on 17/05/2006*/CURSOR proc_curISSELECT prc.proc_idFROM processes prcWHERE prc.proc_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (nprocidlist) AS relmgr_number_tab_t)FROM DUAL));proc_rec proc_cur%ROWTYPE;BEGINOPEN proc_cur;FETCH proc_curINTO proc_rec;WHILE proc_cur%FOUNDLOOPINSERT INTO package_processes(proc_id, pv_id)VALUES (proc_rec.proc_id, npvid);SELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = proc_rec.proc_id;-- Log Action --log_action (npvid,'process_add',nuserid,'Added process with health tag ' || processname);FETCH proc_curINTO proc_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);/* Rupesh Release on 17/05/2006*/BEGINSELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = nprocid;DELETE FROM package_processesWHERE proc_id = nprocid AND pv_id = npvid;-- Log Action --log_action (npvid,'process_remove',nuserid,'Removed process with health tag ' || processname);END;/*-------------------------------------------------------------------------------------------------------*//*Author: Rupesh SolankiPurpose: To move package versions from one release to anotherRelease: 4th September 2006*/PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER)ISoldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);BEGINSELECT rtag_name into oldrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nrtagid;SELECT rtag_name into newrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nnewrtagid;/* Table Work In Progress*/UPDATE WORK_IN_PROGRESSSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;/* Table PLANNED*/UPDATE PLANNEDSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;-- Log Action --log_action (npvid,'move_package_version',nuserid,'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER) ISsStateName VARCHAR2(4000);sRtagName VARCHAR2(4000);/*Author: Rupesh SolankiPurpose: To modify the product state from integration to test to deploymentRelease: 25th January 2006*/BEGINUPDATE RELEASE_CONTENTSET PRODUCT_STATE = nstateidWHERE PV_ID = npvidAND RTAG_ID = nrtagid;SELECT STATE INTO sStateNameFROM PRODUCT_STATESWHERE STATE_ID = nstateid;SELECT RTAG_NAME into sRtagNameFROM RELEASE_TAGSWHERE RTAG_ID = nrtagid;-- Log Action --log_action (npvid,'modify_product_state',nuserid,sStateName || ' in '|| sRtagName);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_code_review_url (npvid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN DATE) ISncrid NUMBER;/*Author: Jeremy TweddleDate: 24/Aug/2007*/BEGINSELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review,last_modified )VALUES ( ncrid, npvid, nprojid, surl, sreason, ddateofreview, ora_sysdate );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_code_review_url (ncrid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2) IS/*Author: Jeremy TweddleDate: 22/Aug/2007*/BEGINUPDATE code_review_urlSET url = surl,proj_id = nprojid,reason = sreason,last_modified = ora_sysdateWHERE cr_id = ncrid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_code_review_url (ncrid IN NUMBER) IS/*Author: Jeremy TweddleDate: 22/Aug/2007*/BEGINDELETE FROM code_review_urlWHERE cr_id = ncrid;END;/*-------------------------------------------------------------------------------------------------------*/END pk_package;/ALTER PACKAGE "RELEASE_MANAGER"."PK_PACKAGE"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-04-11 12:58:37'/CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 6/May/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISoldPvId NUMBER;ReleaseLocation VARCHAR2(4000);IsPatch CHAR(1) := NULL;sLocation VARCHAR2(4000) := NULL;nRtagIdLocation NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/BEGIN-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releasesSELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID INTO sLocation, nRtagIdLocationFROM PLANNED pl,RELEASE_TAGS rt,PROJECTS projWHERE pl.PV_ID = newPvIdAND pl.RTAG_ID = rt.RTAG_IDAND rt.OFFICIAL != 'Y'AND rt.PROJ_ID = proj.PROJ_ID;EXCEPTIONWHEN NO_DATA_FOUND THENsLocation := NULL;END;IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN-- Add to "Pending" areaINSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID )VALUES( RtagId, newPvId, ViewId );/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );ELSERAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;-- Delete from Work In ProgressDELETEFROM PLANNED plWHERE pl.RTAG_ID = RtagIdAND pl.PV_ID = PvId;Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT pl.VIEW_ID INTO ReturnValueFROM PLANNED plWHERE pl.RTAG_ID = RtagIdAND pl.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView = 'Y') THEN-- Get Base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM PLANNED rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM PLANNED rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.RTAG_ID = RtagIdAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE PLANNED pl SETpl.VIEW_ID = NewViewIdWHERE pl.PV_ID = PvIdAND pl.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/END PK_PLANNED;/ALTER PACKAGE "RELEASE_MANAGER"."PK_PLANNED"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= FALSEREUSE SETTINGS TIMESTAMP '2007-08-23 16:29:22'/-- new object type path is: SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEXCREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME"))PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_FILE_NAME" NOPARALLEL;CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME"))PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" PARALLEL 1 ;ALTER INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" NOPARALLEL;-- new object type path is: SCHEMA_EXPORT/POST_SCHEMA/PROCOBJBEGINdbms_scheduler.disable1_calendar_check();dbms_scheduler.create_schedule('"HOUSEKEEP_RUN_LEVEL_SCHEDULE"','28-JUN-07 01.00.00.000000 AM +08:00','FREQ=DAILY; BYHOUR=1',NULL,'Run at 1am all days');COMMIT;END;/BEGINdbms_scheduler.create_job('"DAILY_HOUSEKEEPING_SCHEDULE"',job_type=>'STORED_PROCEDURE', job_action=>'pk_buildapi.delete_out_of_date_schedule', number_of_arguments=>0,schedule_name=>'"HOUSEKEEP_RUN_LEVEL_SCHEDULE"',job_class=>'"DEFAULT_JOB_CLASS"', enabled=>FALSE, auto_drop=>FALSE,comments=>'Clean Table when the scheduled resume datetime is past the current datetime');dbms_scheduler.enable('"DAILY_HOUSEKEEPING_SCHEDULE"');COMMIT;END;/