<%@LANGUAGE="VBSCRIPT"%> <% '===================================================== '| | '| DIFF | '| | '===================================================== %> <% Option explicit ' Good idea to set when using redirect Response.Expires = 0 ' always load the page, dont store %> <% 'To enable the script timeout to 20 mins Server.ScriptTimeout=1200 %> <% ' Set rfile parameter. This is a return page after Login 'Call objPMod.StoreParameter ( "rfile", "rtree.asp" ) 'objPMod.PersistInQryString("proj_id") '------------ ACCESS CONTROL ------------------ %> <% '------------ Variable Definition ------------- Dim rsQry Dim objRelCollectorA Dim objRelCollectorB Dim parRtagA Dim parRtagB Dim dDiffFilter Dim colorA, colorB, ChangeTypeIcon Dim btnMerge, btnRemove Dim rowId Dim email Dim FSO Dim NewTextFile Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, counterB Dim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss Dim a, b, c, d, pkgversion, errormsg, source_change, ChangeASource, ChangeAUpdate, ChangeBSource, ChangeBUpdate, pvCollectionA, pvCollectionB Dim changeType '------------ Constants Declaration ----------- Const LIMG_UPDATED = "" Const LIMG_RIPPLED = "" Const LIMG_ADDED = "" Const LIMG_REMOVED = "" Const LIMG_FILTER_ON = "" Const LIMG_FILTER_OFF = "" Const LIMG_DROP_DOWN_ARROW = "" Const LCOLOR_NOT_CHANGED = "#F5F5F5" Const LCOLOR_CHANGED = "#d2f7c9" Const LCOLOR_RIPPLED = "#D8F8F8" Const LCOLOR_BLANK = "#FFFFFF" Const LIMG_MERGE = "" Const LIMG_MERGE_WARN = "" Const LIMG_REMOVE = "" Const LIMG_UNDO = "" '------------ Variable Init ------------------- Set rsCQ = Server.CreateObject("ADODB.Recordset") parRtagA = Request("rtagA") parRtagB = Request("rtagB") Set objRelCollectorA = CreateObject("Scripting.Dictionary") Set objRelCollectorB = CreateObject("Scripting.Dictionary") Set dDiffFilter = CreateObject("Scripting.Dictionary") '---------------------------------------------- If Request("btn") = "Mail Me Report" Then email = true End If %> <% '-------------------------------------------------------------------------------------------------------------------------- Sub GetDiffFilterValues ( outDepFilter ) Dim FilterVal, aFilterValues If Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" Then aFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",") For Each FilterVal In aFilterValues outDepFilter.Item (CStr( FilterVal )) = "" Next End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub GetFixedIssues(pv_id) Set sqlstrA = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED &_ " UNION SELECT iss_db, iss_id, iss_state, notes FROM ARCHIVE_MANAGER.CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0)) If sqlstrA.RecordCount <> 0 Then NewTextFile.WriteLine() NewTextFile.WriteLine("
Fixed Issues:
") End If For counterA=1 to sqlstrA.RecordCount DEVIiss = "-1" TDSEiss = "-1" VT5DMiss = "-1" VTSUPiss = "-1" If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then DEVIiss = DEVIiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then TDSEiss = TDSEiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then VT5DMiss = VT5DMiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then VTSUPiss = VTSUPiss &","& sqlstrA("iss_id") End If SSsql = ReadFile( rootPath & "queries\cq_issues.sql" ) SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID) SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID) SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID) SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID) SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss) SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss) SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss) SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss) retVal = Get_CQ_Issues ( SSsql, rsCQ ) If rsCQ("iss_num") <> "" Then NewTextFile.Write("
"&rsCQ("iss_num")&": ") End If If rsCQ("summary") <> "" Then NewTextFile.WriteLine(rsCQ("summary")&"
") End If sqlstrA.MoveNext Next sqlstrA.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdA(a) Dim qryA Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a &_ " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&a, cint(0)) 'If a <> qryA("last_pv_id") Then a = qryA("last_pv_id") 'Else ' errormsg = true 'End If If pvCollectionA.Exists(CStr(a)) Then errormsg = true Exit Sub End If qryA.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdB(b) Dim qryB Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b &_ " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&b, cint(0)) 'If b <> qryB("last_pv_id") Then b = qryB("last_pv_id") 'Else ' errormsg = true 'End If If pvCollectionB.Exists(CStr(b)) Then errormsg = true Exit Sub End If qryB.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub pkg_Version(pv) Dim qry Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv &_ " UNION SELECT PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&pv, cint(0)) pkgversion = qry("pkg_version") qry.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdAa(a) Dim qryA Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a &_ " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&a, cint(0)) c = qryA("last_pv_id") qryA.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdBb(b) Dim qryB Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b &_ " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&b, cint(0)) d = qryB("last_pv_id") qryB.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Comments(Pv_Id) Dim comments Set comments = OraDatabase.DbCreateDynaset("SELECT COMMENTS, PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&Pv_id &_ " UNION SELECT COMMENTS, PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&Pv_id, cint(0)) If comments("comments") <> "Rippled Build." Then NewTextFile.WriteLine("
Version: "& comments("pkg_version")&"
") If comments("comments") <> "" Then NewTextFile.WriteLine("
Comments:
") NewTextFile.WriteLine("
"& TextToHTML(comments("comments")) &"
") source_change = true End If End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Release(pvId) Dim release Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId &_ " UNION SELECT INSERT_STAMP FROM ARCHIVE_MANAGER.RELEASE_CONTENT WHERE PV_ID="&pvId, cint(0)) If release("insert_stamp") <> "" Then NewTextFile.Write(release("insert_stamp")) Else NewTextFile.Write("Version Not Used.") End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Header() NewTextFile.WriteLine("") End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Footer() NewTextFile.WriteLine("") End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Javascript() NewTextFile.WriteLine("") End Sub '-------------------------------------------------------------------------------------------------------------------------- Function GetIsDiffFilterInUseIcon() GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW If dDiffFilter.Count > 0 Then GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW End If End Function '-------------------------------------------------------------------------------------------------------------------------- Function GetIsDiffFilterChecked( nFilterId ) If dDiffFilter.Exists ( CStr(nFilterId) ) Then GetIsDiffFilterChecked = "checked" End If End Function '--------------------------------------------------------------------------------------------------------------------------- Function Get_CQ_Issues ( SSsql, OOrsCQ ) If OOrsCQ.State = 1 Then OOrsCQ.Close End If On Error Resume Next OOrsCQ.ActiveConnection = CQ_conn OOrsCQ.Source = SSsql OOrsCQ.CursorType = 0 OOrsCQ.CursorLocation = 2 OOrsCQ.LockType = 3 OOrsCQ.Open() Get_CQ_Issues = Err.Number End Function '-------------------------------------------------------------------------------------------------------------------------- Public Function TextToHTML ( sString ) Dim mString If (sString = "") OR IsNull(sString) Then Exit Function mString = Server.HTMLEncode( sString ) mString = Replace(mString, VBNewLine, "
") TextToHTML = mString End Function '-------------------------------------------------------------------------------------------------------------------------- Sub GetFormDetails ( nSourceRtagId, ByRef outobjDetails ) Dim rsQry, query ' Exit if nSourceRtagId is empty If nSourceRtagId = "" Then Exit Sub OraDatabase.Parameters.Add "SOURCE_RTAG_ID", nSourceRtagId, ORAPARM_INPUT, ORATYPE_NUMBER query = _ " SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME AS LOCATION, "&_ " rt.OFFICIAL, pr.PROJ_ID, rt.RTAG_ID"&_ " FROM RELEASE_TAGS rt,"&_ " PROJECTS pr"&_ " WHERE rt.PROJ_ID = pr.PROJ_ID"&_ " AND rt.RTAG_ID = :SOURCE_RTAG_ID" Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT ) OraDatabase.Parameters.Remove "SOURCE_RTAG_ID" If rsQry.RecordCount > 0 Then outobjDetails.Item ("location") = rsQry("location") outobjDetails.Item ("official") = rsQry("official") outobjDetails.Item ("proj_id") = rsQry("proj_id") outobjDetails.Item ("rtag_id") = rsQry("rtag_id") Else Err.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. nSourceRtagId="& nSourceRtagId End If rsQry.Close Set rsQry = Nothing End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub GetDiffStateIcon( nDiffState, outIcon ) Select Case nDiffState Case "U" outIcon = LIMG_UPDATED Case "UW" outIcon = LIMG_UPDATED Case "A" outIcon = LIMG_ADDED Case "R" outIcon = LIMG_REMOVED Case "UR" outIcon = LIMG_RIPPLED Case Else outIcon = "" End Select End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub MergePackages (releaseMode) Dim aFullList, aAddPkgList, aRemovePkgList, dAddPkgList, dRemovePkgList, PvId Dim OraParameter ' Business Rules restricting the use of the merge feature... ' Bypass merge if the destination release is in closed or archive mode, or if user does not have ' merge permissions If releaseMode <> enumDB_RELEASE_IN_CLOSED_MODE AND releaseMode <> enumDB_RELEASE_IN_ARCHIVE_MODE _ AND (objAccessControl.IsActive("MergeRelease")) THEN Set dAddPkgList = CreateObject("Scripting.Dictionary") Set dRemovePkgList = CreateObject("Scripting.Dictionary") '--- Get Add Packages --- ' Get full list of "addpkg" parameter aFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," ) ' Clean empty parameters For Each PvId In aFullList If PvId <> "" Then dAddPkgList.Add CStr( PvId ), Empty End If Next aFullList = NULL aAddPkgList = dAddPkgList.Keys '--- Get Remove Packages --- ' Get full list of "removepkg" parameter aFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," ) ' Clean empty parameters For Each PvId In aFullList If PvId <> "" Then dRemovePkgList.Add CStr( PvId ), Empty End If Next aFullList = NULL aRemovePkgList = dRemovePkgList.Keys '-- Add package List to release -- OraDatabase.Parameters.Add "PV_ID", NULL, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "VIEW_ID", NULL, ORAPARM_BOTH, ORATYPE_NUMBER OraDatabase.Parameters.Add "RTAG_A", Request("rtagA"), ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "RTAG_B", Request("rtagB"), ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "PROJB", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMMENTS", "Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "OPERATION",NULL, ORAPARM_INPUT, ORATYPE_CHAR Set OraParameter = OraDatabase.Parameters On Error Resume Next ' Begin Database entry objEH.TryORA ( OraSession ) OraSession.BeginTrans '-- Add Packages -- OraParameter("OPERATION").Value = "A" For Each PvId In aAddPkgList OraParameter("PV_ID").Value = PvId ' DEVI-45275, Merge into Planned (pending) table instead of release_content table. OraDatabase.ExecuteSQL _ "BEGIN "&_ " :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_ " PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION ); "&_ "END;" Next '-- Remove Packages -- OraParameter("OPERATION").Value = "S" For Each PvId In aRemovePkgList OraParameter("PV_ID").Value = PvId ' DEVI-45275, Merge into Planned (pending) table instead of release_content table. OraDatabase.ExecuteSQL _ "BEGIN "&_ " :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_B ); "&_ " PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION ); "&_ "END;" Next '-- Log Project Merge Action OraDatabase.ExecuteSQL _ "BEGIN LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS, :RTAG_B ); END;" '-- Force package state recalculate OraDatabase.ExecuteSQL _ "BEGIN "&_ " TOUCH_RELEASE ( :RTAG_B ); "&_ "END;" OraSession.CommitTrans objEH.CatchORA ( OraSession ) Set OraParameter = Nothing OraDatabase.Parameters.Remove "PV_ID" OraDatabase.Parameters.Remove "VIEW_ID" OraDatabase.Parameters.Remove "RTAG_A" OraDatabase.Parameters.Remove "RTAG_B" OraDatabase.Parameters.Remove "USER_ID" OraDatabase.Parameters.Remove "PROJB" OraDatabase.Parameters.Remove "COMMENTS" OraDatabase.Parameters.Remove "OPERATION" 'Response.write "
"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList ) End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Function AddTrailingZeros(byval n, byval count) if len(n) >= count then AddTrailingZeros = n exit function end if dim c, s, i c = count - len(n) for i = 1 to c s = s & "0" next s = cstr(n) & s AddTrailingZeros = s End function '-------------------------------------------------------------------------------------------------------------------------- %> <% '------------ RUN BEFORE PAGE RENDER ---------- If Request("btn") = "Exit" Then Call OpenInWindow ( "index.asp" ) End If ' Get release details Call GetFormDetails ( parRtagA, objRelCollectorA ) Call GetFormDetails ( parRtagB, objRelCollectorB ) If (Request("btn") = "Merge") Then Call MergePackages ( objRelCollectorB.Item("official") ) End If If Request("btn") = "Swap Compare" Then Call OpenInWindow ( ScriptName &"?rtagA="& parRtagB &"&rtagB="& parRtagA ) End If If Request("btn") = "Hide" Then ' Store filter in cookie Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter") End If Call GetDiffFilterValues ( dDiffFilter ) '---------------------------------------------- %> Release Manager
 

<%If (parRtagA <> "") Then%> <%End If%>
 Select Release A
Go To Release A »
 
DIFF / MERGE RELEASE
 
<%If (objRelCollectorB.Item("official") <> "Y" AND objRelCollectorB.Item("official") <> "C" ) AND (objAccessControl.IsActive("MergeRelease")) Then%>disabled<%End If%>><%End If%> <%If (objRelCollectorB.Item("official") = "C" ) AND (objAccessControl.IsActive("MergeReleaseForCCB")) Then%>disabled<%End If%>><%End If%>
<%If (parRtagA <> "") AND (parRtagB <> "")Then%>
<%=GetIsDiffFilterInUseIcon() %> Filter Results...
<%End If%>
<% ' Successfull Merge If (Request("btn") = "Merge") Then Call Messenger ( "Merge has completed successfully.", 3, "100%" ) End If Set FSO=Server.CreateObject("Scripting.FileSystemObject") Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html"), true) Call Header() If (parRtagA <> "") AND (parRtagB <> "")Then%> <% OraDatabase.Parameters.Add "RTAG_A", parRtagA, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "RTAG_B", parRtagB, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_NUM_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "ADDED", GetIsDiffFilterChecked(enumDB_NUM_DIFF_NEW), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "UPDATED", GetIsDiffFilterChecked(enumDB_NUM_DIFF_UPDATED), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "REMOVED", GetIsDiffFilterChecked(enumDB_NUM_DIFF_REMOVED), ORAPARM_INPUT, ORATYPE_VARCHAR2 Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseDiff.sql"), cint(0)) OraDatabase.Parameters.Remove "RTAG_A" OraDatabase.Parameters.Remove "RTAG_B" OraDatabase.Parameters.Remove "NO_CHANGE" OraDatabase.Parameters.Remove "ADDED" OraDatabase.Parameters.Remove "UPDATED" OraDatabase.Parameters.Remove "REMOVED" Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT RT.RTAG_NAME, PRJ.PROJ_NAME FROM RELEASE_TAGS RT, PROJECTS PRJ WHERE RTAG_ID="& parRtagA &" AND RT.PROJ_ID=PRJ.PROJ_ID", cint(0)) Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT RT.RTAG_NAME, PRJ.PROJ_NAME FROM RELEASE_TAGS RT, PROJECTS PRJ WHERE RTAG_ID="& parRtagB &" AND RT.PROJ_ID=PRJ.PROJ_ID", cint(0)) Call Javascript() NewTextFile.WriteLine("Difference Report Between "&rsQryA("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"") NewTextFile.WriteLine("
Difference Report Between "&rsQryA("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"

") NewTextFile.WriteLine("Key:
SOURCE CODE CHANGES Indicates Changes to a Package in "& rsQryA("rtag_name") &".
SOURCE CODE CHANGES Indicates Changes to a Package in "& rsQryB("rtag_name") &".
Grey Text Indicates No Source Code Changes to a Package in either Release.
") Dim currView_id currView_id = -1 While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) errormsg = false rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b") btnMerge = LIMG_MERGE btnRemove = LIMG_REMOVE colorA = LCOLOR_NOT_CHANGED colorB = LCOLOR_NOT_CHANGED changeType = rsQry("change_type") Select Case changeType Case "U" colorA = LCOLOR_CHANGED colorB = LCOLOR_CHANGED Case "UW" colorA = LCOLOR_CHANGED colorB = LCOLOR_CHANGED btnMerge = LIMG_MERGE_WARN Case "UR" colorA = LCOLOR_RIPPLED colorB = LCOLOR_RIPPLED Case "A" colorA = LCOLOR_BLANK Case "R" colorB = LCOLOR_BLANK End Select Call GetDiffStateIcon ( changeType, ChangeTypeIcon ) If changeType = "U" OR changeType = "UW" OR changeType = "UR" Then Dim MajorA, MajorB, MinorA, MinorB, PatchA, PatchB, BuildA, BuildB, pos, pkgVersionA, pkgVersionB, majMinA, majMinB MajorA = NULL MajorB = NULL MinorA = NULL MinorB = NULL pkgVersionA = rsQry("pkg_version_a") pkgVersionB = rsQry("pkg_version_b") PatchA = rsQry("patch_number_a") PatchB = rsQry("patch_number_b") BuildA = rsQry("build_number_a") BuildB = rsQry("build_number_b") ' Find the first occurence of the dot in package version A pos = InStr(pkgVersionA, ".") If pos <> 0 Then ' Extract the Major Version for A MajorA = Mid(pkgVersionA, 1, pos - 1) ' Delete the Major Version Value from the string to get the minor and patch version pkgVersionA = Mid(pkgVersionA, pos + 1, Len(pkgVersionA)) ' Find the second occurence of the dot in package version A pos = InStr(pkgVersionA, ".") ' Extract the Minor Version for A If pos <> 0 Then MinorA = Mid(pkgVersionA, 1, pos - 1) End If End If ' Find the first occurence of the dot in package version B pos = InStr(pkgVersionB, ".") If pos <> 0 Then ' Extract the Major Version for B MajorB = Mid(pkgVersionB, 1, pos - 1) ' Delete the Major Version Value from the string to get the minor and patch version pkgVersionB = Mid(pkgVersionB, pos + 1, Len(pkgVersionB)) ' Find the second occurence of the dot in package version B pos = InStr(pkgVersionB, ".") ' Extract the Minor Version for B If pos <> 0 Then MinorB = Mid(pkgVersionB, 1, pos - 1) End If End If If MajorA = MajorB Then If MinorA = MinorB Then If IsNumeric(PatchA) AND IsNumeric(PatchB) Then If CInt(PatchB) > CInt(PatchA) Then btnMerge = LIMG_MERGE_WARN Else btnMerge = LIMG_MERGE End If End If Else If IsNumeric(MinorA) AND IsNumeric(MinorB) Then If CInt(MinorB) > CInt(MinorA) Then btnMerge = LIMG_MERGE_WARN Else btnMerge = LIMG_MERGE End If End If End If Else If IsNumeric(MajorA) AND IsNumeric(MajorB) Then If CInt(MajorB) > CInt(MajorA) Then btnMerge = LIMG_MERGE_WARN Else btnMerge = LIMG_MERGE End If End If End If End If ' -------- FILTERS RIPPLE BUILDS WHEN CHECKED ----------------- If NOT (GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE) = "checked" AND changeType = "UR") THEN ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currView_id) <> CDbl(rsQry("view_id")) Then %> <% currView_id = CDbl(rsQry("view_id")) End If ' -------- END GROUP ------------------------ %> <% If email then If rsQry("pv_id_a") Then Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0)) End If If rsQry("pv_id_b") Then Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0)) End If pkgA = rsQry("pkg_name_a") pkgB = rsQry("pkg_name_b") If pkgA <> "" then pkgname = pkgA Else pkgname = pkgB End If If changeType = "U" OR changeType = "UW" Then ChangeASource = false ChangeAUpdate = false ChangeBSource = false ChangeBUpdate = false 'NewTextFile.WriteLine("
"&pkgname&"") NewTextFile.Write(""& pkgname &"") NewTextFile.Write(""& pkgname &"") NewTextFile.WriteLine("") NewTextFile.Write(rsQryA("rtag_name")&" uses: "&rsQry("pkg_version_a")&" (") Call Release(rsQry("pv_id_a")) NewTextFile.WriteLine(")
") NewTextFile.Write(rsQryB("rtag_name")&" uses: "&rsQry("pkg_version_b")&" (") Call Release(rsQry("pv_id_b")) NewTextFile.WriteLine(")
") a = rsQry("pv_id_a") b = rsQry("pv_id_b") c = rsQry("pv_id_a") d = rsQry("pv_id_b") Set pvCollectionA = CreateObject("Scripting.Dictionary") Set pvCollectionB = CreateObject("Scripting.Dictionary") On Error Resume Next While CLng(a) <> CLng(b) and NOT errormsg 'NewTextFile.WriteLine("A: "&a) 'NewTextFile.WriteLine("B: "&b) pvCollectionA.Add CStr(a), Empty pvCollectionB.Add CStr(b), Empty If CLng(a) > CLng(b) Then 'NewTextFile.WriteLine("TestA") Call LastPvIdA(a) ElseIf CLng(b) > CLng(a) Then 'NewTextFile.WriteLine("TestB") Call LastPvIdB(b) End If Wend Set pvCollectionA = Nothing Set pvCollectionB = Nothing Call pkg_Version(a) NewTextFile.Write("Common PARENT package version: "&pkgversion&" (") Call Release(a) NewTextFile.WriteLine(")

") NewTextFile.WriteLine() NewTextFile.WriteLine(""&rsQryA("rtag_name")&"") If pkgversion <> rsQry("pkg_version_a") Then NewTextFile.WriteLine("
Versions between "& pkgversion &" and "& rsQry("pkg_version_a")&"
") If errormsg Then NewTextFile.WriteLine("Error determining root!
") NewTextFile.WriteLine() End If source_change = false While CLng(a) <> CLng(c) and NOT errormsg Call Comments(c) Call GetFixedIssues(c) Call LastPvIdAa(c) NewTextFile.WriteLine() Wend If source_change = false Then NewTextFile.WriteLine("
No source changes to "& rsQryA("rtag_name")&". Only Rippled Builds.

") ChangeASource = true End If Call pkg_Version(b) NewTextFile.WriteLine() NewTextFile.WriteLine() ElseIf pkgversion = rsQry("pkg_version_a") Then NewTextFile.WriteLine("
No updates to "& rsQryA("rtag_name")&"

") ChangeAUpdate = true NewTextFile.WriteLine() End If NewTextFile.WriteLine(""&rsQryB("rtag_name")&"") If pkgversion <> rsQry("pkg_version_b") Then NewTextFile.WriteLine("
Versions between "& pkgversion &" and "& rsQry("pkg_version_b")&"
") If errormsg Then NewTextFile.WriteLine("Error determining root!
") NewTextFile.WriteLine() End If source_change = false While CLng(b) <> CLng(d) and NOT errormsg Call Comments(d) Call GetFixedIssues(d) Call LastPvIdBb(d) NewTextFile.WriteLine() Wend If source_change = false Then NewTextFIle.WriteLine("
No source changes to "& rsQryB("rtag_name")&". Only Rippled Builds.

") ChangeBSource = true End If ElseIf pkgversion = rsQry("pkg_version_b") Then NewTextFile.WriteLine("
No updates to "& rsQryB("rtag_name")&"

") ChangeBUpdate = true NewTextFile.WriteLine() End If NewTextFile.WriteLine("
") If ChangeASource Then If ChangeBSource Then NewTextFile.WriteLine("
<%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> <%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%>
<%=rsQry("view_name")%>          
<%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
<%If objRelCollectorB.Item("official") <> "Y" Then%><%End If%>
<%=ChangeTypeIcon%>
<%If objRelCollectorB.Item("official") <> "Y" Then%><%End If%>
<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
">
"& Ucase(rsQryA("rtag_name")) &": . Ripple Builds Only. "& Ucase(rsQryB("rtag_name")) &": Ripple Builds Only.
") ElseIf ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": Ripple Builds Only. "& Ucase(rsQryB("rtag_name")) &": No Updates.
") ElseIf NOT ChangeBSource AND NOT ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": Ripple Builds Only. "& Ucase(rsQryB("rtag_name")) &": SOURCE CODE CHANGES.
") End If End If If ChangeBSource Then If NOT ChangeAUpdate Then If NOT ChangeASource AND NOT ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": SOURCE CODE CHANGES. "& Ucase(rsQryB("rtag_name")) &": Ripple Builds Only.
") End If End If End If If NOT ChangeASource Then If NOT ChangeAUpdate Then If NOT ChangeBSource AND NOT ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": SOURCE CODE CHANGES. "& Ucase(rsQryB("rtag_name")) &": SOURCE CODE CHANGES.
") ElseIf ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": SOURCE CODE CHANGES. "& Ucase(rsQryB("rtag_name")) &":No Updates.
") End If ElseIf ChangeAUpdate Then If NOT ChangeBSource AND NOT ChangeBUpdate Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": No Updates. "& Ucase(rsQryB("rtag_name")) &": SOURCE CODE CHANGES.
") ElseIf ChangeBSource Then NewTextFile.WriteLine("
"& Ucase(rsQryA("rtag_name")) &": No Updates. "& Ucase(rsQryB("rtag_name")) &": Ripple Builds Only.
") End If End If End If End If End If End If rsQry.MoveNext WEnd rsQry.Close Set rsQry = Nothing %> <% Call Footer() NewTextFile.Close Set NewTextFile=Nothing %>

<%Else%>
<% If (parRtagB <> "") Then Call Messenger ( "Select Release A to compare.", 3, "100%" ) ElseIf (parRtagA <> "") Then Call Messenger ( "Select Release B to compare.", 3, "100%" ) Else Call Messenger ( "Select Release A and Release B to compare.", 3, "100%" ) End If %> <%End If%>
 

<%If (parRtagB <> "") Then%> <%End If%>
 Select Release B
Go To Release B »
<% If email Then Dim myMail, LocalPath Set myMail=Server.CreateObject("Persits.MailSender") LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html") myMail.Host = SMTP_HOST myMail.Subject="Release Comparisons from Release Manager" myMail.From="releasem@erggroup.com" myMail.AddAddress objAccessControl.UserEmail ' Attach the file myMail.AddAttachment LocalPath myMail.Body = "Your requested report..." myMail.Send set myMail=nothing End If %> <% Call Destroy_All_Objects %>