Rev 1283 | Blame | Compare with Previous | 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_NUMBEROraSession.BeginTransOraDatabase.ExecuteSQL _"BEGIN PK_ENVIRONMENT.CHANGE_PACKAGE_VIEW ( :PV_ID, :RTAG_ID, :VIEW_ID ); END;"OraSession.CommitTransOraDatabase.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_NUMBEROraSession.BeginTransFor i = 0 To UBound( ARRdep, 2 )OraDatabase.ExecuteSQL "BEGIN Seed_Package_Names_Versions ('"& ARRdep(0,i) &"','"& ARRdep(1,i) &"', "& objAccessControl.UserId &", :retPV_ID); END;"NextOraSession.CommitTransOraDatabase.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 SubOraSession.BeginTransOraDatabase.ExecuteSQL " UPDATE package_versions "&_" SET modified_stamp = "& ORA_SYSDATETIME &", modifier_id = "& objAccessControl.UserId &_" WHERE pv_id = "& NNpv_idOraSession.CommitTransEnd Sub'-----------------------------------------------------------------------------------------------------------------------------Sub Rebuild_Environment ( NNrtag_id )Dim Query_String, rsTemp, needRebuild, secTodayIf NNrtag_id = "" Then Exit Sub ' 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" ThenneedRebuild = TRUEElseneedRebuild = FALSEEnd IfElseneedRebuild = FALSEEnd IfrsTemp.CloseSet rsTemp = nothing' EXIT on no rebuild requiredIf NOT needRebuild Then Exit Sub' /* REBUILD ENVIRONMENT */OraSession.BeginTrans' Update rebuild stampsecToday = Int( Timer )'OraDatabase.ExecuteSQL " UPDATE release_tags "&_' " SET rebuild_stamp = "& secToday &_' " WHERE rtag_id = "& NNrtag_id' It is important to set the flag rebuild_env = 'N' first, to stop multiple processes doing the same thingOraDatabase.ExecuteSQL " UPDATE release_tags "&_" SET rebuild_env = 'N'"&_" WHERE rtag_id = "& NNrtag_idOraSession.CommitTransOraSession.BeginTrans' Now rebuild environmentOraDatabase.ExecuteSQL " BEGIN Rebuild_Environment( "& NNrtag_id &" ); END;"' Remove rebuild flag'OraDatabase.ExecuteSQL " UPDATE release_tags "&_' " SET rebuild_env = 'N'"&_' " WHERE rtag_id = "& NNrtag_id &_' " AND rebuild_stamp = "& secTodayOraSession.CommitTransEnd 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 Package'Response.write "HERE"Call 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 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")OraSession.BeginTransQuery_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 form 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 IfOraSession.CommitTrans'================= 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 rsQrySet 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_VARCHAR2OraSession.BeginTransOraDatabase.ExecuteSQL _"BEGIN Log_Action ( :PV_ID, :ACTION_TYPE_NAME, :USER_ID, :COMMENTS ); END;"OraSession.CommitTransOraDatabase.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'------------------------------------------------------------------------------------------------------------------%>