Help Building a Custom Annotation Report View for BSM

Hi,

I am trying to make a custom report for MS Business Scorecard server. I have implemented the sample report from the white paper on building custom report. When I alter that code to output annotations it crashes the report or portal its self. The code is the same except I added the GetTheAnnotations()function and created a new PMServer() which is part of the Server class. Please suggest how to access the annotation with the scorecard API. This is the code used:

using Microsoft.PerformanceManagement.Scorecards.Extensions;

using Microsoft.PerformanceManagement.Scorecards.Client;

using Microsoft.PerformanceManagement.Scorecards.Server;

output.Write(HttpUtility.HtmlEncode(GetTheAnnotations()));

private string GetTheAnnotations()

{

string html = "testing";

Annotation a = new Annotation();

a = this.server.GetAnnotation(this.ContextData.Scorecard.Guid, this.ContextData.SelectedKpiGroupId, this.ContextData.SelectedKpiMeasureId, this.ContextData.SelectedKpiMeasureId.GetHashCode());

int b = a.Owner.Length;

return html;

}

Thanks



Answer this question

Help Building a Custom Annotation Report View for BSM

  • Vb_2007

    Per the BSM support team:

    If you are doing this as part of an app that includes the scorecard webpart, then the information you are looking for should be included as part of an xml string in the query string passed to the report view when a user clicks on a KPI in the scorecard webpart.

    Please look at the custom web part example in the technical papers here:

    http://www.microsoft.com/downloads/details.aspx FamilyID=d5d1b0f9-99e1-44ff-9640-96a716098f8e&DisplayLang=en

    -brenda (ISV Buddy Team)



  • Keithyboy1

    Brenda,

    This help and thanks. I have another little issue that may be resolved easily with your knowledge. I am trying to dynamically pull out the KPI comments inputed from scorecard builder but I can't seem to find a way to get a KPI.Guid with the context
    data i am working with.

    eg. I can use
    PMService.GetKpisFromScorecard(this.ContextData.Scorecard.Guid) and loop
    through all of the KPI's getting all comments from each one which is good but
    I would really like to get comments from the selected KPI.

    I know PMService.GetKPI(Guid) is the key but getting the correct Guid is the
    prob. I tried

    PMService.GetKpi(this.ContextData.SelectedKpiGroupId) but obviously
    that does not return anything, I also tried

    this.ContextData.SelectedKpiMeasureId but that also failed which makes sense. Is there a way to get the parent KPI from the KpiMeasure

    I hope you can help,

    Ian

    p.s. Any information to help understanding the API and buliding custom reports is welcome.


  • SharePointing

    Per the engineer:

    • You should be using the web service (by creating a proxy for the PmService.asmx) and call the GetAllAnnotationsByScorecardID or other Annotation related methods.
    • If you are using the Server.dll directly then use GetAnnotation(Guid scorecardID, Guid kpiGroupID, Guid kpiMeasureID, Tuple rowSlice, Tuple columnSlice, Tuple pageFilter) method. This method internally generates hash code for you and calls the GetAnnotation(Guid scorecardID, Guid kpiGroupID, Guid kpiMeasureID, int sliceHashCode) method.

    I hope this helps resolve your question.

    -brenda (ISV Buddy Team)



  • Help Building a Custom Annotation Report View for BSM