Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
6952 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   rep_new_versions_json.asp
5
'   Ajax support for various operations
6
'       getData
7
'
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
13
Response.ContentType = "text/html"
14
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
15
Response.CodePage = 65001
16
Response.CharSet = "UTF-8"
17
%>
18
<!--#include file="common/conf.asp"-->
19
<!--#include file="common/globals.asp"-->
20
<!--#include file="common/qstr.asp"-->
21
<!--#include file="common/common_subs.asp"-->
22
<!--#include file="_access_control_general.asp"-->
23
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
24
<%
25
'------------ Variable Definition -------------
26
Dim parOpr, parRtagId
27
Dim result
28
Dim SqlQry
29
Dim rsQry
30
 
31
parOpr = QStrPar("action")
32
parRtagId = QStrPar("rtag_id")
33
result = -1
34
 
35
' Init the output JSON class
36
'   Operations can add data
37
'   Default data will be added at the end
38
Dim oJSON
39
Set oJSON = New aspJSON
40
Dim newitem
41
 
42
'   
43
'   Perform the body of the operations within a Sub and use
44
'   On Error Resule Next to catch errors that accur in the code
45
'
46
On Error Resume Next
47
If (parOpr = "getData") Then
48
    getData
6953 dpurdie 49
ElseIf (parOpr = "mergeVersion") Then
50
    mergeVersion
6952 dpurdie 51
 
52
Else
53
    oJSON.data("error") = 1
54
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
55
    oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOpr
56
End If
57
 
58
 
59
' SQL error detection and reporting
60
If objEH.LastOraFailed Then
61
    oJSON.data("error") = 1
62
    result = -1
63
 
64
    oJSON.data("emsgSummary") = objEH.MessageSummary
65
    oJSON.data("emsgDetails") = objEH.MessageDetails
66
    oJSON.data("SqlQry") = SqlQry
67
'
68
'   Detect program errors
69
ElseIf Err.number <> 0 Then
70
    result = -3
71
    oJSON.data("error") = 2
72
    oJSON.data("errnum") = Err.number
73
    oJSON.data("errtxt") = Err.description
74
    oJSON.data("errsrc") = Err.source
75
    oJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number &  ":" & Err.description
76
End If
77
On error goto 0
78
'Write single value
79
oJSON.data("result") = result
80
 
81
'function Sleep(seconds)
82
'    dim oshell, cmd
83
'    set oShell = CreateObject("Wscript.Shell")
84
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
85
'    oShell.Run cmd,0,1
86
'End function
87
'
88
'Sleep(2)
89
 
90
 
91
' DEBUG: A Hash of the user provided requests
92
<!--oJSON.data("QueryString") = Request.QueryString       -->
93
<!--                                                      -->
94
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
95
<!--Set oJSON.data("Request") = requestSet                -->
96
<!--Dim variableName                                      -->
97
<!--for each variableName in Request.QueryString          -->
98
<!--    requestSet.add variableName, Request(variableName)-->
99
<!--next                                                  -->
100
<!--for each variableName in Request.Form                 -->
101
<!--    requestSet.add variableName, Request(variableName)-->
102
<!--next                                                  -->
103
 
104
'Return the object
105
Response.Write oJSON.JSONoutput()
106
Set oJSON = Nothing
107
Call Destroy_All_Objects
108
%>
109
<%
110
'-------------------------------------------------
6953 dpurdie 111
' Function:    mergeVersion
112
' Description: Merge the selected version into the Release
113
'              rtag_id - The release to process
114
'              pv_id - Current PVID
115
'              npv_id - New PVID
116
'              mode - A (Add), R (Remove)
117
'
118
Sub mergeVersion
119
    Dim OraParameter
120
    Dim mode : mode =  QStrPar("mode")
121
 
122
    OraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBER
123
    OraDatabase.Parameters.Add "NPV_ID",   QStrPar("npv_id"), ORAPARM_INPUT, ORATYPE_NUMBER
124
    OraDatabase.Parameters.Add "PV_ID",   QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBER
125
    OraDatabase.Parameters.Add "VIEW_ID",  NULL, ORAPARM_BOTH, ORATYPE_NUMBER
126
    OraDatabase.Parameters.Add "USER_ID",  objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
127
    OraDatabase.Parameters.Add "OPERATION",NULL, ORAPARM_INPUT, ORATYPE_CHAR
128
    Set OraParameter = OraDatabase.Parameters
129
 
130
    On Error Resume Next
131
    objEH.TryORA ( OraSession )
132
 
133
    If mode = "A" Then
134
        OraParameter("OPERATION").Value = "A"
135
        OraDatabase.ExecuteSQL _
136
        "BEGIN  "&_
137
        "  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_ID ); "&_
138
        "  PK_PLANNED.MERGE_PACKAGE ( :NPV_ID, :VIEW_ID, :RTAG_ID, :USER_ID, :OPERATION );  "&_
139
        "END;"
140
 
141
    ElseIf mode = "R" Then
142
        OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.MAKE_REJECT ( :NPV_ID, :RTAG_ID, :USER_ID ); END; "
143
 
144
    Else
145
        result = -1
146
        oJSON.data("emsgSummary") = "Internal: mergeVersion. Unknown mode"
147
        Exit Sub
148
    End If
149
 
150
    objEH.CatchORA ( OraSession )
151
    On Error GoTo 0
152
 
153
    If Err.Number = 0 Then
154
        result = 0
155
    End If
156
 
157
	OraDatabase.Parameters.Remove "OPERATION"
158
	OraDatabase.Parameters.Remove "USER_ID"
159
	OraDatabase.Parameters.Remove "VIEW_ID"
160
	OraDatabase.Parameters.Remove "PV_ID"
161
	OraDatabase.Parameters.Remove "NPV_ID"
162
	OraDatabase.Parameters.Remove "RTAG_ID"
163
 
164
End Sub
165
'-------------------------------------------------
6952 dpurdie 166
' Function:    getData
167
' Description: Get the data for the page - as jason
168
'              Not used directly by datatables
169
'              The format is special. Its not a direct result of the sql query
170
'              Group multiple version-information as an array
171
'              ie: [ a,b,c,d,e,f, [[ a,b,c],[a,b,c]]
172
'
173
Sub getData
174
 
175
    OraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBER
176
 
177
    SqlQry = GetQuery("rep_new_versions.sql")
178
    objEH.ErrorRedirect = FALSE
179
    objEH.TryORA ( OraSession )
180
    On Error Resume Next
181
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
182
    objEH.CatchORA ( OraSession )
183
    On Error GoTo 0
184
 
185
	OraDatabase.Parameters.Remove "RTAG_ID"
186
 
187
    ' Things for oJSON object
188
    '   Set someVar  = oJSON.Collection()       (Will create an empty collection)
189
    '   obj(field) = data                       (Will create a hash entry)
190
    '   newObj = oJSON.AddToCollection( obj )   (Will create an array)
191
 
192
    Dim lastPvid : lastPvid = 0
193
    Dim extraData
194
    Dim extraIdx
195
    Dim pvid
196
    Set oJSON.data("aaData") = oJSON.Collection()
197
 
198
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
199
        pvid = rsQry("PV_ID") 
200
        If pvid <> lastPvid Then
201
            ' This is a new entry
202
            lastPvid = pvid
203
            Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
204
            newitem(0)= rsQry("PV_ID") 
205
            newitem(1)= rsQry("VIEW_NAME")
206
            newitem(2)= rsQry("PKG_ID")
207
            newitem(3)= rsQry("PKG_NAME")
208
            newitem(4)= rsQry("PKG_VERSION") 
209
            newitem(5)= rsQry("V_EXT")
210
            newitem(6)= rsQry("CREATED_STAMP") 
211
            newitem(7)= rsQry("NEW_PV_ID")
212
            newitem(8)= rsQry("NEW_PKG_VERSION")
213
            newitem(9)= rsQry("NEW_CREATED_STAMP")
214
            extraIdx = 0
215
 
216
        Else
217
            ' Additional Data to be added
218
            '   May need to add an array, before adding entries to the array
219
            If extraIdx = 0 Then
220
                Set extraData = oJSON.Collection()
221
                newitem.Add 10 ,extraData
222
            End If
223
 
224
            Dim entry: Set entry = oJSON.Collection()
225
            entry(0)= rsQry("NEW_PV_ID")
226
            entry(1)= rsQry("NEW_PKG_VERSION")
227
            entry(2)= rsQry("NEW_CREATED_STAMP")
228
            extraData.Add extraIdx, entry
229
            extraIdx = extraIdx + 1
230
        End If
231
 
232
       rsQry.MoveNext
233
    Wend
234
 
235
End Sub
236
 
237
%>