Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 vnguyen 1
CREATE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
2
                                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3
                                                          NNuser_id IN NUMBER,
4
                                                          retPV_ID OUT NUMBER,
5
														  nCloneFromPvId IN NUMBER DEFAULT NULL ) IS
6
/* ---------------------------------------------------------------------------
7
    Version: 4.0
8
   --------------------------------------------------------------------------- */
9
 
10
    parPkg_id   NUMBER;
11
    parPv_id    NUMBER;
12
    cloneFrom_pv_id NUMBER;
13
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
14
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
15
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
16
 
17
    CURSOR packages_cur IS
18
        SELECT pkg_id FROM PACKAGES
19
        WHERE pkg_name = SSpkg_name;
20
    packages_rec packages_cur%ROWTYPE;
21
 
22
    CURSOR package_versions_cur IS
23
        SELECT pv_id FROM PACKAGE_VERSIONS
24
        WHERE pkg_id = parPkg_id
25
        AND pkg_version = SSpkg_version;
26
    package_versions_rec package_versions_cur%ROWTYPE;
27
 
28
    CURSOR clone_package_versions_cur IS
29
        SELECT MAX(pv_id) AS pv_id
30
          FROM PACKAGE_VERSIONS
31
         WHERE pkg_id = parPkg_id
32
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
33
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
34
 
35
BEGIN
36
    /* -------------------------------------------- */
37
    /* Find if pkg_name exists and seed if required */
38
    /* -------------------------------------------- */
39
    OPEN packages_cur;
40
    FETCH packages_cur INTO packages_rec;
41
 
42
    IF packages_cur%NOTFOUND
43
    THEN
44
        /* INSERT into packages table */
45
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
46
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
47
 
48
    ELSE
49
        parPkg_id := packages_rec.pkg_id;
50
 
51
    END IF;
52
 
53
    CLOSE packages_cur;
54
 
55
 
56
 
57
    /* ---------------------------------------------------- */
58
    /* Find if package_version exists and seed if required  */
59
    /* ---------------------------------------------------- */
60
    OPEN package_versions_cur;
61
    FETCH package_versions_cur INTO package_versions_rec;
62
 
63
    IF package_versions_cur%NOTFOUND
64
    THEN
65
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
66
 
67
        /* LOG ACTION */
68
        Log_Action ( parPv_id, 'new_version', NNuser_id,
69
        			 'New package version: '|| SSpkg_version );
70
 
71
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
72
 
73
        /* Find similar pkg_name + ext to clone from */
74
        OPEN clone_package_versions_cur;
75
        FETCH clone_package_versions_cur INTO clone_package_versions_rec;
76
 
77
 
78
        IF NOT clone_package_versions_rec.pv_id IS NULL
79
        THEN
80
            /* CLONE details from similar version  OR  from nCloneFromPvId */
81
			IF ( NOT nCloneFromPvId IS NULL) THEN
82
            	cloneFrom_pv_id := nCloneFromPvId;
83
			ELSE
84
				cloneFrom_pv_id := clone_package_versions_rec.pv_id;
85
			END IF;
86
 
87
            -- Clone Package Version Details --
88
            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,
89
                                           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  )
90
                SELECT parPv_id         AS pv_id,
91
                       parPkg_id        AS pkg_id,
92
                       SSpkg_version    AS pkg_version,
93
                       'N'              AS dlocked,
94
                       Ora_Sysdate      AS created_stamp,
95
                       NNuser_id        AS creator_id,
96
                       Ora_Sysdatetime  AS modified_stamp,
97
                       NNuser_id        AS modifier_id,
98
                       SSV_MM           AS V_MM,
99
                       SSV_NMM          AS V_NMM,
100
                       SSV_EXT          AS V_EXT,
101
                       pv.src_path,
102
                       pv.pv_description,
103
                       pv.PV_OVERVIEW,
104
                       cloneFrom_pv_id 	AS LAST_PV_ID,
105
                       pv.owner_id,
106
					   pv.BUILD_TYPE,
107
					   pv.IS_BUILD_ENV_REQUIRED,
108
					   pv.BS_ID,
109
					   pv.is_autobuildable,
110
					   pv.IS_DEPLOYABLE, 
111
					   pv.ripple_field
112
                  FROM PACKAGE_VERSIONS pv
113
                 WHERE pv.pv_id = cloneFrom_pv_id;
114
 
115
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
116
 
117
        ELSE
118
            /* BRAND NEW version + ext */
119
            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 )
120
        	VALUES (
121
                    parPv_id,
122
                    parPkg_id,
123
                    SSpkg_version,
124
                    'N',
125
                    Ora_Sysdate,
126
                    NNuser_id,
127
                    Ora_Sysdatetime,
128
                    NNuser_id,
129
                    SSV_MM,
130
                    SSV_NMM,
131
                    SSV_EXT,
132
                    NNuser_id,
133
                    parPv_id,
134
					'M',
135
					'b'
136
                   );
137
 
138
        END IF;
139
 
140
        CLOSE clone_package_versions_cur;
141
        retPV_ID := parPv_id;
142
 
143
    ELSE
144
        retPV_ID := package_versions_rec.pv_id;
145
 
146
    END IF;
147
 
148
    CLOSE package_versions_cur;
149
 
150
 
151
 
152
 
153
END Seed_Package_Names_Versions;
154
/