Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4198 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'                  Update Package Version
5
'       Designed to be called via AJAX and to return
6
'       JSON formatted data to dynamic page
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0   ' always load the page, dont store
13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/qstr.asp"-->
17
<!--#include file="common/common_subs.asp"-->
18
<!--#include file="common/common_dbedit.asp"-->
19
<!--#include file="class/classaspJSON.asp" -->
20
<%
21
'------------ Variable Definition -------------
22
Dim parOpr
23
Dim parPkgName
24
Dim result
25
Dim SqlQry
26
Dim rsQry
27
 
28
parOpr = QStrPar("Opr")
29
parPkgName = Trim(QStrPar("packageName"))
30
result = -1
31
 
32
' Init the output JSON class
33
'   Operations can add data
34
'   Default data will be added at the end
35
Dim oJSON
36
Set oJSON = New aspJSON
37
Dim newitem
38
 
4199 dpurdie 39
If NOT objAccessControl.UserLogedIn Then
40
    oJSON.data("error") = 1
4198 dpurdie 41
 
4199 dpurdie 42
    oJSON.data("emsgSummary") = "User no longer logged in"
43
    oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
44
 
45
ElseIf (parOpr = "updateVer") Then
46
 
4198 dpurdie 47
    Dim buildType, changeType, pvId, rtagId, version, vExt, errMessage
48
    ' 
49
    ' Ensure we have all the required parameters
50
    '
51
    buildType = QStrPar("buildType")
52
    changeType = QStrPar("changeType")
53
    pvId = QStrPar("pvId")
54
    rtagId = QStrPar("rtagId")
55
    version = QStrPar("Version")
56
    vExt = QStrPar("vExt")
57
 
58
    '
59
    ' If Manual then force change type to 'F'
60
    ' If Auto then ensure that the version number is of the correct form
61
    if buildType = "M" then 
62
        changeType = "F"
63
    else
64
        version=vExt
65
    end if
66
 
67
    '
68
    '   Get existing data
69
    '       Test for package existence
70
    '       Check for changes
71
    '
72
    SqlQry = "SELECT pv.pv_id, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type"&_
73
             " FROM package_versions pv"&_
74
             " WHERE pv.pv_id = :NNpv_id"
75
    OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
76
 
77
	objEH.ErrorRedirect = FALSE
78
    objEH.TryORA ( OraSession )
79
    On Error Resume Next
80
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
81
    objEH.CatchORA ( OraSession )
82
    errMessage = OraDatabase.Parameters("errMessage").Value
83
    OraDatabase.Parameters.Remove "NNpv_id"
84
    On Error GoTo 0
85
 
86
    If NOT objEH.LastOraFailed Then
87
        Dim changed, typechange
88
        changed = 0
89
        typechange = 0
90
 
91
        If ((rsQry.BOF) OR (rsQry.EOF)) Then
92
            oJSON.data("emsgDetails") = "Package not found"
93
            oJSON.data("error") = 1
94
        End If
95
 
96
        ' Detect changes
97
        '   version can only be tested if a Manually Versioned
98
        '
99
        If buildType = "M" AND rsQry("pkg_version") <> version Then changed = 1
100
        If rsQry("build_type") <> buildType Then changed = changed + 2
101
        If rsQry("v_ext")       <> vExt Then changed = changed + 4
102
        If rsQry("change_type") <> changeType Then typechange = 3
103
 
104
        If changed Then
105
            '
106
            '   Setup for the database access
107
            OraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBER
108
            OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
109
            OraDatabase.Parameters.Add "SSpkg_version",  version,      ORAPARM_INPUT, ORATYPE_VARCHAR2
110
            OraDatabase.Parameters.Add "BUILD_TYPE", buildType, ORAPARM_INPUT, ORATYPE_CHAR
111
            OraDatabase.Parameters.Add "NNuser_id", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
112
            OraDatabase.Parameters.Add "errMessage", 0, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
113
 
114
            SqlQry = "BEGIN Rename_Package_Version (:NNpv_id,:SSpkg_version,:BUILD_TYPE,:NNuser_id,:errMessage ); END;"
115
            objEH.ErrorRedirect = FALSE
116
            objEH.TryORA ( OraSession )
117
            On Error Resume Next
118
            OraDatabase.ExecuteSQL SqlQry
119
            objEH.CatchORA ( OraSession )
120
            errMessage = OraDatabase.Parameters("errMessage").Value
121
            On Error GoTo 0
122
 
123
            OraDatabase.Parameters.Remove "RTAG_ID"
124
            OraDatabase.Parameters.Remove "NNpv_id"
125
            OraDatabase.Parameters.Remove "SSpkg_version"
126
            OraDatabase.Parameters.Remove "NNuser_id"
127
            OraDatabase.Parameters.Remove "errMessage"
128
            OraDatabase.Parameters.Remove "BUILD_TYPE"
129
        End If
130
 
131
        ' Need to update the chnage type in a seperate operation
132
        If NOT objEH.LastOraFailed Then
133
            If typechange <> 0 Then
134
                UpdateChangeType pvId, changeType
135
            End If
136
            result = 0
137
        End If
138
 
139
    rsQry.Close
140
    Set rsQry = Nothing
141
    End If
142
End If
143
 
144
 
145
'
146
'   Create JSON data for the user
147
'   Important fields
148
'       result
149
'
150
'   Debug fields
151
'       QueryString
152
'       SqlQry
153
'       Request (Array)
154
'
155
'Write single value
156
oJSON.data("result") = result
157
 
158
' SQL error detection and reporting
159
If objEH.LastOraFailed Then
160
    oJSON.data("error") = 1
161
 
162
    oJSON.data("emsgSummary") = objEH.MessageSummary
163
    oJSON.data("emsgDetails") = objEH.MessageDetails
164
    oJSON.data("SqlQry") = SqlQry
165
End If
166
 
167
' DEBUG: An array of the user provided requests
168
oJSON.data("QueryString") = Request.QueryString
169
 
170
Set oJSON.data("Request") = oJSON.Collection()
171
Set newitem = oJSON.AddToCollection(oJSON.data("Request"))
172
Dim variableName
173
for each variableName in Request.QueryString
174
    newitem.add variableName, Request.QueryString(variableName)
175
next
176
 
177
'Return the object
178
Response.Write oJSON.JSONoutput()
179
%>