Rev 3959 | Blame | Last modification | View Log | RSS feed
<%'=====================================================' COMMON DB EDIT'=====================================================%><%Sub Update_Pkg_Category ( SSrtag_id, SSpv_id, SSbase_view_id )OraDatabase.Parameters.Add "PV_ID", SSpv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_ID", SSrtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "VIEW_ID", SSbase_view_id, ORAPARM_INPUT, ORATYPE_NUMBERobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL _"BEGIN PK_ENVIRONMENT.CHANGE_PACKAGE_VIEW ( :PV_ID, :RTAG_ID, :VIEW_ID ); END;"objEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "VIEW_ID"End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub Seed_Package_Names_Versions ( ARRdep, NNretPV_ID )Dim iOraDatabase.Parameters.Add "retPV_ID", 0, ORAPARM_OUTPUT, ORATYPE_NUMBERobjEH.TryORA ( OraSession )On Error Resume NextFor i = 0 To UBound( ARRdep, 2 )OraDatabase.ExecuteSQL "BEGIN Seed_Package_Names_Versions ('"& ARRdep(0,i) &"','"& ARRdep(1,i) &"', "& objAccessControl.UserId &", :retPV_ID); END;"NextobjEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "retPV_ID"End Sub'-----------------------------------------------------------------------------------------------------------------------------Function IsExtention ( SSstr )Dim objRegEx, Match, Matches, StrReturnStrSet objRegEx = New RegExpobjRegEx.IgnoreCase = TrueobjRegEx.Pattern = "[A-Za-z]+"Set Matches = objRegEx.Execute( SSstr )For Each Match in MatchesIsExtention = trueNextEnd Function'-----------------------------------------------------------------------------------------------------------------------------Function Get_Pkg_Base_View_ID ( NNpv_id, NNrtag_id )Dim rsTemp, Query_StringIf Request("rtag_id") = "" ThenGet_Pkg_Base_View_ID = -1Exit FunctionEnd IfQuery_String = _" SELECT rc.base_view_id"&_" FROM release_content rc"&_" WHERE rc.rtag_id = "& NNrtag_id &_" AND rc.pv_id = "& NNpv_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenGet_Pkg_Base_View_ID = CInt( rsTemp("base_view_id") )ElseGet_Pkg_Base_View_ID = NULLEnd IfrsTemp.CloseSet rsTemp = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Function Get_V_EXT ( SSversion )Dim v_extv_ext = Right(SSversion, Len(SSversion) - InStrRev( SSversion, "." ))If IsExtention ( v_ext ) ThenGet_V_EXT = v_extElseGet_V_EXT = NULLEnd IfEnd Function'-----------------------------------------------------------------------------------------------------------------------------Sub Touch_Package ( NNpv_id )If NNpv_id = "" Then Exit SubobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL " UPDATE package_versions "&_" SET modified_stamp = "& ORA_SYSDATETIME &", modifier_id = "& objAccessControl.UserId &_" WHERE pv_id = "& NNpv_idobjEH.CatchORA ( OraSession )End Sub'-----------------------------------------------------------------------------------------------------------------------------Function Rebuild_Environment_Necessary(NNrtag_id)Dim Query_String, rsTempRebuild_Environment_Necessary = FALSEIf IsNull(NNrtag_id) OR NNrtag_id = "" Then Exit Function ' Exit if rtag_id is not supplied' Find if rebuild is requiredQuery_String = "SELECT rebuild_env FROM release_tags WHERE rtag_id = "& NNrtag_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenIf rsTemp("rebuild_env") = "Y" ThenRebuild_Environment_Necessary = TRUEEnd IfEnd IfrsTemp.CloseSet rsTemp = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Sub Rebuild_Environment ( NNrtag_id )If Rebuild_Environment_Necessary(NNrtag_id) ThenOn Error Resume Next' It is important to set the flag rebuild_env = 'N' first, to stop multiple processes doing the same thingobjEH.TryORA ( OraSession )OraDatabase.ExecuteSQL " UPDATE release_tags "&_" SET rebuild_env = 'N'"&_" WHERE rtag_id = "& NNrtag_idobjEH.CatchORA ( OraSession )' Only proceed if the last update succeededIf objEH.LastOraFailed = FALSE Then' Now rebuild environmentobjEH.TryORA ( OraSession )OraDatabase.ExecuteSQL " BEGIN Rebuild_Environment( "& NNrtag_id &" ); END;"objEH.CatchORA ( OraSession )End IfEnd IfEnd Sub'-----------------------------------------------------------------------------------------------------------------------------Sub CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, sQuery )Dim rsErr, Query_StringQuery_String = sQuery' --------- SQL PARAMETERS ------------OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PV_ID", nPv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "enumPKG_STATE_OK", enumPKG_STATE_OK, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "enumISSUES_STATE_FIXED", enumISSUES_STATE_FIXED, ORAPARM_INPUT, ORATYPE_NUMBER' -------------------------------------Set rsErr = OraDatabase.DbCreateDynaset( Query_String, cint(0))returnERRmsg = NULLreturnALRTmsg = NULLIf ( nPkgType = enumBASE_VIEW_PRODUCTS ) Then' Check Requirement for productsDo While ((NOT rsErr.BOF) AND (NOT rsErr.EOF))If Not IsNull(rsErr("err_message")) ThenreturnERRmsg = rsErr("err_message")returnALRTmsg = rsErr("products_msg")returnParameters = "_make_released.asp" &"|"If returnALRTmsg = "ERROR" ThenreturnParameters = rsErr("rfile") &"|"& rsErr("anchor")Exit DoEnd IfEnd IfrsErr.MoveNextLoopElse' Check Requirements for other packagesDo While ((NOT rsErr.BOF) AND (NOT rsErr.EOF))If Not IsNull(rsErr("err_message")) ThenreturnERRmsg = rsErr("err_message")returnParameters = rsErr("rfile") &"|"& rsErr("anchor")Exit DoEnd IfrsErr.MoveNextLoopEnd IfrsErr.CloseSet rsErr = nothingOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "enumPKG_STATE_OK"OraDatabase.Parameters.Remove "enumISSUES_STATE_FIXED"End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub CheckRequirementsForMakeRelease ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )Dim QueryString, rsQryQueryString = "SELECT pv.IS_PATCH FROM PACKAGE_VERSIONS pv WHERE pv.PV_ID = "& nPv_idSet rsQry = OraDatabase.DbCreateDynaset( QueryString, cint(0))If IsNull(rsQry("is_patch")) Then' For PackageCall CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_official.sql" ) )Else' For PatchCall CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_official_patch.sql" ) )End IfrsQry.Close()Set rsQry = nothingEnd Sub'-----------------------------------------------------------------------------------------------------------------------------Sub CheckRequirementsForMakePending ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_pending.sql" ) )End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub CheckRequirementsForMakeApproved ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_approved.sql" ) )End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub CheckRequirementsForMakeDeployable ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters )Call CheckRequirements ( nPv_id, nRtag_id, nPkgType, returnERRmsg, returnALRTmsg, returnParameters, ReadFile( rootPath & "queries\req_make_deployable.sql" ) )End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub Notify ( NNrtag_id )Dim Query_String, Location_SQL, rsNotify, emailBody, readyPv_id_list, SentTODict, releaseSTRDim httpRef, URL_root, headerSTR, footerSTR, oAttachmentsDictSet SentTODict = CreateObject("Scripting.Dictionary")Set oAttachmentsDict = CreateObject("Scripting.Dictionary")On Error Resume NextobjEH.TryORA ( OraSession )Query_String = ReadFile( rootPath & "queries\to_notify.sql" )Query_String = Replace( Query_String, "/*PKG_STATE_MAJOR_READY*/", enumPKG_STATE_MAJOR_READY)Query_String = Replace( Query_String, "/*PKG_STATE_MINOR_READY*/", enumPKG_STATE_MINOR_READY)Query_String = Replace( Query_String, "/*PKG_STATE_OK*/", enumPKG_STATE_OK)Query_String = Replace( Query_String, "/*ORA_SYSDATETIME*/", ORA_SYSDATETIME)' --------- SQL PARAMETERS ------------OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUTOraDatabase.Parameters("RTAG_ID").ServerType = ORATYPE_NUMBEROraDatabase.Parameters.Add "CURRENT_USER", objAccessControl.UserId, ORAPARM_INPUTOraDatabase.Parameters("CURRENT_USER").ServerType = ORATYPE_NUMBER' -------------------------------------'Response.write Query_StringSet rsNotify = OraDatabase.DbCreateDynaset( Query_String, cint(0))readyPv_id_list = "-1"emailBody = ""'---- Get notification list ----If ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF)) ThenhttpRef = Request.ServerVariables("HTTP_REFERER")URL_root = Left( httpRef, InStrRev(httpRef, "/") )emailBody = emailBody & "<tr>"emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Owner</b></font></td>"emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Package Name</b></font></td>"emailBody = emailBody & "<td nowrap bgcolor='#CAC5B8'><font size='1' face='tahoma,sans-serif'><b>Version</b></font></td>"emailBody = emailBody & "</tr>"While ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF))emailBody = emailBody & "<tr>"emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'>"& rsNotify("full_name") &"</font></td>"emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'><a href='"& URL_root &"dependencies.asp?pv_id="& rsNotify("pv_id") &"&rtag_id="& NNrtag_id &"'>"& rsNotify("pkg_name") &"</a></font></td>"emailBody = emailBody & "<td nowrap><font size='1' face='tahoma,sans-serif'>"& rsNotify("pkg_version") &"</font></td>"emailBody = emailBody & "</tr>"readyPv_id_list = readyPv_id_list &","& rsNotify("pv_id")If NOT SentTODict.Exists (Cstr(rsNotify("user_email"))) Then SentTODict.Add Cstr(rsNotify("user_email")), Cstr(rsNotify("full_name"))rsNotify.MoveNextWEndemailBody = "<table width='50%' border='1' cellspacing='0' cellpadding='1'>" & emailBody & "</table>"End IfrsNotify.CloseSet rsNotify = nothingIf readyPv_id_list <> "-1" Then'---- Header ----headerSTR = _"<table width='50%' border='0' cellspacing='0' cellpadding='0'>"&_" <tr>"&_" <td valign='bottom'><img src='cid:RM-Envelop' width='60' height='30'></td>"&_" <td valign='bottom' align='right'><font size='3' face='tahoma,sans-serif'><b>release</b>manager Notifications</font></td>"&_" </tr>"&_" <tr> "&_" <td bgcolor='#003399'></td>"&_" <td bgcolor='#003399'></td>"&_" </tr>"&_"</table><br><br>"'---- Footer ----footerSTR = _"<br><br>"&_"<table width='50%' border='0' cellspacing='0' cellpadding='0'>"&_" <tr>"&_" <td colspan='2'><hr size='1' noshade color='#003399'></td>"&_" </tr>"&_" <tr>"&_" <td><img src='cid:RM-MASSlogo' width='22' height='17' hspace='5' align='absmiddle'><font size='1' face='tahoma,sans-serif'> <a href='http://mass.erggroup.com'>mass</a></font></td>"&_" <td nowrap align='right'><font size='1' face='tahoma,sans-serif'>ERG Confidential © ERG</font></td>"&_" </tr>"&_"</table>"'---- Get Release loction ----Location_SQL = _" SELECT proj.proj_name, rt.rtag_name"&_" FROM release_tags rt,"&_" projects proj"&_" WHERE rt.proj_id = proj.proj_id"&_" AND rt.rtag_id = :RTAG_ID"Set rsNotify = OraDatabase.DbCreateDynaset( Location_SQL, cint(0))If ((NOT rsNotify.BOF) AND (NOT rsNotify.EOF)) ThenreleaseSTR = rsNotify("proj_name") &" > "& rsNotify("rtag_name")emailBody = "<font size='1' face='tahoma,sans-serif'>"&_"Following packages are ready to build.<br><br>"&_rsNotify("proj_name") &" > "& rsNotify("rtag_name") &"<br>"&_"<a href='"& URL_root &"dependencies.asp?rtag_id="& NNrtag_id &"'>"& URL_root &"dependencies.asp?rtag_id="& NNrtag_id &"</a>"&_"</font>"&_emailBodyEnd IfrsNotify.CloseSet rsNotify = nothingemailBody = headerSTR & emailBody & footerSTR'---- Remove pkg from notification history ----OraDatabase.ExecuteSQL " DELETE FROM notification_history WHERE rtag_id = :RTAG_ID AND pv_id IN ( "& readyPv_id_list &" )"'---- Insert into notification history ----OraDatabase.ExecuteSQL "INSERT INTO notification_history (rtag_id, pv_id, user_id, date_time_stamp) "&_" SELECT ins.rtag_id, ins.pv_id, ins.user_id, ins.date_time_stamp"&_" FROM ("&_Query_String &_" ) ins"End IfobjEH.CatchORA ( OraSession )'================= Send Email =========================='Call Send_Email ( "Release Manager Notifications", adminEmail, adminEmail, "Your package is ready to build at "& releaseSTR, emailBody, oAttachmentsDict )' ---------- Attachments -------------oAttachmentsDict.Add "images\i_mail.gif", "RM-Envelop"oAttachmentsDict.Add "images\s_masslogo_w.gif", "RM-MASSlogo"Call Send_Email ( "Release Manager Notifications", adminEmail, SentTODict, "Your package is ready to build at "& releaseSTR, emailBody, oAttachmentsDict )OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "CURRENT_USER"End Sub'-----------------------------------------------------------------------------------------------------------------------------Function NeedSync ( nPv_id, nRtag_id )Dim rsTemp, Query_StringQuery_String = ReadFile( rootPath & "queries\sync_check.sql" )' --------- SQL PARAMETERS ------------OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PV_ID", nPv_id, ORAPARM_INPUT, ORATYPE_NUMBER' -------------------------------------Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If rsTemp.RecordCount > 0 ThenNeedSync = TRUEElseNeedSync = FALSEEnd IfrsTemp.CloseSet rsTemp = nothingOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "PV_ID"End Function'-----------------------------------------------------------------------------------------------------------------------------Function Lookup_Document ( sDocNum, outDocTitle, outDoc_id, outDoc_version, outDoc_created )Dim rsDocRegoutDocTitle = NULLoutDoc_id = NULLoutDoc_version = NULLoutDoc_created = NULLSet rsDocReg = Server.CreateObject("ADODB.Recordset")rsDocReg.ActiveConnection = DOCREP_connrsDocReg.Source = "EXEC docregister.dbo.sp_RM_getDocumentFiles '"& sDocNum &"';"rsDocReg.CursorType = 0rsDocReg.CursorLocation = 2rsDocReg.LockType = 3On Error Resume NextrsDocReg.Open()If (NOT rsDocReg.BOF) AND (NOT rsDocReg.EOF) ThenoutDocTitle = rsDocReg("title")outDoc_id = rsDocReg("id")outDoc_version = rsDocReg("version")outDoc_created = rsDocReg("created")End IfrsDocReg.CloseLookup_Document = Err.Number ' Return Error numberSet rsDocReg = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Function Short_Document_Details ( nDocId, outDocTitle, outDoc_version, outDoc_created )Dim rsDocRegoutDocTitle = NULLoutDoc_version = NULLoutDoc_created = NULLSet rsDocReg = Server.CreateObject("ADODB.Recordset")rsDocReg.ActiveConnection = DOCREP_connrsDocReg.Source = "EXEC docregister.dbo.sp_RM_getFileDetails "& nDocId &";"rsDocReg.CursorType = 0rsDocReg.CursorLocation = 2rsDocReg.LockType = 3On Error Resume NextrsDocReg.Open()If (NOT rsDocReg.BOF) AND (NOT rsDocReg.EOF) ThenoutDocTitle = rsDocReg("title")outDoc_version = rsDocReg("version")outDoc_created = rsDocReg("created")End IfrsDocReg.CloseShort_Document_Details = Err.Number ' Return Error numberSet rsDocReg = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Function GetIssueNumber ( nIssDB, nIssId )Dim rsQryGetIssueNumber = ""Set rsQry = Server.CreateObject("ADODB.Recordset")rsQry.ActiveConnection = CQ_connIf CInt(nIssDB) = enumCLEARQUEST_DEVI_ID ThenrsQry.Source = "EXEC cq_devi.dbo.sp_RM_getIssueDetails "& nIssId &";"End IfrsQry.CursorType = 0rsQry.CursorLocation = 2rsQry.LockType = 3On Error Resume NextrsQry.Open()If (NOT rsQry.BOF) AND (NOT rsQry.EOF) ThenGetIssueNumber = rsQry("iss_num")End IfrsQry.CloseSet rsQry = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Sub LoadFieldRules ( sFieldList, ByRef outobjForm )Dim rsQry, queryquery = _" SELECT FIELD_NAME, "&_" IS_REQUIRED, "&_" IS_NUMERIC, "&_" MIN_NUMERIC_VALUE, "&_" MAX_NUMERIC_VALUE, "&_" IS_DATE, "&_" START_DATE, "&_" END_DATE, "&_" MIN_STRING_LENGTH, "&_" MAX_STRING_LENGTH, "&_" REGEXP, "&_" REGEXP_DESCRIPTION "&_" FROM VALIDATION_RULES"&_" WHERE field_name IN ("& sFieldList &")"Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) ThenoutobjForm.LoadFieldRules rsQry.GetRows()End IfrsQry.CloseSet rsQry = NothingEnd Sub'-----------------------------------------------------------------------------------------------------------------------------Sub Log_Action ( nPvId, sActionTypeName, sComments )OraDatabase.Parameters.Add "PV_ID", nPvId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "ACTION_TYPE_NAME", sActionTypeName, ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "COMMENTS", sComments, ORAPARM_INPUT, ORATYPE_VARCHAR2objEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL _"BEGIN Log_Action ( :PV_ID, :ACTION_TYPE_NAME, :USER_ID, :COMMENTS ); END;"objEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "ACTION_TYPE_NAME"OraDatabase.Parameters.Remove "COMMENTS"End Sub'-----------------------------------------------------------------------------------------------------------------------------Function GetUsername ( nUser_id )Dim rsQry, sQueryOraDatabase.Parameters.Add "USER_ID", nUser_id, ORAPARM_INPUT, ORATYPE_VARCHAR2sQuery = "SELECT full_name FROM users WHERE user_id = :USER_ID"Set rsQry = OraDatabase.DbCreateDynaset( sQuery, cint(0))If rsQry.RecordCount = 1 ThenGetUsername = rsQry.Fields("full_name").ValueElseGetUsername = nothingEnd IfOraDatabase.Parameters.remove "USER_ID"rsQry.CloseSet rsQry = nothingEnd Function'-----------------------------------------------------------------------------------------------------------------------------Function GetUserEmail ( nUser_id )Dim rsQry, sQueryOraDatabase.Parameters.Add "USER_ID", nUser_id, ORAPARM_INPUT, ORATYPE_VARCHAR2sQuery = "SELECT user_email FROM users WHERE user_id = :USER_ID"Set rsQry = OraDatabase.DbCreateDynaset( sQuery, cint(0))If rsQry.RecordCount = 1 ThenGetUserEmail = rsQry.Fields("user_email").ValueElseGetUserEmail = nothingEnd IfOraDatabase.Parameters.remove "USER_ID"rsQry.CloseSet rsQry = nothingEnd Function'---------------------------------------------------------------------------------------------------------------------Sub SetIgnoreWarnings (dpvId, pvId, rtagId)Dim Query_String, rsTempOraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PV_ID", pvId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "IGNORE_ID_LIST", dpvId, ORAPARM_INPUT, ORATYPE_VARCHAR2On Error Resume NextobjEH.TryORA ( OraSession )OraDatabase.ExecuteSQL _"BEGIN "&_" Ignore_Dependency_Warnings( :RTAG_ID, :PV_ID, :IGNORE_ID_LIST, FALSE, :USER_ID ); "&_"END; "objEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "IGNORE_ID_LIST"If objEH.LastOraFailed = FALSE Then' DEVI-051154 has prompted the removal of the code to call touch_release from the' Ignore_Dependency_Warnings stored procedure, and re-locate it here in the website code, since' Ignore_Dependency_Warnings is called internally by other SQL code in the database where' we do not want to touch_release. This is what Ignore_Dependency_Warnings used to do:' IF PK_ENVIRONMENT.GET_PACKAGE_AREA ( nPvId, nRtagId ) = 2 THEN' Touch_Release (nRtagId);' END IF;' Doing the same in the website code is a bit more verbose, and we shouldn't do it if it' is not necessary.' Get the tab in which the package version resides (0=wip, 1=planned, 2=released)OraDatabase.Parameters.Add "ENVTAB", NULL, ORAPARM_OUT, ORATYPE_NUMBEROraDatabase.ExecuteSQL _"BEGIN "&_" :ENVTAB = PK_ENVIRONMENT.GET_PACKAGE_AREA ( :PV_ID, :RTAG_ID ); "&_"END; "' only need to touch release if it is not already in touched state. The purpose of this is to prevent the' code inside the body of this "if-statement" from executing during the period of time when the database schema' has yet to be updated to remove the intenral call to touch_release. Once the database schema is updated,' the Rebuild_Environment_Necessary call is no longer necessary since it will always return FALSE at this' point. Leaving the statement in place post the database schema update will do no harm though.If Rebuild_Environment_Necessary(rtagId) = FALSE Then' If the package version is 'Released' then allow the rebuild of the environment so that the states' of higher level packages can be re-evaluatedIf OraDatabase.Parameters("ENVTAB").Value = 2 ThenobjEH.TryORA ( OraSession )OraDatabase.ExecuteSQL _"BEGIN "&_" Touch_Release ( :RTAG_ID ); "&_"END; "objEH.CatchORA ( OraSession )End IfEnd IfOraDatabase.Parameters.Remove "ENVTAB"End IfOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "PV_ID"End Sub'------------------------------------------------------------------------------------------------------------------Sub UpdateChangeType (nPvId, nChangeType)Dim rsTemp, Query_StringOn Error Resume NextIf (NOT IsNull(nChangeType)) AND (nChangeType <> "") AND (NOT IsNull(nPvId)) AND (nPvId <> "") ThenOraDatabase.Parameters.Add "PV_ID", nPvId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "CHANGE_TYPE", nChangeType, ORAPARM_INPUT, ORATYPE_CHARobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL _"UPDATE package_versions pv SET pv.change_type = '"& nChangeType &"' WHERE pv.pv_id = "& nPvIdobjEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "CHANGE_TYPE"If objEH.LastOraFailed = FALSE Then'/* Log Action */If nChangeType = "M" ThenCall Log_Action ( nPvId, "change_type_update", "Major Change" )ElseIf nChangeType = "N" ThenCall Log_Action ( nPvId, "change_type_update", "Minor Change" )ElseIf nChangeType = "P" ThenCall Log_Action ( nPvId, "change_type_update", "Patch Change" )End IfEnd IfEnd IfEnd Sub'------------------------------------------------------------------------------------------------------------------Sub UpdateReasonForVersion (nPvId, nReason)Dim rsTemp, Query_StringOn Error Resume NextIf (NOT IsNull(nReason)) AND (nReason <> "") AND (NOT IsNull(nPvId)) AND (nPvId <> "") ThenOraDatabase.Parameters.Add "PV_ID", nPvId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "COMMENTS", nReason, ORAPARM_INPUT, ORATYPE_VARCHAR2objEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL _"UPDATE package_versions pv SET pv.comments = '"& SQLstring(nReason) &"' WHERE pv.pv_id = "& nPvIdobjEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "COMMENTS"If objEH.LastOraFailed = FALSE Then'/* Log Action */Call Log_Action ( nPvId, "reason_for_release", nReason )End IfEnd IfEnd Sub'------------------------------------------------------------------------------------------------------------------%>