none
SSRS extension which to use

    Question

  • Hi Folks

    I'm believe I'm needing to add an extension to SSRS.

    I'm trying to shy away from anything related to a Security extension, basically because our security works pretty much as  it should with the current scheme.

    I think a Data extension is the route that I need to go. Here are the details.

    1. reports are reports, and what we have is just fine in terms of content, layout, etc. (and we are running  with a single customer currently).

    2. we need to scale for potentially thousands of customers. each customer has their own OrganizationID. From this OrganizationID, we need to calculate the connection string and image library path.

    3. we need to use our own form of "Global Directory" (WCF, etc.), passing an OrganizationID to this directory service in order to return the associated customer's datasource connection string and the associated image library path (this needs to happen pre report render).

    Is the SSRS Data Extension a good approach for this kind of scenario? Are there any known pitfalls, design considerations, etc. that I need to be aware of up front?

    Thanks

    Rob


    Rob K

    Wednesday, July 23, 2014 11:53 AM

All replies

  • To be more specific, I'd like the ReportParameters in the snippet below to only be 1 (publicOrgID instead) and the information for what's currently in-bound into the report (param[0], param[1]) we want to have calculated on the server side.

                        {
                        SSRSGlobalDirectory globalDirectory = new SSRSGlobalDirectory();
                        string publicOrgID = Utility.Util.GetPublicOrgID(Convert.ToInt32(Session[Resource.HC_StringConstants.HC_MYSTOREID].ToString()));
                        globalDirectory = SSRS.CallGlobalDirectoryforSSRS(publicOrgID);
                        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
                        ReportViewer1.ServerReport.ReportServerUrl = new Uri(globalDirectory.SQLReportServiceURL);
                        ReportViewer1.ServerReport.ReportPath = Resource.HC_StringConstants.HC_FISUMMARYREPORT;
                        ReportViewer1.AsyncRendering = false;
                        ReportViewer1.SizeToReportContent = true;
                        ReportParameter[] param = new ReportParameter[2];

                        param[0] = new ReportParameter(Resource.HC_StringConstants.HC_SQLCONNSTRING, globalDirectory.ConnectionString);
                        param[1] = new ReportParameter(Resource.HC_StringConstants.HC_IMAGELIBRARYURL, globalDirectory.SiteImagesURL);

                        ReportViewer1.ServerReport.SetParameters(param);
                        ReportViewer1.ServerReport.Refresh();
                        }


    Rob K

    Wednesday, July 23, 2014 5:18 PM
  • Is anyone on this forum? (just say hello, I'm thinking I'm on a dead forum?)

    Rob K


    Rob K

    Wednesday, July 23, 2014 6:33 PM
  • Thanks

    This was the approach which I was trying to avoid the most (any kind of a security extension).

    But thank you much for taking the time to read my post.

    Rob


    Rob K

    Thursday, July 24, 2014 12:01 PM
  • I did find this:

    http://www.codeproject.com/Articles/37270/Consuming-a-WCF-Service-from-an-SSRS-RDL-Server-Re

    but it's so out of date (and not upgradeable as far as VS 2012/2013 go), I'm not sure if it is relevant any longer.

    Rob K


    Rob K

    Friday, July 25, 2014 12:13 PM
  • I'm good at this point. We wrapper-ed our WCF/Client Services portion (what gives us the connection and image path values from an OrgID) into a .dll.

    At this point, I'm getting the 2 values I needed  :)

    I'm implementing the Connection Class at this point (and sticking with a Data Processing Extension, at least until I hit a "brick wall"), where I plan on injecting these values.

    http://msdn.microsoft.com/en-us/library/ms154027%28v=sql.110%29.aspx

    Rob


    Rob K

    Wednesday, July 30, 2014 6:46 PM
  • some thoughts:

    1. I don't want to change a thing with the Report Designer only the Report Server (leave the existing connection stuff as is in the RDL and only offer the PublicOrgID as another report paramenter)

    2. I want my DPE to "wrapper" all SSRS requests if running in a web application context.

    rob


    Rob K

    Friday, August 01, 2014 1:20 PM
  • also, i did find this today:

    http://msdn.microsoft.com/en-us/library/ms345229%28v=sql.110%29.aspx

    I think I'm understanding it. However, MSDN is so generic and details weak now, that I feel like I'm killing  time and need to find a better resource.

    rob




    Rob K

    Friday, August 01, 2014 3:18 PM
  • also looking at this: http://www.codeproject.com/Articles/355461/Dynamically-Pointing-to-Shared-Data-Sources-on-SQL

    to see if it's a better adaptation (as far as extensions) for what I need.

    (I don't think I even saw this type of extension in the MS documentation?)

    Rob


    Rob K

    Friday, August 01, 2014 6:41 PM
  • getting back to the DPE approach...

    in my previous posts, I snippet-ed what it is that we are doing now.

    looking at the interfaces here: http://msdn.microsoft.com/en-us/library/ms152816%28v=sql.110%29.aspx

    I don't see any means to point to a particular report (ServerReport.ReportPath)?

    Does anyone know how this is suppose to work (please don't tell me that this extension is designed so that I would have to write a DPE for each report?).

    The document url mentioned above is horrible in terms of real details.

    Rob K


    Rob K

    Monday, August 04, 2014 7:13 PM
  • worst microsoft stuff i've ever seen documented in the 37 years i've been in IT.

    (disgraceful...)

    also, does anyone know whether MS actually fixed the 2005 asmx for SSRS?

    it looks like the initial release(s) http://social.msdn.microsoft.com/forums/sqlserver/en-US/1fb8d5b5-31f2-4a62-84c1-cb2f15217ef3/custom-data-processing-extension-and-parameters

    has bugs in the parameters interface (which is what I'm dealing with now).

    rob k


    Rob K

    Thursday, August 07, 2014 5:39 PM