OTA - ALM 11.52 - Building Graphs through OTA

别来无恙 提交于 2019-12-11 13:13:56

问题


I am trying to create reports in the 'Analysis View' using OTA and HP ALM 11.52. I've searched the OTA Reference Documentation and looked for samples online and I've found a few samples, but none seem to work.

There seem to be three methods utilised:

TDConnection.GraphBuilder.BuildGraph(GraphDefinition)

TDConnection.testFactory.BuildSummaryGraph("TS_STATUS", "TS_STATUS", "", 0, myFilter, False, False)

and a third method involving an AnalysisItemFactory object that I can't find anywhere in the OTA documentation.

I've tried the first two and they seem to run without triggering an error, however, no graph appears in ALM.

Is there a difference between these methods and which is the cleanest method?

Here are my attempts so far:

        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        'Method 1: GraphBuilder

        'Set GB = QCConnection.GraphBuilder

        'Set G1 = GB.CreateGraphDefinition(2, 0)
        'G1.Property(0) = "TS_NAME"
        'G1.Property(1) = "TC_STATUS"
        'Set tsf = QCConnection.TestSetFactory
        'Set myFilter = tsf.Filter
        'myFilter.Filter ("TC_STATUS") = "Not(N/A)"
        'G1.Filter = "Filter: Status[Not N/A]"
        'Set g = GB.BuildGraph(G1)

        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        'Method 2: BuildSummaryGraph            

        'Dim testF
        'Dim graph1
        'Dim Filter

        'Set testF = QCConnection.testFactory

        'Set myFilter = testF.Filter
        'myFilter.Filter("TS_STATUS") = "Not(N/A)"

        'Set graph1 = _
        'testF.BuildSummaryGraph("TC_NAME", "TS_STATUS", "", 0, myFilter, False, False)

        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        'Method 3: AnalysisItemsFactory? I can't find any documentation on this object, yet I've seen it referenced in other code samples.

        'Set aiFolderFact = QCConnection.AnalysisItemFolderFactory
        'Set aiFact = QCConnection.AnalysisItemFactory ~~~ This line actually runs fine so I know it at least exists. But I am definitely not using the proper methods below.

        'Set G1 = aiFact.AddItem("")
        'G1.Field("AI_PARENT_ID") = 1001 'Public
        'G1.Field("AI_TYPE") = "Graph"
        'G1.Field("AI_SUB_TYPE") = "Progress Graph"
        'G1.Field("AI_OWNER") = qcUserName.Value
        'G1.Field("AI_MODULE") = "requirement"
        'G1.Field("AI_NAME") = "test graph"

        'G1.Post

As I mentioned previously, all of these scripts run error free, but I see no graph in the Analysis View. I've also noticed that there seem to be no "Name" or "Path" fields.

I've taken a look at the tables, and there seems to be 'Analysis_Item_Folder' and 'Analysis Items' tables so It's know it's possible to do this through the OTA client. Is there an AnalysisItemFactory and could someone please kindly provide a sample script of what i'm looking for? Thanks


回答1:


I was able to generate a report with the help of this HP ALM forum entry. As in the forum mentioned it is not an official documented feature of HP ALM. Therefore it can be that in the future it won't work without replacement. Please keep that in mind.

In case the forum entry may get deleted I copied the answer by a user called "delarosa62" here (date of copy 2015/9/8):

Hi MichaelMotes and the rest of the community members.

I developed a VBA code to generate dashboard standard reports automatically. I get the "successfull exception" you have mentioned. However my report does not get generated in my hard disk.

I don´t get any errors. I have adapted your Visial Basic Code to VBA using OTA. I have the otareport 1.0 Type Library and otaxml type lib registered in the tools/reference option in the VBA module window.

I am pasting my code below hoping you guys can give me some insight on this. I am not getting any errors. Just the exception which includes a successfull completion message. Thanks in Advanced

Sub externalSTDReports()

    Dim reqFact  
    Dim reqFilter  
    Dim reqList      
    Dim gTDConn As Object  

    Set gTDConn = CreateObject("TDApiOle80.TDConnection")

    'QC Connection data    

    login_id = ActiveWorkbook.Sheets("CONFIG").Cells(9, 3).value  
    login_passwd = ActiveWorkbook.Sheets("CONFIG").Cells(10, 3).value  
    domain_name = ActiveWorkbook.Sheets("CONFIG").Cells(11, 3).value  
    project_name = ActiveWorkbook.Sheets("CONFIG").Cells(12, 3).value  
    server_name = ActiveWorkbook.Sheets("CONFIG").Cells(13, 3).value            

    gTDConn.InitConnectionEx server_name      
    gTDConn.login login_id, login_passwd      
    gTDConn.Connect domain_name, project_name

    Set Rep = New OTAREPORTLib.Reporter            
    Call Rep.SetConnection(gTDConn, 0)     ' This line  doesn´t return errors. But I don´t know if it is correct                      
    Set RepConf = Rep.ReportConfig                        
    Rep.File = "C:\Users\cris\AppData\Local\Temp\TD_80\4c223b57\Reports\std.html"            
    Rep.Template = "C:\Users\cris\AppData\Local\Temp\TD_80\4c223b57\Reports\default.xsl"
    '******************************************************** filter Reports    

    Set aiFact = gTDConn.AnalysisItemFolderFactory  
    Set reportFact = gTDConn.AnalysisItemFactory
    Set aiFilter = aiFact.Filter  
    Set aiList = aiFilter.NewList  
    Set anf = reportFact.Filter  

    Dim FilterStr As String       

    For Each ai In anf.NewList            
        reportName = ai.Name       
        reportID = ai.id           

        If reportName = "tmp" Then                 
            FilterStr = ai.Field("AI_FILTER_DATA")             
            RepConf.Filter = FilterStr                

            On Error Resume Next 
            'i is empty. Don´t know why

            i = Rep.Generate(0, 0)                 MsgBox i & " --- " & Rep.File                         Debug.Print Rep.File      '--------------------         Exit For      
        End If
    Next

    Set gTDConn = Nothing   
    Set aiFact = Nothing   
    Set reportFact = Nothing
    Set aiFilter = Nothing     
    Set aiList = Nothing    Set anf = Nothing
    Set RepConfig = Nothing
    Set Rep = Nothing          

    MsgBox "END "
End Sub    'Pls HELP!!



回答2:


Graphs can be generated under analysis folder, its a bit of a process because you need a sound understanding of the database, XML and OTA API. There is no direct API available for building graphs, I have created the code samples below

https://github.com/sumeet-kushwah/ALM_OTA_Wrapper/blob/master/ALM_Wrapper/Analysis.cs

Check the following functions

CreateDefectAgeGraph

CreateExcelReport

CreateDefectSummaryGraph

CreateSummaryGraph

These functions are called from the tests available below

https://github.com/sumeet-kushwah/ALM_OTA_Wrapper/blob/master/ALM_Wrapper_Tests/ALM_Wrapper_Test.cs

Look for test function

Test_AnalysisAndDashboardScripts

If you have any questions regarding the process, please let me know.



来源:https://stackoverflow.com/questions/32055587/ota-alm-11-52-building-graphs-through-ota

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!