Rev 62 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| DIFF |'| |'=====================================================%><%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/_rtree_common.asp"--><!--#include file="controls/ERGFormComponent/classFormComponent.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, DEVIiss, TDSEiss, VT5DMissDim 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'>"Const LIMG_EXPAND = "<img src='icons/i_plus.gif' width='9' height='9' border='0' hspace='2'>"Const LIMG_COLLAPSE = "<img src='icons/i_minus.gif' width='9' height='9' border='0' hspace='2'>"Const LIMG_EDIT = "<img src='icons/i_edit.gif' width='16' height='16' border='0' hspace='2'>"Const LIMG_PRODUCT = "<img src='icons/i_product.gif' width='19' height='19' border='0' hspace='2' align='absmiddle'>"'------------ 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"TDSEiss = "-1"VT5DMiss = "-1"If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& sqlstrA("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) ThenTDSEiss = TDSEiss &","& sqlstrA("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) ThenVT5DMiss = VT5DMiss &","& sqlstrA("iss_id")End IfSSsql = 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, "/*DEVIiss*/", DEVIiss)SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)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 )If OOrsCQ.State = 1 ThenOOrsCQ.CloseEnd IfOn Error Resume NextOOrsCQ.ActiveConnection = CQ_connOOrsCQ.Source = SSsqlOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3OOrsCQ.Open()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, 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 ("proj_id") = rsQry("proj_id")outobjDetails.Item ("branch_id") = rsQry("branch_id")outobjDetails.Item ("bom_id") = rsQry("bom_id")ElseErr.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOMEnd 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 "RTAG_A", Request("rtagA"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_B", Request("rtagB"), 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 = PvIdOraDatabase.ExecuteSQL _"BEGIN "&_" :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_" PK_RELEASE.ADD_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID ); "&_"END;"Next'-- Remove Packages --For Each PvId In aRemovePkgListOraParameter("PV_ID").Value = PvIdOraDatabase.ExecuteSQL _"BEGIN "&_" PK_RELEASE.REMOVE_PACKAGE ( :PV_ID, :RTAG_B, :USER_ID ); "&_"END;"Next'-- Log Project Merge ActionOraDatabase.ExecuteSQL _"BEGIN LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS ); END;"'-- Force package state recalculateOraDatabase.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 "RTAG_A"OraDatabase.Parameters.Remove "RTAG_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 ( "default.asp" )End If' Get release detailsCall GetFormDetails ( parSBOMA, objRelCollectorA )Call GetFormDetails ( parSBOMB, objRelCollectorB )If (Request("btn") = "Merge") AND (objAccessControl.IsActive("MergeRelease")) ThenIf objRelCollectorB.Item("official") <> "Y" ThenCall MergePackages ()End IfEnd If'If Request("btn") = "Swap Compare" Then' Call OpenInWindow ( SCRIPT_NAME &"?bom_id="& parSBOMB &"&bom_id="& 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><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="images/release_manager_style.css" type="text/css"><link rel="stylesheet" href="images/navigation.css" type="text/css"><script language="JavaScript" src="images/common.js"></script><script language="JavaScript" src="scripts/remote_scripting.js"></script><script language="JavaScript" type="text/javascript"><!--function RequestProductLocation( paramString, rowId, changeType ){var requestURL// Product is changes, hence can be found in current bomrequestURL = 'RequestBomDiffProductLocation.asp';// Show divToggleDisplay( 'PRODUCT_'+ rowId, 'IMG_EXPAND_PRODUCT_' + rowId, 'IMG_COLLAPSE_PRODUCT_' + rowId );// Set ajax divnameajaxdivname = 'PRODUCT_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//Append the name to search for to the requestURLvar url = requestURL + paramString;//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(stateChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}}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">DIFF / 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;"><span class="body_txt"><input name="btn" type="submit" class="form_btn" value="Mail Me Report"></span> </td><td width="1" align="right" bgcolor="#DAD7C8" nowrap><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><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("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))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("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;"><SPAN id="IMG_EXPAND_PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>" name="IMG_EXPAND_PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>" style="display:block;"><a href="javascript:;" class="menu_link" onClick="RequestProductLocation('?prod_id=<%=rsQry("pv_id_a")%>&bom_id=<%=parSBOMA%>&compare_bom_id=<%=parSBOMB%>&change_type=<%=rsQry("change_type")%>', '<%=rsQry("pv_id_a") & rsQry("change_type")%>');"><%=LIMG_EXPAND & rsQry("pkg_name_a")%> <%=rsQry("pkg_version_a")%></a></SPAN><SPAN id="IMG_COLLAPSE_PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>" name="IMG_COLLAPSE_PRODUCT_<%=rsQry("pv_id_a") &rsQry("change_type")%>" style="display:none;"><a href="javascript:;" class="menu_link" onClick="ToggleDisplay( 'PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>', 'IMG_EXPAND_PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>', 'IMG_COLLAPSE_PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>');"><%=LIMG_COLLAPSE & rsQry("pkg_name_a")%> <%=rsQry("pkg_version_a")%></a></SPAN></DIV><DIV id="PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>" name="PRODUCT_<%=rsQry("pv_id_a") & rsQry("change_type")%>" style="display:none;"><%=enumLOADING%></DIV><input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>"></td><td bgcolor="#F5F5F5"></td><td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td><td bgcolor="#F5F5F5"></td><td class="body_row" nowrap><DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;"><%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%></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("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><!-- FOOTER --><!--#include file="_footer.asp"--><%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@erggroup.com"myMail.AddAddress objAccessControl.UserEmail' Attach the filemyMail.AddAttachment LocalPathmyMail.Body = "Your requested report..."myMail.Sendset myMail=nothingEnd If%></body></html><%Call Destroy_All_Objects%><!--#include file="common/globals_destructor.asp"-->