Blame | Last modification | View Log | RSS feed
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;/