Rev 6646 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' diffmerge.asp'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><%'To enable the script timeout to 5 minsServer.ScriptTimeout=600%><!--#include file="common/config.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><!--#include file="common/_form_window_common.asp"--><!--#include file="common/_rtree_common.asp"--><%' Set rfile parameter. This is a return page after Login'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )'objPMod.PersistInQryString("proj_id")'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><%'------------ Variable Definition -------------Dim rsQryDim objRelCollectorADim objRelCollectorBDim parRtagADim parRtagBDim parSBOMADim parSBOMBDim dDiffFilterDim colorA, colorB, ChangeTypeIconDim btnMerge, btnRemoveDim rowIdDim emailDim FSODim NewTextFileDim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, counterBDim SSsql, retVal, rsCQ, DEVIissDim a, b, c, d, pkgversion, errormsg, source_change'------------ Constants Declaration -----------Const LIMG_UPDATED = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Updated'>"Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"Const LCOLOR_NOT_CHANGED = "#F5F5F5"Const LCOLOR_CHANGED = "#d2f7c9"Const LCOLOR_BLANK = "#FFFFFF"Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"'------------ 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")'----------------------------------------------If Request("btn") = "Mail Me Report" Thenemail = trueEnd If%><%'--------------------------------------------------------------------------------------------------------------------------Sub GetDiffFilterValues ( outDepFilter )Dim FilterVal, aFilterValuesIf Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" ThenaFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",")For Each FilterVal In aFilterValuesoutDepFilter.Item (CStr( FilterVal )) = ""NextEnd IfEnd 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, cint(0))If sqlstrA.RecordCount <> 0 ThenNewTextFile.WriteLine()NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")End IfFor counterA=1 to sqlstrA.RecordCountDEVIiss = "-1"If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& sqlstrA("iss_id")End IfSSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)retVal = Get_CQ_Issues ( SSsql, rsCQ )If rsCQ("iss_num") <> "" ThenNewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")End IfIf rsCQ("summary") <> "" ThenNewTextFile.WriteLine(rsCQ("summary")&"</blockquote></blockquote></blockquote>")End IfsqlstrA.MoveNextNextsqlstrA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetDependencies(pv_id_a, pv_id_b)Set sqlstrA = OraDatabase.DbCreateDynaset("select * from package_dependencies where pv_id = "& pv_id_b &" and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id ="& pv_id_a &" )", cint(0))If sqlstrA.RecordCount <> 0 ThenNewTextFile.WriteLine()NewTextFile.WriteLine("<b>Dependencies Changed:</b>")End IfFor counterA=1 to sqlstrA.RecordCountCall dependencyComments(sqlstrA("dpv_id"))sqlstrA.MoveNextNextsqlstrA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub dependencyComments(pv_id)Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id, cint(0))NewTextFile.Write("<blockquote><blockquote><blockquote>"& sqlstrB("pkg_name") &" "& sqlstrB("pkg_version") &"---->"& TextToHTML(sqlstrB("comments")) &"</blockquote></blockquote></blockquote>")End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdA(a)Dim qryASet qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))If a <> qryA("last_pv_id") Thena = qryA("last_pv_id")Elseerrormsg = trueEnd IfqryA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdB(b)Dim qryBSet qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))If b <> qryB("last_pv_id") Thenb = qryB("last_pv_id")Elseerrormsg = trueEnd IfqryB.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub pkg_Version(pv)Dim qrySet qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv , cint(0))pkgversion = qry("pkg_version")qry.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdAa(a)Dim qryASet qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))c = qryA("last_pv_id")qryA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdBb(b)Dim qryBSet qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))d = qryB("last_pv_id")qryB.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub Comments(Pv_Id)Dim commentsSet comments = OraDatabase.DbCreateDynaset("SELECT COMMENTS, PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&Pv_id , cint(0))If comments("comments") <> "Rippled Build." ThenNewTextFile.WriteLine("<blockquote><blockquote><font color="&chr(34)&"blue"&chr(34)&">Version: "& comments("pkg_version")&"</font></blockquote></blockquote>")If comments("comments") <> "" ThenNewTextFile.WriteLine("<blockquote><blockquote>Comments: </blockquote></blockquote>")NewTextFile.WriteLine("<blockquote><blockquote><blockquote>"& TextToHTML(comments("comments")) &"</blockquote></blockquote></blockquote>")source_change = trueEnd IfEnd IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub Release(pvId)Dim releaseSet release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId , cint(0))If release("insert_stamp") <> "" ThenNewTextFile.Write(release("insert_stamp"))ElseNewTextFile.Write("Version Not Used.")End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub Header()NewTextFile.WriteLine("<html>")End Sub'--------------------------------------------------------------------------------------------------------------------------Sub Footer()NewTextFile.WriteLine("</html>")End Sub'--------------------------------------------------------------------------------------------------------------------------Function GetIsDiffFilterInUseIcon()GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROWIf dDiffFilter.Count > 0 ThenGetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROWEnd IfEnd Function'--------------------------------------------------------------------------------------------------------------------------Function GetIsDiffFilterChecked( nFilterId )If dDiffFilter.Exists ( CStr(nFilterId) ) ThenGetIsDiffFilterChecked = "checked"End IfEnd Function'---------------------------------------------------------------------------------------------------------------------------Function Get_CQ_Issues ( SSsql, OOrsCQ )On Error Resume NextSet OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))Get_CQ_Issues = Err.NumberEnd Function'--------------------------------------------------------------------------------------------------------------------------Public Function TextToHTML ( sString )Dim mStringIf (sString = "") OR IsNull(sString) Then Exit FunctionmString = Server.HTMLEncode( sString )mString = Replace(mString, VBNewLine, "<br>")TextToHTML = mStringEnd Function'--------------------------------------------------------------------------------------------------------------------------Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )Dim rsQry, query' Exit if nSourceRtagId is emptyIf nSourceSBOM = "" Then Exit SubOraDatabase.Parameters.Add "SBOM", nSourceSBOM, ORAPARM_INPUT, ORATYPE_NUMBERquery = _" SELECT pr.PROJ_NAME ||' > '|| br.BRANCH_NAME ||' > '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_" pr.PROJ_ID, b.BOM_ID, b.IS_READONLY, 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 = :SBOM"Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )OraDatabase.Parameters.Remove "SBOM"If rsQry.RecordCount > 0 ThenoutobjDetails.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")outobjDetails.Item ("is_readonly") = rsQry("is_readonly")ElseErr.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOMEnd IfIf outobjDetails.Item ("location") = "" ThenoutobjDetails.Item ("location") = "N"End IfrsQry.CloseSet rsQry = NothingEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetDiffStateIcon( nDiffState, outIcon )Select Case nDiffStateCase "U"outIcon = LIMG_UPDATEDCase "UW"outIcon = LIMG_UPDATEDCase "A"outIcon = LIMG_ADDEDCase "R"outIcon = LIMG_REMOVEDCase ElseoutIcon = ""End SelectEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub MergePackages ()Dim aFullList, aAddPkgList, aRemovePkgList, dAddPkgList, dRemovePkgList, PvIdDim OraParameterSet dAddPkgList = CreateObject("Scripting.Dictionary")Set dRemovePkgList = CreateObject("Scripting.Dictionary")'--- Get Add Packages ---' Get full list of "addpkg" parameteraFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," )' Clean empty parametersFor Each PvId In aFullListIf PvId <> "" ThendAddPkgList.Add CStr( PvId ), EmptyEnd IfNextaFullList = NULLaAddPkgList = dAddPkgList.Keys'--- Get Remove Packages ---' Get full list of "removepkg" parameteraFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," )' Clean empty parametersFor Each PvId In aFullListIf PvId <> "" ThendRemovePkgList.Add CStr( PvId ), EmptyEnd IfNextaFullList = NULLaRemovePkgList = dRemovePkgList.Keys'-- Add package List to release --OraDatabase.Parameters.Add "PV_ID", NULL, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "VIEW_ID", NULL, ORAPARM_BOTH, ORATYPE_NUMBEROraDatabase.Parameters.Add "SBOM_A", parSBOMA, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "SBOM_B", parSBOMB, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PROJB", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "COMMENTS", "Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBERSet OraParameter = OraDatabase.ParametersOn Error Resume Next' Begin Database entryobjEH.TryORA ( OraSession )OraSession.BeginTrans'-- Add Packages --For Each PvId In aAddPkgListOraParameter("PV_ID").Value = PvIdDim rsQry, rsQryNodeCountSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("MergeManagerA.sql"), cint(0))'OraDatabase.Parameters.Add "OS_ID", rsQry("os_id"), ORAPARM_INPUT, ORATYPE_NUMBER'OraDatabase.Parameters.Add "NODE_ID", rsQry("node_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQryNodeCount = OraDatabase.DbCreateDynaset( "SELECT nn.NODE_NAME, nn.NODE_ID, os.OS_NAME, os.OS_ID, osc.PROD_ID, P.PKG_NAME FROM BOM_CONTENTS bc, NETWORK_NODES nn, OPERATING_SYSTEMS os, PACKAGES p, PACKAGE_VERSIONS pv, OS_CONTENTS osc WHERE bc.NODE_ID = nn.NODE_ID AND os.OS_ID = osc.OS_ID AND osc.PROD_ID = pv.PV_ID AND p.PKG_ID = pv.PKG_ID AND os.NODE_ID = nn.NODE_ID AND bc.BOM_ID ="&parSBOMB, cint(0))While ((NOT rsQryNodeCount.BOF) AND (NOT rsQryNodeCount.EOF))If rsQryNodeCount("node_name") = rsQry("node_name_a") ThenIf rsQryNodeCount("os_name") = rsQry("os_name_a") ThenIf rsQryNodeCount("pkg_name") = rsQry("pkg_name_a") ThenIf rsQry("change_type") = "U" OR rsQry("change_type") = "UW" ThenOraSession.BeginTransOraDatabase.ExecuteSQL _"UPDATE OS_CONTENTS SET PROD_ID ="& rsQry("pv_id_a") &", PRODUCT_COMMENTS ='"& rsQry("product_comments_a") &"' WHERE OS_ID ="& rsQryNodeCount("os_id") &" AND PROD_ID ="& rsQry("pv_id_b") &" "OraSession.CommitTransElseIf rsQry("change_type") = "R" ThenEnd IfEnd IfEnd IfEnd IfrsQryNodeCount.MoveNextWend'OraDatabase.ExecuteSQL _'"BEGIN "&_'" PK_PRODUCT_TEST.ADD_PACKAGE ( :PV_ID, :OS_ID, :NODE_ID, :SBOM_B, :USER_ID ); "&_'"END;"rsQry.CloseSet rsQry = nothingrsQryNodeCount.CloseSet rsQryNodeCount = nothing'OraDatabase.Parameters.Remove "OS_ID"'OraDatabase.Parameters.Remove "NODE_ID"Next'-- Remove Packages --For Each PvId In aRemovePkgListOraParameter("PV_ID").Value = PvIdSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("MergeManagerB.sql"), cint(0))OraSession.BeginTransOraDatabase.ExecuteSQL _"DELETE FROM OS_CONTENTS WHERE PROD_ID ="& rsQry("pv_id_b") &" AND OS_ID ="& rsQry("os_id_b") &""OraSession.CommitTransNextrsQry.CloseSet rsQry = nothing'-- Log Project Merge Action'OraDatabase.ExecuteSQL _'"BEGIN LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS ); END;"'-- Force package state recalculate'OraDatabase.ExecuteSQL _'"BEGIN "&_'" TOUCH_RELEASE ( :RTAG_B ); "&_'"END;"OraSession.CommitTransobjEH.CatchORA ( OraSession )Set OraParameter = NothingOraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "VIEW_ID"OraDatabase.Parameters.Remove "SBOM_A"OraDatabase.Parameters.Remove "SBOM_B"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "PROJB"OraDatabase.Parameters.Remove "COMMENTS"'Response.write "<br>"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList )End Sub'--------------------------------------------------------------------------------------------------------------------------%><%'------------ RUN BEFORE PAGE RENDER ----------If Request("btn") = "Exit" ThenCall OpenInWindow ( "reports.asp" )End If' Get release detailsCall GetFormDetails ( parSBOMA, objRelCollectorA )Call GetFormDetails ( parSBOMB, objRelCollectorB )If (Request("btn") = "Merge") ThenIf objRelCollectorB.Item("official") <> "Y" ThenCall MergePackages ()End IfEnd IfIf Request("btn") = "Swap Compare" ThenCall OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA )End IfIf Request("btn") = "Hide" Then' Store filter in cookieResponse.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")End IfCall GetDiffFilterValues ( dDiffFilter )'----------------------------------------------%><html><head><title>Deployment Manager SBOM Differences</title><link rel="shortcut icon" href="<%=FavIcon%>"/><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="scripts/deployment_manager.css?ver=<%=VixVerNum%>" rel="stylesheet" type="text/css"><link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css"><link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css"><script language="JavaScript" src="scripts/common.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" src="scripts/remote_scripting.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" type="text/javascript"><!--function RequestReleaseCombo( paramString, rowId ){var requestURL = 'RequestReleaseCombo.asp';// Set ajax divnameajaxdivname = rowId;//Append the name to search for to the requestURLvar url = requestURL + paramString;//Progress//alert(MM_findObj( rowId ));//MM_findObj( rowId ).options[0] = new Option('Loading...','');//MM_findObj( rowId ).selectedIndex = 0;rowId.options[0] = new Option('Loading...','');rowId.selectedIndex = 0;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}function RequestSBOMCombo( paramString, rowId ){var requestURL = 'RequestSBOMCombo.asp';// Set ajax divnameajaxdivname = rowId;//Append the name to search for to the requestURLvar url = requestURL + paramString;//Progress//alert(MM_findObj( rowId ));//MM_findObj( rowId ).options[0] = new Option('Loading...','');//MM_findObj( rowId ).selectedIndex = 0;rowId.options[0] = new Option('Loading...','');rowId.selectedIndex = 0;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}function MergePackage ( pkga, pkgb, rowId ){// Set merge hidden field with new valueMM_findObj( 'ADDPKG_' + rowId ).value = pkga;var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.innerHTML = divA.innerHTML;// Set highlight to blankdivA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';// Remove Merge ButtonMM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';}function RemovePackage ( pkga, pkgb, rowId ){// Set remove hidden field with new valueMM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.style.textDecoration = 'line-through';// Set highlight to blankif (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A"){divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';}divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';// Remove Merge ButtonMM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';}function UndoPackage ( rowId ){// Set merge/remove hidden field with new valueMM_findObj( 'ADDPKG_' + rowId ).value = '';MM_findObj( 'REMOVEPKG_' + rowId ).value = '';var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;divB.style.textDecoration = 'none';// Set highlight to blankdivA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';// Remove Merge Buttonvar cht = MM_findObj( 'CHANGETYPE_' + rowId );if (cht.value == "R"){MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';}else if ( (cht.value == "A") || (cht.value == "") ){MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';}else{MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';}// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';}function MergeAll(){var elemif (document.all){// Run this for IEelem = document.all;} else {// Run this for other browserselem = document.getElementsByTagName('div');}for (i in elem){if (elem[i].id){if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';}}}//--></script></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><form name="FormName" method="post" action="<%=SCRIPT_NAME%>"><!-- HEADER --><!--#include file="_header.asp"--><!-- BODY ----><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%" background="images/bg_lite_blue.gif" valign="top"><!-- SELECT SBOM A ----------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13"> Select SBOM A<hr size="1px" color="Olive" noshade></td></tr><tr><td align="left"><select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );"><option value="">-- Select Project --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><tr><td align="left"><select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );"><option value="">-- Select SBOM --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><tr><td align="left"><select name="sbomA" id="sbomA" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorA.Item("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))OraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><%If (parRtagA <> "") Then%><tr><td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A »</a></td></tr><%End If%></table><!-- SELECT SBOM A END ----------------------------------------------> </td><td width="1%" valign="top" background="images/bg_lght_gray.gif"> </td><td rowspan="2" valign="top" width="100%" background="images/bg_lght_gray.gif" align="center"><!-- DIFF --------------------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%"></td><td width="100%" align="left" class="form_ttl">MERGE SBOM</td><td width="1%"></td></tr><tr><td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td><td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl"> </td><td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td></tr><tr><td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td><td bgcolor="#FFFFFF" valign="top" class="form_item"><table width="100%" border="0" cellspacing="0" cellpadding="5"><tr><td width="100%" bgcolor="#DAD7C8"><input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;"><input type="submit" name="btn" value="Swap Compare" class="form_btn_comp"></td><td width="1" align="right" bgcolor="#DAD7C8" nowrap><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><%If objAccessControl.IsActive("mergeManager") Then%><input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;"><%End If%></td><td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td></tr></table></td></tr><tr><td><%If (parRtagA <> "") AND (parRtagB <> "")Then%><!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ --><fieldset style="width:150px;"><legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %> Filter Results...</a></legend><div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;"><br><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td><td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td></tr><tr><td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td><td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td></tr><tr><td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td><td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td></tr><tr><tr><td background="images/bg_action_norm.gif"> </td><td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td></tr></table></div></fieldset><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><%End If%></td><td></td></tr></table><%' Successfull MergeIf (Request("btn") = "Merge") ThenCall Messenger ( "Merge has completed successfully.", 3, "100%" )End IfSet FSO=Server.CreateObject("Scripting.FileSystemObject")Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html"), true)Call Header()If (parRtagA <> "") AND (parRtagB <> "")Then%><table width="100%" border="0" cellspacing="1" cellpadding="0"><tr><td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td><td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td></tr><%OraDatabase.Parameters.Add "SBOM_A", parSBOMA, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "SBOM_B", parSBOMB, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "ADDED", GetIsDiffFilterChecked(enumDB_DIFF_NEW), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "UPDATED", GetIsDiffFilterChecked(enumDB_DIFF_UPDATED), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "REMOVED", GetIsDiffFilterChecked(enumDB_DIFF_REMOVED), ORAPARM_INPUT, ORATYPE_VARCHAR2Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiffMerge.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))NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</title>")NewTextFile.WriteLine("<div align="&chr(34)&"center"&chr(34)&"><font color="&chr(34)&"red"&chr(34)&" size="&chr(34)&"4"&chr(34)&" face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</font></div><br>")While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))errormsg = falserowId = rsQry("node_id_a") &"_"& rsQry("os_id_a") &"_"& rsQry("pv_id_a") &"_"& rsQry("pv_id_b")btnMerge = LIMG_MERGEbtnRemove = LIMG_REMOVEcolorA = LCOLOR_NOT_CHANGEDcolorB = LCOLOR_NOT_CHANGEDSelect Case rsQry("change_type")Case "U"colorA = LCOLOR_CHANGEDcolorB = LCOLOR_CHANGEDCase "UW"colorA = LCOLOR_CHANGEDcolorB = LCOLOR_CHANGEDbtnMerge = LIMG_MERGE_WARNCase "A"colorA = LCOLOR_BLANKCase "R"colorB = LCOLOR_BLANKEnd SelectCall GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )%><tr><td class="body_row" nowrap><DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;"><%If rsQry("pkg_name_a") <> "" Then %><%=rsQry("node_name_a") &"/"& rsQry("os_name_a") &"/"& rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%><%End If%></DIV><input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>"></td><td bgcolor="#F5F5F5"><%If objRelCollectorB.Item("is_readonly") <> "Y" AND (rsQry("change_type") = "U" OR rsQry("change_type") = "UW") Then%><DIV id="IMGMERGE<%=rowId%>" <%If (rsQry("change_type") = "A") OR IsNull( rsQry("change_type") ) Then%>style="display:none;"<%End If%>><a href="javascript:;" onClick="MergePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnMerge%></a></DIV><%End If%></td><td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td><td bgcolor="#F5F5F5"><%If objRelCollectorB.Item("is_readonly") <> "Y" Then%><DIV id="IMGREMOVE<%=rowId%>" <%If rsQry("change_type") = "R" Then%>style="display:none;"<%End If%>><a href="javascript:;" onClick="RemovePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnRemove%></a></DIV><%End If%></td><td class="body_row" nowrap><DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;"><%If rsQry("pkg_name_b") <> "" Then %><%=rsQry("node_name_b") &"/"& rsQry("os_name_b") &"/"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%><%End If%></DIV><input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>"><input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value=""><input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value=""><input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("node_name_b") &"/"& rsQry("os_name_b") &"/"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>"></td><td bgcolor="#F5F5F5"><DIV id="IMGUNDO<%=rowId%>" style="display:none;" ><a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a></DIV></td></tr><%If email thenIf rsQry("pv_id_a") ThenSet rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))End IfIf rsQry("pv_id_b") ThenSet rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))End IfpkgA = rsQry("pkg_name_a")pkgB = rsQry("pkg_name_b")If pkgA <> "" thenpkgname = pkgAElsepkgname = pkgBEnd IfSelect Case rsQry("change_type")Case "U"NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")NewTextFile.WriteLine("<br>")NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")NewTextFile.WriteLine("<br><br>")NewTextFile.WriteLine()NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")Call Comments(rsQry("pv_id_a"))Call GetFixedIssues(rsQry("pv_id_a"))'Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))NewTextFile.WriteLine("<br><br>")NewTextFile.WriteLine()NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")Call Comments(rsQry("pv_id_b"))Call GetFixedIssues(rsQry("pv_id_b"))Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))NewTextFile.WriteLine("****************************************************************************************************************************")Case "UW"NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")NewTextFile.WriteLine("<br>")NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")NewTextFile.WriteLine("<br><br>")NewTextFile.WriteLine()NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")Call Comments(rsQry("pv_id_a"))Call GetFixedIssues(rsQry("pv_id_a"))'Call GetDependencies(rsQry("pv_id_a"))NewTextFile.WriteLine("<br><br>")NewTextFile.WriteLine()NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")Call Comments(rsQry("pv_id_b"))Call GetFixedIssues(rsQry("pv_id_b"))Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))NewTextFile.WriteLine("****************************************************************************************************************************")End SelectEnd IfrsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%><%Call Footer()NewTextFile.CloseSet NewTextFile=Nothing%></table><br><%Else%><br><%If (parRtagB <> "") ThenCall Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )ElseIf (parRtagA <> "") ThenCall Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )ElseCall Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )End If%><%End If%></td><td width="1%" background="images/lbox_bgside_white.gif"> </td></tr><tr><td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td><td background="images/lbox_bg_blue.gif"></td><td width="1%" background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td></tr></table></td></tr></table><!-- DIFF END ----------------------------------------------------></td><td valign="top" width="1%" background="images/bg_lite_blue.gif"><!-- SELECT SBOM B ----------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13"> Select SBOM B<hr size="1px" color="Olive" noshade></td></tr><tr><td align="left"><select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );"><option value="">-- Select Project --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><tr><td align="left"><select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );"><option value="">-- Select SBOM --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><tr><td align="left"><select name="sbomB" id="sbomB" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorB.Item("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))OraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><%If (parRtagB <> "") Then%><tr><td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B »</a></td></tr><%End If%></table><!-- SELECT RELEASE B END ----------------------------------------------> </td></tr><tr><td valign="bottom" align="center" background="images/bg_lite_blue.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td><td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td><td valign="bottom" background="images/bg_lite_blue.gif" align="center"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td></tr></table></form><%If email ThenDim myMail, LocalPathSet myMail=Server.CreateObject("Persits.MailSender")LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")myMail.Host = SMTP_HOSTmyMail.Subject="Release Comparisons from Release Manager"myMail.From="releasem@vixtechnology.com"myMail.AddAddress objAccessControl.UserEmail' Attach the filemyMail.AddAttachment LocalPathmyMail.Body = "Your requested report..."myMail.Sendset myMail=nothingEnd If%><!-- FOOTER --><!--#include file="_footer.asp"--></body></html>