Subversion Repositories DevTools

Rev

Go to most recent revision | 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
 
39
If (parOpr = "updateVer") Then
40
 
41
    Dim buildType, changeType, pvId, rtagId, version, vExt, errMessage
42
    ' 
43
    ' Ensure we have all the required parameters
44
    '
45
    buildType = QStrPar("buildType")
46
    changeType = QStrPar("changeType")
47
    pvId = QStrPar("pvId")
48
    rtagId = QStrPar("rtagId")
49
    version = QStrPar("Version")
50
    vExt = QStrPar("vExt")
51
 
52
    '
53
    ' If Manual then force change type to 'F'
54
    ' If Auto then ensure that the version number is of the correct form
55
    if buildType = "M" then 
56
        changeType = "F"
57
    else
58
        version=vExt
59
    end if
60
 
61
    '
62
    '   Get existing data
63
    '       Test for package existence
64
    '       Check for changes
65
    '
66
    SqlQry = "SELECT pv.pv_id, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type"&_
67
             " FROM package_versions pv"&_
68
             " WHERE pv.pv_id = :NNpv_id"
69
    OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
70
 
71
	objEH.ErrorRedirect = FALSE
72
    objEH.TryORA ( OraSession )
73
    On Error Resume Next
74
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
75
    objEH.CatchORA ( OraSession )
76
    errMessage = OraDatabase.Parameters("errMessage").Value
77
    OraDatabase.Parameters.Remove "NNpv_id"
78
    On Error GoTo 0
79
 
80
    If NOT objEH.LastOraFailed Then
81
        Dim changed, typechange
82
        changed = 0
83
        typechange = 0
84
 
85
        If ((rsQry.BOF) OR (rsQry.EOF)) Then
86
            oJSON.data("emsgDetails") = "Package not found"
87
            oJSON.data("error") = 1
88
        End If
89
 
90
        ' Detect changes
91
        '   version can only be tested if a Manually Versioned
92
        '
93
        If buildType = "M" AND rsQry("pkg_version") <> version Then changed = 1
94
        If rsQry("build_type") <> buildType Then changed = changed + 2
95
        If rsQry("v_ext")       <> vExt Then changed = changed + 4
96
        If rsQry("change_type") <> changeType Then typechange = 3
97
 
98
        If changed Then
99
            '
100
            '   Setup for the database access
101
            OraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBER
102
            OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
103
            OraDatabase.Parameters.Add "SSpkg_version",  version,      ORAPARM_INPUT, ORATYPE_VARCHAR2
104
            OraDatabase.Parameters.Add "BUILD_TYPE", buildType, ORAPARM_INPUT, ORATYPE_CHAR
105
            OraDatabase.Parameters.Add "NNuser_id", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
106
            OraDatabase.Parameters.Add "errMessage", 0, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
107
 
108
            SqlQry = "BEGIN Rename_Package_Version (:NNpv_id,:SSpkg_version,:BUILD_TYPE,:NNuser_id,:errMessage ); END;"
109
            objEH.ErrorRedirect = FALSE
110
            objEH.TryORA ( OraSession )
111
            On Error Resume Next
112
            OraDatabase.ExecuteSQL SqlQry
113
            objEH.CatchORA ( OraSession )
114
            errMessage = OraDatabase.Parameters("errMessage").Value
115
            On Error GoTo 0
116
 
117
            OraDatabase.Parameters.Remove "RTAG_ID"
118
            OraDatabase.Parameters.Remove "NNpv_id"
119
            OraDatabase.Parameters.Remove "SSpkg_version"
120
            OraDatabase.Parameters.Remove "NNuser_id"
121
            OraDatabase.Parameters.Remove "errMessage"
122
            OraDatabase.Parameters.Remove "BUILD_TYPE"
123
        End If
124
 
125
        ' Need to update the chnage type in a seperate operation
126
        If NOT objEH.LastOraFailed Then
127
            If typechange <> 0 Then
128
                UpdateChangeType pvId, changeType
129
            End If
130
            result = 0
131
        End If
132
 
133
    rsQry.Close
134
    Set rsQry = Nothing
135
    End If
136
End If
137
 
138
 
139
'
140
'   Create JSON data for the user
141
'   Important fields
142
'       result
143
'
144
'   Debug fields
145
'       QueryString
146
'       SqlQry
147
'       Request (Array)
148
'
149
'Write single value
150
oJSON.data("result") = result
151
 
152
' SQL error detection and reporting
153
If objEH.LastOraFailed Then
154
    oJSON.data("error") = 1
155
 
156
    oJSON.data("emsgSummary") = objEH.MessageSummary
157
    oJSON.data("emsgDetails") = objEH.MessageDetails
158
    oJSON.data("SqlQry") = SqlQry
159
End If
160
 
161
' DEBUG: An array of the user provided requests
162
oJSON.data("QueryString") = Request.QueryString
163
 
164
Set oJSON.data("Request") = oJSON.Collection()
165
Set newitem = oJSON.AddToCollection(oJSON.data("Request"))
166
Dim variableName
167
for each variableName in Request.QueryString
168
    newitem.add variableName, Request.QueryString(variableName)
169
next
170
 
171
'Return the object
172
Response.Write oJSON.JSONoutput()
173
%>