Subversion Repositories DevTools

Rev

Rev 129 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 129 Rev 159
Line 112... Line 112...
112
End Function
112
End Function
113
'----------------------------------------------------------------------------------------------------------------------------------------
113
'----------------------------------------------------------------------------------------------------------------------------------------
114
Sub GetReleaseContent ( nBom_id, ByRef oReleaseContent )
114
Sub GetReleaseContent ( nBom_id, ByRef oReleaseContent )
115
   Dim rsQry, query
115
   Dim rsQry, query
116
 
116
 
117
 
-
 
118
 
-
 
119
   query = _
117
   query = _
120
   " SELECT qry.prod_id"&_
118
   " SELECT qry.prod_id"&_
121
   "  FROM ("&_
119
   "  FROM ("&_
122
   "         SELECT DISTINCT"&_
120
   "         SELECT DISTINCT"&_
123
   "          osc.PROD_ID,"&_
121
   "          osc.PROD_ID,"&_
Line 192... Line 190...
192
Sub Reports_List ( SSgroup )
190
Sub Reports_List ( SSgroup )
193
   Dim repNum
191
   Dim repNum
194
%>  <!-- REPORTS LIST -------------------------------------------------------->
192
%>  <!-- REPORTS LIST -------------------------------------------------------->
195
   <%Select Case SSgroup%>
193
   <%Select Case SSgroup%>
196
   <%Case "Advanced_Search"%>
194
   <%Case "Advanced_Search"%>
197
   <%repNum = 1%>
195
      <%repNum = 1%>
198
   <strong>Find ClearQuest Bugs / Issues Location</strong><br>
196
      <strong>Find ClearQuest Bugs / Issues Location</strong><br>
199
    Use this advance search to locate bugs / issues imported to Release Manager from ClearQuest.<br>
197
      Use this advance search to locate bugs / issues imported to Release Manager from ClearQuest.<br>
200
    <a href="rep_where_are_bugs_located.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
198
      <a href="rep_where_are_bugs_located.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
201
   <%repNum = 2%>
199
      <%repNum = 2%>
202
    <strong>Find Packages Using "Ignore Warnings" feature</strong><br>
200
      <strong>Find Packages Using "Ignore Warnings" feature</strong><br>
203
    Lists packages which use "Ignore Warning" feature on their dependencies.<br>
201
      Lists packages which use "Ignore Warning" feature on their dependencies.<br>
204
    <a href="rep_packages_using_ignore_feature.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
202
      <a href="rep_packages_using_ignore_feature.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
205
   <%repNum = 4%>
203
      <%repNum = 4%>
206
   <strong>Find A Package</strong><br>
204
      <strong>Find A Package</strong><br>
207
    Use this advanced search to find a package in Release Manager<br>
205
      Use this advanced search to find a package in Release Manager<br>
208
    <a href="rep_find_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
206
      <a href="rep_find_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
209
   <%repNum = 5%>
207
      <%repNum = 5%>
210
   <strong>Find Package Version History</strong><br>
208
      <strong>Find Package Version History</strong><br>
211
    Find all package versions and their current locations.<br>
209
      Find all package versions and their current locations.<br>
212
    <a href="rep_package_version_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
210
      <a href="rep_package_version_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
213
   <%Case "Release_Status"%>
211
   <%Case "Release_Status"%>
214
   <%repNum = 3%>
212
      <%repNum = 3%>
215
   <strong>Current Status of Release</strong><br>
213
      <strong>Current Status of Release</strong><br>
216
   Shows all packages in a selected release with their current state, owner and last modifier.<br>
214
      Shows all packages in a selected release with their current state, owner and last modifier.<br>
217
   <a href="rep_current_state_of_release.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
215
      <a href="rep_current_state_of_release.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
218
   <%repNum = 8%>
216
      <%repNum = 8%>
219
   <strong>Deployable Software Modules</strong><br>
217
      <strong>Deployable Software Modules</strong><br>
220
   This report shows new and current deployable software modules. Use this report to find which modules will be deployed to the customer.<br>
218
      This report shows new and current deployable software modules. Use this report to find which modules will be deployed to the customer.<br>
221
   Also, use this report to find if there are new modules flaged as 'deployable'.<br>
219
      Also, use this report to find if there are new modules flaged as 'deployable'.<br>
222
   <a href="rep_depoyable_software_modules.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
220
      <a href="rep_depoyable_software_modules.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
223
   <%repNum = 7%>
221
      <%repNum = 7%>
224
   <strong>Unit Tests per Package</strong><br>
222
      <strong>Unit Tests per Package</strong><br>
225
   Use this report to check the unit tests performed on packages in a project.<br>
223
      Use this report to check the unit tests performed on packages in a project.<br>
226
   <a href="rep_unit_tests_per_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
224
      <a href="rep_unit_tests_per_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
227
   <%repNum = 12%>
225
      <%repNum = 12%>
228
   <strong>Release AutoBuildable Status</strong><br>
226
      <strong>Release AutoBuildable Status</strong><br>
229
   Use this report to check the package versions that are autobuildable/not autobuildable in a given release.<br>
227
      Use this report to check the package versions that are autobuildable/not autobuildable in a given release.<br>
230
   <a href="rep_autobuildable_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
228
      <a href="rep_autobuildable_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
231
 
-
 
-
 
229
      <%repNum = 13%>
-
 
230
      <strong>Release DEVI Status</strong><br>
-
 
231
      Use this report to obtain a list of DEVIs for all packages in a given release.<br>
-
 
232
      <a href="rep_devi_status_for_release.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
232
 
233
 
233
<!--    <strong>All Packages With out-of-sync Dependencies</strong><br>
234
<!--    <strong>All Packages With out-of-sync Dependencies</strong><br>
234
   List of all packages with dependencies out-of-sync with the release environment.<br>
235
   List of all packages with dependencies out-of-sync with the release environment.<br>
235
   In escence, these are the packages which has versions in "latest" column of their dependencies.<br>
236
   In escence, these are the packages which has versions in "latest" column of their dependencies.<br>
236
   Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
237
   Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
-
 
238
 -->
-
 
239
 
237
 -->   <%Case "Release_History"%>
240
   <%Case "Release_History"%>
238
   <%repNum = 10%>
241
      <%repNum = 10%>
239
   <strong>Build History</strong><br>
242
      <strong>Build History</strong><br>
240
   Use this report to find which packages have been officially released within specified date range.<br>
243
      Use this report to find which packages have been officially released within specified date range.<br>
241
   <a href="rep_build_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
244
      <a href="rep_build_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
242
   <%Case "Admin_Reports"%>
245
   <%Case "Admin_Reports"%>
243
   <strong>All Packages by Project by Version Tree by Release</strong><br>
246
      <strong>All Packages by Project by Version Tree by Release</strong><br>
244
   CSV output of all packages used in Release Manager per Project.<br>
247
      CSV output of all packages used in Release Manager per Project.<br>
245
   <a href="rep_all_packages_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
248
      <a href="rep_all_packages_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
246
   <strong>All Runtime Dependencies by Project by Version Tree by Release</strong><br>
249
      <strong>All Runtime Dependencies by Project by Version Tree by Release</strong><br>
247
   CSV output of all runtime dependencies used in Release Manager per Project.<br>
250
      CSV output of all runtime dependencies used in Release Manager per Project.<br>
248
   <a href="rep_all_runtime_dependencies_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
251
      <a href="rep_all_runtime_dependencies_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
249
   <%repNum = 6%>
252
      <%repNum = 6%>
250
   <strong>Unused Packages</strong><br>
253
      <strong>Unused Packages</strong><br>
251
   All packages (Not Products) with no entries in "Used By" tab.<br>
254
      All packages (Not Products) with no entries in "Used By" tab.<br>
252
    Use this report to help you clean up a release and remove all potentially unused packages.<br>
255
      Use this report to help you clean up a release and remove all potentially unused packages.<br>
253
    <a href="rep_obsolete_packages.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
256
      <a href="rep_obsolete_packages.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
254
   <%Case "Escrow"%>
257
   <%Case "Escrow"%>
255
   <%repNum = 9%>
258
      <%repNum = 9%>
256
   <strong>Bill of Materials (BOM)</strong><br>
259
      <strong>Bill of Materials (BOM)</strong><br>
257
   List of all ERG Products per network node for a particular
260
      List of all ERG Products per network node for a particular
258
   project. Use this report to integrate a particular project.<br>
261
      project. Use this report to integrate a particular project.<br>
259
   <a href="rep_bill_of_materials.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
262
      <a href="rep_bill_of_materials.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
260
   <%repNum = 11%>
263
      <%repNum = 11%>
261
   <strong>Escrow Report</strong><br>
264
      <strong>Escrow Report</strong><br>
262
   List of all Products/Patches for the BOM including modules. Use this report to provide a build roadmap.<br>
265
      List of all Products/Patches for the BOM including modules. Use this report to provide a build roadmap.<br>
263
   <a href="escrow_report.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
266
      <a href="escrow_report.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
264
   <strong>Build Dependencies per Package</strong><br>
267
      <strong>Build Dependencies per Package</strong><br>
265
   Use this report to build package from source code. The report
268
      Use this report to build package from source code. The report
266
   include package repository location, label and build dependencies.<br>
269
      include package repository location, label and build dependencies.<br>
267
   Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
270
      Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
268
   <strong>Build Order</strong><br>
271
      <strong>Build Order</strong><br>
269
   Use this reports to find the order in which packages should be built.<br>
272
      Use this reports to find the order in which packages should be built.<br>
270
   Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
273
      Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
271
   <%Case Else%>
274
   <%Case Else%>
272
   <b>&laquo; Select reporting category.</b>
275
      <b>&laquo; Select reporting category.</b>
273
   <%End Select%>
276
   <%End Select%>
274
   <!-- REPORTS LIST END-------------------------------------------------------->
277
   <!-- REPORTS LIST END-------------------------------------------------------->
275
 
278
 
276
<%End Sub%>
279
<%End Sub%>
277
 
280
 
Line 333... Line 336...
333
 
336
 
334
   rsTemp.Close
337
   rsTemp.Close
335
   Set rsTemp = nothing
338
   Set rsTemp = nothing
336
End Sub
339
End Sub
337
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
340
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
341
Sub Get_Open_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all )
-
 
342
   Dim rsTemp, Query_String
-
 
343
 
-
 
344
   Query_String = _
-
 
345
   "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &"AND official in ('N','C','R')  ORDER BY rtag_name ASC"
-
 
346
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
-
 
347
 
-
 
348
   Response.write "<select name='FRrtag_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRproj_id="& NNproj_id &"&group="& Request("group") &"&repnum="& Request("repnum") &"&FRrtag_id=',this,0)"" class='form_item'>"
-
 
349
   If BBallow_all Then
-
 
350
      Response.write "<option value='-1'>ALL</option>"
-
 
351
   Else
-
 
352
      Response.write "<option></option>"
-
 
353
   End If
-
 
354
 
-
 
355
      If NNproj_id <> -1 Then
-
 
356
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
-
 
357
            If CDbl(NNrtag_id) = CDbl(rsTemp.Fields("rtag_id")) Then
-
 
358
                 Response.write "<option value='"& rsTemp.Fields("rtag_id") &"' selected>"& (rsTemp.Fields("rtag_name")) &"</option>"
-
 
359
              Else
-
 
360
               Response.write "<option value='"& rsTemp.Fields("rtag_id") &"'>"& (rsTemp.Fields("rtag_name")) &"</option>"
-
 
361
            End If
-
 
362
            rsTemp.MoveNext
-
 
363
         WEnd
-
 
364
      End If
-
 
365
   Response.write "</select>"
-
 
366
 
-
 
367
   rsTemp.Close
-
 
368
   Set rsTemp = nothing
-
 
369
End Sub
-
 
370
 
338
Sub Get_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all )
371
Sub Get_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all )
339
   Dim rsTemp, Query_String
372
   Dim rsTemp, Query_String
340
 
373
 
341
   Query_String = _
374
   Query_String = _
342
   "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &" ORDER BY rtag_id ASC"
375
   "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &" ORDER BY rtag_id ASC"
Line 825... Line 858...
825
 
858
 
826
      ElseIf CDbl(NNiss_db) = enumCLEARQUEST_DEVI_ID Then
859
      ElseIf CDbl(NNiss_db) = enumCLEARQUEST_DEVI_ID Then
827
         iss_num_col = "new_num"
860
         iss_num_col = "new_num"
828
         SSsql = _
861
         SSsql = _
829
         " SELECT si.dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_
862
         " SELECT si.dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_
830
         " FROM DEVI_PROD.admin.software_issue si"&_
863
         " FROM CQ_DEVI.admin.software_issue si"&_
831
         " WHERE "
864
         " WHERE "
832
 
865
 
833
 
866
 
834
      ElseIf CDbl(NNiss_db) = enumCLEARQUEST_TDSE_ID Then
867
      ElseIf CDbl(NNiss_db) = enumCLEARQUEST_TDSE_ID Then
835
         iss_num_col = "job_number"
868
         iss_num_col = "job_number"
836
         SSsql = _
869
         SSsql = _
837
         " SELECT dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_
870
         " SELECT dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_
838
         " FROM TDSE_2002.admin.request si"&_
871
         " FROM CQ_TDSE.admin.request si"&_
839
         " WHERE "
872
         " WHERE "
840
 
873
 
841
      End If
874
      End If
842
 
875
 
843
 
876
 
Line 2644... Line 2677...
2644
      Set rsRep = nothing
2677
      Set rsRep = nothing
2645
   End If
2678
   End If
2646
 
2679
 
2647
End Sub
2680
End Sub
2648
%>
2681
%>
-
 
2682
 
-
 
2683
 
-
 
2684
<%
-
 
2685
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2686
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
-
 
2687
   If OOrsCQ.State = 1 Then
-
 
2688
      OOrsCQ.Close()
-
 
2689
   End If
-
 
2690
 
-
 
2691
   On Error Resume Next
-
 
2692
   OOrsCQ.ActiveConnection = CQ_conn
-
 
2693
   OOrsCQ.Source = SSsql
-
 
2694
   OOrsCQ.CursorType = 0
-
 
2695
   OOrsCQ.CursorLocation = 2
-
 
2696
   OOrsCQ.LockType = 3
-
 
2697
   OOrsCQ.Open()
-
 
2698
 
-
 
2699
   Get_CQ_Issues = Err.Number
-
 
2700
 
-
 
2701
End Function
-
 
2702
'----------------------------------------------------------------------------------------------------------------------------------------
-
 
2703
Function GetRMIssueState (NNpv_id, NNissId)
-
 
2704
   Dim rsTemp, Query_String
-
 
2705
   Dim s
-
 
2706
   Query_String = _
-
 
2707
   " SELECT (CASE WHEN iss_state = 0 THEN ' (O)' ELSE ' (F)' END) AS issState "&_
-
 
2708
   "   FROM cq_issues cq "&_
-
 
2709
   "  WHERE cq.pv_id = "& NNpv_id &_
-
 
2710
   "    AND cq.iss_id = "& NNissId
-
 
2711
 
-
 
2712
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
-
 
2713
 
-
 
2714
   s = ""
-
 
2715
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
-
 
2716
      s = (rsTemp.Fields("issState"))
-
 
2717
   End If
-
 
2718
 
-
 
2719
   rsTemp.Close
-
 
2720
   Set rsTemp = nothing
-
 
2721
 
-
 
2722
   GetRMIssueState = s
-
 
2723
End Function
-
 
2724
'----------------------------------------------------------------------------------------------------------------------------------------
-
 
2725
' Function returns the number of imported clearquest issues
-
 
2726
' and builds a string suitable for querying the clearquest issues database
-
 
2727
Function Get_Package_Issues ( NNpv_id, SSsql, DDfixedIss, DDnotesIssDict, nIssState )
-
 
2728
   Dim rsTemp, sqlstr, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss, retVal
-
 
2729
 
-
 
2730
   sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &"  AND iss_state IN (" & nIssState & ")"
-
 
2731
 
-
 
2732
   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
-
 
2733
   retVal = rsTemp.RecordCount
-
 
2734
 
-
 
2735
   DEVIiss  = "-1"
-
 
2736
   TDSEiss  = "-1"
-
 
2737
   VT5DMiss = "-1"
-
 
2738
   VTSUPiss = "-1"
-
 
2739
 
-
 
2740
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
-
 
2741
      If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
-
 
2742
         DEVIiss = DEVIiss &","& rsTemp("iss_id")
-
 
2743
      ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
-
 
2744
         TDSEiss = TDSEiss &","& rsTemp("iss_id")
-
 
2745
      ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
-
 
2746
         VT5DMiss = VT5DMiss &","& rsTemp("iss_id")
-
 
2747
      ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
-
 
2748
         VTSUPiss = VTSUPiss &","& rsTemp("iss_id")
-
 
2749
      End If
-
 
2750
 
-
 
2751
      rsTemp.MoveNext
-
 
2752
   WEnd
-
 
2753
 
-
 
2754
   ' Construct SQL statement for CQ database
-
 
2755
   SSsql = ReadFile( rootPath & "queries\cq_issues_rep1.sql" )
-
 
2756
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
-
 
2757
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
-
 
2758
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
-
 
2759
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)
-
 
2760
   SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
-
 
2761
   SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
-
 
2762
   SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)
-
 
2763
   SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)
-
 
2764
 
-
 
2765
   rsTemp.Close()
-
 
2766
   Set rsTemp = nothing
-
 
2767
 
-
 
2768
   Get_Package_Issues = retVal
-
 
2769
 
-
 
2770
End Function
-
 
2771
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2772
Sub sdAdd( dict, key, value )
-
 
2773
   if IsNull(value) Then
-
 
2774
      dict.Add CStr(key),""
-
 
2775
   else
-
 
2776
      dict.Add CStr(key),CStr(value)
-
 
2777
   End If
-
 
2778
End Sub
-
 
2779
 
-
 
2780
Function sdItem( dict, i )
-
 
2781
   Dim a
-
 
2782
   Dim s
-
 
2783
   a = dict.Items
-
 
2784
   s = a(i)
-
 
2785
   sdItem=s
-
 
2786
End Function
-
 
2787
 
-
 
2788
Function sdKey( dict, i )
-
 
2789
   Dim a
-
 
2790
   a = dict.Keys
-
 
2791
   sdKey = a(i)
-
 
2792
End Function
-
 
2793
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2794
Function ReleaseDeviStatus_ReportCheckbox( width, NameAndValue, Label, bCheck )
-
 
2795
   Dim s
-
 
2796
   If (IsNull(Request(NameAndValue)) OR (Request(NameAndValue) = "")) AND (not bCheck) Then
-
 
2797
      s = "<td width=""" & width & """><INPUT Type=Checkbox  name=""" & NameAndValue & """ value=""" & NameAndValue & """>" & Label & "</td>"
-
 
2798
   Else
-
 
2799
      s = "<td width=""" & width & """><INPUT Type=Checkbox  CHECKED name=""" & NameAndValue & """ value=""" & NameAndValue & """>" & Label & "</td>"
-
 
2800
   End If
-
 
2801
   ReleaseDeviStatus_ReportCheckbox = s
-
 
2802
End Function
-
 
2803
 
-
 
2804
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2805
Function GetCQIssuesListFilter
-
 
2806
   Dim s
-
 
2807
   s = ""
-
 
2808
   If not (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) Then
-
 
2809
      s = CStr(enumISSUES_STATE_FIXED)
-
 
2810
      If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
-
 
2811
         s = s & "," & CStr(enumISSUES_STATE_IMPORTED)
-
 
2812
      End If
-
 
2813
   Else
-
 
2814
      If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
-
 
2815
         s = CStr(enumISSUES_STATE_IMPORTED)
-
 
2816
      End If
-
 
2817
   End If
-
 
2818
   GetCQIssuesListFilter = s
-
 
2819
End Function
-
 
2820
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2821
Function GetPkgNameAndVersion(SSPvId, SSPkgNameAndVer)
-
 
2822
   Dim SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked
-
 
2823
   SSpkgID      = ""
-
 
2824
   SSpkgName    = ""
-
 
2825
   SSpkgVersion = ""
-
 
2826
   SSsrc_path   = ""
-
 
2827
   SSpkgDesc    = ""
-
 
2828
   BBdlocked    = 0
-
 
2829
   Call Get_Pkg_Short_Info( SSPvId, SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked )
-
 
2830
   If not ((SSpkgName = "") and (SSpkgVersion = "")) Then
-
 
2831
      SSPkgNameAndVer = SSpkgName & " " & SSpkgVersion
-
 
2832
      GetPkgNameAndVersion = True
-
 
2833
   Else
-
 
2834
      SSPkgNameAndVer = ""
-
 
2835
      GetPkgNameAndVersion = False
-
 
2836
   End If
-
 
2837
End Function
-
 
2838
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
 
2839
'==================================================================================
-
 
2840
' Report Name      :   ReleaseDeviStatus_Report
-
 
2841
' Description      :   List DEVIs for all Package Versions in a Release
-
 
2842
' INPUT            :
-
 
2843
'==================================================================================
-
 
2844
Sub ReleaseDeviStatus_Report ( SSsection, NNproj_id, NNrtag_id)
-
 
2845
   Dim rsCQQry                   ' Query for the CLEARQUEST database
-
 
2846
   Dim rsRMQry                   ' Query for the RELEASE MANAGER database
-
 
2847
   Dim SQLstr                    ' String to contain a query
-
 
2848
   Dim issueCnt                  ' Records how many CQ issues were found for a given RM package version
-
 
2849
   Dim retVal                    ' General return value
-
 
2850
   Dim isFirstDeviRow            ' HTML rendering helper
-
 
2851
   Dim isRowOpen                 ' HTML rendering helper
-
 
2852
   Dim dict_Iss_Id_to_Iss_Num    ' Dictionaries populated during the formation of the package DEVI list
-
 
2853
   Dim dict_Iss_Id_to_Iss_DB     '   creation, supporting the generation of the DEVI details list.
-
 
2854
   Dim dict_Iss_Id_to_Risk
-
 
2855
   Dim dict_Iss_Id_to_Summary
-
 
2856
   Dim dict_Iss_Id_to_CodeRev
-
 
2857
   Dim dict_Iss_Id_to_IntNotes
-
 
2858
   Dim dict_Iss_Id_to_RelDBPatches
-
 
2859
   Dim dict_Iss_Id_to_Pkg
-
 
2860
   Dim dict_Iss_Id_to_PvId
-
 
2861
   Dim dict_Iss_Id_to_Iss_Status
-
 
2862
   Dim dict_Iss_Id_to_Iss_Type
-
 
2863
   Dim dict_Iss_Id_to_Aff_Pkg
-
 
2864
   Dim i,j,k                     ' General loop vars
-
 
2865
   Dim s,strIn,strOut,sDisplay   ' General string vars
-
 
2866
   Dim a                         ' General array var
-
 
2867
   Dim pkgArr                    ' Holds an array of CSV strings listing RM package names, 1 array element per unique CQ issue found
-
 
2868
   Dim pkgCsv                    ' Holds a single CSV string listing RM package names, related to a single unique CQ issue
-
 
2869
   Dim pvIdArr                   ' Holds an array of CSV strings listing RM package PV IDs, 1 array element per unique CQ issue found
-
 
2870
   Dim pvIdCsv                   ' Holds a single CSV string listing RM package PV IDs, related to a single unique CQ issue
-
 
2871
   Dim crRefArr                  ' Holds an array of code review reference strings
-
 
2872
   Dim relDbPatchArr             ' Holds an array of related DB patch strings
-
 
2873
   Dim sqlTblCnt                 ' Counts the number of tables in the RM query string
-
 
2874
   Dim FSO                       ' File System Object
-
 
2875
   Dim NewTextFile               ' File Object
-
 
2876
   Dim emailReport               ' Boolean flag signalling email generation
-
 
2877
   Dim cqFilterStr               ' Fixed and/or Outstanding Issues Filter for RM Query
-
 
2878
   Dim cbWIPChecked              ' Default checkbox states
-
 
2879
   Dim cbPendingChecked
-
 
2880
   Dim cbReleasedChecked
-
 
2881
   Dim cbFixed
-
 
2882
   Dim cbOutstanding
-
 
2883
   Dim cbWithoutIssues
-
 
2884
   Dim cbTraverseRipples
-
 
2885
   Dim reObj                     ' regular expression object
-
 
2886
   Dim reObjMatch
-
 
2887
   Dim NumPkgsListed             ' Stats collection vars
-
 
2888
   Dim NumIssuesListed
-
 
2889
   Dim parRipDate                ' traverse ripple limit date
-
 
2890
   Dim lastNonRipplePvId         ' pv_id after ripple version traversal
-
 
2891
   Dim cqIssId                   ' clearquest database ID for a given issue (not a human readable number)
-
 
2892
 
-
 
2893
   Const Allow_All = TRUE
-
 
2894
   Const Disallow_All = FALSE
-
 
2895
 
-
 
2896
   NumPkgsListed = 0
-
 
2897
   NumIssuesListed = 0
-
 
2898
 
-
 
2899
   If NNproj_id = "" Then NNproj_id = -1
-
 
2900
   If NNrtag_id = "" Then NNrtag_id = -1
-
 
2901
 
-
 
2902
   If SSsection = "TITLE" Then
-
 
2903
      Response.write "Release DEVI Status"
-
 
2904
      Exit Sub
-
 
2905
   End If
-
 
2906
 
-
 
2907
   ' Determine if we have to assert default check status on one of the checkboxes
-
 
2908
   cbWIPChecked      = False
-
 
2909
   cbPendingChecked  = False
-
 
2910
   cbReleasedChecked = False
-
 
2911
   cbFixed           = False
-
 
2912
   cbOutstanding     = False
-
 
2913
   cbWithoutIssues   = False
-
 
2914
   cbTraverseRipples = False
-
 
2915
   If  (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) _
-
 
2916
   and (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) _
-
 
2917
   and (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then
-
 
2918
      cbWIPChecked = True
-
 
2919
   End If
-
 
2920
   If  (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) _
-
 
2921
   and (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
-
 
2922
      cbFixed = True
-
 
2923
   End If
-
 
2924
 
-
 
2925
   If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then
-
 
2926
      parRipDate = EuroDate(DateAdd("d",-31,Date))
-
 
2927
   Else
-
 
2928
      parRipDate = Request("FRripdate")
-
 
2929
   End If
-
 
2930
 
-
 
2931
   If SSsection = "FORM" Then
-
 
2932
      %>
-
 
2933
      <script language="JavaScript" src="images/calendar.js"></script>
-
 
2934
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2935
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
-
 
2936
            <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2937
               <tr>
-
 
2938
                  <td width="50%">
-
 
2939
                     <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2940
                        <tr>
-
 
2941
                           <td width="10%" align="left" valign="top" nowrap class="form_field">Project</td>
-
 
2942
                           <td width="90%" valign="top"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
-
 
2943
                        </tr>
-
 
2944
                        <tr>
-
 
2945
                           <td align="left" nowrap class="form_field">Release</td>
-
 
2946
                           <td><%Call Get_Open_Release_Labels ( NNproj_id,  NNrtag_id, Disallow_All )%></td>
-
 
2947
                        </tr>
-
 
2948
                        <tr><td colspan="2" height="130px"><img src="images/spacer.gif" width="1" height="1"></td></tr>
-
 
2949
                        <tr>
-
 
2950
                           <td>
-
 
2951
                              <input name="btn" type="submit" class="form_btn" value="Submit"            >
-
 
2952
                           </td>
-
 
2953
                           <td>
-
 
2954
                              <input name="btn" type="submit" class="form_btn" value="Mail Me CSV Report">
-
 
2955
                              <input type="hidden" name="group" value="<%=parGroup%>">
-
 
2956
                              <input type="hidden" name="repnum" value="<%=parRepNum%>">
-
 
2957
                              <input type="hidden" name="action" value="true">
-
 
2958
                           </td>
-
 
2959
                        </tr>
-
 
2960
                     </table>
-
 
2961
                  </td>
-
 
2962
                  <td width="50%">
-
 
2963
                     <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2964
                        <tr>
-
 
2965
                           <td width="60%" valign="top">
-
 
2966
                              <fieldset>
-
 
2967
                                 <legend><a href="javascript:;" class="body_scol" >Include&nbsp;Package&nbsp;Versions<%=Quick_Help("RepRDS_pv")%>&nbsp;</a></legend>
-
 
2968
                                 <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2969
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("25%", "CB_FILTER_WIP", "From Work-in-progress", cbWIPChecked)%></tr>
-
 
2970
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("17%", "CB_FILTER_PENDING", "From Pending", cbPendingChecked)%></tr>
-
 
2971
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("20%", "CB_FILTER_RELEASED", "From Released", cbReleasedChecked)%></tr>
-
 
2972
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_WITHOUT_ISSUES", "Without Issues", cbWithoutIssues)%></tr>
-
 
2973
                                 </table>
-
 
2974
                              </fieldset>
-
 
2975
                           </td>
-
 
2976
                           <td width="40%" valign="top">
-
 
2977
                              <fieldset>
-
 
2978
                                 <legend><a href="javascript:;" class="body_scol" >&nbsp;Include&nbsp;Issues<%=Quick_Help("RepRDS_iss")%>&nbsp;</a></legend>
-
 
2979
                                 <table width="100%" border="0" cellpadding="2" cellspacing="1">
-
 
2980
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_FIXED",       "Fixed", cbFixed)%></tr>
-
 
2981
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_OUTSTANDING", "Outstanding", cbOutstanding)%></tr>
-
 
2982
                                 </table>
-
 
2983
                              </fieldset>
-
 
2984
                           </td>
-
 
2985
                        </tr>
-
 
2986
                        <tr>
-
 
2987
                           <td width="60%" valign="top" colspan="2">
-
 
2988
                              <fieldset>
-
 
2989
                                 <legend><a href="javascript:;" class="body_scol" >&nbsp;From&nbsp;Released<%=Quick_Help("RepRDS_trav")%>&nbsp;</a></legend>
-
 
2990
                                 <table width="100%" border="0" cellpadding="0" cellspacing="0">
-
 
2991
                                    <tr>
-
 
2992
                                       <%=ReleaseDeviStatus_ReportCheckbox("60%", "CB_FILTER_TRAVERSE_RIPPLES", "Traverse Ripples as far back as", cbTraverseRipples)%>
-
 
2993
                                       <td>
-
 
2994
                                          <input type="text" name="FRripdate" maxlength="10" size="12" value="<%=parRipDate%>"><A onmouseover="window.status='Select a date';return true;" onmouseout="window.status='';return true;" href="javascript:show_calendar('repform.FRripdate',null,null,null);"><img src="images/i_calendar.gif" width="16" height="16" border="0"></a>
-
 
2995
                                       </td>
-
 
2996
                                    </tr>
-
 
2997
                                 </table>
-
 
2998
                              </fieldset>
-
 
2999
                           </td>
-
 
3000
                        </tr>
-
 
3001
                     </table>
-
 
3002
                  </td>
-
 
3003
               </tr>
-
 
3004
            </table>
-
 
3005
         </form>
-
 
3006
      </table>
-
 
3007
      <%
-
 
3008
      Exit Sub
-
 
3009
   End If
-
 
3010
 
-
 
3011
   If SSsection = "BODY" Then
-
 
3012
      emailReport = false
-
 
3013
      If Request("btn") = "Mail Me CSV Report" Then
-
 
3014
         emailReport = true
-
 
3015
      End If
-
 
3016
 
-
 
3017
      If NOT CBool(Request("action")) Then Exit Sub
-
 
3018
      If NNrtag_id = -1 then Exit Sub
-
 
3019
 
-
 
3020
      ' Construct Release Manager Query based upon form settings (rtag and checkbox states)
-
 
3021
      sqlTblCnt = 0
-
 
3022
      SQLstr = "SELECT * FROM ( "
-
 
3023
      If not (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) Then
-
 
3024
         sqlTblCnt = sqlTblCnt + 1
-
 
3025
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
-
 
3026
                           "        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"&_
-
 
3027
                           "   FROM PACKAGE_VERSIONS pv,"&_
-
 
3028
                           "        PACKAGES pk,"&_
-
 
3029
                           "        RELEASE_TAGS rt,"&_
-
 
3030
                           "        PROJECTS p,"&_
-
 
3031
                           "        VIEWS v," &_
-
 
3032
                           "        WORK_IN_PROGRESS wip"&_
-
 
3033
                           "  WHERE wip.RTAG_ID =   :RTAG_ID"&_
-
 
3034
                           "    AND wip.RTAG_ID = rt.RTAG_ID"&_
-
 
3035
                           "    AND wip.PV_ID   = pv.PV_ID"&_
-
 
3036
                           "    AND wip.VIEW_ID = v.VIEW_ID"&_
-
 
3037
                           "    AND pv.PKG_ID   = pk.PKG_ID"&_
-
 
3038
                           "    AND rt.PROJ_ID  = p.PROJ_ID"
-
 
3039
      End If
-
 
3040
 
-
 
3041
      If not (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) Then
-
 
3042
         If sqlTblCnt > 0 Then
-
 
3043
            SQLstr = SQLstr & " UNION ALL "
-
 
3044
         End If
-
 
3045
         sqlTblCnt = sqlTblCnt + 1
-
 
3046
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
-
 
3047
                           "        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"&_
-
 
3048
                           "   FROM PACKAGE_VERSIONS pv,"&_
-
 
3049
                           "        PACKAGES pk,"&_
-
 
3050
                           "        RELEASE_TAGS rt,"&_
-
 
3051
                           "        PROJECTS p,"&_
-
 
3052
                           "        VIEWS v," &_
-
 
3053
                           "        PLANNED pl"&_
-
 
3054
                           "  WHERE pl.RTAG_ID  =   :RTAG_ID"&_
-
 
3055
                           "    AND pl.RTAG_ID  = rt.RTAG_ID"&_
-
 
3056
                           "    AND pl.PV_ID    = pv.PV_ID"&_
-
 
3057
                           "    AND pl.VIEW_ID  = v.VIEW_ID"&_
-
 
3058
                           "    AND pv.PKG_ID   = pk.PKG_ID"&_
-
 
3059
                           "    AND rt.PROJ_ID  = p.PROJ_ID"
-
 
3060
      End If
-
 
3061
 
-
 
3062
      If not (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then
-
 
3063
         If sqlTblCnt > 0 Then
-
 
3064
            SQLstr = SQLstr & " UNION ALL "
-
 
3065
         End If
-
 
3066
         sqlTblCnt = sqlTblCnt + 1
-
 
3067
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
-
 
3068
                           "        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"&_
-
 
3069
                           "   FROM PACKAGE_VERSIONS pv,"&_
-
 
3070
                           "        PACKAGES pk,"&_
-
 
3071
                           "        RELEASE_TAGS rt,"&_
-
 
3072
                           "        PROJECTS p,"&_
-
 
3073
                           "        VIEWS v," &_
-
 
3074
                           "        RELEASE_CONTENT rc"&_
-
 
3075
                           "  WHERE rc.RTAG_ID      =   :RTAG_ID"&_
-
 
3076
                           "    AND rc.RTAG_ID      = rt.RTAG_ID"&_
-
 
3077
                           "    AND rc.PV_ID        = pv.PV_ID"&_
-
 
3078
                           "    AND rc.BASE_VIEW_ID = v.VIEW_ID"&_
-
 
3079
                           "    AND pv.PKG_ID       = pk.PKG_ID"&_
-
 
3080
                           "    AND rt.PROJ_ID      = p.PROJ_ID"
-
 
3081
      End If
-
 
3082
 
-
 
3083
      SQLstr = SQLstr & " )"
-
 
3084
      SQLstr = SQLstr & " ORDER BY UPPER(PKG_NAME), PKG_VERSION"
-
 
3085
 
-
 
3086
      ' Exit if nothing to do
-
 
3087
      If sqlTblCnt = 0 Then
-
 
3088
         Response.Write "Select one or more of Work-in-progress/Pending/Released package version states to be considered"
-
 
3089
         Exit Sub
-
 
3090
      End If
-
 
3091
 
-
 
3092
      ' Get SQL string for querying the CLEARQUEST database for this package version's fixed issues  enumISSUES_STATE_IMPORTED or enumISSUES_STATE_FIXED
-
 
3093
      cqFilterStr = GetCQIssuesListFilter()
-
 
3094
      If cqFilterStr = "" Then
-
 
3095
         Response.Write "Select one or both of Fixed/Outstanding issues lists to be considered"
-
 
3096
         Exit Sub
-
 
3097
      End If
-
 
3098
 
-
 
3099
      ' Create ADODB recordset for CLEARQUEST query
-
 
3100
      Set rsCQQry = Server.CreateObject("ADODB.Recordset")
-
 
3101
 
-
 
3102
      ' Query RELEASE MANAGER for Package versions
-
 
3103
      OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
-
 
3104
      Set rsRMQry = OraDatabase.DbCreateDynaset( SQLstr, cint(0))
-
 
3105
      OraDatabase.Parameters.Remove "RTAG_ID"
-
 
3106
 
-
 
3107
      ' If no records returned issue a message to user and exit
-
 
3108
      If rsRMQry.RecordCount = 0 Then
-
 
3109
         Response.Write "No records returned - try including additional package version states"
-
 
3110
         Exit Sub
-
 
3111
      End If
-
 
3112
 
-
 
3113
      ' Create a downloadable file
-
 
3114
      Set FSO = Server.CreateObject("Scripting.FileSystemObject")
-
 
3115
      Set NewTextFile = FSO.CreateTextFile(Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv"), true)
-
 
3116
 
-
 
3117
      ' Create some dictionaries
-
 
3118
      set dict_Iss_Id_to_Iss_Num      = CreateObject("Scripting.Dictionary")
-
 
3119
      set dict_Iss_Id_to_Iss_DB       = CreateObject("Scripting.Dictionary")
-
 
3120
      set dict_Iss_Id_to_Pkg          = CreateObject("Scripting.Dictionary")
-
 
3121
      set dict_Iss_Id_to_Risk         = CreateObject("Scripting.Dictionary")
-
 
3122
      set dict_Iss_Id_to_Summary      = CreateObject("Scripting.Dictionary")
-
 
3123
      set dict_Iss_Id_to_CodeRev      = CreateObject("Scripting.Dictionary")
-
 
3124
      set dict_Iss_Id_to_IntNotes     = CreateObject("Scripting.Dictionary")
-
 
3125
      set dict_Iss_Id_to_RelDBPatches = CreateObject("Scripting.Dictionary")
-
 
3126
      set dict_Iss_Id_to_PvId         = CreateObject("Scripting.Dictionary")
-
 
3127
      set dict_Iss_Id_to_Iss_Status   = CreateObject("Scripting.Dictionary")
-
 
3128
      set dict_Iss_Id_to_Iss_Type     = CreateObject("Scripting.Dictionary")
-
 
3129
      set dict_Iss_Id_to_Aff_Pkg      = CreateObject("Scripting.Dictionary")
-
 
3130
 
-
 
3131
      set reObj  = new RegExp
-
 
3132
 
-
 
3133
      NewTextFile.WriteLine(DoubleQuotes("Release DEVI Status Report for " & Get_Proj_Name(Request("FRproj_id")) & ", release " & Get_Release_Name(Request("FRrtag_id"))))
-
 
3134
      NewTextFile.WriteLine("")
-
 
3135
      NewTextFile.WriteLine("Package DEVI List")
-
 
3136
      NewTextFile.WriteLine("")
-
 
3137
      NewTextFile.WriteLine("""Package"",""Label"",""State"",""Issue Number"",""Issue Summary""")
-
 
3138
      %>
-
 
3139
      <H3>Release DEVI Status Report for
-
 
3140
      &nbsp;project&nbsp;<a href="rtree.asp?proj_id=<%=NNproj_id%>" class="txt_linked"><%=Get_Proj_Name(Request("FRproj_id"))%></a>,
-
 
3141
      &nbsp;release&nbsp;<a href="dependencies.asp?rtag_id=<%=NNrtag_id%>" class="txt_linked"><%=Get_Release_Name(Request("FRrtag_id"))%></a>
-
 
3142
      </H3>
-
 
3143
      <H4>Contents</H4>
-
 
3144
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
-
 
3145
         <tr>
-
 
3146
            <td valign="top" nowrap width="15%"><a href="#C1">Package DEVI List</a></td>
-
 
3147
            <td valign="top" width="85%">This contains the list of package versions in the release, along with the CLEARQUEST issues assigned to them.</td>
-
 
3148
         </tr>
-
 
3149
         <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
-
 
3150
         <tr>
-
 
3151
            <td valign="top"><a href="#C2">DEVI Details List</a></td>
-
 
3152
            <td valign="top">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.</td>
-
 
3153
         </tr>
-
 
3154
         <tr>
-
 
3155
            <td valign="top"><a href="#C3">Statistics</a></td>
-
 
3156
            <td valign="top">This contains some statistics collected during the report generation.</td>
-
 
3157
         </tr>
-
 
3158
         <tr>
-
 
3159
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3160
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3161
         </tr>
-
 
3162
      </table>
-
 
3163
 
-
 
3164
      <H5><a name="C1">Package DEVI List</a></H5>
-
 
3165
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
-
 
3166
         <tr>
-
 
3167
            <td width="10%" nowrap class="body_colb">Package&nbsp;&nbsp;&nbsp;</td>
-
 
3168
            <td width="10%" nowrap class="body_colb">Label&nbsp;&nbsp;&nbsp;</td>
-
 
3169
            <td width="10%" nowrap class="body_colb">State&nbsp;&nbsp;&nbsp;</td>
-
 
3170
            <td width="10%" class="body_colb">Issue Number<br>(F)=Fixed<br>(O)=Outstanding</td>
-
 
3171
            <td width="60%" nowrap class="body_colb">Issue Summary&nbsp;&nbsp;&nbsp;</td>
-
 
3172
         </tr>
-
 
3173
         <tr>
-
 
3174
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3175
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3176
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3177
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3178
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3179
         </tr>
-
 
3180
         <%
-
 
3181
         while ((NOT rsRMQry.BOF) AND (NOT rsRMQry.EOF))
-
 
3182
            isFirstDeviRow = 1
-
 
3183
            isRowOpen = 1
-
 
3184
 
-
 
3185
            ' If this package version is a ripple, try and find its non-ripple predecessor in order to get at the
-
 
3186
            ' issues that were addressed
-
 
3187
            lastNonRipplePvId = rsRMQry("PV_ID")
-
 
3188
            If not (IsNull(Request("CB_FILTER_TRAVERSE_RIPPLES")) OR (Request("CB_FILTER_TRAVERSE_RIPPLES") = "")) Then
-
 
3189
               if ((rsRMQry("BUILD_TYPE") = "Y") and (rsRMQry("DLOCKED") = "Y")) Then
-
 
3190
                  If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then
-
 
3191
                     lastNonRipplePvId = getLastNonRippleVersionPVID(rsRMQry("PV_ID"))
-
 
3192
                  Else
-
 
3193
                     lastNonRipplePvId = getLastNonRippleVersionPVIDLimitedByDate(rsRMQry("PV_ID"), Request("FRripdate"))
-
 
3194
                  End If
-
 
3195
                  If IsNull(lastNonRipplePvId) or (lastNonRipplePvId = "") Then
-
 
3196
                     lastNonRipplePvId = rsRMQry("PV_ID")
-
 
3197
                  End If
-
 
3198
               End If
-
 
3199
            End If
-
 
3200
 
-
 
3201
            issueCnt = Get_Package_Issues (lastNonRipplePvId, SQLstr, NULL, NULL, cqFilterStr )
-
 
3202
            if (issueCnt > 0) _
-
 
3203
            or not(IsNull(Request("CB_FILTER_WITHOUT_ISSUES")) OR (Request("CB_FILTER_WITHOUT_ISSUES") = "")) Then
-
 
3204
 
-
 
3205
               NumPkgsListed = NumPkgsListed + 1
-
 
3206
 
-
 
3207
               %>
-
 
3208
               <tr>
-
 
3209
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3210
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3211
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3212
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3213
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3214
               </tr>
-
 
3215
               <%
-
 
3216
 
-
 
3217
               NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_NAME")) & ",")
-
 
3218
               NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_LABEL")) & ",")
-
 
3219
               NewTextFile.Write(DoubleQuotes(rsRMQry("STATE")) & ",")
-
 
3220
               %>
-
 
3221
               <tr>
-
 
3222
               <td valign="top"><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=rsRMQRy("PV_ID")%>" class="txt_linked"><%=rsRMQry("PKG_NAME")%></a></td>
-
 
3223
               <td valign="top"><%=rsRMQry("PKG_LABEL")%></td>
-
 
3224
               <td valign="top"><%=rsRMQry("STATE")%></td>
-
 
3225
               <%
-
 
3226
 
-
 
3227
               ' Complete the row immediately if this package version has no issues, else process the issues.
-
 
3228
               if issueCnt = 0 Then
-
 
3229
                  NewTextFile.WriteLine(",")
-
 
3230
                  %>
-
 
3231
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3232
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3233
                  </tr>
-
 
3234
                  <%
-
 
3235
                  isRowOpen = 0
-
 
3236
               Else
-
 
3237
                  ' Query the CLEARQUEST database
-
 
3238
                  retVal = Get_CQ_Issues ( SQLstr, rsCQQry )
-
 
3239
                  If retVal = 0 Then
-
 
3240
                     While ((NOT rsCQQry.BOF) AND (NOT rsCQQry.EOF))
-
 
3241
                        Dim issueNumber
-
 
3242
                        issueNumber = rsCQQry("ISS_NUM") & GetRMIssueState (lastNonRipplePvId, rsCQQry("ISS_ID"))
-
 
3243
 
-
 
3244
                        ' Keep dictionary of issue IDs to human readable issue numbers, plus other info we will need later on for the report
-
 
3245
                        If not dict_Iss_Id_to_Iss_Num.Exists(CStr(rsCQQry("ISS_ID"))) Then
-
 
3246
                           sdAdd dict_Iss_Id_to_Iss_Num,      rsCQQry("ISS_ID"), issueNumber
-
 
3247
                           sdAdd dict_Iss_Id_to_Iss_DB,       rsCQQry("ISS_ID"), rsCQQry("ISS_DB")
-
 
3248
                           sdAdd dict_Iss_Id_to_Risk,         rsCQQry("ISS_ID"), rsCQQry("RISK")
-
 
3249
                           sdAdd dict_Iss_Id_to_Summary,      rsCQQry("ISS_ID"), rsCQQry("SUMMARY")
-
 
3250
                           sdAdd dict_Iss_Id_to_CodeRev,      rsCQQry("ISS_ID"), rsCQQry("CR_REF")
-
 
3251
                           sdAdd dict_Iss_Id_to_IntNotes,     rsCQQry("ISS_ID"), rsCQQry("INT_NOTES")
-
 
3252
                           sdAdd dict_Iss_Id_to_RelDBPatches, rsCQQry("ISS_ID"), rsCQQry("DB_PATCHES")
-
 
3253
                           sdAdd dict_Iss_Id_to_Iss_Type,     rsCQQry("ISS_ID"), rsCQQry("ISSUE_TYPE")
-
 
3254
                           sdAdd dict_Iss_Id_to_Iss_Status,   rsCQQry("ISS_ID"), rsCQQry("STATUS")
-
 
3255
                           sdAdd dict_Iss_Id_to_Aff_Pkg,      rsCQQry("ISS_ID"), rsCQQry("AFFECTED_PACKAGES")
-
 
3256
                        End If
-
 
3257
 
-
 
3258
                        ' Keep dictionary of issue IDs to release manager package names (latter is a comma separated list)
-
 
3259
                        If dict_Iss_Id_to_Pkg.Exists(CStr(rsCQQry("ISS_ID"))) Then
-
 
3260
                           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"))
-
 
3261
                        Else
-
 
3262
                           sdAdd dict_Iss_Id_to_Pkg, rsCQQry("ISS_ID"), rsRMQry("PKG_NAME") & " " & CStr(rsRMQry("PKG_VERSION"))
-
 
3263
                        End If
-
 
3264
 
-
 
3265
                        ' Keep dictionary of issue IDs to release manager package version IDs (latter is a comma separated list)
-
 
3266
                        If dict_Iss_Id_to_PvId.Exists(CStr(rsCQQry("ISS_ID"))) Then
-
 
3267
                           dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) = dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) & "," & CStr(rsRMQry("PV_ID"))
-
 
3268
                        Else
-
 
3269
                           sdAdd dict_Iss_Id_to_PvId, rsCQQry("ISS_ID"), rsRMQry("PV_ID")
-
 
3270
                        End If
-
 
3271
 
-
 
3272
                        ' Begin new row if needed
-
 
3273
                        if isRowOpen = 0 Then
-
 
3274
                           isRowOpen = 1
-
 
3275
                           %><tr><%
-
 
3276
                        End If
-
 
3277
 
-
 
3278
                        ' If first row, no need to pad since those columns have already been filled in outer loop
-
 
3279
                        If isFirstDeviRow = 1 Then
-
 
3280
                           isFirstDeviRow = 0
-
 
3281
                           NewTextFile.Write(DoubleQuotes(issueNumber) & ",")
-
 
3282
                           NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY")))
-
 
3283
                           %>
-
 
3284
                           <td valign="top"><a class="txt_linked"  href="#<%=rsCQQry("ISS_ID")%>"><%=issueNumber%></a></td>
-
 
3285
                           <td valign="top"><%=rsCQQry("SUMMARY")%></td>
-
 
3286
                           <%
-
 
3287
                        Else
-
 
3288
                           NewTextFile.Write(",,," & DoubleQuotes(issueNumber) & ",")
-
 
3289
                           NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY")))
-
 
3290
                           %>
-
 
3291
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3292
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3293
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3294
                           <td valign="top"><a class="txt_linked" href="#<%=rsCQQry("ISS_ID")%>"><%=issueNumber%></a></td>
-
 
3295
                           <td valign="top"><%=rsCQQry("SUMMARY")%></td>
-
 
3296
                           <%
-
 
3297
                        End If
-
 
3298
 
-
 
3299
                        ' End this row
-
 
3300
                        isRowOpen = 0
-
 
3301
                        %></tr><%
-
 
3302
                        rsCQQry.MoveNext
-
 
3303
                     Wend  ' end of loop processing each issue
-
 
3304
                     rsCQQry.Close
-
 
3305
                  Else
-
 
3306
                     NewTextFile.WriteLine("," & DoubleQuotes("ERROR - could not get issue details from CLEARQUEST"))
-
 
3307
                     %>
-
 
3308
                     <td><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3309
                     <td>ERROR - could not get issue details from CLEARQUEST</td>
-
 
3310
                     <%
-
 
3311
                  End If
-
 
3312
 
-
 
3313
                  ' Complete the row if needed
-
 
3314
                  if isRowOpen = 1 Then
-
 
3315
                     if (isFirstDeviRow = 1) Then
-
 
3316
                        NewTextFile.WriteLine(",")
-
 
3317
                        %>
-
 
3318
                        <td><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3319
                        <td><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3320
                        <%
-
 
3321
                     End If
-
 
3322
                     isRowOpen = 0
-
 
3323
                     %></tr><%
-
 
3324
                  End If
-
 
3325
               End If
-
 
3326
            End If
-
 
3327
            rsRMQry.MoveNext
-
 
3328
         Wend  ' End of loop processing each package version
-
 
3329
         set rsCQQry = nothing
-
 
3330
         %>
-
 
3331
         <tr>
-
 
3332
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3333
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3334
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3335
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3336
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3337
         </tr>
-
 
3338
      </table>
-
 
3339
 
-
 
3340
      <%
-
 
3341
      NewTextFile.WriteLine("")
-
 
3342
      NewTextFile.WriteLine("DEVI Details List")
-
 
3343
      NewTextFile.WriteLine("")
-
 
3344
      NewTextFile.WriteLine("""Issue Number"",""Property"",""Details""")
-
 
3345
      %>
-
 
3346
 
-
 
3347
      <H5><a name="C2">DEVI Details List</a></H5>
-
 
3348
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
-
 
3349
         <tr>
-
 
3350
            <td width="10%" nowrap class="body_colb">Issue Number&nbsp;&nbsp;&nbsp;</td>
-
 
3351
            <td width="20%" nowrap class="body_colb">Property&nbsp;&nbsp;&nbsp;</td>
-
 
3352
            <td width="70%" nowrap class="body_colb">Details&nbsp;&nbsp;&nbsp;</td>
-
 
3353
         </tr>
-
 
3354
         <tr>
-
 
3355
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3356
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3357
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3358
         </tr>
-
 
3359
         <%
-
 
3360
         For i = 0 To (dict_Iss_Id_to_Iss_Num.Count - 1)
-
 
3361
 
-
 
3362
            cqIssId = sdKey(dict_Iss_Id_to_Iss_Num, i)
-
 
3363
 
-
 
3364
            NumIssuesListed = NumIssuesListed + 1
-
 
3365
            %>
-
 
3366
            <tr>
-
 
3367
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3368
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3369
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3370
            </tr>
-
 
3371
            <%
-
 
3372
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3373
            ' First line is the DEVI Number, and its summary info
-
 
3374
            s = sdItem(dict_Iss_Id_to_Summary,i)   ' Prepare for CSV
-
 
3375
            s = Replace(s,"""","""""")
-
 
3376
            NewTextFile.WriteLine(DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Num,i)) & ",Issue Summary," & DoubleQuotes(s))
-
 
3377
            s = sdItem(dict_Iss_Id_to_Summary,i)   ' Prepare for HTML
-
 
3378
            s = NewLine_To_BR(To_HTML(s))
-
 
3379
            %>
-
 
3380
            <tr>
-
 
3381
            <td valign="top"><a name="<%=cqIssId%>" class="txt_linked" onclick="MM_openBrWindow('_wform_issues_details.asp?iss_db=<%=sdItem(dict_Iss_Id_to_Iss_DB,i)%>&iss_id=<%=sdKey(dict_Iss_Id_to_Iss_Num,i)%>','IssueDetails','resizeable=yes,width=580,height=500')" href="javascript:;"><%=sdItem(dict_Iss_Id_to_Iss_Num,i)%></a></td>
-
 
3382
            <td valign="top">Issue Summary:</td>
-
 
3383
            <td valign="top"><%=s%></td>
-
 
3384
            </tr><%
-
 
3385
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3386
            ' Next line is the DEVI Type Value (ie Defect, Future Enhancement, etc)
-
 
3387
            NewTextFile.WriteLine(",Type," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Type,i)))
-
 
3388
            %>
-
 
3389
            <tr>
-
 
3390
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3391
            <td valign="top">Type:</td>
-
 
3392
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Iss_Type, i)%></td>
-
 
3393
            </tr>
-
 
3394
            <%
-
 
3395
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3396
            ' Next line is the DEVI Status Value
-
 
3397
            NewTextFile.WriteLine(",Status," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Status,i)))
-
 
3398
            %>
-
 
3399
            <tr>
-
 
3400
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3401
            <td valign="top">Status:</td>
-
 
3402
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Iss_Status, i)%></td>
-
 
3403
            </tr>
-
 
3404
            <%
-
 
3405
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3406
            ' Next line is the DEVI Risk Value
-
 
3407
            NewTextFile.WriteLine(",Risk," & DoubleQuotes(sdItem(dict_Iss_Id_to_Risk,i)))
-
 
3408
            %>
-
 
3409
            <tr>
-
 
3410
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3411
            <td valign="top">Risk:</td>
-
 
3412
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Risk, i)%></td>
-
 
3413
            </tr>
-
 
3414
            <%
-
 
3415
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3416
            ' Next line is the DEVI's code review reference
-
 
3417
            a = dict_Iss_Id_to_CodeRev.Items  ' Get collection into an array
-
 
3418
            s = a(i)                          ' Get array element into a string
-
 
3419
            s = Replace(s, chr(13), "+")      ' Replace possible delimiters with a single delimiter ("+")
-
 
3420
            s = Replace(s, chr(10), "+")
-
 
3421
            s = Replace(s, " ", "+")
-
 
3422
            crRefArr = Split(s,"+")           ' Split on our contrived delimiter and iterate through results
-
 
3423
 
-
 
3424
            NewTextFile.Write(",Code Review Ref,""")
-
 
3425
            %>
-
 
3426
            <tr>
-
 
3427
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3428
            <td valign="top">Code Review Ref:</td>
-
 
3429
            <td valign="top">
-
 
3430
            <%
-
 
3431
            For j = 0 To UBOUND(crRefArr)
-
 
3432
               if not ((crRefArr(j) = "+") or (crRefArr(j) = ",") or (Trim(crRefArr(j)) = "")) Then
-
 
3433
                  if j = 0 Then
-
 
3434
                     NewTextFile.Write(Trim(crRefArr(j)))
-
 
3435
                     %>
-
 
3436
                     <a href="<%=Trim(crRefArr(j))%>" class="txt_linked"><%=Trim(crRefArr(j))%></a>
-
 
3437
                     <%
-
 
3438
                  Else
-
 
3439
                     NewTextFile.Write("," & Trim(crRefArr(j)))
-
 
3440
                     %>
-
 
3441
                     <a href="<%=Trim(crRefArr(j))%>" class="txt_linked"><br><%=Trim(crRefArr(j))%></a>
-
 
3442
                     <%
-
 
3443
                  End If
-
 
3444
               End If
-
 
3445
            Next
-
 
3446
            NewTextFile.WriteLine("""")
-
 
3447
            %>
-
 
3448
            </td>
-
 
3449
            </tr>
-
 
3450
            <%
-
 
3451
 
-
 
3452
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3453
            ' Next line is the DEVI's related DB Patches
-
 
3454
            '  This is quite complicated but at the end of the day, we are aiming to convert the free form text in
-
 
3455
            '  the CLEARQUEST devi into a list of hyperlinks to the actual package versions in RM, based on the assumption
-
 
3456
            '  that the free form text contains PV_ID numbers somewhere therein.
-
 
3457
            a = dict_Iss_Id_to_RelDBPatches.Items  ' Get collection into an array
-
 
3458
            s = a(i)                               ' Get array element into a string
-
 
3459
            s = Replace(s, chr(13), "+")           ' Replace possible delimiters with a single delimiter ("+")
-
 
3460
            s = Replace(s, chr(10), "+")
-
 
3461
            s = Replace(s, " ", "+")
-
 
3462
            relDbPatchArr = Split(s,"+")           ' Split on our contrived delimiter and iterate through results
-
 
3463
 
-
 
3464
            NewTextFile.Write(",Related DB Patches,""")
-
 
3465
            %>
-
 
3466
            <tr>
-
 
3467
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3468
            <td valign="top">Related DB Patches:</td>
-
 
3469
            <td valign="top">
-
 
3470
            <%
-
 
3471
            For j = 0 To UBOUND(relDbPatchArr)
-
 
3472
               if not ((relDbPatchArr(j) = "+") or (relDbPatchArr(j) = ",") or (Trim(relDbPatchArr(j)) = "")) Then
-
 
3473
                  ' Given that the Related DB Patches is a free form text field in a CLEARQUEST DEVI,
-
 
3474
                  ' it can contain a variety of text. Normally it contains a list of PV_ID's but it
-
 
3475
                  ' can also contain the patch file names (eg. orahops.467229_patch.xml) which normally
-
 
3476
                  ' contains PV_IDs embedded within them. We have to cater for both approaches and
-
 
3477
                  ' somehow extract those PV_IDs. We have already split the string so we know we are
-
 
3478
                  ' now dealing with a single item, but sometimes users name their packages or files with
-
 
3479
                  ' numbers as well as letters. The code below looks for the longest numeric sequence
-
 
3480
                  ' and assumes that is the PV_ID
-
 
3481
                  Dim lenMax,lenThis,objMatch
-
 
3482
                  lenMax  = 0
-
 
3483
                  lenThis = 0
-
 
3484
 
-
 
3485
                  sDisplay = Trim(relDbPatchArr(j))   'default
-
 
3486
 
-
 
3487
                  ' search for numeric sequences in the string
-
 
3488
                  reObj.IgnoreCase = True
-
 
3489
                  reObj.Global = True
-
 
3490
                  reObj.Pattern = "[0-9]+"
-
 
3491
                  set reObjMatch = reObj.Execute(Trim(relDbPatchArr(j)))
-
 
3492
                  If reObjMatch.Count > 0 Then
-
 
3493
                     ' Look for the longest numeric sequence
-
 
3494
                     for each objMatch in reObjMatch
-
 
3495
                        lenThis = objMatch.Length
-
 
3496
                        If lenThis > lenMax Then
-
 
3497
                           lenMax = lenThis
-
 
3498
                           sDisplay = objMatch  'sDisplay is now a numeric sequence
-
 
3499
                        End If
-
 
3500
                     next
-
 
3501
                     if (lenMax > 0) Then
-
 
3502
                        ' Form the display string as "PV_ID (package-name package-version)"
-
 
3503
                        If GetPkgNameAndVersion(sDisplay, s) Then
-
 
3504
                           sDisplay = sDisplay & " (" & s & ")"
-
 
3505
                        Else
-
 
3506
                           ' Couldn't get the package name/version from RM so it is likely this number
-
 
3507
                           ' is not a true/real PV_ID so revert to the simpler display format we began with
-
 
3508
                           ' as a default.
-
 
3509
                           sDisplay = Trim(relDbPatchArr(j))   'reset to full string
-
 
3510
                           lenMax = 0                          'zero to force simpler display format in HTML
-
 
3511
                        End If
-
 
3512
                     End If
-
 
3513
                  End If
-
 
3514
 
-
 
3515
                  if j = 0 Then
-
 
3516
                     NewTextFile.Write(Trim(sDisplay))
-
 
3517
                     If (lenMax = 0) Then
-
 
3518
                        %><%=Trim(relDbPatchArr(j))%><%
-
 
3519
                     Else
-
 
3520
                        %><a href="dependencies.asp?pv_id=<%=Trim(relDbPatchArr(j))%>" class="txt_linked"><%=sDisplay%></a><%
-
 
3521
                     End If
-
 
3522
                  Else
-
 
3523
                     NewTextFile.Write("," & Trim(sDisplay))
-
 
3524
                     If (lenMax = 0) Then
-
 
3525
                        %><%=Trim(relDbPatchArr(j))%><%
-
 
3526
                     Else
-
 
3527
                        %><a href="dependencies.asp?pv_id=<%=Trim(relDbPatchArr(j))%>" class="txt_linked"><br><%=sDisplay%></a><%
-
 
3528
                     End If
-
 
3529
                  End If
-
 
3530
               End If
-
 
3531
            Next
-
 
3532
            NewTextFile.WriteLine("""")
-
 
3533
            %>
-
 
3534
            </td>
-
 
3535
            </tr>
-
 
3536
            <%
-
 
3537
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3538
            ' Next line is the DEVI's affected packages field
-
 
3539
            s = sdItem(dict_Iss_Id_to_Aff_Pkg,i)   ' Prepare for CSV
-
 
3540
            s = Replace(s,"""","""""")
-
 
3541
            NewTextFile.WriteLine(",Affected Packages," & DoubleQuotes(s))
-
 
3542
            s = sdItem(dict_Iss_Id_to_Aff_Pkg,i)   ' Prepare for HTML
-
 
3543
            s = NewLine_To_BR(To_HTML(s))
-
 
3544
            %>
-
 
3545
            <tr>
-
 
3546
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3547
            <td valign="top">Affected Packages:</td>
-
 
3548
            <td valign="top"><%=s %></td>
-
 
3549
            </tr>
-
 
3550
            <%
-
 
3551
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3552
            ' Next line(s) is/are the packages this DEVI is assigned to, in release manager
-
 
3553
            pkgArr = dict_Iss_Id_to_Pkg.Items
-
 
3554
            pkgCsv = pkgArr(i)
-
 
3555
            pkgArr = Split(pkgCsv, ",")
-
 
3556
 
-
 
3557
            pvIdArr = dict_Iss_Id_to_PvId.Items
-
 
3558
            pvIdCsv = pvIdArr(i)
-
 
3559
            pvIdArr = Split(pvIdCsv, ",")
-
 
3560
 
-
 
3561
            NewTextFile.Write(",RM Assigned Packages,""")
-
 
3562
            %>
-
 
3563
            <tr>
-
 
3564
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3565
            <td valign="top">RM Assigned Packages:</td>
-
 
3566
            <td valign="top">
-
 
3567
            <%
-
 
3568
            For j = 0 To UBOUND(pkgArr)
-
 
3569
               If j = 0 Then
-
 
3570
                  NewTextFile.Write(pkgArr(j))
-
 
3571
                  %><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=pvIdArr(j)%>" class="txt_linked"><%=pkgArr(j)%></a><%
-
 
3572
               Else
-
 
3573
                  NewTextFile.Write("," & pkgArr(j))
-
 
3574
                  %><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=pvIdArr(j)%>" class="txt_linked"><br><%=pkgArr(j)%></a><%
-
 
3575
               End If
-
 
3576
            Next
-
 
3577
            NewTextFile.WriteLine("""")
-
 
3578
            %>
-
 
3579
            </td>
-
 
3580
            </tr>
-
 
3581
            <%
-
 
3582
            '-------------------------------------------------------------------------------------------------------------------------------
-
 
3583
            ' Next line is the DEVI's integration notes
-
 
3584
            s = sdItem(dict_Iss_Id_to_IntNotes, i) 'Prepare for CSV
-
 
3585
            s = Replace(s,"""","""""")
-
 
3586
            NewTextFile.WriteLine(",Integration Notes," & DoubleQuotes(s))
-
 
3587
 
-
 
3588
            s = sdItem(dict_Iss_Id_to_IntNotes, i) ' Prepare for HTML
-
 
3589
            s = NewLine_To_BR(To_HTML(s))
-
 
3590
            %>
-
 
3591
            <tr>
-
 
3592
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3593
            <td valign="top">Integration Notes:</td>
-
 
3594
            <td valign="top"><%=s %>
-
 
3595
            </td>
-
 
3596
            </tr>
-
 
3597
            <%
-
 
3598
         Next
-
 
3599
         %>
-
 
3600
         <tr>
-
 
3601
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3602
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3603
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
-
 
3604
         </tr>
-
 
3605
      </table>
-
 
3606
      <H5><a name="C3">Statistics</a></H5>
-
 
3607
      Report&nbsp;generated on&nbsp;<%=EuroDate(Date)%>&nbsp;at&nbsp;<%=Time%><BR>
-
 
3608
      <%=NumPkgsListed %>&nbsp;Package(s)&nbsp;Listed<BR>
-
 
3609
      <%=NumIssuesListed  %>&nbsp;Issue(s)&nbsp;Listed<BR>
-
 
3610
      <!-- PRINT, SAVE, ETC. ------------>
-
 
3611
      <%If parPrint = "" Then%>
-
 
3612
         <br>
-
 
3613
         <br>
-
 
3614
         <a href="javascript:;" onClick="window.print();" class="txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</a><br>
-
 
3615
         <br>
-
 
3616
      <%End If%>
-
 
3617
      <%
-
 
3618
      ' Clean up
-
 
3619
      rsRMQry.Close
-
 
3620
      set rsRMQry = nothing
-
 
3621
      set dict_Iss_Id_to_Iss_Num      = nothing
-
 
3622
      set dict_Iss_Id_to_Iss_DB       = nothing
-
 
3623
      set dict_Iss_Id_to_Pkg          = nothing
-
 
3624
      set dict_Iss_Id_to_Risk         = nothing
-
 
3625
      set dict_Iss_Id_to_Summary      = nothing
-
 
3626
      set dict_Iss_Id_to_CodeRev      = nothing
-
 
3627
      set dict_Iss_Id_to_IntNotes     = nothing
-
 
3628
      set dict_Iss_Id_to_RelDBPatches = nothing
-
 
3629
      set dict_Iss_Id_to_PvId         = nothing
-
 
3630
      set dict_Iss_Id_to_Iss_Status   = nothing
-
 
3631
      set dict_Iss_Id_to_Iss_Type     = nothing
-
 
3632
      set dict_Iss_Id_to_Aff_Pkg      = nothing
-
 
3633
      set reObj                       = nothing
-
 
3634
 
-
 
3635
      NewTextFile.Close
-
 
3636
      Set NewTextFile=Nothing
-
 
3637
 
-
 
3638
      ' EMAIL CSV report if user has requested it
-
 
3639
      If emailReport Then
-
 
3640
         Dim myMail, LocalPath
-
 
3641
         Set myMail=Server.CreateObject("Persits.MailSender")
-
 
3642
         LocalPath = Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv")
-
 
3643
         myMail.Host = SMTP_HOST
-
 
3644
         myMail.Subject="Release DEVI Status Report (csv) from Release Manager"
-
 
3645
         myMail.From=ADMIN_EMAIL
-
 
3646
         myMail.AddAddress objAccessControl.UserEmail
-
 
3647
         ' Attach the file
-
 
3648
         myMail.AddAttachment LocalPath
-
 
3649
         myMail.Body = "Your requested report..."
-
 
3650
         myMail.Send
-
 
3651
         set myMail=nothing
-
 
3652
      End If
-
 
3653
   End If
-
 
3654
End Sub
-
 
3655
%>