Custom Data Processing Extension, use in SSRS Report Properties - References

I've built a Custom Data Processing Extension (CDPE) and registered it
successfully (ie. it shows up in the new datasources dialog/drop-down and saves just fine, for VS2010-2014). It is intended to be a custom (XML-based) DataSource. However, based on the "nature of the beast", I also need to have a Custom Query
Designer (CQD) for development  testing of the CDPE.
Here are the errors I get for the CQD:
Pulling a report up in "Report Preview", which is wired to the CDPE->CQD, I get:
"An error occurred during local report processing. The definition of the report '/TestDS' is invalid. Error while loading code module: 'Microsoft.ReportingServices.Interfaces, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'. Details:
Could not load file or assembly 'Microsoft.ReportingServices.Interfaces, Version=11.0.0.0, Culture=neutral, PublicKeyToken 89845dcd8080cc91' or one of it's dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception
from HREULT: 0x80131040)"
My CDPE directly includes Microsoft.ReportingServices.Interfaces.dll AND matches everything as far as version and key. It also includes Microsoft.ReportingServices.QueryDesigners.dll required for the CQD.
I've written other WORKING CDPEs but not one with a CQD (Query Designer Custom replacement in Visual Studio). All the references from what I can tell are OK. I think CQDs are screwed up for XML datasources. The interfaces are not right.
(will explain further on)
From the "Data Sources", Dataset Properties, I click on the "Query Designer", I get:
"An error occurred while loading the query designer 'DATASET' (which is the name of the CDPE). Query Designer: Object reference not set to an instance of an object."
I "think" XML type CDPEs are trying to execute a web services call, versus working properly/CORRECTLY with a
text-based query for XML. The reason I say this is that I've created both WinForm and WebForm test harnesses. They both come up with this error: "...Failed to prepare web request for the specified URL. (rsXmlDataProviderError), Invalid
URI: The URI is empty." (which is nonsense, there is no request, the query is simply text/file-based stuff, and I read locally ALL of the XML data expected for testing without issue -> I'm ONLY making the CDPE XML-based because I have custom
WCF calls which already work). (If you really want to understand overall architecture, please see my post: http://social.msdn.microsoft.com/Forums/en-US/d15d9206-95d7-473a-a7f9-a38b4279de8c/ssrs-extension-which-to-use?forum=sqlreportingservices&prof=required
Other than "100 mile" overviews from Microsoft, this has got to be some of the worst documented stuff I've ever seen (
http://msdn.microsoft.com/en-us/library/microsoft.reportingservices.interfaces.iquerydesigner.aspx ). Remote Debugging it doesn't work 95% of the time.
My environment is VS2013 Ultimate with BI and SQL Server 2012 SP1.
Thanks Rob
Rob K

Update:
I can now see the Custom Query Designer and get anticipated results (after some fooling around with different combinations).
Here's how things were broken by the MS SQL Server 2012 product/release team:
1. they upgraded to .Net v4.x here (to support SharePoint, AX, MS Data Tools, etc.)
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Microsoft.ReportingServices.QueryDesigners.dll
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Microsoft.ReportingServices.Interfaces.dll
2. they left c:\Program Files\Microsoft SQL Server\MSRS.11.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.ReportingServices.Interfaces.dll at .Net
v2.x
3. they don't support Custom Extensions (which use a Query Designer) with anything higher  than .Net v3.5
In my case, I had to segregate:
a. Report Definition Custom Extension to v4.5
b. Custom Data Processing Extension to v3.5
c. Custom Query Designer to v4.x
d. my WCF/SSO to v4.5.1.
#2 and #3 above, in my humble opinion are simply dead wrong as far as what you ever want to do in the release cycle (I can see there being an early/first release exception(s), but 2 years out and a successor product (2014) should have meant that this
was rectified more than a year ago.)
Whomever failed to get this communicated in the 2012 documentation created even more havoc than an average developer can decipher:
http://msdn.microsoft.com/en-us/library/microsoft.reportingservices.interfaces.iquerydesigner(v=sql.110).aspx
(I'm still working on how to get the remote debugger working consistently.)
Rob

Similar Messages

  • Calling a Stored Procedure using SSRS Custom Data Processing Extension

    I need SSRS Custom Data Processing Extension to call a stored procedure for my ssrs report. I refered many links regarding this, but i cannot find it. Instead of that there are examples for Data processing extensions that uses XML files and also multiple
    data sources.
    I want Data Processing Extension to call a stored procedure.
    Please Help. Thanks in advance

    Sorry why do you need a Data Processing Extension for that? Cant you directly call the procedure
    from SSRS dataset? Whats the RDBMS which holds this procedure?
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • SSRS Custom Data Processing Extension Error

    I am using Custom Data Processing Extension to call a stored procedure. Iam getting following error when creating a dataset in report designer using the extension. I wrote the code in c#.
    could not update a list of fields for the query. verify that you can connect to the data source and that your query syntax is correct.(Details-Object reference not set to an instance of an object.)
    Here is my code
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Data;
    using System.Data.SqlClient;
    using Microsoft.ReportingServices.DataProcessing;
    using System.Diagnostics;
    using System.Text.RegularExpressions;
    namespace DataBaseDPE
    public class DBConnection:Microsoft.ReportingServices.DataProcessing.IDbConnectionExtension
    private string mconnstring;
    private string localname = "Database Connection";
    private ConnectionState mState = ConnectionState.Open;
    public DBConnection()
    Debug.WriteLine("DataSetConnection: Default Constructor");
    public DBConnection(string Dconnection)
    Debug.WriteLine("DataSetConnection Constructor overloaded with Connection String ");
    mconnstring = Dconnection;
    public Microsoft.ReportingServices.DataProcessing.IDbTransaction BeginTransaction()
    return (null);
    public string ConnectionString
    get
    return mconnstring;
    set
    mconnstring = value;
    public int ConnectionTimeout
    get
    return 0;
    public ConnectionState State
    get
    return mState;
    public void Open()
    mState = ConnectionState.Open;
    return;
    public void Close()
    mState = ConnectionState.Closed;
    return;
    public Microsoft.ReportingServices.DataProcessing.IDbCommand CreateCommand()
    return new DBCommand(this);
    public string LocalizedName
    get
    return localname;
    set
    localname = value;
    public void SetConfiguration(string configuration)
    try
    SqlConnection sqlconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=True;");
    catch (Exception e)
    throw new Exception(e.Message, null);
    public void Dispose()
    public string Impersonate
    { get; set; }
    public bool IntegratedSecurity
    { get; set; }
    public string Password
    { get; set; }
    public string UserName
    { get; set; }
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.ReportingServices.DataProcessing;
    using System.Data.SqlClient;
    namespace DataBaseDPE
    public class DBCommand : Microsoft.ReportingServices.DataProcessing.IDbCommand
    DBConnection mconnection = null;
    private string mCmdText;
    private int mCmdTimeOut = 30;
    private CommandType CmdType;
    public DBCommand()
    public DBCommand(string CmdText)
    mCmdText = CmdText;
    public DBCommand(DBConnection aConnection)
    mconnection = aConnection;
    public void Cancel()
    throw new NotImplementedException();
    public string CommandText
    get
    return mCmdText;
    set
    mCmdText = value;
    public int CommandTimeout
    get
    return mCmdTimeOut;
    set
    mCmdTimeOut = value;
    public CommandType CommandType
    get
    return CmdType;
    set
    CmdType = value;
    public IDataParameter CreateParameter()
    return (null);
    public class MySqlDataReader:Microsoft.ReportingServices.DataProcessing.IDataReader
    private System.Data.IDataReader sourceDataReader;
    private System.Data.DataTable dt;
    private System.Data.DataSet ds;
    private int fieldCount = 0;
    private string fieldName;
    private int fieldOrdinal;
    private Type fieldType;
    private object fieldValue;
    private int currentRow = 0;
    public MySqlDataReader(System.Data.IDataReader datareader)
    this.sourceDataReader = datareader;
    public MySqlDataReader(System.Data.DataTable dt)
    // TODO: Complete member initialization
    this.dt = dt;
    public MySqlDataReader(System.Data.DataSet ds)
    // TODO: Complete member initialization
    this.ds = ds;
    public int FieldCount
    get
    fieldCount = ds.Tables[0].Columns.Count;
    return fieldCount;
    public Type GetFieldType(int i)
    fieldType =
    ds.Tables[0].Columns[i].DataType;
    return fieldType;
    public string GetName(int i)
    fieldName = ds.Tables[0].Columns[i].ColumnName;
    return fieldName;
    public int GetOrdinal(string name)
    fieldOrdinal =
    ds.Tables[0].Columns[name].Ordinal;
    return fieldOrdinal;
    public object GetValue(int i)
    fieldValue =
    ds.Tables[0].Rows[this.currentRow][i];
    return fieldValue;
    public bool Read()
    currentRow++;
    if (currentRow >= ds.Tables[0].Rows.Count)
    return (false);
    else
    return (true);
    public void Dispose()
    public IDataReader ExecuteReader(CommandBehavior behavior)
    string query = "SampleSP";
    SqlConnection readerconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=SSPI");
    SqlCommand readercmd = new SqlCommand(query);
    readerconn.Open();
    readercmd = readerconn.CreateCommand();
    readercmd.CommandText = query;
    readercmd.CommandType = System.Data.CommandType.StoredProcedure;
    readerconn.Close();
    SqlDataAdapter adapter = new SqlDataAdapter(query,readerconn);
    readerconn.Open();
    adapter.SelectCommand = readercmd;
    System.Data.DataTable dt = new System.Data.DataTable();
    adapter.Fill(dt);
    System.Data.DataSet ds = new System.Data.DataSet();
    adapter.Fill(ds);
    return new MySqlDataReader(ds);
    public IDataParameterCollection Parameters
    get { return (null); }
    public IDbTransaction Transaction
    get
    return (null);
    set
    throw new NotImplementedException();
    public void Dispose()
    Please help me, Thanks in advance

    Sorry why do you need a Data Processing Extension for that? Cant you directly call the procedure
    from SSRS dataset? Whats the RDBMS which holds this procedure?
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Custom Data Processing Extension and Parameters

    Hello,
    I have successfully implemented a custom data processing extension. Now I'm trying to add parameters, but the documentation is very weak on this topic. Also all examples of custam data processing extensions I have found so far are working without parameter support. Using a search engine I have found a custom data processing extension's sequence diagram during report execution. The related article also gives some hints about the IDbCommandAnalysis interface.
    The GetParameters implementation creates a parameter collection based on the current command text and returns this collection. So far no problem.
    My question is how to implement the IDbCommand's CreateParameter method and Parameters property? In CreateParameter I just return a new instance of my IDataParameter implementation, and the Parameters property returns a new parameter collection based on the current command text.
    Is this ok so? At least this is the first implementation which seems to work in the data designer. If I share an instance variable for GetParameters and Parameters I will either get all parameters twice or BIDS will crash when pressing the execute button in the dataset designer - depending on my actual implementation.
    What I'm still missing is how to get the parameters added automaticall to the dataset's properties parameter register?
    thanx in advance and kind regards, Gerald

    I think that finally (after some days of trying) I could make it work. The dataset and report parameters are reflecting the command text's parameters now (BTW: to answer my last question - the dataset's properties are updated after pressing the refresh button only). The road to success was not to use the same member variable for the collections returned by IDbCommandAnalysis:GetParameters() and IDbCommand:Parameter and not to fill the latter one with the command text's parameters (see partial source code below).
    public sealed class MyCommand : IDbCommand, IDbCommandAnalysis  
        private string m_commandText;  
        private MyParameterCollection m_parameters = new MyParameterCollection();  
        public string CommandText  
            get { return this.m_commandText; }  
            set { SetCommandText(value); }  
        public IDataParameterCollection Parameters  
            get { return m_parameters; }  
        public IDataParameter CreateParameter()  
            return new MyParameter();  
        public IDataParameterCollection GetParameters()  
            return GetParameterCollection();  
        private void SetCommandText(string commandText)  
            m_commandText = commandText;  
        private MyParameterCollection GetParameterCollection()  
            // ... create parameter collection based on m_commandText  
    Still there are some open questions:
    How can I update the report parameter's properties? Now the parameter's data type is always string, but I'd like to assign the right data type. I'd also like to tag the parameters as hidden and supply a non-queried default value. Is this possible? How?
    Although I my implementation of IDbCommandAnalysis:GetParameters() returns a collection containing the parameter names and values the "prompt query parameters" dialog (after pressing the query designer's execute button in the toolbar) shows a "<blank>" value for the parameters. What could be the problem?
    Thanx in advance and regards,
    Gerald

  • How to display an "All Day Event" date correctly in an integrated SSRS Report?

    I have two event items in a calendar list in SharePoint 2010. Both items have the same start time and end time. One of them, however, has the "All Day Event" checkbox checked. If I access them through a REST service, this is how the data is
    returned:
    <!-- item 1 -->
    <d:StartTime m:type="Edm.DateTime">2014-03-21T00:00:00</d:StartTime>
    <d:EndTime m:type="Edm.DateTime">2014-03-25T23:55:00</d:EndTime>
    <d:AllDayEvent m:type="Edm.Boolean">false</d:AllDayEvent>
    <!-- item 2 -->
    <d:StartTime m:type="Edm.DateTime">2014-03-21T00:00:00</d:StartTime>
    <d:EndTime m:type="Edm.DateTime">2014-03-25T23:59:00</d:EndTime>
    <d:AllDayEvent m:type="Edm.Boolean">true</d:AllDayEvent>
    I have a report in the same SharePoint 2010 site that uses SSRS in integrated mode. The data source is the calendar list mentioned above.  The date fields are not formatted, just displayed as them come from the list/database.
    My locale is set to en-US. When I run the report, the start date for item 1 is displayed as "3/21/2014" ('all day' set to false) but the start date for item 2 is displayed as "3/20/2014" which is incorrect ('all day' set to true).
    I did some research online and found out that SharePoint stores all date fields as UTC except for 'All Day Events', which are stored in local time (our servers are in Central Time, but I'm running the report fom Pacific Time, in the US).
    I coudn't find a solution to display the date correctly in the integrated SSRS report. Is there a way, maybe some straightforward formatting, to show All Day Event dates correctly? I tried adding hours but this is inconsistent with daylight saving hour changes.
    I would appreciate any help.
    C#, Sharepoint

    Hi SharpBud,
    The date for all day event stored in SQL in GMT time, the start time for an all day event returns the start time in GMT time, which is not the current time most likely.
    This is a confirmed issue, as a workaround, I would suggest you to use a calculate column for the event for the column, using the following format:
    IF(TEXT(([End Time]-[Start Time])-TRUNC(([End Time]-[Start Time]),0),"0.000000000")="0.999305556",IF([Start Time]=ROUND([Start Time],0),[Start Time],DATE(YEAR([Start Time]),MONTH([Start
    Time]),DAY([Start Time])+1)),[Start Time])
    Thanks,
    Qiao Wei
    TechNet Community Support

  • List of SQL tables and attributes used in SSRS reports

    Hi,
    I have around 450-500 reports deployed in SSRS reporting server.
    All these reports are built on SQL from multiple databases, and these databases are having unnecessary tables and attributes.
    My requirement is to clean the unused tables and attributes from the databases. For this, I need the list of SQL tables and attributes used in these 450-500 SSRS reports.
    Is there any way to get this data?
    Regards,
    RK

    Hi RK,
    According to your description, you want to get a list of the tables and attributes used in all reports.
    In your scenario, you can query the ReportServer.dbo.Catalog table to get Report name, data source name, dataset name, and query used in the dataset with query below:
    WITH XMLNAMESPACES ( DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition', 'http://schemas.microsoft.com/SQLServer/reporting/reportdesigner' AS rd )
    SELECT ReportName = name
    ,DataSetName = x.value('(@Name)[1]', 'VARCHAR(250)')
    ,DataSourceName = x.value('(Query/DataSourceName)[1]','VARCHAR(250)')
    ,CommandText = x.value('(Query/CommandText)[1]','VARCHAR(250)')
    ,Fields = df.value('(@Name)[1]','VARCHAR(250)')
    ,DataField = df.value('(DataField)[1]','VARCHAR(250)')
    ,DataType = df.value('(rd:TypeName)[1]','VARCHAR(250)')
    --,ConnectionString = x.value('(ConnectionProperties/ConnectString)[1]','VARCHAR(250)')
    FROM ( SELECT C.Name,CONVERT(XML,CONVERT(VARBINARY(MAX),C.Content)) AS reportXML
    FROM ReportServer.dbo.Catalog C
    WHERE C.Content is not null
    AND C.Type = 2
    ) a
    CROSS APPLY reportXML.nodes('/Report/DataSets/DataSet') r ( x )
    CROSS APPLY x.nodes('Fields/Field') f(df)
    ORDER BY name
    For more information, please refer to this similar thread:
    Extract metadata from report server database
    If you have any question, please feel free to ask.
    Best regards,
    Qiuyun Yu
    Qiuyun Yu
    TechNet Community Support

  • How to get custom file name in manually generated SSRS report

    Hi,
    I am creating a SSRS report which would be executed by User manually through ReportServer URL.User would be generating the SSRS report for different Customer ID based on ad-hoc basis.
    I am passing CustomerID as input parameter to the report. Is there any way to get the manually generated SSRS report name as 'Report_CustomerID_TodayDate.xls'. Please let me know.
    E.g.If User is generating report for Customer ID 123 today then report name should be 'Report_123_07092013.xls'
    Thanks for your help in advance.
    Thanks,
    Abhiyanta

    Hi Amar,
    If possible Can you please provide the custom code to rename the exported file in SSRS.
    Thanks in advance,
    Regards,
    Jagan

  • Date parameter interchanges while running SSRS reports in CRM 2013 online

    Hi,
    We have a 2 date parameters in a SSRS Report, While running this report a user is getting issue with this date parameter, date changes to month and month changes to date in the first parameter(in screen shot it is 01-dec entered but displays 12-jan) and
    second seems to work fine but here time is also shown.
    As a note: I am not getting the error when I run it.
    Any one has got the same issue, Any suggestion/solution?
    Regards,
    Rekha.J

    If this is happening to only one or a few users then I suspect some issue with the user's machine configuration.  Have the user log in and try it from your machine and see if he or she gets the same experience.  Ensure you have completely cleared
    the user's cache and also try with a different browser like Chrome.
    Regards, Donna

  • How to pass Multi and Singlr value Parameters to DB2 query, which is using in SSRS report for ODBC connection

    Hi Guys,
    I am using DB2 database in SSRS. I have to pass Single Value and Multi Value Parameters. I tried with Select * From DB2Table Where
    Column=@PRM_Name Or Select * From DB2Table Where
    Column=:PRM_Name . It is not working and throwing error. Please help me out.
    Connection Details: ODBC
    Thanks Shiven:)

    Hi SKM,
    So you mean to say that Go to DataSource->Add Dataset-> Query Type-Text-> Under Query:
    click on fx (Expression)-> Write this expression
    For Single Value Parameter:
    ="SELECT customer_name, telephone_number, address1, address2, city from MyTable
    WHERE city = '" + Parameters!City.Value + "'"
    OR
    ="SELECT customer_name, telephone_number, address1, address2, city from MyTable
    WHERE city =  '" & Parameters!City.Value & "'"
    Keep it in mind if Parameter is String then
    It should be in Single quote ''.
     Like
    ="SELECT customer_name, telephone_number, address1, address2, city from MyTable WHERE city
    ='Hyderabad' "
    For Multivalu Parameter:
    ="SELECT EmployeeID, FirstName, LastName, LoginID FROM SHIVEN.AUDIT Where FirstName
    in ('" + REPLACE(JOIN(Parameters!City.Value,","),",","','") + "')"
    NOTE:
    If your Parameter is Single Value Parameter and You want to enter string values with Coma (,)
    separated (Like Hyderabad, Chennai, Delhi).
    In this case, you have to use below expression.
    ="SELECT customer_name, telephone_number, address1, address2, city from MyTable
    WHERE city IN ('" + REPLACE(Parameters!City.Value ,",","','") + "')"
    OR
    ="SELECT customer_name, telephone_number, address1, address2, city from MyTable
    WHERE city IN  ('" & REPLACE(Parameters!City.Value ,",","','") & "')"
    In above expression: Replace will replace all , with ‘,’ and city IN (‘Hyderabad’, ‘Chennai’,
    ‘Delhi’) will not throw any error.
     Note: You have to write expression in one line in Expression editor for dataset
    query
    Thanks It is working fine but it is tough job if query is big.
    Hi S kumar,
    The above approach we use when we have source like DB2, becasue DB2 has some syntactical differences to pass multivalue paramaeter. I tested and it works good, if i am mentioning the query in above format by using Fx button while creating dataset.
    but if we want fetch data from view which exist in DB2 and we need to call db2 view in SSRS and pass multivalue parameter in a way we did above then could you please mention the steps and way to achieve this.
    Thanks in advance!

  • JSF Data Table extension using sun's RI

    How do i modify the iteration logic of datatable in JSF? I need for 3 iteration the data table has to insert one row. How do i create custom component for these type of business logic?
    It should iterate horizontally,

    lets say you have a mainCollection and displayCollection.
    Iterator mainIter  = mainCollection.iterator();
    MainObject mainObj = null;
    DisplayObject dispObject = new DisplayObject();
    int counter = 1;
    while(mainIter.hasNext()){
        mainObj = (MainObject)mainIter.next();
        dispObject.setSomething1(mainObject.getSomething1());
        dispObject.setSomething2(mainObject.getSomething2());
        dispObject.setSomething3(mainObject.getSomething3());
       if(counter%3==0){   // add the object to the list and create a new instance
           displayCollection.add(dispObject);
           dispObject = new DisplayObject();
    counter =counter +1;
    if(dispObject !=null && dispObject.getSomething1()!=null){
           displayCollection.add(dispObject);  // add if this object is not added as the size of the list was not divisible by 3
    }Map this displayCollection in your JSP for display. You can have a single data table which will iterate over this collection.

  • How to convert Date format into day in ssrs reports?

    Hi
    How to convert date format into day?
    10/01/2010 as like Monday like that?

    =weekdayname(datepart("w",Fields!mydate.Value))
    -Vaibhav Chaudhari

  • Dynamically generating the ssrs dataset and filling the data into the dataset and binding it to ssrs report dynamically

    I have a work to do, in ssrs we are using server reports in our project. i am looking for dynamically generating the ssrs dataset and filling the data into the dataset and binding the dataset to ssrs report(RDL) dynamically.
    Getting the dataset dynamically has a solution by using Report Definition Customization Extension (RDCE), but the problem is binding that dataset to the report(RDL) dynamically was not there.
    Here is the reference for RDCE http://www.codeproject.com/Articles/355461/Dynamically-Pointing-to-Shared-Data-Sources-on-SQL#6
    I looked for binding the dataset to the report(RDL) dynamically and searched many sites but i did not get the solution. Can anyone help me here.
    Is there any custom assemblies or any Custom data processing extensions to work around. Please help.
    Thanks in advance

    Hi Prabha2233,
    Thank you for your question.
    I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
    Thank you for your understanding and support.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • How to Test SSRS Custom Data Extension in TSql

    Hi There,
    I have created a custom data extenstion for SSRS 2008 Reporting Service.
    I can test the CDE in the Report DataSet -> DataSet Properties -> Query Designer -> Run Query.
    In the Command Text I pass parameters to the invoked VB code which is of type "BaanstedeCds" then name of my custom data extension.
    I can even Attach the Visual Studio VB Code Project that is invoked by the Query Designer an debug the code.
    The custom data extension works perfectly in SSRS.
    However I have not found a way yet to run BaanstedeCds (with a parametertext) from within SSMS 2008 by using an T-SQL statement!!! Is there a way to use the SSRS Custom Data Extension in Sql Server Management Studio using the dataset type I used in
    SSRS 2008?
    Because I am leaving the path of using Custom Assemblies in SSMS, for deploying an testing that way is undoable for me.
    I is to complicated and in order to properly debug these routines the entire solution of multiple projects is deployed each time even the slightest change has been made to the VB code. Also if I want to deploy from Test to Production it is very hard. I have
    to detach the databases etc, ect.  Note my previous question about this subject that remained unanswered!!!
    Using the Custom Data Extension the problems are a lot less. However I how do I use a routine in the CDS in T-SQL, like I could invoke a routine in the Custom Code Assemblies?
     I "hate" CLR routines. I have extreme trouble managing these CLR's as I explained in my post and other posts in the past.
    You just cannot build a maagable system that way.
    I had to convert all the CLR's (I had a lot of them) to Custom Data Extension Functions, as they do not have all the drawbacks  of CLR's.
    And using the CDE with all the converted CLR's in it works much better for me in the Report Manager.
    However in order to test de CDE I must invoke the CDE in a Windows Form something like this:
    Private Sub cmdGetData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetData.Click
    Dim CommandText As String = ""
    ' Get Parameters for CDE GetData
    CommandText = txtAdoCds.Text
    Dim Rdr As New BstCds.BaanstedeCdsReader(CommandText)
    ' Invoke GetData Function of CDE Rdr
    ' Input: CommandText: txtAdoCds.Text = TextBox on TestForm
    ' Output: DataTable: RdrDataTable
    Call Rdr.GetData(CommandText)
    If Not Rdr.RdrRetVal Then
    GoTo End_Method
    End If
    ' Show DataTable: RdrDataTable (in Excel)
    If Not BstOff.ToonTabel(DataTabel:=Rdr.RdrDataTable) Then
    Exit Sub
    End If
    End_Method:
    End Sub
    '=========================================================================
    ' File: BaanstedeCdsReader.vb
    ' Summary: Provides a means of reading one or more forward-only streams
    ' of result sets obtained by executing a command at a data source,
    ' and is implemented by Baanstede Data Processing Extensions
    ' that access BaanstedeIw3-routines.
    '=========================================================================
    Public Class BaanstedeCdsReader
    Implements IDataReader
    #Region "Public Variables"
    Public RdrRetVal As Boolean = False
    Public RdrSqlSel As String = ""
    Public RdrDataTable As DataTable = New DataTable
    #End Region
    #Region "Constructors"
    #End Region
    #Region "IDataReader Members"
    #End Region
    ' GetData '
    #Region "GetData Method"
    '==================================================================================================
    'We are executing the command using the connection string that connects to the Active Directory.
    'Hard coding of the connection string is because it is the same for all the ADs.
    'Once we read the data using a DataReader, we place the same in a DataTable so that can be used for
    'Other processings.
    ' Public Sub GetData(ByVal _CommandText As String)
    ' Output in Public RdrDataTable As DataTable
    '==================================================================================================
    Public Sub GetData(ByVal _CommandText As String)
    ' Ophalen Data in DataTabel '
    RdrRetVal = False
    ' Fills RdrDataTable Using _COmmandText
    RdrRetVal = True
    End Sub
    But can I invoke Report Manager Source Type BaanstdeCds's .BaanstedeCdsReader.GetData(CommandText) in TSQL any other way then using CLR ?
    Regards Jos
    It works, but it does not work (The program runs, but does not produce the desired result)

    Hi Josje,
    Thank you for your question.
    I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
    Thank you for your understanding and support.
    Thanks,
    Wendy Fu
    Wendy Fu
    TechNet Community Support

  • Custom Data Provider Not Registered in Report Server (Sql Server 2012)

    We have a simple test report project set up and can preview the reports with no errors or problems from the designer. We can deploy the report project, but when trying to view the reports from the browser, we get the following error:
    An error as occurred during report processing, (rsProcessingAborted)
    An attempt has been made to use a data extension 'LiMeDAS' that is either not registered for this report server or is not supported in this edition of Reporting Services. (rsDataExtensionNotFound)
    I have followed this article that explained how to register a data provider extension:
    https://msdn.microsoft.com/en-ca/library/bb326409.aspx
    I have placed the assemblies in:
    C:\Program Files\Microsoft SQL Server\MSRS11.LIMEDAS\Reporting Services\ReportServer\bin
    Added the following line to the rsreportserver config file (inside the <extensions><data> tags)
    <Extension Name="LiMeDAS" Type="Limedas.Data.Provider.LimedasConnection,Limedas.Data.Provider"/>
    and finally added the following to the rssrvpolicy config file (inside the top level CodeGroup tag):
    <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="LiMeDASDataProviderCodeGroup" Description="Grants permission to the LiMeDAS data processing extension for reporting services.">
                  <IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS11.LIMEDAS\Reporting Services\ReportServer\bin\Limedas.Data.Provider.dll"
    />
                </CodeGroup> 
    We have the data extension set up perfectly for the designer, because I can see it as a type of connection and the preview works in the designer.
    But, for some reason it does not work in the server. They were set up the same way, but the server will not work. From the report manager page, when we try to add a data source, the only type option is Sql Server, none of the other extensions mentioned in
    the config file. Does anyone know what else could cause this issue? 

    Hi Justin,
    According to the error message and the issue can be caused by the edition of your SSRS is not support for the custom data provider. For example the express edition have limitation support on this:
    Features Supported by the Editions of SQL Server 2012 .
    If your edition is the supportted edition and the issue can be caused by the custom data provider do not necessarily support all the functionality supplied by Reporting Services data processing extensions. In addition, some OLE DB data providers and ODBC
    drivers can be used to author and preview reports, but are not designed to support reports published on a report server. For example, the Microsoft OLE DB Provider for Jet is not supported on the report server. For more information, see
    Data Processing Extensions and .NET Framework Data Providers (SSRS).
    If you are running on a 32-bit platform, the data provider must be compiled for a 32-bit platform. If you are running on a 64-bit platform, the data provider must be compiled for the 64-bit platform. You cannot use a 32-bit data provider wrapped with 64-bit
    interfaces on a 64 bit platform.
    More details information:Data Sources Supported by Reporting Services (SSRS)
    Similar thread for your reference:
    ERROR: An attempt has been made to use a data extension 'SQL' that is not registered for
    this report server.
    Error when viewing SSRS report with SQL Azure as data source
    If you still have any problem, please feel free to ask.
    Regards
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Adding a custom rendering extension to SQL Server Reporting Services 2012 for SharePoint 2010 integrated mode

    We are attempting to add OfficeWriter report rendering extensions for SSRS 2012 in SharePoint (2010) integrated mode through powershell. The documentation for “New-SPRSExtension” is rather
    sparse and we have not found any clear examples on the internet. With SSRS 2012 in native mode, we make the following two changes to the config files:
    We add the following report rendering extension declaration to
    RSReportServer.config:
    <Configuration>
        <Extensions>
            <Render>
                <Extension Name="XLTemplate" Type="SoftArtisans.OfficeWriter.ReportingServices.ExcelTemplateRenderer,
    SoftArtisans.OfficeWriter.RS2008"/>
                <Extension Name="WordTemplate" Type="SoftArtisans.OfficeWriter.ReportingServices.WordTemplateRenderer,
    SoftArtisans.OfficeWriter.RS2008"/>
            </Render>
        </Extensions>
    </Configuration>
    We add the following security trust codegroup to
    RSSvrPolicy.config:
    <configuration>
        <mscorlib>
            <security>
                <policy>
                    <PolicyLevel version="1">
                  <CodeGroup version="1" PermissionSetName="Nothing">
                    <CodeGroup
                                version="*"
                                PermissionSetName="FullTrust"
                                Name="SoftArtisans_OfficeWriter_Strong_Name"
                                Description="This
    code group grants SoftArtisans OfficeWriter code full trust.">
                              <IMembershipCondition
                                class="StrongNameMembershipCondition"
                                version="*"
                                PublicKeyBlob="00240000048000009400000006020000002400005253413100040000010001004779CB207F11
                                5E86EF9DD3233F9F130F8891911345176650F72330F84CA3F54C96DEB08439680660F02872EEF5DA3955
                                A14C63F96E57DFB71B1535280C37DA2CB5BA37D78A9882414DB11F67FD66DEBC4AD93DD34F4A587D34D
                                B4D23D9C6AF83431D88A7EF42BB01082913F3560DCB50129C5BBA7ECA0DE8BC286DA74F58FADE"/>
                  </CodeGroup>
              </CodeGroup>
           </PolicyLevel>
        </policy>
       </security>
      </mscorlib>
    </configuration>
    What would be the equivalent syntax for “New-SPRSExtension” to do the above for SSRS 2012 in SharePoint (2010) integrated mode?
    Alison Bird SoftArtisans Technical Services www.softartisans.com

    Hi Alison,
    Unlike the deployment of other custom extensions such as custom delivery extension and data processing extension, it is not necessary to add a code group for the custom assembly that grants FullTrust permission for the extension during the deployment of
    custom rendering extension. If you have copy the custom assembly to the %ProgramFiles%\Microsoft SQL Server\MSRS11.<InstanceName>\Reporting Services\ReportServer\Bin folder, and modify the RSreportserver.config file to add the extention entry properly,
    please open the SSRS Service Application created on the SharePoint and verify that your extension is included in the list of available export types for a report.
    Reference:
    Deploying a Rendering Extension
    Regards,
    Mike Yin
    TechNet Community Support

Maybe you are looking for