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_VERSIONS2" ( 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
 
74
 
75
 
76
 
77
            /* CLONE details from similar version  OR  from nCloneFromPvId */
78
			IF ( NOT nCloneFromPvId IS NULL) THEN
79
            	cloneFrom_pv_id := nCloneFromPvId;
80
			ELSE
81
				cloneFrom_pv_id := clone_package_versions_rec.pv_id;
82
			END IF;
83
 
84
            -- Clone Package Version Details --
85
            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,
86
                                           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 )
87
                SELECT parPv_id         AS pv_id,
88
                       parPkg_id        AS pkg_id,
89
                       SSpkg_version    AS pkg_version,
90
                       'N'              AS dlocked,
91
                       Ora_Sysdate      AS created_stamp,
92
                       NNuser_id        AS creator_id,
93
                       Ora_Sysdatetime  AS modified_stamp,
94
                       NNuser_id        AS modifier_id,
95
                       SSV_MM           AS V_MM,
96
                       SSV_NMM          AS V_NMM,
97
                       SSV_EXT          AS V_EXT,
98
                       pv.src_path,
99
                       pv.pv_description,
100
                       pv.PV_OVERVIEW,
101
                       cloneFrom_pv_id 	AS LAST_PV_ID,
102
                       pv.owner_id,
103
					   pv.BUILD_TYPE,
104
					   pv.IS_BUILD_ENV_REQUIRED,
105
					   pv.bs_id,
106
					   pv.is_autobuildable,
107
					   pv.IS_DEPLOYABLE,
108
					   pv.ripple_field
109
                  FROM PACKAGE_VERSIONS pv
110
                 WHERE pv.pv_id = cloneFrom_pv_id;
111
 
112
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
113
 
114
        retPV_ID := parPv_id;
115
 
116
    ELSE
117
        retPV_ID := package_versions_rec.pv_id;
118
 
119
    END IF;
120
 
121
    CLOSE package_versions_cur;
122
 
123
 
124
 
125
 
126
END Seed_Package_Names_Versions2;
127
/