<% '===================================================== '| | '| REPORTS DEFINITION | '| | '===================================================== ' Good idea to set when using redirect Response.Expires = 0 ' always load the page, dont store 'To enable the script timeout to 10 mins Server.ScriptTimeout=600 %> <% '------------ ACCESS CONTROL ------------------ %> <% '------------ Variable Definition ------------- Dim rsQry Dim rsTemp Dim parPv_id, parExt Dim objReleaseContent Dim aReleaseContent Dim objPackageDetails Dim outobjDetails Dim pvIdList Dim dpv_id Dim BldStd '------------ Constants Declaration ----------- '------------ Variable Init ------------------- parExt = Request("ext") Set objReleaseContent = CreateObject("Scripting.Dictionary") Set objPackageDetails = CreateObject("Scripting.Dictionary") Set outobjDetails = CreateObject("Scripting.Dictionary") '---------------------------------------------------------------------------------------------------------------------------------------- Sub GetPackageInformation ( nPv_id, ByRef oPackageDetails ) Dim rsQry, query query = _ " SELECT pkg.pkg_name, pv.* "&_ " FROM PACKAGES pkg,"&_ " PACKAGE_VERSIONS pv"&_ " WHERE pv.pv_id = "& nPv_id &_ " AND pv.pkg_id = pkg.pkg_id " Set rsQry = OraDatabase.DbCreateDynaset( query, 0) oPackageDetails.RemoveAll If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then oPackageDetails("pkg_name") = rsQry("pkg_name") oPackageDetails("pkg_version") = rsQry("pkg_version") oPackageDetails("v_ext") = rsQry("v_ext") oPackageDetails("pv_description") = rsQry("pv_description") oPackageDetails("pv_overview") = rsQry("pv_overview") oPackageDetails("src_path") = rsQry("src_path") oPackageDetails("pkg_label") = rsQry("pkg_label") oPackageDetails("is_build_env_required") = rsQry("is_build_env_required") End If rsQry.Close() Set rsQry = Nothing End Sub '---------------------------------------------------------------------------------------------------------------------------------------- Function SQL_Build_Std ( nPv_id ) SQL_Build_Std = _ " SELECT bs.bs_name"&_ " FROM RELEASE_MANAGER.PACKAGE_VERSIONS pv,"&_ " RELEASE_MANAGER.BUILD_STANDARDS bs"&_ " WHERE pv.PV_ID = "& nPv_id &_ " AND pv.BS_ID = bs.BS_ID " End Function '---------------------------------------------------------------------------------------------------------------------------------------- Function SQL_Build_Env ( nPv_id ) SQL_Build_Env = _ " SELECT bm.bm_name"&_ " FROM RELEASE_MANAGER.PACKAGE_BUILD_INFO pbi,"&_ " RELEASE_MANAGER.BUILD_MACHINES bm"&_ " WHERE pbi.PV_ID = "& nPv_id &_ " AND pbi.BM_ID = bm.BM_ID "&_ " ORDER BY UPPER(bm.BM_NAME) " End Function '---------------------------------------------------------------------------------------------------------------------------------------- Function SQL_Modules (nPv_idList) SQL_Modules = _ "SELECT DISTINCT"&_ " qry.DPV_ID "&_ " FROM ("&_ " SELECT dep.*,"&_ " LEVEL AS LEVEL_NUM"&_ " FROM PACKAGE_DEPENDENCIES dep"&_ " START WITH dep.PV_ID IN ( "& nPv_idList &" ) "&_ " CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID"&_ " ) qry,"&_ " PACKAGES pkg,"&_ " PACKAGE_VERSIONS pv"&_ " WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID" End Function '---------------------------------------------------------------------------------------------------------------------------------------- Function SQL_Build_Dependencies ( nPv_id ) SQL_Build_Dependencies = _ " SELECT dpkg.pkg_name, dpv.pkg_version"&_ " FROM PACKAGE_DEPENDENCIES dep,"&_ " PACKAGES dpkg,"&_ " PACKAGE_VERSIONS dpv"&_ " WHERE dep.pv_id = "& nPv_id &_ " AND dep.DPV_ID = dpv.pv_id"&_ " AND dpv.pkg_id = dpkg.pkg_id "&_ " ORDER BY UPPER(dpkg.pkg_name) " End Function '---------------------------------------------------------------------------------------------------------------------------------------- Sub GetReleaseContent ( nBom_id, ByRef oReleaseContent ) Dim rsQry, query query = _ " SELECT qry.prod_id"&_ " FROM ("&_ " SELECT DISTINCT"&_ " osc.PROD_ID,"&_ " pkg.pkg_name,"&_ " pv.pkg_version,"&_ " 1 as seq_num"&_ " FROM DEPLOYMENT_MANAGER.bom_contents bc,"&_ " DEPLOYMENT_MANAGER.operating_systems os, "&_ " DEPLOYMENT_MANAGER.os_contents osc,"&_ " PACKAGES pkg,"&_ " PACKAGE_VERSIONS pv,"&_ " DEPLOYMENT_MANAGER.PRODUCT_DETAILS pd"&_ " WHERE osc.os_id = os.os_id "&_ " AND os.node_id = bc.node_id"&_ " AND bc.bom_id = "& nBom_id &_ " AND pd.PROD_ID (+) = osc.PROD_ID"&_ " AND pv.pkg_id = pkg.pkg_id"&_ " AND osc.prod_id = pv.pv_id "&_ " AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y') "&_ " UNION "&_ " SELECT DISTINCT bec.prod_id, pkg.pkg_name, pkg_version, 2 as seq_num"&_ " FROM DEPLOYMENT_MANAGER.boms bm,"&_ " DEPLOYMENT_MANAGER.bom_contents bc,"&_ " DEPLOYMENT_MANAGER.network_nodes nn,"&_ " DEPLOYMENT_MANAGER.operating_systems os,"&_ " DEPLOYMENT_MANAGER.os_base_env obe,"&_ " DEPLOYMENT_MANAGER.base_env_contents bec,"&_ " PACKAGES pkg,"&_ " package_versions pv,"&_ " DEPLOYMENT_MANAGER.base_env be,"&_ " DEPLOYMENT_MANAGER.bos_types bt,"&_ " DEPLOYMENT_MANAGER.PRODUCT_DETAILS pd"&_ " WHERE bm.bom_id = "& nBom_id &_ " AND bm.bom_id = bc.bom_id"&_ " AND nn.node_id = bc.node_id"&_ " AND os.node_id = nn.node_id"&_ " AND obe.os_id = os.os_id"&_ " AND pd.PROD_ID (+) = bec.PROD_ID"&_ " AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y') "&_ " AND bec.base_env_id = obe.base_env_id"&_ " AND bec.prod_id = pv.pv_id"&_ " AND pkg.pkg_id = pv.pkg_id"&_ " AND be.base_env_id = obe.base_env_id"&_ " AND bt.bos_id = be.bos_id"&_ " ) qry "&_ " ORDER BY qry.seq_num, UPPER(qry.pkg_name), UPPER(qry.pkg_version)" Set rsQry = OraDatabase.DbCreateDynaset( query, 0) While (NOT rsQry.BOF) AND (NOT rsQry.EOF) oReleaseContent( CStr( rsQry("prod_id")) ) = "" rsQry.MoveNext() WEnd rsQry.Close() Set rsQry = Nothing End Sub '---------------------------------------------------------------------------------------------------------------------------------------- Function PatchIcon ( cIsPatch, cIsPatchObsolete ) If IsNull(cIsPatch) Then PatchIcon = "" Else If IsNull(cIsPatchObsolete) Then PatchIcon = "" Else PatchIcon = "" End If End If End Function %> <% Sub Reports_List ( SSgroup ) Dim repNum %> <%Select Case SSgroup%> <%Case "Advanced_Search"%> <%repNum = 1%> Find ClearQuest Bugs / Issues Location
Use this advance search to locate bugs / issues imported to Release Manager from ClearQuest.
more...


<%repNum = 2%> Find Packages Using "Ignore Warnings" feature
Lists packages which use "Ignore Warning" feature on their dependencies.
more...


<%repNum = 4%> Find A Package
Use this advanced search to find a package in Release Manager
more...


<%repNum = 5%> Find Package Version History
Find all package versions and their current locations.
more...


<%Case "Release_Status"%> <%repNum = 3%> Current Status of Release
Shows all packages in a selected release with their current state, owner and last modifier.
more...


<%repNum = 8%> Deployable Software Modules
This report shows new and current deployable software modules. Use this report to find which modules will be deployed to the customer.
Also, use this report to find if there are new modules flaged as 'deployable'.
more...


<%repNum = 7%> Unit Tests per Package
Use this report to check the unit tests performed on packages in a project.
more...


<%repNum = 12%> Release AutoBuildable Status
Use this report to check the package versions that are autobuildable/not autobuildable in a given release.
more...


<%repNum = 13%> Release DEVI Status
Use this report to obtain a list of DEVIs for all packages in a given release.
more...


<%Case "Release_History"%> <%repNum = 10%> Build History
Use this report to find which packages have been officially released within specified date range.
more...


<%Case "Admin_Reports"%> All Packages by Project by Version Tree by Release
CSV output of all packages used in Release Manager per Project.
more...


All Runtime Dependencies by Project by Version Tree by Release
CSV output of all runtime dependencies used in Release Manager per Project.
more...


<%repNum = 6%> Unused Packages
All packages (Not Products) with no entries in "Used By" tab.
Use this report to help you clean up a release and remove all potentially unused packages.
more...


<%Case "Escrow"%> <%repNum = 9%> Bill of Materials (BOM)
List of all ERG Products per network node for a particular project. Use this report to integrate a particular project.
more...


<%repNum = 11%> Escrow Report
List of all Products/Patches for the BOM including modules. Use this report to provide a build roadmap.
more...


Build Dependencies per Package
Use this report to build package from source code. The report include package repository location, label and build dependencies.
Not available yet.


Build Order
Use this reports to find the order in which packages should be built.
Not available yet.


<%Case Else%> « Select reporting category. <%End Select%> <%End Sub%> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_Projects ( NNproj_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT * FROM projects ORDER BY proj_name ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_Version_Trees ( NNproj_id, NNvtree_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT vtree_id, vtree_name FROM vtrees WHERE hide = 'N' AND proj_id = "& NNproj_id &" ORDER BY vtree_id ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_Open_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &"AND official in ('N','C','R') ORDER BY rtag_name ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub Sub Get_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &" ORDER BY rtag_id ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_SBOM_Version ( NNproj_id, NNrtag_id, BBallow_all, NNversion ) Dim rsTemp, Query_String Query_String = _ "SELECT BOM_ID, BRANCH_ID, BOM_VERSION ||'.'||BOM_LIFECYCLE AS VERSION FROM DEPLOYMENT_MANAGER.BOMS WHERE BRANCH_ID ="&NNrtag_id&" ORDER BY VERSION" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_Branches ( NNproj_id, NNrtag_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT * FROM deployment_manager.branches WHERE proj_id = "& NNproj_id &" ORDER BY branch_id ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub Get_Base_Views ( nRtag_id, nBase_view_id, BBallow_all ) Dim rsTemp, Query_String Query_String = _ "SELECT DISTINCT vi.view_id, vi.view_name"&_ " FROM VIEWS vi,"&_ " RELEASE_CONTENT rc"&_ " WHERE rc.BASE_VIEW_ID = vi.VIEW_ID"&_ " AND rc.rtag_id = "& nRtag_id &_ "ORDER BY UPPER( vi.view_name )" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Packages Using Ignore Feature ' Description : Lists packages which use "Ignore Warning" ' feature on their dependencies. ' INPUT : Project, Vesion Tree, Release Label '================================================================================== Sub Packages_Using_Ignore_Feature ( SSsection, NNproj_id, NNrtag_id ) Dim Query_String, rsRep Const Allow_All = TRUE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If SSsection = "TITLE" Then Response.write "Packages Using 'Ignore Warnings' Feature" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Allow_All )%>
  Release <%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Allow_All )%>
   
<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Query_String = ReadFile( rootPath & "queries\rep_packages_using_ignore_feature.sql" ) OraDatabase.Parameters.Add "PROJ_ID", NNproj_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER %> <% Dim currRtag_id currRtag_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY RTAG_ID ----------------- If CDbl(currRtag_id) <> CDbl(rsRep("rtag_id")) Then %> <% currRtag_id = CDbl(rsRep("rtag_id")) End If ' -------- END GROUP ------------------------ %> <% rsRep.MoveNext WEnd %>
  Package Name    Version     
Found 0 records
<%=rsRep("proj_name") &" > "& rsRep("rtag_name")%>
&pv_id=<%=rsRep("pv_id")%>" class="txt_linked"><%=rsRep("pkg_name")%> &pv_id=<%=rsRep("pv_id")%>" class="txt_linked"><%=rsRep("pkg_version")%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Current State of Release ' Description : Show all packages in a release with their state, owner and modifier ' Form Input : Project, Vesion Tree, Release Label ' SQL INPUT : rtag_id '================================================================================== Sub Current_State_of_Release ( SSsection, NNproj_id, NNrtag_id, NNpkg_states ) Dim Query_String, rsRep Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If NNpkg_states = "" Then NNpkg_states = -1 If SSsection = "TITLE" Then Response.write "Current State of Release" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%>
  Package States  OK  0 Then%>checked<%End If%>>   <%=enum_imgCritical%> 0 Then%>checked<%End If%>>   <%=enum_imgWarning%> 0 Then%>checked<%End If%>>   <%=enum_imgCReady%> 0 Then%>checked<%End If%>>   <%=enum_imgWReady%> 0 Then%>checked<%End If%>>  
   
<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Query_String = ReadFile( rootPath & "queries\rep_details_current_status_of_release.sql" ) Query_String = Replace ( Query_String, "/*PKG_STATES*/", NNpkg_states ) OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER %> <% Dim currView_id currView_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY RTAG_ID ----------------- If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then %> <% currView_id = CDbl(rsRep("view_id")) End If ' -------- END GROUP ------------------------ %> <%If rsRep("dlocked") = "Y" Then%> <%Else%> <%End If%> <% rsRep.MoveNext WEnd %>
      Package Name and Version    Owner    Last Modifier    Added to Release     
Found 0 records
<%=rsRep("view_name")%>
<%=DefineStateIcon ( rsRep("pkg_state"), rsRep("dlocked"), NULL, NULL, NULL, NULL )%><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%> " class="txt_linked"><%=rsRep("owner")%>    " class="txt_linked"><%=rsRep("modifier")%>    <%=EuroDate( rsRep("insert_stamp") )%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Find ClearQuest Bugs / Issues Location ' Description : Locates bugs / issues imported from ClearQuest ' Form Input : CQ issue Database, CQ issue number list space separated '================================================================================== Sub Where_Are_Bugs_Located ( SSsection, NNiss_db, SSiss_num_list ) Dim Query_String, rsRep If SSsection = "TITLE" Then Response.write "Find ClearQuest Bugs / Issues Location" Exit Sub End If If SSsection = "FORM" Then %>
ClearQuest Database
  Issue Numbers
HINTS:
- You can use * wildcard. e.g. *0123 or 0123* or *0123*
- Use space separated issue numbers for multiple search.
   
<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Dim SSsql, issARR, num_item, iss_num_col, issNumDict, rsCQ, recCount, maxRecCount Set rsCQ = Server.CreateObject("ADODB.Recordset") Set issNumDict = CreateObject("Scripting.Dictionary") '---- Find Issue numbers in ClearQuest ---- If CDbl(NNiss_db) = enumCLEARQUEST_DEVI_ID Then iss_num_col = "new_num" SSsql = _ " SELECT si.dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_ " FROM CQ_DEVI.admin.software_issue si"&_ " WHERE " End If '---- Split multiple search ---- SSiss_num_list = Trim(SSiss_num_list) If InStr( SSiss_num_list, " " ) > 0 Then ' space separator found issARR = Split ( SSiss_num_list, " ") For Each num_item In issARR If num_item <> "" Then SSsql = SSsql & " (si."& iss_num_col &" LIKE '%"& Replace( SQLstring(num_item), "*", "%" ) &"%') OR" End If Next SSsql = Left ( SSsql, Len(SSsql) - 2 ) ' Removes last OR Else SSsql = SSsql & " (si."& iss_num_col &" LIKE '%"& Replace( SQLstring(SSiss_num_list), "*", "%") &"%')" End If rsCQ.ActiveConnection = CQ_conn rsCQ.Source = SSsql rsCQ.CursorType = 0 rsCQ.CursorLocation = 2 rsCQ.LockType = 3 rsCQ.Open() ' Get find results from CQ recCount = 1 maxRecCount = 1000 issNumDict.ADD "-1", "-1" ' take care of no results While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF) AND (recCount < maxRecCount)) issNumDict.ADD Cstr(rsCQ("iss_id")), Cstr(rsCQ("iss_num")) recCount = recCount + 1 rsCQ.MoveNext WEnd rsCQ.Close Set rsCQ = nothing Query_String = ReadFile( rootPath & "queries\rep_where_are_bugs_located.sql" ) Query_String = Replace ( Query_String, "/*ISS_DB*/", NNiss_db ) Query_String = Replace ( Query_String, "/*ISS_ID_LIST*/", Join( issNumDict.Keys, ",") ) %> <% Dim currIss_id currIss_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY ISS_ID ----------------- If Cstr(currIss_id) <> Cstr(rsRep("iss_id")) Then %> <% currIss_id = Cstr(rsRep("iss_id")) End If ' -------- END GROUP ------------------------ %> <%If CDbl(rsRep("iss_state")) = enumISSUES_STATE_FIXED Then%> <%Else%> <%End If%> <% Set rsQry = OraDatabase.DbCreateDynaset( "select * from release_content rc, release_tags rt where rc.rtag_id = rt.rtag_id and "&_ " pv_id ="&rsRep("pv_id"), 0 ) While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) %> <% rsQry.MoveNext() WEnd rsQry.Close() Set rsQry = Nothing %> <% rsRep.MoveNext WEnd %>
Issue Number    Fixed Package Name and Version    Notes     
Found 0 records
','IssueDetails','resizable=yes,width=580,height=500')" class="body_scol">See issue details.<%=issNumDict.Item ( Cstr ( rsRep("iss_id") ) )%>
<%=rsRep("pkg_name") &" "& rsRep("pkg_version")%>Find this package.
&pv_id=<%=rsQry("pv_id")%>" class="txt_linked" target="_blank"><%=rsQry("rtag_name")%>
<%=rsRep("notes")%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Find a Package ' Description : Locate a package in Release Manager ' Form Input : Package Name, version extension '================================================================================== Sub Find_Package ( SSsection, SSpkg_name, SSv_ext ) Dim Query_String, rsRep, oRegExp If SSsection = "TITLE" Then Response.write "Find a Package" Exit Sub End If If SSsection = "FORM" Then %>
Package Name
HINTS:
- You can use * wildcard. e.g. *0123 or 0123* or *0123*

  Version Extension (optional)
e.g. .mas or .lvs or .oso or blank etc.
   
<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub If SSpkg_name = "" Then SSpkg_name = "%" If SSv_ext = "" Then SSv_ext = "%" If Request("withwcard") <> "" Then SSpkg_name = "%"& Replace( SQLstring(SSpkg_name), "*", "") &"%" 'Place wild card automatically ' -- Check if this is PV_ID Set oRegExp = New RegExp oRegExp.Global = False 'Find only first match oRegExp.Pattern = "\D" 'Match number only If NOT oRegExp.Test(Request("FRpkg_name")) Then Query_String = ReadFile( rootPath & "queries\rep_find_package_by_pv_id.sql" ) Query_String = Replace ( Query_String, "/*PV_ID*/", SQLstring(Request("FRpkg_name") ) ) Else Query_String = ReadFile( rootPath & "queries\rep_find_package.sql" ) Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") ) Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSv_ext), "*", "%") ) End If %> <% Dim currPv_id currPv_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY Package Version ----------------- If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then %> <%If Request("withwcard") <> "" Then%> <%' Highlight results for package search from index page%> <%Else%> <%End If%> <% currPv_id = Cstr(rsRep("pv_id")) End If ' -------- END GROUP ------------------------ %> <%If NOT IsNull(rsRep("proj_name")) Then%> <%Else%> <%End If%> <% rsRep.MoveNext WEnd %>
Package Name and Version    Location  
Found 0 records
<%=Highlight_Substring ( rsRep("pkg_name"), Replace( SQLstring(SSpkg_name), "%", "") ) &" "& rsRep("pkg_version")%><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%>
<%=rsRep("proj_name") &" > "& rsRep("vtree_name") &" > "& rsRep("rtag_name") &" > "& rsRep("pkg_name") &" "& rsRep("pkg_version") &""%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '================================================================================== ' Report Name : Find Package Version History ' Description : Locate all package versions and their current location ' Form Input : Package Name, version extension '================================================================================== Sub Find_Package_Version_History ( SSsection, SSpkg_name, SSv_ext ) Dim Query_String, rsRep If SSsection = "TITLE" Then Response.write "Find Package Version History" Exit Sub End If If SSsection = "FORM" Then %>
Package Name
HINTS:
- You can use * wildcard. e.g. *0123 or 0123* or *0123*

  Version Extension (optional)
e.g. .mas or .lvs or .oso or blank etc.
   
<% Exit Sub End If If SSsection = "BODY" Then Const img_Official = "" If NOT CBool(Request("action")) Then Exit Sub If SSpkg_name = "" Then SSpkg_name = "%" If SSv_ext = "" Then SSv_ext = "%" Query_String = ReadFile( rootPath & "queries\rep_package_version_history.sql" ) Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") ) Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSv_ext), "*", "%") ) %> <% Dim currPv_id currPv_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY Package Version ----------------- If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then %> <% currPv_id = Cstr(rsRep("pv_id")) End If ' -------- END GROUP ------------------------ %> <%If IsNull(rsRep("rtag_id")) Then%> <%Else%> <%End If%> <% rsRep.MoveNext WEnd %>
Official<%=img_Official%> Package Name and Version    Location  
Found 0 records
<%If rsRep("dlocked") = "Y" Then%><%=img_Official%><%End If%> <%=rsRep("pkg_name") &" "& rsRep("pkg_version")%>
Not Used!<%=rsRep("proj_name") &" > "& rsRep("vtree_name") &" > "& rsRep("rtag_name") &" > "& rsRep("pkg_name") &" "& rsRep("pkg_version") &""%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Obsolete Packages ' Description : List packages that are not used (exclude products) ' INPUT : Project, Vesion Tree, Release Label '================================================================================== Sub Obsolete_Packages ( SSsection, NNproj_id, NNrtag_id ) Dim Query_String, rsRep Const Allow_All = TRUE Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If SSsection = "TITLE" Then Response.write "Unused Packages" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%>
   
<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Query_String = ReadFile( rootPath & "queries\rep_obsolete_packages.sql" ) OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER %> <% Dim currView_id currView_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then %> <% currView_id = CDbl(rsRep("view_id")) End If ' -------- END GROUP ------------------------ %> <% rsRep.MoveNext WEnd %>
  Package Name and Version    Released    Added to Release     
Found 0 records
<%=rsRep("view_name")%>
&rtag_id=<%=NNrtag_id%>" class="txt_linked"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%> <%=EuroDate( rsRep("modified_stamp") )%> by " class="txt_linked"><%=rsRep("modifier")%>    <%=EuroDate( rsRep("insert_stamp") )%> by " class="txt_linked"><%=rsRep("insertor")%>   
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Deployable Software Modules ' Description : Shows packages that are deployed to the customers and shows new packages marked as deployable. ' INPUT : Project, Vesion Tree, Release Label, Base View (hard-coded to PRODUCTS) '================================================================================== Sub Deployable_Software_Modules ( sSection, nProj_id, nRtag_id, nBase_view_id ) Dim Query_String, rsRep Const Allow_All = TRUE Const Disallow_All = FALSE If nProj_id = "" Then nProj_id = -1 If nRtag_id = "" Then nRtag_id = -1 If sSection = "TITLE" Then Response.write "Deployable Software Modules" Exit Sub End If If sSection = "FORM" Then %>
Project <%Call Get_Projects( nProj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( nProj_id, nRtag_id, Disallow_All )%>
  Base View
   
<% Exit Sub End If If sSection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub '--- New Deployable Modules --- Query_String = ReadFile( rootPath & "queries\rep_new_deployable_packages.sql" ) OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "BASE_VIEW_ID", nBase_view_id, ORAPARM_INPUT, ORATYPE_NUMBER %> <% Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) %> <%If rsRep.RecordCount = 0 Then%> <%End If%> <%While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))%> <%rsRep.MoveNext WEnd rsRep.Close Set rsRep = Nothing%> <% ' Go To Release link... Query_String = _ " SELECT proj.PROJ_NAME, rt.RTAG_NAME"&_ " FROM PROJECTS proj,"&_ " RELEASE_TAGS rt"&_ " WHERE rt.PROJ_ID = proj.proj_id"&_ " AND rt.rtag_id = :RTAG_ID" Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) %> <% rsRep.Close Set rsRep = Nothing%>
 New Deployable Package
Package Name Version Last Modifier
Found 0 records!
&rtag_id=<%=nRtag_id%>" class="txt_linked"><%=rsRep("pkg_name")%> <%=rsRep("pkg_version")%> <%=rsRep("full_name")%>
Go to <%=rsRep("proj_name")%> > <%=rsRep("rtag_name")%>


<% '--- Current Deployable Modules --- Query_String = ReadFile( rootPath & "queries\rep_current_deployable_packages.sql" ) %> <% Dim currPv_id currPv_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY PRODUCT NAME ----------------- If CDbl(currPv_id) <> CDbl(rsRep("pv_id")) Then %> <% currPv_id = CDbl(rsRep("pv_id")) End If ' -------- END GROUP ------------------------ %> <% rsRep.MoveNext WEnd %>
 Current Deployable Packages
Found 0 records
&rtag_id=<%=nRtag_id%>" class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%>      
  &rtag_id=<%=nRtag_id%>" class="txt_linked"><%=rsRep("dpkg_name")%> <%=rsRep("dpkg_version")%> <%=rsRep("is_dep_deployable")%>
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Bill Of Materials ' Description : List products for a BOM ' INPUT : '================================================================================== Sub Bill_of_Materials ( SSsection, NNproj_id, NNrtag_id, NNbom_id, NNversion ) Dim Query_String, rsRep, rsQry Const Allow_All = TRUE Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If NNversion = "" Then NNversion = -1 If SSsection = "TITLE" Then Response.write "Software Bill Of Materials (SBOM) products" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Branches ( NNproj_id, NNrtag_id, Disallow_All )%>
  SBOM Version <%Call Get_SBOM_Version ( NNproj_id, NNrtag_id, Disallow_All, NNversion )%>
   

<% Exit Sub End If OraDatabase.Parameters.Add "BRANCH_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "BOM_VERSION", Request("FRVersion"), ORAPARM_INPUT, ORATYPE_STRING Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("rep_SBOM.sql"), cint(0)) Dim bomId bomId = rsQry("bom_id") rsQry.close Set rsQry = nothing If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Query_String = ReadFile( rootPath & "queries\AllProducts.sql" ) OraDatabase.Parameters.Add "BOM_ID", bomId, ORAPARM_INPUT, ORATYPE_NUMBER %>

<% Dim currNode_id, currOs_id currNode_id = -1 currOs_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currNode_id) <> CDbl(rsRep("node_id")) Then %> <% currNode_id = CDbl(rsRep("node_id")) End If ' -------- END GROUP ------------------------ If CDbl(currOs_id) <> CDbl(rsRep("os_id")) Then %> <% currOs_id = CDbl(rsRep("Os_id")) End If %> <% rsRep.MoveNext WEnd %>
Node Name Operating System Product Version
Found 0 records
<%=rsRep("node_name")%>
<%=rsRep("os_name")%>
<%=PatchIcon ( rsRep("is_patch"), rsRep("is_obsolete") )%><%=rsRep("pkg_name")%> <%=rsRep("pkg_version")%>

 

<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Build History ' Description : List packages which were build between certain dates. ' INPUT : '================================================================================== Sub Build_History ( SSsection, NNproj_id, NNrtag_id) Dim Query_String, rsRep, rsQry Const Allow_All = TRUE Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If SSsection = "TITLE" Then Response.write "Build History" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%>
Between "> And ">
   

<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub %>

<% Dim currView_id currView_id = -1 OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "INITDATE", Request.Form("FRinitdate"), ORAPARM_INPUT, ORATYPE_STRING OraDatabase.Parameters.Add "DUEDATE", Request.Form("FRduedate"), ORAPARM_INPUT, ORATYPE_STRING Set rsRep = OraDatabase.DbCreateDynaset( GetQuery("rep_build_history.sql"), cint(0) ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then %> <% currView_id = CDbl(rsRep("view_id")) End If ' -------- END GROUP ------------------------ %> <% rsRep.MoveNext WEnd %>
  Package Version
Found 0 records
<%=rsRep("view_name")%>    
  &rtag_id=<%=NNRtag_id%>" class="body_txt"><%=rsRep("pkg_name")%> &rtag_id=<%=NNRtag_id%>" class="body_txt"><%=rsRep("pkg_version")%>

 

<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Escrow Report ' Description : Report to extract Products/Patches for Building A RoadMap ' INPUT : '================================================================================== Sub Escrow_Report (SSsection, NNproj_id, NNrtag_id, NNbom_id, NNversion) Dim Query_String, rsRep, rsQry Const Allow_All = TRUE Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If NNversion = "" Then NNversion = -1 If SSsection = "TITLE" Then Response.write "Generation of ESCROW REPORT" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Branches ( NNproj_id, NNrtag_id, Disallow_All )%>
  SBOM Version <%Call Get_SBOM_Version ( NNproj_id, NNrtag_id, Disallow_All, NNversion )%>
   

<% Exit Sub End If OraDatabase.Parameters.Add "BRANCH_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "BOM_VERSION", Request("FRVersion"), ORAPARM_INPUT, ORATYPE_STRING Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("rep_SBOM.sql"), cint(0)) Dim bomId, ext bomId = rsQry("bom_id") Set rsQry = OraDatabase.DbCreateDynaset( "select * from release_manager.project_extentions where proj_id="&NNproj_id, cint(0)) ext = rsQry("ext_name") rsQry.close Set rsQry = nothing If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub '---------------------- Run Before Page --------------------------- Call GetReleaseContent ( bomId, objReleaseContent ) 'Call GetBomDetails (bomId, outobjDetails) 'outobjDetails.Item("bom_full_version") = outobjDetails.Item("bom_name")&" "& outobjDetails.Item("bom_version") &"."& outobjDetails.Item("bom_lifecycle") '------------------------------------------------------------------ %> Release Manager - Escrow Report

<%=outobjDetails.Item("bom_full_version")%>
Products
<% Set outobjDetails = Nothing aReleaseContent = objReleaseContent.Keys For Each parPv_id In aReleaseContent pvIdList = pvIdList + parPv_id + "," Call GetPackageInformation ( parPv_id, objPackageDetails ) Response.Flush %> ">

<%=objPackageDetails.Item("pkg_name")%>

Version: <%=objPackageDetails.Item("pkg_version")%>
Source Path: <%=objPackageDetails.Item("src_path")%>
Source Label: <%=objPackageDetails.Item("pkg_label")%>
Short Description: <%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%>
Package Overview: <%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%>
General Sublicense Material: <%If objPackageDetails.Item("v_ext") = ext Then%>Yes<%Else%>No<%End If%>
Build Environment: <%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%> <% '--- Get Build Env Details Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Std ( parPv_id ), cint(0)) If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then BldStd = rsQry("bs_name") rsQry.Close Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( parPv_id ), cint(0)) %>
    <% While (NOT rsQry.BOF) AND (NOT rsQry.EOF) %>
  • <%=BldStd%>, <%=rsQry("bm_name")%>
  • <%rsQry.MoveNext WEnd %>
<%End If%>
Build Dependencies: <% '--- Get Build Dependencies Details Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( parPv_id ), cint(0)) %> <%If rsQry.RecordCount < 1 Then%> <%End If%> <% While (NOT rsQry.BOF) AND (NOT rsQry.EOF) %> <%rsQry.MoveNext WEnd %>
Software Component Version
No Dependencies
"><%=rsQry("pkg_name")%> <%=rsQry("pkg_version")%>


<% 'Exit For Next pvIdList = Mid(pvIdList, 1, Len(pvIdList) - 1) Set rsTemp = OraDatabase.DbCreateDynaset( SQL_Modules ( pvIdList ), cint(0)) %>
Modules
<% While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF) Response.Flush dpv_id = rsTemp("dpv_id") Call GetPackageInformation ( dpv_id, objPackageDetails ) %> ">

<%=objPackageDetails.Item("pkg_name")%>

Version: <%=objPackageDetails.Item("pkg_version")%>
Source Path: <%=objPackageDetails.Item("src_path")%>
Source Label: <%=objPackageDetails.Item("pkg_label")%>
Short Description: <%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%>
Package Overview: <%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%>
General Sublicense Material: <%If objPackageDetails.Item("v_ext") = parExt Then%>Yes<%Else%>No<%End If%>
Build Environment: <%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%> <% '--- Get Build Env Details Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Std ( dpv_id ), cint(0)) If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then BldStd = rsQry("bs_name") rsQry.Close Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( dpv_id ), cint(0)) %>
    <% While (NOT rsQry.BOF) AND (NOT rsQry.EOF) %>
  • <%=BldStd%>, <%=rsQry("bm_name")%>
  • <%rsQry.MoveNext WEnd %>
<%End If%>
Build Dependencies: <% '--- Get Build Dependencies Details Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( dpv_id ), cint(0)) %> <%If rsQry.RecordCount < 1 Then%> <%End If%> <% While (NOT rsQry.BOF) AND (NOT rsQry.EOF) %> <%rsQry.MoveNext WEnd %>
Software Component Version
No Dependencies
"><%=rsQry("pkg_name")%> <%=rsQry("pkg_version")%>


<% rsTemp.MoveNext WEnd rsTemp.Close() Set rsTemp = Nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : AutoBuildable_Report ' Description : List packages which were build between certain dates. ' INPUT : '================================================================================== Sub AutoBuildable_Report ( SSsection, NNproj_id, NNrtag_id) Dim Query_String, rsRep, rsQry Const Allow_All = TRUE Const Disallow_All = FALSE If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If SSsection = "TITLE" Then Response.write "Release AutoBuildable Status" Exit Sub End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%>
   

<% Exit Sub End If If SSsection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub If Request("btn") = "Assign" Then OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "PV_ID_LIST", Request("prod_id_list"), ORAPARM_INPUT, ORATYPE_VARCHAR2 objEH.TryORA ( OraSession ) On Error Resume Next OraDatabase.ExecuteSQL _ "BEGIN SET_TO_AUTOBUILDABLE( :RTAG_ID, :PV_ID_LIST ); END;" objEH.CatchORA ( OraSession ) OraDatabase.Parameters.Remove "PV_ID_LIST" OraDatabase.Parameters.Remove "RTAG_ID" End If %>

<% Dim currView_id currView_id = -1 OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER Set rsRep = OraDatabase.DbCreateDynaset( "SELECT * FROM RELEASE_CONTENT rc, VIEWS vw, PACKAGES pkg, PACKAGE_VERSIONS pv "&_ " WHERE pv.pv_id = rc.pv_id and rc.base_view_id "&_ " = vw.view_id and pkg.pkg_id = pv.pkg_id and rc.RTAG_ID ="&NNrtag_id&" order by vw.view_name, pkg.pkg_name", cint(0) ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then %> <% currView_id = CDbl(rsRep("view_id")) End If ' -------- END GROUP ------------------------ %> <%If rsRep("is_autobuildable") = "Y" Then%> <%If objAccessControl.IsVisible( "SetToReproducible" ) Then%> <%Else%> <%End If%> <%Else%> <%If objAccessControl.IsVisible( "SetToReproducible" ) Then%> <%Else%> <%End If%> <%End If%> <% rsRep.MoveNext WEnd %> <%If objAccessControl.IsVisible( "SetToReproducible" ) Then%> <%End If%>
Base View Package Version Autobuildable
Found 0 records
<%=rsRep("view_name")%>    
  &rtag_id=<%=NNRtag_id%>" class="body_txt"><%=rsRep("pkg_name")%> &rtag_id=<%=NNRtag_id%>" class="body_txt"><%=rsRep("pkg_version")%>" checked>" checked disabled>
  &rtag_id=<%=NNRtag_id%>" class="body_txtr"><%=rsRep("pkg_name")%> &rtag_id=<%=NNRtag_id%>" class="body_txtr"><%=rsRep("pkg_version")%>">" disabled>

 

<%If parPrint = "" Then%>

Print this report

<%End If%> <% OraDatabase.Parameters.Remove "RTAG_ID" rsRep.Close() Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : Unit Tests per Package ' Description : List unit tests per package showing the unit test completeness ' INPUT : Project, Vesion Tree, Release Label, Base View, Level of Completeness, Show/Hide Dependencies, PV_ID '================================================================================== Sub Unit_Tests_Per_Package ( sSection, nProj_id, nRtag_id, nBase_view_id, nLevel_of_complete, nShow_dependencies, nPv_id ) Dim Query_String, rsRep Const Allow_All = TRUE Const Disallow_All = FALSE If nProj_id = "" Then nProj_id = -1 If nRtag_id = "" Then nRtag_id = -1 If nShow_dependencies = "" Then nShow_dependencies = 0 If nPv_id = "" Then nPv_id = -1 If sSection = "TITLE" Then Response.write "Unit Tests per Package" Exit Sub End If If sSection = "FORM" Then %>
Project <%Call Get_Projects( nProj_id, Disallow_All )%>
  Release <%Call Get_Release_Labels ( nProj_id, nRtag_id, Disallow_All )%>
  Base View <%Call Get_Base_Views ( nRtag_id, nBase_view_id, Allow_All )%>
  Show Dependencie's Unit Tests 0 Then%>checked<%End If%>>
   
<% Exit Sub End If If sSection = "BODY" Then If NOT CBool(Request("action")) Then Exit Sub Query_String = ReadFile( rootPath & "queries\rep_unit_tests_per_package.sql" ) OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "BASE_VIEW", nBase_view_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMPLETENESS", nLevel_of_complete, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "SHOW_DEPS", nShow_dependencies, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "PV_ID", nPv_id, ORAPARM_INPUT, ORATYPE_NUMBER %> <% Dim currBase_view_id, currPv_id, currDpv_id, showTests currBase_view_id = -1 currPv_id = -1 currDpv_id = -1 Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 ) If rsRep.RecordCount = 0 Then With Response .write "" .write "" .write "" End With End If While ((NOT rsRep.BOF) AND (NOT rsRep.EOF)) If nShow_dependencies <> 0 Then ' show dependency is ON If rsRep("dpkg_name") = "------" Then showTests = FALSE Else showTests = TRUE End If Else showTests = TRUE End If ' -------- GROUP BY BASE VIEW ----------------- If CDbl(currBase_view_id) <> CDbl(rsRep("base_view_id")) Then %> <% currBase_view_id = CDbl(rsRep("base_view_id")) End If ' -------- END GROUP BASE VIEW ------------------------ %> <% ' -------- GROUP BY PACKAGE ----------------- If CDbl(currPv_id) <> CDbl(rsRep("pv_id")) Then %> <% currPv_id = CDbl(rsRep("pv_id")) End If ' -------- END GROUP PACKAGE ------------------------ %> <% ' -------- GROUP BY DEPENDENCY ----------------- If Not IsNull(rsRep("dpv_id")) Then If CDbl(currDpv_id) <> CDbl(rsRep("dpv_id")) Then %> <% currDpv_id = CDbl(rsRep("dpv_id")) End If End If ' -------- END GROUP DEPENDENCY ------------------------ %> <%If Not IsNull( rsRep("completed_by") ) AND showTests Then%> <%End If%> <% rsRep.MoveNext WEnd %>
    Package Name    Version    Test Name    Test Summary  Stamp Test Completed    
Found 0 records
<%=rsRep("view_name")%>                
  <%If rsRep("dlocked") = "Y" Then%>Officially released.<%Else%><%End If%> &rtag_id=<%=nRtag_id%>" class="body_txt"><%=rsRep("pkg_name")%> &rtag_id=<%=nRtag_id%>" class="body_txt"><%=rsRep("pkg_version")%>         <%If nShow_dependencies = 0 Then%><%If IsNull( rsRep("not_done") ) Then%><%Else%><%End If%><%End If%>
        &rtag_id=<%=nRtag_id%>" class="body_txt"><%=rsRep("dpkg_name")%> &rtag_id=<%=nRtag_id%>" class="body_txt"><%=rsRep("dpkg_version")%>     <%If IsNull( rsRep("not_done") ) Then%><%Else%><%End If%>
        <%=rsRep("test_name")%> <%=NewLine_To_BR ( To_HTML ( rsRep("test_summary") ) )%> <%=EuroDate ( rsRep("completion_date") )%> " class="txt_linked"><%=rsRep("completed_by")%>  
<%If parPrint = "" Then%>

Print this report

<%End If%> <% rsRep.Close Set rsRep = nothing End If End Sub %> <% '------------------------------------------------------------------------------------------------------------------------------------------------------------------- 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 '---------------------------------------------------------------------------------------------------------------------------------------- Function GetRMIssueState (NNpv_id, NNissId) Dim rsTemp, Query_String Dim s Query_String = _ " SELECT (CASE WHEN iss_state = 0 THEN ' (O)' ELSE ' (F)' END) AS issState "&_ " FROM cq_issues cq "&_ " WHERE cq.pv_id = "& NNpv_id &_ " AND cq.iss_id = "& NNissId Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) s = "" If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then s = (rsTemp.Fields("issState")) End If rsTemp.Close Set rsTemp = nothing GetRMIssueState = s End Function '---------------------------------------------------------------------------------------------------------------------------------------- ' Function returns the number of imported clearquest issues ' and builds a string suitable for querying the clearquest issues database Function Get_Package_Issues ( NNpv_id, SSsql, DDfixedIss, DDnotesIssDict, nIssState ) Dim rsTemp, sqlstr, DEVIiss, retVal sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &" AND iss_state IN (" & nIssState & ")" Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0)) retVal = rsTemp.RecordCount DEVIiss = "-1" While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then DEVIiss = DEVIiss &","& rsTemp("iss_id") End If rsTemp.MoveNext WEnd ' Construct SQL statement for CQ database SSsql = ReadFile( rootPath & "queries\cq_issues_rep1.sql" ) SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID) SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss) rsTemp.Close() Set rsTemp = nothing Get_Package_Issues = retVal End Function '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sub sdAdd( dict, key, value ) if IsNull(value) Then dict.Add CStr(key),"" else dict.Add CStr(key),CStr(value) End If End Sub Function sdItem( dict, i ) Dim a Dim s a = dict.Items s = a(i) sdItem=s End Function Function sdKey( dict, i ) Dim a a = dict.Keys sdKey = a(i) End Function '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Function ReleaseDeviStatus_ReportCheckbox( width, NameAndValue, Label, bCheck ) Dim s If (IsNull(Request(NameAndValue)) OR (Request(NameAndValue) = "")) AND (not bCheck) Then s = "" & Label & "" Else s = "" & Label & "" End If ReleaseDeviStatus_ReportCheckbox = s End Function '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Function GetCQIssuesListFilter Dim s s = "" If not (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) Then s = CStr(enumISSUES_STATE_FIXED) If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then s = s & "," & CStr(enumISSUES_STATE_IMPORTED) End If Else If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then s = CStr(enumISSUES_STATE_IMPORTED) End If End If GetCQIssuesListFilter = s End Function '------------------------------------------------------------------------------------------------------------------------------------------------------------------- Function GetPkgNameAndVersion(SSPvId, SSPkgNameAndVer) Dim SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked SSpkgID = "" SSpkgName = "" SSpkgVersion = "" SSsrc_path = "" SSpkgDesc = "" BBdlocked = 0 Call Get_Pkg_Short_Info( SSPvId, SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked ) If not ((SSpkgName = "") and (SSpkgVersion = "")) Then SSPkgNameAndVer = SSpkgName & " " & SSpkgVersion GetPkgNameAndVersion = True Else SSPkgNameAndVer = "" GetPkgNameAndVersion = False End If End Function '------------------------------------------------------------------------------------------------------------------------------------------------------------------- '================================================================================== ' Report Name : ReleaseDeviStatus_Report ' Description : List DEVIs for all Package Versions in a Release ' INPUT : '================================================================================== Sub ReleaseDeviStatus_Report ( SSsection, NNproj_id, NNrtag_id) Dim rsCQQry ' Query for the CLEARQUEST database Dim rsRMQry ' Query for the RELEASE MANAGER database Dim SQLstr ' String to contain a query Dim issueCnt ' Records how many CQ issues were found for a given RM package version Dim retVal ' General return value Dim isFirstDeviRow ' HTML rendering helper Dim isRowOpen ' HTML rendering helper Dim dict_Iss_Id_to_Iss_Num ' Dictionaries populated during the formation of the package DEVI list Dim dict_Iss_Id_to_Iss_DB ' creation, supporting the generation of the DEVI details list. Dim dict_Iss_Id_to_Risk Dim dict_Iss_Id_to_Summary Dim dict_Iss_Id_to_CodeRev Dim dict_Iss_Id_to_IntNotes Dim dict_Iss_Id_to_RelDBPatches Dim dict_Iss_Id_to_Pkg Dim dict_Iss_Id_to_PvId Dim dict_Iss_Id_to_Iss_Status Dim dict_Iss_Id_to_Iss_Type Dim dict_Iss_Id_to_Aff_Pkg Dim i,j,k ' General loop vars Dim s,strIn,strOut,sDisplay ' General string vars Dim a ' General array var Dim pkgArr ' Holds an array of CSV strings listing RM package names, 1 array element per unique CQ issue found Dim pkgCsv ' Holds a single CSV string listing RM package names, related to a single unique CQ issue Dim pvIdArr ' Holds an array of CSV strings listing RM package PV IDs, 1 array element per unique CQ issue found Dim pvIdCsv ' Holds a single CSV string listing RM package PV IDs, related to a single unique CQ issue Dim crRefArr ' Holds an array of code review reference strings Dim relDbPatchArr ' Holds an array of related DB patch strings Dim sqlTblCnt ' Counts the number of tables in the RM query string Dim FSO ' File System Object Dim NewTextFile ' File Object Dim emailReport ' Boolean flag signalling email generation Dim cqFilterStr ' Fixed and/or Outstanding Issues Filter for RM Query Dim cbWIPChecked ' Default checkbox states Dim cbPendingChecked Dim cbReleasedChecked Dim cbFixed Dim cbOutstanding Dim cbWithoutIssues Dim cbTraverseRipples Dim reObj ' regular expression object Dim reObjMatch Dim NumPkgsListed ' Stats collection vars Dim NumIssuesListed Dim parRipDate ' traverse ripple limit date Dim lastNonRipplePvId ' pv_id after ripple version traversal Dim cqIssId ' clearquest database ID for a given issue (not a human readable number) Const Allow_All = TRUE Const Disallow_All = FALSE NumPkgsListed = 0 NumIssuesListed = 0 If NNproj_id = "" Then NNproj_id = -1 If NNrtag_id = "" Then NNrtag_id = -1 If SSsection = "TITLE" Then Response.write "Release DEVI Status" Exit Sub End If ' Determine if we have to assert default check status on one of the checkboxes cbWIPChecked = False cbPendingChecked = False cbReleasedChecked = False cbFixed = False cbOutstanding = False cbWithoutIssues = False cbTraverseRipples = False If (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) _ and (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) _ and (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then cbWIPChecked = True End If If (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) _ and (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then cbFixed = True End If If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then parRipDate = EuroDate(DateAdd("d",-31,Date)) Else parRipDate = Request("FRripdate") End If If SSsection = "FORM" Then %>
Project <%Call Get_Projects( NNproj_id, Disallow_All )%>
Release <%Call Get_Open_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%>
Include Package Versions<%=Quick_Help("RepRDS_pv")%>  <%=ReleaseDeviStatus_ReportCheckbox("25%", "CB_FILTER_WIP", "From Work-in-progress", cbWIPChecked)%><%=ReleaseDeviStatus_ReportCheckbox("17%", "CB_FILTER_PENDING", "From Pending", cbPendingChecked)%><%=ReleaseDeviStatus_ReportCheckbox("20%", "CB_FILTER_RELEASED", "From Released", cbReleasedChecked)%><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_WITHOUT_ISSUES", "Without Issues", cbWithoutIssues)%>
 Include Issues<%=Quick_Help("RepRDS_iss")%>  <%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_FIXED", "Fixed", cbFixed)%><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_OUTSTANDING", "Outstanding", cbOutstanding)%>
 From Released<%=Quick_Help("RepRDS_trav")%>  <%=ReleaseDeviStatus_ReportCheckbox("60%", "CB_FILTER_TRAVERSE_RIPPLES", "Traverse Ripples as far back as", cbTraverseRipples)%>
<% Exit Sub End If If SSsection = "BODY" Then emailReport = false If Request("btn") = "Mail Me CSV Report" Then emailReport = true End If If NOT CBool(Request("action")) Then Exit Sub If NNrtag_id = -1 then Exit Sub ' Construct Release Manager Query based upon form settings (rtag and checkbox states) sqlTblCnt = 0 SQLstr = "SELECT * FROM ( " If not (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) Then sqlTblCnt = sqlTblCnt + 1 SQLstr = SQLstr & " SELECT p.PROJ_ID, rt.RTAG_ID, v.VIEW_ID, pk.PKG_ID, pv.PV_ID,"&_ " p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'WIP' as STATE"&_ " FROM PACKAGE_VERSIONS pv,"&_ " PACKAGES pk,"&_ " RELEASE_TAGS rt,"&_ " PROJECTS p,"&_ " VIEWS v," &_ " WORK_IN_PROGRESS wip"&_ " WHERE wip.RTAG_ID = :RTAG_ID"&_ " AND wip.RTAG_ID = rt.RTAG_ID"&_ " AND wip.PV_ID = pv.PV_ID"&_ " AND wip.VIEW_ID = v.VIEW_ID"&_ " AND pv.PKG_ID = pk.PKG_ID"&_ " AND rt.PROJ_ID = p.PROJ_ID" End If If not (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) Then If sqlTblCnt > 0 Then SQLstr = SQLstr & " UNION ALL " End If sqlTblCnt = sqlTblCnt + 1 SQLstr = SQLstr & " SELECT p.PROJ_ID, rt.RTAG_ID, v.VIEW_ID, pk.PKG_ID, pv.PV_ID,"&_ " p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'Pending' as STATE"&_ " FROM PACKAGE_VERSIONS pv,"&_ " PACKAGES pk,"&_ " RELEASE_TAGS rt,"&_ " PROJECTS p,"&_ " VIEWS v," &_ " PLANNED pl"&_ " WHERE pl.RTAG_ID = :RTAG_ID"&_ " AND pl.RTAG_ID = rt.RTAG_ID"&_ " AND pl.PV_ID = pv.PV_ID"&_ " AND pl.VIEW_ID = v.VIEW_ID"&_ " AND pv.PKG_ID = pk.PKG_ID"&_ " AND rt.PROJ_ID = p.PROJ_ID" End If If not (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then If sqlTblCnt > 0 Then SQLstr = SQLstr & " UNION ALL " End If sqlTblCnt = sqlTblCnt + 1 SQLstr = SQLstr & " SELECT p.PROJ_ID, rt.RTAG_ID, v.VIEW_ID, pk.PKG_ID, pv.PV_ID,"&_ " p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'Released' as STATE"&_ " FROM PACKAGE_VERSIONS pv,"&_ " PACKAGES pk,"&_ " RELEASE_TAGS rt,"&_ " PROJECTS p,"&_ " VIEWS v," &_ " RELEASE_CONTENT rc"&_ " WHERE rc.RTAG_ID = :RTAG_ID"&_ " AND rc.RTAG_ID = rt.RTAG_ID"&_ " AND rc.PV_ID = pv.PV_ID"&_ " AND rc.BASE_VIEW_ID = v.VIEW_ID"&_ " AND pv.PKG_ID = pk.PKG_ID"&_ " AND rt.PROJ_ID = p.PROJ_ID" End If SQLstr = SQLstr & " )" SQLstr = SQLstr & " ORDER BY UPPER(PKG_NAME), PKG_VERSION" ' Exit if nothing to do If sqlTblCnt = 0 Then Response.Write "Select one or more of Work-in-progress/Pending/Released package version states to be considered" Exit Sub End If ' Get SQL string for querying the CLEARQUEST database for this package version's fixed issues enumISSUES_STATE_IMPORTED or enumISSUES_STATE_FIXED cqFilterStr = GetCQIssuesListFilter() If cqFilterStr = "" Then Response.Write "Select one or both of Fixed/Outstanding issues lists to be considered" Exit Sub End If ' Create ADODB recordset for CLEARQUEST query Set rsCQQry = Server.CreateObject("ADODB.Recordset") ' Query RELEASE MANAGER for Package versions OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER Set rsRMQry = OraDatabase.DbCreateDynaset( SQLstr, cint(0)) OraDatabase.Parameters.Remove "RTAG_ID" ' If no records returned issue a message to user and exit If rsRMQry.RecordCount = 0 Then Response.Write "No records returned - try including additional package version states" Exit Sub End If ' Create a downloadable file Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set NewTextFile = FSO.CreateTextFile(Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv"), true) ' Create some dictionaries set dict_Iss_Id_to_Iss_Num = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Iss_DB = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Pkg = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Risk = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Summary = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_CodeRev = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_IntNotes = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_RelDBPatches = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_PvId = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Iss_Status = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Iss_Type = CreateObject("Scripting.Dictionary") set dict_Iss_Id_to_Aff_Pkg = CreateObject("Scripting.Dictionary") set reObj = new RegExp NewTextFile.WriteLine(DoubleQuotes("Release DEVI Status Report for " & Get_Proj_Name(Request("FRproj_id")) & ", release " & Get_Release_Name(Request("FRrtag_id")))) NewTextFile.WriteLine("") NewTextFile.WriteLine("Package DEVI List") NewTextFile.WriteLine("") NewTextFile.WriteLine("""Package"",""Label"",""State"",""Issue Number"",""Issue Summary""") %>

Release DEVI Status Report for  project <%=Get_Proj_Name(Request("FRproj_id"))%>,  release <%=Get_Release_Name(Request("FRrtag_id"))%>

Contents

Package DEVI List This contains the list of package versions in the release, along with the CLEARQUEST issues assigned to them.
  
DEVI Details List This contains the list of CLEARQUEST issues for the release, along with selected details for each, and a reference back to the package versions to which they have been assigned.
Statistics This contains some statistics collected during the report generation.
Package DEVI List
<% while ((NOT rsRMQry.BOF) AND (NOT rsRMQry.EOF)) isFirstDeviRow = 1 isRowOpen = 1 ' If this package version is a ripple, try and find its non-ripple predecessor in order to get at the ' issues that were addressed lastNonRipplePvId = rsRMQry("PV_ID") If not (IsNull(Request("CB_FILTER_TRAVERSE_RIPPLES")) OR (Request("CB_FILTER_TRAVERSE_RIPPLES") = "")) Then if ((rsRMQry("BUILD_TYPE") = "Y") and (rsRMQry("DLOCKED") = "Y")) Then If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then lastNonRipplePvId = getLastNonRippleVersionPVID(rsRMQry("PV_ID")) Else lastNonRipplePvId = getLastNonRippleVersionPVIDLimitedByDate(rsRMQry("PV_ID"), Request("FRripdate")) End If If IsNull(lastNonRipplePvId) or (lastNonRipplePvId = "") Then lastNonRipplePvId = rsRMQry("PV_ID") End If End If End If issueCnt = Get_Package_Issues (lastNonRipplePvId, SQLstr, NULL, NULL, cqFilterStr ) if (issueCnt > 0) _ or not(IsNull(Request("CB_FILTER_WITHOUT_ISSUES")) OR (Request("CB_FILTER_WITHOUT_ISSUES") = "")) Then NumPkgsListed = NumPkgsListed + 1 %> <% NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_NAME")) & ",") NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_LABEL")) & ",") NewTextFile.Write(DoubleQuotes(rsRMQry("STATE")) & ",") %> <% ' Complete the row immediately if this package version has no issues, else process the issues. if issueCnt = 0 Then NewTextFile.WriteLine(",") %> <% isRowOpen = 0 Else ' Query the CLEARQUEST database retVal = Get_CQ_Issues ( SQLstr, rsCQQry ) If retVal = 0 Then While ((NOT rsCQQry.BOF) AND (NOT rsCQQry.EOF)) Dim issueNumber issueNumber = rsCQQry("ISS_NUM") & GetRMIssueState (lastNonRipplePvId, rsCQQry("ISS_ID")) ' Keep dictionary of issue IDs to human readable issue numbers, plus other info we will need later on for the report If not dict_Iss_Id_to_Iss_Num.Exists(CStr(rsCQQry("ISS_ID"))) Then sdAdd dict_Iss_Id_to_Iss_Num, rsCQQry("ISS_ID"), issueNumber sdAdd dict_Iss_Id_to_Iss_DB, rsCQQry("ISS_ID"), rsCQQry("ISS_DB") sdAdd dict_Iss_Id_to_Risk, rsCQQry("ISS_ID"), rsCQQry("RISK") sdAdd dict_Iss_Id_to_Summary, rsCQQry("ISS_ID"), rsCQQry("SUMMARY") sdAdd dict_Iss_Id_to_CodeRev, rsCQQry("ISS_ID"), rsCQQry("CR_REF") sdAdd dict_Iss_Id_to_IntNotes, rsCQQry("ISS_ID"), rsCQQry("INT_NOTES") sdAdd dict_Iss_Id_to_RelDBPatches, rsCQQry("ISS_ID"), rsCQQry("DB_PATCHES") sdAdd dict_Iss_Id_to_Iss_Type, rsCQQry("ISS_ID"), rsCQQry("ISSUE_TYPE") sdAdd dict_Iss_Id_to_Iss_Status, rsCQQry("ISS_ID"), rsCQQry("STATUS") sdAdd dict_Iss_Id_to_Aff_Pkg, rsCQQry("ISS_ID"), rsCQQry("AFFECTED_PACKAGES") End If ' Keep dictionary of issue IDs to release manager package names (latter is a comma separated list) If dict_Iss_Id_to_Pkg.Exists(CStr(rsCQQry("ISS_ID"))) Then dict_Iss_Id_to_Pkg.Item(CStr(rsCQQry("ISS_ID"))) = dict_Iss_Id_to_Pkg.Item(CStr(rsCQQry("ISS_ID"))) & "," & CStr(rsRMQry("PKG_NAME")) & " " & CStr(rsRMQry("PKG_VERSION")) Else sdAdd dict_Iss_Id_to_Pkg, rsCQQry("ISS_ID"), rsRMQry("PKG_NAME") & " " & CStr(rsRMQry("PKG_VERSION")) End If ' Keep dictionary of issue IDs to release manager package version IDs (latter is a comma separated list) If dict_Iss_Id_to_PvId.Exists(CStr(rsCQQry("ISS_ID"))) Then dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) = dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) & "," & CStr(rsRMQry("PV_ID")) Else sdAdd dict_Iss_Id_to_PvId, rsCQQry("ISS_ID"), rsRMQry("PV_ID") End If ' Begin new row if needed if isRowOpen = 0 Then isRowOpen = 1 %><% End If ' If first row, no need to pad since those columns have already been filled in outer loop If isFirstDeviRow = 1 Then isFirstDeviRow = 0 NewTextFile.Write(DoubleQuotes(issueNumber) & ",") NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY"))) %> <% Else NewTextFile.Write(",,," & DoubleQuotes(issueNumber) & ",") NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY"))) %> <% End If ' End this row isRowOpen = 0 %><% rsCQQry.MoveNext Wend ' end of loop processing each issue rsCQQry.Close Else NewTextFile.WriteLine("," & DoubleQuotes("ERROR - could not get issue details from CLEARQUEST")) %> <% End If ' Complete the row if needed if isRowOpen = 1 Then if (isFirstDeviRow = 1) Then NewTextFile.WriteLine(",") %> <% End If isRowOpen = 0 %><% End If End If End If rsRMQry.MoveNext Wend ' End of loop processing each package version set rsCQQry = nothing %>
Package    Label    State    Issue Number
(F)=Fixed
(O)=Outstanding
Issue Summary   
" class="txt_linked"><%=rsRMQry("PKG_NAME")%> <%=rsRMQry("PKG_LABEL")%> <%=rsRMQry("STATE")%>
"><%=issueNumber%> <%=rsCQQry("SUMMARY")%> "><%=issueNumber%> <%=rsCQQry("SUMMARY")%>
ERROR - could not get issue details from CLEARQUEST
<% NewTextFile.WriteLine("") NewTextFile.WriteLine("DEVI Details List") NewTextFile.WriteLine("") NewTextFile.WriteLine("""Issue Number"",""Property"",""Details""") %>
DEVI Details List
<% For i = 0 To (dict_Iss_Id_to_Iss_Num.Count - 1) cqIssId = sdKey(dict_Iss_Id_to_Iss_Num, i) NumIssuesListed = NumIssuesListed + 1 %> <% '------------------------------------------------------------------------------------------------------------------------------- ' First line is the DEVI Number, and its summary info s = sdItem(dict_Iss_Id_to_Summary,i) ' Prepare for CSV s = Replace(s,"""","""""") NewTextFile.WriteLine(DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Num,i)) & ",Issue Summary," & DoubleQuotes(s)) s = sdItem(dict_Iss_Id_to_Summary,i) ' Prepare for HTML s = NewLine_To_BR(To_HTML(s)) %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI Type Value (ie Defect, Future Enhancement, etc) NewTextFile.WriteLine(",Type," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Type,i))) %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI Status Value NewTextFile.WriteLine(",Status," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Status,i))) %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI Risk Value NewTextFile.WriteLine(",Risk," & DoubleQuotes(sdItem(dict_Iss_Id_to_Risk,i))) %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI's code review reference a = dict_Iss_Id_to_CodeRev.Items ' Get collection into an array s = a(i) ' Get array element into a string s = Replace(s, chr(13), "+") ' Replace possible delimiters with a single delimiter ("+") s = Replace(s, chr(10), "+") s = Replace(s, " ", "+") crRefArr = Split(s,"+") ' Split on our contrived delimiter and iterate through results NewTextFile.Write(",Code Review Ref,""") %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI's related DB Patches ' This is quite complicated but at the end of the day, we are aiming to convert the free form text in ' the CLEARQUEST devi into a list of hyperlinks to the actual package versions in RM, based on the assumption ' that the free form text contains PV_ID numbers somewhere therein. a = dict_Iss_Id_to_RelDBPatches.Items ' Get collection into an array s = a(i) ' Get array element into a string s = Replace(s, chr(13), "+") ' Replace possible delimiters with a single delimiter ("+") s = Replace(s, chr(10), "+") s = Replace(s, " ", "+") relDbPatchArr = Split(s,"+") ' Split on our contrived delimiter and iterate through results NewTextFile.Write(",Related DB Patches,""") %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI's affected packages field s = sdItem(dict_Iss_Id_to_Aff_Pkg,i) ' Prepare for CSV s = Replace(s,"""","""""") NewTextFile.WriteLine(",Affected Packages," & DoubleQuotes(s)) s = sdItem(dict_Iss_Id_to_Aff_Pkg,i) ' Prepare for HTML s = NewLine_To_BR(To_HTML(s)) %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line(s) is/are the packages this DEVI is assigned to, in release manager pkgArr = dict_Iss_Id_to_Pkg.Items pkgCsv = pkgArr(i) pkgArr = Split(pkgCsv, ",") pvIdArr = dict_Iss_Id_to_PvId.Items pvIdCsv = pvIdArr(i) pvIdArr = Split(pvIdCsv, ",") NewTextFile.Write(",RM Assigned Packages,""") %> <% '------------------------------------------------------------------------------------------------------------------------------- ' Next line is the DEVI's integration notes s = sdItem(dict_Iss_Id_to_IntNotes, i) 'Prepare for CSV s = Replace(s,"""","""""") NewTextFile.WriteLine(",Integration Notes," & DoubleQuotes(s)) s = sdItem(dict_Iss_Id_to_IntNotes, i) ' Prepare for HTML s = NewLine_To_BR(To_HTML(s)) %> <% Next %>
Issue Number    Property    Details   
<%=sdItem(dict_Iss_Id_to_Iss_Num,i)%> Issue Summary: <%=s%>
Type: <%=sdItem(dict_Iss_Id_to_Iss_Type, i)%>
Status: <%=sdItem(dict_Iss_Id_to_Iss_Status, i)%>
Risk: <%=sdItem(dict_Iss_Id_to_Risk, i)%>
Code Review Ref: <% For j = 0 To UBOUND(crRefArr) if not ((crRefArr(j) = "+") or (crRefArr(j) = ",") or (Trim(crRefArr(j)) = "")) Then if j = 0 Then NewTextFile.Write(Trim(crRefArr(j))) %> <%=Trim(crRefArr(j))%> <% Else NewTextFile.Write("," & Trim(crRefArr(j))) %>
<%=Trim(crRefArr(j))%>
<% End If End If Next NewTextFile.WriteLine("""") %>
Related DB Patches: <% For j = 0 To UBOUND(relDbPatchArr) if not ((relDbPatchArr(j) = "+") or (relDbPatchArr(j) = ",") or (Trim(relDbPatchArr(j)) = "")) Then ' Given that the Related DB Patches is a free form text field in a CLEARQUEST DEVI, ' it can contain a variety of text. Normally it contains a list of PV_ID's but it ' can also contain the patch file names (eg. orahops.467229_patch.xml) which normally ' contains PV_IDs embedded within them. We have to cater for both approaches and ' somehow extract those PV_IDs. We have already split the string so we know we are ' now dealing with a single item, but sometimes users name their packages or files with ' numbers as well as letters. The code below looks for the longest numeric sequence ' and assumes that is the PV_ID Dim lenMax,lenThis,objMatch lenMax = 0 lenThis = 0 sDisplay = Trim(relDbPatchArr(j)) 'default ' search for numeric sequences in the string reObj.IgnoreCase = True reObj.Global = True reObj.Pattern = "[0-9]+" set reObjMatch = reObj.Execute(Trim(relDbPatchArr(j))) If reObjMatch.Count > 0 Then ' Look for the longest numeric sequence for each objMatch in reObjMatch lenThis = objMatch.Length If lenThis > lenMax Then lenMax = lenThis sDisplay = objMatch 'sDisplay is now a numeric sequence End If next if (lenMax > 0) Then ' Form the display string as "PV_ID (package-name package-version)" If GetPkgNameAndVersion(sDisplay, s) Then sDisplay = sDisplay & " (" & s & ")" Else ' Couldn't get the package name/version from RM so it is likely this number ' is not a true/real PV_ID so revert to the simpler display format we began with ' as a default. sDisplay = Trim(relDbPatchArr(j)) 'reset to full string lenMax = 0 'zero to force simpler display format in HTML End If End If End If if j = 0 Then NewTextFile.Write(Trim(sDisplay)) If (lenMax = 0) Then %><%=Trim(relDbPatchArr(j))%><% Else %><%=sDisplay%><% End If Else NewTextFile.Write("," & Trim(sDisplay)) If (lenMax = 0) Then %><%=Trim(relDbPatchArr(j))%><% Else %>
<%=sDisplay%>
<% End If End If End If Next NewTextFile.WriteLine("""") %>
Affected Packages: <%=s %>
RM Assigned Packages: <% For j = 0 To UBOUND(pkgArr) If j = 0 Then NewTextFile.Write(pkgArr(j)) %><%=pkgArr(j)%><% Else NewTextFile.Write("," & pkgArr(j)) %>
<%=pkgArr(j)%>
<% End If Next NewTextFile.WriteLine("""") %>
Integration Notes: <%=s %>
Statistics
Report generated on <%=EuroDate(Date)%> at <%=Time%>
<%=NumPkgsListed %> Package(s) Listed
<%=NumIssuesListed %> Issue(s) Listed
<%If parPrint = "" Then%>

Print this report

<%End If%> <% ' Clean up rsRMQry.Close set rsRMQry = nothing set dict_Iss_Id_to_Iss_Num = nothing set dict_Iss_Id_to_Iss_DB = nothing set dict_Iss_Id_to_Pkg = nothing set dict_Iss_Id_to_Risk = nothing set dict_Iss_Id_to_Summary = nothing set dict_Iss_Id_to_CodeRev = nothing set dict_Iss_Id_to_IntNotes = nothing set dict_Iss_Id_to_RelDBPatches = nothing set dict_Iss_Id_to_PvId = nothing set dict_Iss_Id_to_Iss_Status = nothing set dict_Iss_Id_to_Iss_Type = nothing set dict_Iss_Id_to_Aff_Pkg = nothing set reObj = nothing NewTextFile.Close Set NewTextFile=Nothing ' EMAIL CSV report if user has requested it If emailReport Then Dim LocalPath LocalPath = Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv") Send_Email "Release Manager Notification",_ adminEmail, _ objAccessControl.UserEmail,_ "Release DEVI Status Report (csv) from Release Manager", _ "Your requested report...",_ LocalPath End If End If End Sub %>