Rev 5957 | Rev 6123 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' Update Package Version' _json_updateVersion.asp' Designed to be called via AJAX and to return' JSON formatted data to dynamic page' Ajax support for operaions on a package-version:'' updateVer' setDeployable''=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT><%'------------ Variable Definition -------------Dim parOprDim resultDim SqlQryDim rsQryparOpr = QStrPar("Opr")result = -1' Init the output JSON class' Operations can add data' Default data will be added at the endDim oJSONSet oJSON = New aspJSONDim newitemIf NOT objAccessControl.UserLogedIn ThenoJSON.data("error") = 1oJSON.data("emsgSummary") = "User no longer logged in"oJSON.data("emsgDetails") = oJSON.data("emsgSummary")ElseIf (parOpr = "updateVer") ThenupdateVersionElseIf (parOpr = "setDeployable") ThensetDeployableElseoJSON.data("error") = 1oJSON.data("emsgSummary") = "Unknown JSON Operation"oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOprEnd If' SQL error detection and reportingIf objEH.LastOraFailed ThenoJSON.data("error") = 1result = -1oJSON.data("emsgSummary") = objEH.MessageSummaryoJSON.data("emsgDetails") = objEH.MessageDetailsoJSON.data("SqlQry") = SqlQry'' Detect program errorsElseIf Err.number <> 0 Thenresult = -3oJSON.data("error") = 2oJSON.data("errnum") = Err.numberoJSON.data("errtxt") = Err.descriptionoJSON.data("errsrc") = Err.sourceoJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number & ":" & Err.descriptionEnd IfOn error goto 0'Write single valueoJSON.data("result") = result'function Sleep(seconds)' dim oshell, cmd' set oShell = CreateObject("Wscript.Shell")' cmd = "cmd.exe /c timeout " & seconds & " /nobreak"' oShell.Run cmd,0,1'End function''Sleep(2)' DEBUG: A Hash of the user provided requests<!--oJSON.data("QueryString") = Request.QueryString --><!-- --><!--Dim requestSet : Set requestSet = oJSON.Collection() --><!--Set oJSON.data("Request") = requestSet --><!--Dim variableName --><!--for each variableName in Request.QueryString --><!-- requestSet.add variableName, Request(variableName)--><!--next --><!--for each variableName in Request.Form --><!-- requestSet.add variableName, Request(variableName)--><!--next -->'Return the objectResponse.Write oJSON.JSONoutput()Set oJSON = NothingCall Destroy_All_Objects%><%'-------------------------------------------------' Function: updateVersion' Description: Update version information'Sub updateVersionDim buildType, changeType, pvId, rtagId, version, vExt, errMessage'' Ensure we have all the required parameters'buildType = QStrPar("buildType")changeType = QStrPar("changeType")pvId = QStrPar("pvId")rtagId = QStrPar("rtagId")version = QStrPar("Version")vExt = QStrPar("vExt")'' If Manual then force change type to 'F'' If Auto then ensure that the version number is of the correct formif buildType = "M" thenchangeType = "F"end ifIf changeType <> "F" Thenversion=vExtEnd If'' Get existing data' Test for package existence' Check for changes'SqlQry = "SELECT pv.pv_id, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type"&_" FROM package_versions pv"&_" WHERE pv.pv_id = :NNpv_id"OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBERobjEH.ErrorRedirect = FALSEobjEH.TryORA ( OraSession )On Error Resume NextSet rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )objEH.CatchORA ( OraSession )errMessage = OraDatabase.Parameters("errMessage").ValueOraDatabase.Parameters.Remove "NNpv_id"On Error GoTo 0If NOT objEH.LastOraFailed ThenDim changedchanged = 0If ((rsQry.BOF) OR (rsQry.EOF)) ThenoJSON.data("emsgDetails") = "Package not found"oJSON.data("error") = 1End If' Detect changes' version can only be tested if a Manually Versioned'If changeType = "F" AND rsQry("pkg_version") <> version Then changed = 1If rsQry("build_type") <> buildType Then changed = changed + 2If rsQry("v_ext") <> vExt Then changed = changed + 4If rsQry("change_type") <> changeType Then changed = changed + 8If changed Then'' Setup for the database accessOraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "SSpkg_version", version, ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "BUILD_TYPE", buildType, ORAPARM_INPUT, ORATYPE_CHAROraDatabase.Parameters.Add "CHANGE_TYPE", changeType, ORAPARM_INPUT, ORATYPE_CHAROraDatabase.Parameters.Add "NNuser_id", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "errMessage", 0, ORAPARM_OUTPUT, ORATYPE_VARCHAR2SqlQry = "BEGIN Rename_Package_Version (:NNpv_id,:SSpkg_version,:BUILD_TYPE,:CHANGE_TYPE,:NNuser_id,:errMessage ); END;"objEH.ErrorRedirect = FALSEobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL SqlQryobjEH.CatchORA ( OraSession )errMessage = OraDatabase.Parameters("errMessage").ValueOn Error GoTo 0OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "NNpv_id"OraDatabase.Parameters.Remove "SSpkg_version"OraDatabase.Parameters.Remove "NNuser_id"OraDatabase.Parameters.Remove "errMessage"OraDatabase.Parameters.Remove "BUILD_TYPE"OraDatabase.Parameters.Remove "CHANGE_TYPE"result = 0End IfrsQry.CloseSet rsQry = NothingEnd IfEnd Sub'-------------------------------------------------' Function: setDeployable' Description: Set the state of the is_deployable flag' Request Parameters' pv_id' deployment_state'Sub setDeployableOraDatabase.Parameters.Add "PV_ID", QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "DEPLOYABLE_STATE", QStrPar("deployment_state"), ORAPARM_INPUT, ORATYPE_CHAR' Set/Reset IS_DEPLOYABLE flagSqlQry = _"UPDATE PACKAGE_VERSIONS " &_" SET IS_DEPLOYABLE = DECODE(:DEPLOYABLE_STATE, 'Y', 'Y', NULL)" &_" WHERE PV_ID = :PV_ID"objEH.ErrorRedirect = FALSEobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL SqlQryobjEH.CatchORA ( OraSession )On Error GoTo 0result = 0OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "DEPLOYABLE_STATE"End Sub%>