Subversion Repositories DevTools

Rev

Rev 5957 | Rev 6123 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4198 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
6122 dpurdie 4
'       Update Package Version
5
'           _json_updateVersion.asp
4198 dpurdie 6
'       Designed to be called via AJAX and to return
7
'       JSON formatted data to dynamic page
6122 dpurdie 8
'   Ajax support for operaions on a package-version:
9
'       
10
'       updateVer
11
'       setDeployable
12
'
4198 dpurdie 13
'=====================================================
14
%>
15
<%
16
Option explicit
17
' Good idea to set when using redirect
18
Response.Expires = 0   ' always load the page, dont store
19
%>
20
<!--#include file="common/conf.asp"-->
21
<!--#include file="common/globals.asp"-->
22
<!--#include file="common/qstr.asp"-->
23
<!--#include file="common/common_subs.asp"-->
24
<!--#include file="common/common_dbedit.asp"-->
4254 dpurdie 25
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
4198 dpurdie 26
<%
27
'------------ Variable Definition -------------
28
Dim parOpr
29
Dim result
30
Dim SqlQry
31
Dim rsQry
32
 
33
parOpr = QStrPar("Opr")
34
result = -1
35
 
36
' Init the output JSON class
37
'   Operations can add data
38
'   Default data will be added at the end
39
Dim oJSON
40
Set oJSON = New aspJSON
41
Dim newitem
42
 
4199 dpurdie 43
If NOT objAccessControl.UserLogedIn Then
44
    oJSON.data("error") = 1
4198 dpurdie 45
 
4199 dpurdie 46
    oJSON.data("emsgSummary") = "User no longer logged in"
47
    oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
48
 
49
ElseIf (parOpr = "updateVer") Then
6122 dpurdie 50
    updateVersion
4199 dpurdie 51
 
6122 dpurdie 52
ElseIf (parOpr = "setDeployable") Then
53
    setDeployable
54
 
55
Else
56
    oJSON.data("error") = 1
57
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
58
    oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOpr
59
End If
60
 
61
' SQL error detection and reporting
62
If objEH.LastOraFailed Then
63
    oJSON.data("error") = 1
64
    result = -1
65
 
66
    oJSON.data("emsgSummary") = objEH.MessageSummary
67
    oJSON.data("emsgDetails") = objEH.MessageDetails
68
    oJSON.data("SqlQry") = SqlQry
69
'
70
'   Detect program errors
71
ElseIf Err.number <> 0 Then
72
    result = -3
73
    oJSON.data("error") = 2
74
    oJSON.data("errnum") = Err.number
75
    oJSON.data("errtxt") = Err.description
76
    oJSON.data("errsrc") = Err.source
77
    oJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number &  ":" & Err.description
78
End If
79
On error goto 0
80
'Write single value
81
oJSON.data("result") = result
82
 
83
'function Sleep(seconds)
84
'    dim oshell, cmd
85
'    set oShell = CreateObject("Wscript.Shell")
86
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
87
'    oShell.Run cmd,0,1
88
'End function
89
'
90
'Sleep(2)
91
 
92
' DEBUG: A Hash of the user provided requests
93
<!--oJSON.data("QueryString") = Request.QueryString       -->
94
<!--                                                      -->
95
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
96
<!--Set oJSON.data("Request") = requestSet                -->
97
<!--Dim variableName                                      -->
98
<!--for each variableName in Request.QueryString          -->
99
<!--    requestSet.add variableName, Request(variableName)-->
100
<!--next                                                  -->
101
<!--for each variableName in Request.Form                 -->
102
<!--    requestSet.add variableName, Request(variableName)-->
103
<!--next                                                  -->
104
 
105
 
106
'Return the object
107
Response.Write oJSON.JSONoutput()
108
Set oJSON = Nothing
109
Call Destroy_All_Objects
110
%>
111
<%
112
'-------------------------------------------------
113
' Function:    updateVersion
114
' Description: Update version information
115
'
116
Sub updateVersion
4198 dpurdie 117
    Dim buildType, changeType, pvId, rtagId, version, vExt, errMessage
118
    ' 
119
    ' Ensure we have all the required parameters
120
    '
121
    buildType = QStrPar("buildType")
122
    changeType = QStrPar("changeType")
123
    pvId = QStrPar("pvId")
124
    rtagId = QStrPar("rtagId")
125
    version = QStrPar("Version")
126
    vExt = QStrPar("vExt")
127
 
128
    '
129
    ' If Manual then force change type to 'F'
130
    ' If Auto then ensure that the version number is of the correct form
131
    if buildType = "M" then 
132
        changeType = "F"
133
    end if
134
 
4203 dpurdie 135
    If changeType <> "F" Then
136
        version=vExt
137
    End If
138
 
4198 dpurdie 139
    '
140
    '   Get existing data
141
    '       Test for package existence
142
    '       Check for changes
143
    '
144
    SqlQry = "SELECT pv.pv_id, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type"&_
145
             " FROM package_versions pv"&_
146
             " WHERE pv.pv_id = :NNpv_id"
147
    OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
148
 
149
	objEH.ErrorRedirect = FALSE
150
    objEH.TryORA ( OraSession )
151
    On Error Resume Next
152
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
153
    objEH.CatchORA ( OraSession )
154
    errMessage = OraDatabase.Parameters("errMessage").Value
155
    OraDatabase.Parameters.Remove "NNpv_id"
156
    On Error GoTo 0
157
 
158
    If NOT objEH.LastOraFailed Then
4203 dpurdie 159
        Dim changed
4198 dpurdie 160
        changed = 0
161
 
162
        If ((rsQry.BOF) OR (rsQry.EOF)) Then
163
            oJSON.data("emsgDetails") = "Package not found"
164
            oJSON.data("error") = 1
165
        End If
166
 
167
        ' Detect changes
168
        '   version can only be tested if a Manually Versioned
169
        '
4203 dpurdie 170
        If changeType = "F" AND rsQry("pkg_version") <> version Then changed = 1
171
        If rsQry("build_type")  <> buildType Then changed = changed + 2
4198 dpurdie 172
        If rsQry("v_ext")       <> vExt Then changed = changed + 4
4203 dpurdie 173
        If rsQry("change_type") <> changeType Then changed = changed + 8
4198 dpurdie 174
 
175
        If changed Then
176
            '
177
            '   Setup for the database access
178
            OraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBER
179
            OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
180
            OraDatabase.Parameters.Add "SSpkg_version",  version,      ORAPARM_INPUT, ORATYPE_VARCHAR2
181
            OraDatabase.Parameters.Add "BUILD_TYPE", buildType, ORAPARM_INPUT, ORATYPE_CHAR
4203 dpurdie 182
            OraDatabase.Parameters.Add "CHANGE_TYPE", changeType, ORAPARM_INPUT, ORATYPE_CHAR
4198 dpurdie 183
            OraDatabase.Parameters.Add "NNuser_id", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
184
            OraDatabase.Parameters.Add "errMessage", 0, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
185
 
4203 dpurdie 186
            SqlQry = "BEGIN Rename_Package_Version (:NNpv_id,:SSpkg_version,:BUILD_TYPE,:CHANGE_TYPE,:NNuser_id,:errMessage ); END;"
4198 dpurdie 187
            objEH.ErrorRedirect = FALSE
188
            objEH.TryORA ( OraSession )
189
            On Error Resume Next
190
            OraDatabase.ExecuteSQL SqlQry
191
            objEH.CatchORA ( OraSession )
192
            errMessage = OraDatabase.Parameters("errMessage").Value
193
            On Error GoTo 0
194
 
195
            OraDatabase.Parameters.Remove "RTAG_ID"
196
            OraDatabase.Parameters.Remove "NNpv_id"
197
            OraDatabase.Parameters.Remove "SSpkg_version"
198
            OraDatabase.Parameters.Remove "NNuser_id"
199
            OraDatabase.Parameters.Remove "errMessage"
200
            OraDatabase.Parameters.Remove "BUILD_TYPE"
4203 dpurdie 201
            OraDatabase.Parameters.Remove "CHANGE_TYPE"
4198 dpurdie 202
            result = 0
203
        End If
204
 
205
    rsQry.Close
206
    Set rsQry = Nothing
207
    End If
6122 dpurdie 208
End Sub
209
'-------------------------------------------------
210
' Function:    setDeployable
211
' Description: Set the state of the is_deployable flag
212
'              Request Parameters
213
'                   pv_id
214
'                   deployment_state
4198 dpurdie 215
'
6122 dpurdie 216
Sub setDeployable
217
    OraDatabase.Parameters.Add "PV_ID",     QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBER
218
    OraDatabase.Parameters.Add "DEPLOYABLE_STATE",  QStrPar("deployment_state"), ORAPARM_INPUT, ORATYPE_CHAR
4198 dpurdie 219
 
6122 dpurdie 220
        '   Set/Reset IS_DEPLOYABLE flag
221
        SqlQry = _
222
            "UPDATE PACKAGE_VERSIONS " &_
223
            "  SET IS_DEPLOYABLE = DECODE(:DEPLOYABLE_STATE, 'Y', 'Y', NULL)" &_
224
            "  WHERE PV_ID =  :PV_ID"
225
        objEH.ErrorRedirect = FALSE
226
        objEH.TryORA ( OraSession )
227
        On Error Resume Next
228
        OraDatabase.ExecuteSQL SqlQry
229
        objEH.CatchORA ( OraSession )
230
        On Error GoTo 0
231
        result = 0
4198 dpurdie 232
 
6122 dpurdie 233
    OraDatabase.Parameters.Remove "PV_ID"
234
    OraDatabase.Parameters.Remove "DEPLOYABLE_STATE"
4198 dpurdie 235
 
6122 dpurdie 236
End Sub
4198 dpurdie 237
 
238
%>