Rev 4199 | Blame | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' Update Package Version' Designed to be called via AJAX and to return' JSON formatted data to dynamic page'=====================================================%><%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"--><!--#include file="class/classaspJSON.asp" --><%'------------ Variable Definition -------------Dim parOprDim parPkgNameDim resultDim SqlQryDim rsQryparOpr = QStrPar("Opr")parPkgName = Trim(QStrPar("packageName"))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") ThenDim 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 If'' Create JSON data for the user' Important fields' result'' Debug fields' QueryString' SqlQry' Request (Array)''Write single valueoJSON.data("result") = result' SQL error detection and reportingIf objEH.LastOraFailed ThenoJSON.data("error") = 1oJSON.data("emsgSummary") = objEH.MessageSummaryoJSON.data("emsgDetails") = objEH.MessageDetailsoJSON.data("SqlQry") = SqlQryEnd If' DEBUG: An array of the user provided requestsoJSON.data("QueryString") = Request.QueryStringSet oJSON.data("Request") = oJSON.Collection()Set newitem = oJSON.AddToCollection(oJSON.data("Request"))Dim variableNamefor each variableName in Request.QueryStringnewitem.add variableName, Request.QueryString(variableName)next'Return the objectResponse.Write oJSON.JSONoutput()%>