<%@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 5 mins Server.ScriptTimeout=600 %> <% ' 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 parSBOMA Dim parSBOMB Dim dDiffFilter Dim colorA, colorB, ChangeTypeIcon Dim btnMerge, btnRemove Dim rowId Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterB Dim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss Dim a, b, c, d, pkgversion, errormsg, source_change Dim VersionList '------------ Constants Declaration ----------- Const LIMG_UPDATED = "" 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_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") parSBOMA = Request("sbomA") parSBOMB = Request("sbomB") Set objRelCollectorA = CreateObject("Scripting.Dictionary") Set objRelCollectorB = CreateObject("Scripting.Dictionary") Set dDiffFilter = CreateObject("Scripting.Dictionary") '---------------------------------------------- %> <% '-------------------------------------------------------------------------------------------------------------------------- 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 sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_db="& CInt(enumCLEARQUEST_VTSUP_ID) &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0)) If sqlstrC.RecordCount <> 0 Then While ((NOT sqlstrC.BOF) AND (NOT sqlstrC.EOF)) DEVIiss = "-1" TDSEiss = "-1" VT5DMiss = "-1" VTSUPiss = "-1" If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then DEVIiss = DEVIiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then TDSEiss = TDSEiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then VT5DMiss = VT5DMiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then VTSUPiss = VTSUPiss &","& sqlstrC("iss_id") End If SSsql = ReadFile( QUERIES_PATH & "\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 ) sqlstrC.MoveNext Wend End If sqlstrC.Close() Set sqlstrC = Nothing End Sub '-------------------------------------------------------------------------------------------------------------------------- Function LastPvId(pvId) Dim qryA Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&pvId , cint(0)) LastPvId = pvId If pvId <> qryA("last_pv_id") Then LastPvId = qryA("last_pv_id") Else errormsg = true End If qryA.Close() Set qryA = Nothing End Function '-------------------------------------------------------------------------------------------------------------------------- Sub PreviousVersions(a, b, versionA, versionB) If CLng(a) < CLng(b) Then While CLng(a) < CLng(b) b = LastPvId(b) If CLng(a) < CLng(b) Then VersionList = VersionList + ","& b &"" Call Comments(b) Call GetFixedIssues(b) End If Wend End If If CLng(b) < CLng(a) Then While CLng(b) < CLng(a) a = LastPvId(a) If CLng(b) < CLng(a) Then VersionList = VersionList + ","& a &"" Call Comments(a) Call GetFixedIssues(a) End If Wend End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub pkg_Version(pv) Dim qry Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv , cint(0)) pkgversion = qry("pkg_version") qry.Close() Set qry = Nothing 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 ( nSourceSBOM, ByRef outobjDetails ) Dim rsQry, query ' Exit if nSourceRtagId is empty If nSourceSBOM = "" Then Exit Sub OraDatabase.Parameters.Add "SBOM", nSourceSBOM, ORAPARM_INPUT, ORATYPE_NUMBER query = _ " SELECT pr.PROJ_NAME ||' > '|| br.BRANCH_NAME ||' > '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_ " pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY"&_ " FROM BRANCHES br,"&_ " BOMS b,"&_ " DM_PROJECTS pr"&_ " WHERE br.PROJ_ID = pr.PROJ_ID"&_ " AND b.BRANCH_ID = br.BRANCH_ID"&_ " AND b.BOM_ID = :SBOM" Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT ) OraDatabase.Parameters.Remove "SBOM" If rsQry.RecordCount > 0 Then outobjDetails.Item ("location") = rsQry("location") outobjDetails.Item ("official") = rsQry("IS_READONLY") outobjDetails.Item ("proj_id") = rsQry("proj_id") outobjDetails.Item ("branch_id") = rsQry("branch_id") outobjDetails.Item ("bom_id") = rsQry("bom_id") Else Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM End If If outobjDetails.Item ("location") = "" Then outobjDetails.Item ("location") = "N" 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 Else outIcon = "" End Select End Sub '-------------------------------------------------------------------------------------------------------------------------- %> <% '------------ RUN BEFORE PAGE RENDER ---------- If Request("btn") = "Exit" Then Call OpenInWindow ( "reports.asp" ) End If ' Get release details Call GetFormDetails ( parSBOMA, objRelCollectorA ) Call GetFormDetails ( parSBOMB, objRelCollectorB ) If Request("btn") = "Swap Compare" Then Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA ) 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 ) '---------------------------------------------- %> Production Manager SBOM Differences

<%If (parRtagA <> "") Then%> <%End If%>
 Select SBOM A
 
DIFF SBOM
 
<%If parSBOMA <> parSBOMB AND parSBOMA <> "" AND parSBOMB <> "" Then%> <%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 If (parSBOMA <> "") AND (parSBOMB <> "") Then%> <% OraDatabase.Parameters.Add "SBOM_A", parSBOMA, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "SBOM_B", parSBOMB, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "ADDED", GetIsDiffFilterChecked(enumDB_DIFF_NEW), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "UPDATED", GetIsDiffFilterChecked(enumDB_DIFF_UPDATED), ORAPARM_INPUT, ORATYPE_VARCHAR2 OraDatabase.Parameters.Add "REMOVED", GetIsDiffFilterChecked(enumDB_DIFF_REMOVED), ORAPARM_INPUT, ORATYPE_VARCHAR2 Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0)) OraDatabase.Parameters.Remove "SBOM_A" OraDatabase.Parameters.Remove "SBOM_B" OraDatabase.Parameters.Remove "NO_CHANGE" OraDatabase.Parameters.Remove "ADDED" OraDatabase.Parameters.Remove "UPDATED" OraDatabase.Parameters.Remove "REMOVED" Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_ " pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_ " FROM BRANCHES br,"&_ " BOMS b,"&_ " DM_PROJECTS pr"&_ " WHERE br.PROJ_ID = pr.PROJ_ID"&_ " AND b.BRANCH_ID = br.BRANCH_ID"&_ " AND b.BOM_ID ="&parSBOMA, cint(0)) Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_ " pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_ " FROM BRANCHES br,"&_ " BOMS b,"&_ " DM_PROJECTS pr"&_ " WHERE br.PROJ_ID = pr.PROJ_ID"&_ " AND b.BRANCH_ID = br.BRANCH_ID"&_ " AND b.BOM_ID ="&parSBOMB, cint(0)) While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) VersionList = "0" 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 Select Case rsQry("change_type") Case "U" colorA = LCOLOR_CHANGED colorB = LCOLOR_CHANGED Case "UW" colorA = LCOLOR_CHANGED colorB = LCOLOR_CHANGED btnMerge = LIMG_MERGE_WARN Case "A" colorA = LCOLOR_BLANK Case "R" colorB = LCOLOR_BLANK End Select Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon ) %> <% rsQry.MoveNext WEnd rsQry.Close Set rsQry = Nothing %>
<%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> <%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%>
<%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
<%=ChangeTypeIcon%>
">
<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
">

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

<%If (parRtagB <> "") Then%> <%End If%>
 Select SBOM B
<% 'If email Then 'Dim myMail, LocalPath 'Set myMail=Server.CreateObject("Persits.MailSender") 'LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html") ' myMail.Host = SMTP_HOST ' myMail.Subject="BOM Comparisons from Deployment 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 %>