Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 vnguyen 1
CREATE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( nFROMpv_id IN NUMBER,
2
										  nTOpv_id IN NUMBER,
3
                                          nRtag_id IN NUMBER,
4
                                          nUser_id IN NUMBER,
5
                                          nTOpkg_id IN NUMBER DEFAULT NULL,
6
                                          enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
7
/* ---------------------------------------------------------------------------
8
    Version: 3.5
9
   --------------------------------------------------------------------------- */
10
 
11
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
12
 
13
BEGIN
14
 
15
------------------------------------- Clone Dependencies ---------------------------------------------------
16
	IF NOT nRtag_id IS NULL
17
    THEN
18
		-- Auto Update Dependencies --
19
		INSERT INTO PACKAGE_DEPENDENCIES
20
		    SELECT nTOpv_id AS pv_id,
21
		           DECODE(nUser_id,
22
		                  frc.modifier_id,
23
		                  frc.pv_id,
24
		                  DECODE(frc.dlocked,
25
		                         'Y',
26
		                         frc.pv_id,
27
		                         dep.dpv_id)
28
		                  ) AS dpv_id,
29
		           nTOpkg_id AS pkg_id,
30
		           dep.dpkg_id,
31
		           dep.build_type,
32
				   dep.display_order
33
		      FROM PACKAGE_DEPENDENCIES dep,
34
		           PACKAGE_VERSIONS pv,
35
		           (
36
		           /* Full Release Contents used for reference*/
37
		           SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
38
		           FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
39
		           WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
40
		           ) frc
41
		     WHERE dep.pv_id = nFROMpv_id
42
		       AND dep.dpv_id = pv.pv_id
43
		       AND pv.pkg_id = frc.pkg_id(+)
44
		       AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
45
 
46
	ELSE
47
		-- Clone Dependencies --
48
		INSERT INTO PACKAGE_DEPENDENCIES
49
		    SELECT nTOpv_id         AS pv_id,
50
		           dep.dpv_id,
51
		           nTOpkg_id        AS pkg_id,
52
		           dep.dpkg_id,
53
		           dep.build_type,
54
				   dep.display_order
55
		      FROM PACKAGE_DEPENDENCIES dep
56
		     WHERE dep.pv_id = nFROMpv_id;
57
 
58
	END IF;
59
 
60
----------------------------------------- Clone Issues -------------------------------------------------------
61
	IF enumISSUES_STATE_IMPORTED IS NULL
62
	THEN
63
        /* All Issues */
64
	    INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
65
	         SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
66
	           FROM CQ_ISSUES
67
              WHERE pv_id = nFROMpv_id;
68
	ELSE
69
    	/* Outstanding Issues Only */
70
	    INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
71
	        SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
72
	          FROM CQ_ISSUES
73
             WHERE pv_id = nFROMpv_id
74
               AND iss_state = enumISSUES_STATE_IMPORTED;
75
	END IF;
76
 
77
 
78
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
79
	INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
80
	    SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
81
	    FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
82
 
83
 
84
--------------------------------------- Clone Additional Notes ------------------------------------------------
85
	INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
86
    	 SELECT an.NOTE_ID,
87
                nTOpv_id AS PV_ID,
88
                an.NOTE_TITLE,
89
                an.NOTE_BODY,
90
                an.MOD_DATE,
91
                an.MOD_USER
92
           FROM ADDITIONAL_NOTES an
93
          WHERE an.PV_ID = nFROMpv_id;
94
 
95
 
96
-------------------------------------------- Clone Unit Tests -------------------------------------------------
97
	-- Clone only Automatic unit tests --
98
	INSERT INTO UNIT_TESTS (
99
							TEST_ID,
100
							PV_ID,
101
							TEST_TYPES_FK,
102
							TEST_SUMMARY,
103
							COMPLETION_DATE,
104
							COMPLETED_BY,
105
							RESULTS_URL,
106
							RESULTS_ATTACHMENT_NAME,
107
							NUMOF_TEST
108
							)
109
    	 SELECT ut.TEST_ID,
110
                nTOpv_id AS PV_ID,
111
                ut.TEST_TYPES_FK,
112
                ut.TEST_SUMMARY,
113
                Ora_Sysdate AS COMPLETION_DATE,
114
                nUser_id AS COMPLETED_BY,
115
                ut.RESULTS_URL,
116
				ut.RESULTS_ATTACHMENT_NAME,
117
				ut.NUMOF_TEST
118
           FROM UNIT_TESTS ut
119
          WHERE ut.PV_ID = nFROMpv_id
120
            AND ut.TEST_TYPES_FK IN ( 5, 7 );
121
 
122
	-- Clone only Interactive Unit Tests --
123
	INSERT INTO UNIT_TESTS (
124
		   				    TEST_ID, 
125
							PV_ID,
126
							TEST_TYPES_FK,
127
							TEST_SUMMARY
128
							)
129
		SELECT ut.TEST_ID, 
130
			   nTOpv_id AS PV_ID,
131
			   ut.TEST_TYPES_FK,
132
			   ut.TEST_SUMMARY
133
		  FROM UNIT_TESTS ut
134
		 WHERE ut.PV_ID = nFROMpv_id
135
		   AND ut.TEST_TYPES_FK IN (6);
136
 
137
 
138
-------------------------------------------- Clone Package Documents ------------------------------------------
139
	INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
140
    	 SELECT nTOpv_id AS PV_ID,
141
		 		pd.test_id,
142
				pd.doc_num,
143
				pd.doc_id,
144
                pd.IS_LATEST
145
           FROM PACKAGE_DOCUMENTS pd
146
          WHERE pd.PV_ID = nFROMpv_id;
147
 
148
-------------------------------------------- Clone Build Environments -----------------------------------------
149
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
150
	SELECT nTOpv_id AS PV_ID,
151
		   pkgbe.BE_ID,
152
		   pkgbe.BUILD_TYPE
153
	  FROM PACKAGE_BUILD_ENV pkgbe
154
	 WHERE pkgbe.PV_ID = nFROMpv_id;
155
---------------------------------------------Clone Package Build Info------------------------------------------
156
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
157
	SELECT nTOpv_id AS PV_ID, 
158
		   pkgbinfo.BM_ID,
159
		   pkgbinfo.BSA_ID
160
	  FROM PACKAGE_BUILD_INFO pkgbinfo
161
	 WHERE pkgbinfo.PV_ID = nFROMpv_id;
162
---------------------------------------------Clone Package Version Processes-----------------------------------
163
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
164
	SELECT nTOpv_id AS PV_ID,
165
		   pp.PROC_ID
166
	  FROM PACKAGE_PROCESSES pp
167
	  WHERE pp.PV_ID = nFROMpv_id;		   
168
---------------------------------------------------------------------------------------------------------------
169
 
170
	/* LOG ACTION */
171
    SELECT pv.PKG_VERSION INTO FromVersion
172
      FROM PACKAGE_VERSIONS pv
173
     WHERE pv.PV_ID = nFROMpv_id;
174
 
175
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
176
    			 'Details cloned from: '|| FromVersion );
177
 
178
---------------------------------------------------------------------------------------------------------------
179
 
180
END Basic_Clone;
181
/