Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
' 			 	   ADD Packages
5
'               --- PROCESS FORM ---
6
'=====================================================
7
%>
8
<%
9
Option explicit
10
' Good idea to set when using redirect
11
Response.Expires = 0	' always load the page, dont store
12
%>
13
 
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/common_dbedit.asp"-->
20
<%
21
' Set rfile parameter. This is a return page after Login
22
Call objPMod.StoreParameter ( "rfile", "dependencies.asp" )
23
'------------ ACCESS CONTROL ------------------
24
%>
25
<!--#include file="_access_control_login.asp"-->
26
<!--#include file="_access_control_general.asp"-->
27
<!--#include file="_access_control_project.asp"-->
28
<%
29
'------------ Variable Definition -------------
30
Dim pkgArray()
31
Dim pv_id_list
32
'------------ Constants Declaration -----------
33
'------------ Variable Init -------------------
34
'----------------------------------------------
35
%>
36
<%
37
'--------------------------------------------------------------------------------------------------------------------
38
Sub Populate_pkgArray ( NNpkg_list, ARRpkg )
39
	Dim depList, lastItem, i, recCnt, pkg_name, pkg_version, V_EXT
40
	Dim rsTemp, Query_String
41
 
42
	Query_String = _
43
	" SELECT pkg_id, pkg_name"&_
44
	"  FROM packages"&_
45
	" WHERE pkg_id IN ("& NNpkg_list &")"
46
	Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
47
 
48
	recCnt = 0
49
	While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
50
		ReDim Preserve ARRpkg( 2, recCnt )
51
		ARRpkg( 0, recCnt ) = rsTemp("pkg_name")
52
		ARRpkg( 1, recCnt ) = Request( "pkgn"& rsTemp("pkg_id") )
53
 
54
		recCnt = recCnt + 1
55
		rsTemp.MoveNext
56
	WEnd
57
 
58
	rsTemp.Close
59
	Set rsTemp = nothing
60
End Sub
61
'--------------------------------------------------------------------------------------------------------------------
62
Sub Seed_DB ( ARRpkg, retPV_ID_LIST )
63
	Dim i, lastRow
64
 
65
	OraDatabase.Parameters.Add "retPV_ID", 0, ORAPARM_OUTPUT, ORATYPE_NUMBER
66
 
67
	retPV_ID_LIST = ""
68
	lastRow = UBound( pkgArray, 2 )
69
 
70
 
71
	For i = 0 To lastRow
72
		OraDatabase.ExecuteSQL "BEGIN Seed_Package_Names_Versions ('"& ARRpkg(0,i) &"','"& ARRpkg(1,i) &"', :USER_ID, :retPV_ID); END;"
73
		retPV_ID_LIST = retPV_ID_LIST &","& OraDatabase.Parameters("retPV_ID").Value 
74
 
75
	Next
76
 
77
	If Len(retPV_ID_LIST) > 0 Then retPV_ID_LIST = Replace ( retPV_ID_LIST, ",", "", 1, 1 )
78
 
79
	OraDatabase.Parameters.Remove "retPV_ID"
80
End Sub
81
'--------------------------------------------------------------------------------------------------------------------
82
Sub AddPackage ( sPvIdList )
83
	OraDatabase.Parameters.Add "PV_ID_LIST", sPvIdList, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
84
	Dim rsQry, AssocMASS
85
On Error Resume Next
86
	Set rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM RELEASE_TAGS RT, PACKAGE_VERSIONS PV WHERE RT.RTAG_ID ="&Request("rtag_id")&" AND PV.PV_ID IN ("&sPvIdList&")", cint(0))
87
	AssocMASS = rsQry("ASSOC_MASS_REF")
88
objEH.Try
89
 
90
	If ( IsNull(AssocMASS) ) OR (AssocMASS <> "" AND (rsQry("v_ext") <> ".cr" AND rsQry("v_ext") <> ".mas" )) Then
91
 
92
		OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.ADD_PACKAGE_BULK ( :PV_ID_LIST, :BASE_VIEW_ID, :RTAG_ID, :USER_ID ); END;"
93
 
94
		OraDatabase.Parameters.Remove "PV_ID_LIST"
95
	Else
96
		Err.Raise 8, "Cannot ADD a CORE/MASS package into a MASS_REF Reference Release!"
97
	End If
98
objEH.Catch
99
End Sub
100
'--------------------------------------------------------------------------------------------------------------------
101
Sub Add_Packages_To_View_Definition ( NNpkg_list )
102
	If OraDatabase.Parameters("PERSONAL_VIEW_ID").Value = "" Then Exit Sub
103
	OraDatabase.ExecuteSQL _
104
	" INSERT INTO view_def"&_
105
	"	SELECT TO_NUMBER( :PERSONAL_VIEW_ID ) AS view_id, pkg.pkg_id"&_
106
	"	  FROM packages pkg"&_
107
	"	 WHERE pkg.pkg_id IN ( "& NNpkg_list &" )"&_
108
	"	MINUS "&_
109
	"	SELECT vd.view_id, vd.pkg_id"&_
110
	"	  FROM view_def vd"&_
111
	"	 WHERE vd.view_id = :PERSONAL_VIEW_ID "
112
End Sub
113
'--------------------------------------------------------------------------------------------------------------------
114
%>
115
<%
116
'-----------------------  MAIN LINE  ---------------------------
117
On Error Resume Next
118
Dim rsQry
119
Set rsQry = OraDatabase.DbCreateDynaset( "SELECT OFFICIAL FROM RELEASE_TAGS WHERE RTAG_ID ="&Request("rtag_id"), cint(0))
120
objEH.Try	
121
If rsQry("official") = "N" OR rsQry("official") = "R" Then 
122
 
123
	'--- Process submition ---
124
	If  ( Request("rtag_id") <> "" ) AND ( Request("pkg_list") <> "" ) Then
125
 
126
		' All mandatory parameters FOUND
127
 
128
 
129
		Call Populate_pkgArray ( Request("pkg_list"), pkgArray )
130
 
131
 
132
		'On Error Resume Next
133
		OraSession.BeginTrans
134
 
135
		'---- SQL parameters ----
136
		OraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBER
137
		OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
138
		OraDatabase.Parameters.Add "BASE_VIEW_ID", Request("base_view_id"), ORAPARM_INPUT, ORATYPE_NUMBER
139
		OraDatabase.Parameters.Add "PERSONAL_VIEW_ID", Request("personal_view_id"), ORAPARM_INPUT, ORATYPE_NUMBER
140
		'------------------------
141
 
142
 
143
 
144
		Call Seed_DB ( pkgArray, pv_id_list )
145
 
146
		Call AddPackage ( pv_id_list )
147
 
148
		If NOT IsNull(Request("personal_view_id")) Then
149
			Call Add_Packages_To_View_Definition ( Request("pkg_list") )
150
		End If
151
 
152
		If Err.number <> 0 Then
153
			OraSession.RollBack
154
			Call RaiseMsg ( enum_MSG_ERROR, Err.description )
155
		Else
156
			OraSession.CommitTrans
157
		End If
158
 
159
 
160
		OraDatabase.Parameters.Remove "RTAG_ID"
161
		OraDatabase.Parameters.Remove "USER_ID"
162
		OraDatabase.Parameters.Remove "BASE_VIEW_ID"
163
		OraDatabase.Parameters.Remove "PERSONAL_VIEW_ID"
164
 
165
 
166
		Response.Redirect("dependencies.asp?rtag_id="& Request("rtag_id"))
167
 
168
	Else
169
		Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
170
		Response.write QSTR_All 
171
	End If
172
 
173
Else
174
	Err.Raise 8, "Cannot ADD a package in a CLOSED or CCB Release Mode"
175
End If
176
	rsQry.Close
177
	Set rsQry = nothing
178
objEH.Catch
179
%>
180
 
181
<!-- DESTRUCTOR ------->
182
<!--#include file="common/destructor.asp"-->