Deploying from BIDS to SSRS - Parameters Not Getting Updated - reporting-services

I'm noticing some strange behaviors when deploying reports from BIDS to SSRS. I have a parameter that has default values, but those default values don't seem to be getting propagated to the Report Server (they are stored in Parameters field in the Catalog table). Yet when I add new parameters I could see the field is changing. It's almost like the deployment tool is ignoring certain parameters. Any thoughts?
If this helps, my RDL looks like this:
<ReportParameter Name="INCLUDEDFIRMS">
<DataType>Integer</DataType>
<DefaultValue>
<Values>
<Value>1</Value>
</Values>
</DefaultValue>
<Prompt>Monkey</Prompt>
<Hidden>true</Hidden>
<MultiValue>true</MultiValue>
</ReportParameter>
Yet the field in the database after deployment looks like this:
<Parameter>
<Name>INCLUDEDFIRMS</Name>
<Type>Integer</Type>
<Nullable>False</Nullable>
<AllowBlank>False</AllowBlank>
<MultiValue>True</MultiValue>
<UsedInQuery>True</UsedInQuery>
<State>MissingValidValue</State>
<Prompt />
<DynamicPrompt>False</DynamicPrompt>
<PromptUser>True</PromptUser>
<DefaultValues>
<Value>23</Value>
<Value>17</Value>
</DefaultValues>
<Values>
<Value>23</Value>
<Value>17</Value>
</Values>
</Parameter>

When overwriting an existing version of a report, certain aspects of the parameters are not updated. This lets you preserve different defaults on the server and helps avoid interruptions to subscriptions.
Try deleting the SSRS version of the report and then re-deploy. This should update the parameters. (But at the expense of losing any existing subscriptions.)

Related

SSRS - The report parameter has a defaultValue or a ValidValue that depends on the report parameter

In an SSRS report, I have a fetchXML query that is dependent on the parameters that the users will choose from the UI that are defined in the report:
<fetch xmlns:generator="MarkMpn.SQL4CDS">
<entity name="new_r10logentries">
<attribute name="new_quarter" />
<attribute name="new_cr884_company" />
<link-entity name="cr884_company" to="new_cr884_company" from="cr884_companyid" alias="cr884_company" link-type="inner">
<attribute name="cr884_company" />
<attribute name="cr884_companyid" />
<filter>
<condition attribute="cr884_company" operator="eq" value="#CompanyParam">
<value />
</condition>
</filter>
</link-entity>
<filter>
<condition attribute="new_quarter" operator="eq" value="#QuarterParam" />
</filter>
</entity>
</fetch>
The parameters settings that I have are the below:
The companyParam is based on the dataset of the fetchXML and will populate the list of the companies' names.
The quarterParam is a list of options that are not based on the dataset.
When trying to publish/preview the report I got the below error:
Knowing I am passing the param as per the above query and the company column name that I am querying against is of type text and not GUID:
I hardcoded the company name in the query it works perfectly and in the parameters, it populates the list of the companies in the UI. However, when I pass the param in the fetchXML nothing happens as the CompanyName in the UI display null values.
Could you please support solving this issue? I have spent 3 hours changing in query with no result.
Resources that I look for support:
Input parameter SSRS
Community Dynamics
Any help is greatly appreciated.
Thank you!
your CompanyParam is list of companies which you retrieve from Dataset1 (from screenshot--> get values from query).
You pass this list(companies) selected one comapny by user to same dataset1 to retrieve your result and this is your circular reference.
Create a new Dataset "DatasetRetrieveCompanies" This dataset will give you all companies based on your fetchxml. Then add this dataset to your CompanyParam (get values from query). This should most probably solve your issue
I have almost zero experience with FetchXML so this is just an educated guess...
I would have expected you to have 2 datasets defined in your report.
Gets a list of companies based on QuarterParam
Gets the data for the report output based on CompanyParam
But it appears that you only have 1.
If I understand the XML you posted correctly, it looks like you have a parameter called 'CompanyParam' that uses a dataset that has a filter, the filter uses 'CompanyParam' - which is not possible, its a circular reference.

SSRS join(Parameters!ACCNUMBER.Value, ",") generate rendering error

i am building a SSRS report using report builder 3.0.
i have parameter ACCNUMBER which contain a large number or records, and i am using inside my report the below function :
join(Parameters!ACCNUMBER.Value, ",")
when i generate the report for and i selected few values from ACCNUMBER parameter the report is generated normally; however if i generate the report while Select All values in ACCNUMBER parameter, i receive the below error:
appreciate your assistance.
It looks like you are on the right track but just need to also update the value for MaxJsonDeserializerMembers.
There is a (c)onstraint (on .NET framework or Web server I think) that allows only 1,000 values to be loaded under parameter drop down boxes
Add the following tags under section. Note: If
doesn't exists in config files add the whole tag from
below just after <\system.web> section. If "appSettings" is already
there just add 2 keys from below. I put 30000 as maximum number of
items, but you can use any number of values.
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="30000" />
<add key="aspnet:MaxJsonDeserializerMembers" value="30000" />
</appSettings>
From Mladen's MS BI Blog

SSRS parameter defaults to NULL (All) even though no default value is set

I have a SSRS report parameter that is incorrectly defaulting to NULL (All), when I have the 'No default value' option selected. The parameter uses a stored procedure to load available values, and there are several values in my parameter drop-down-box.
When I view my report in preview mode or on the SSRS poral, my parameter is automatically set to All (NULL). What would make this happen?
The XML code shows no default values either:
<ReportParameters>
<ReportParameter Name="[My Parameter Name]">
<DataType>Integer</DataType>
<Nullable>true</Nullable>
<Prompt>My Parameter</Prompt>
<ValidValues>
<DataSetReference>
<DataSetName>MyDataSet</DataSetName>
<ValueField>MyParameterID</ValueField>
<LabelField>MyParameterName</LabelField>
</DataSetReference>
</ValidValues>
</ReportParameter>
As some users stated in the comments, you must delete and redeploy the report to update parameter defaults. According to Microsoft this is a known issue:
Parameter defaults do not get updated when re-deploying existing
reports. These either have to be updated manually or the reports
deleted and re-deployed. The latter regenerates all report ID's
(GUID's) and makes traking usage from the ExecutionLog more difficult.

SSRS2008 Subreport not found

I have a main report that calls two instances of the same subreport with only a single parameter difference. Both the main report and the subreport can be viewed on the report server and exist in the same folder and use the same datasource and have the same permissions.
The report runs normally when viewed in the visual studio report project, but do not run when deployed.
EDIT: I've discovered the issue lies somewhere in the subreport having 4 or more parameters. After removing the multivalue parameters (down to 3) the report ran correctly. Adding a non-multivalue parameter to the subreport causes the issue to resurface.
I get the following error from the SQL Server logs:
processing!ReportServer_0-1!5884!11/20/2014-13:31:51:: e ERROR: An error has occurred while processing a sub-report. Details: Object reference not set to an instance of an object. Stack trace:
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.IsAllDataShared(SubReport subReport, Boolean canShareDataSets)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.FetchSubReports(Report report, IChunkFactory getReportChunks, ErrorContext errorContext, OnDemandMetadata odpMetadata, CatalogItemContext parentReportContext, OnDemandSubReportCallback subReportCallback, Int32 subReportLevel, Boolean snapshotProcessing, Boolean processWithCachedData, Boolean canShareDataSets, GlobalIDOwnerCollection globalIDOwnerCollection, ParameterInfoCollection parentQueryParameters)
reportrendering!ReportServer_0-1!5884!11/20/2014-13:31:51:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.RenderingObjectModelException: The subreport 'rptCombinedItems' could not be found at the specified location /HVAC_STAGING/subrptQuoteLineItems. Please verify that the subreport has been published and that the name is correct., ;
Info: Microsoft.ReportingServices.ReportProcessing.RenderingObjectModelException: The subreport 'rptCombinedItems' could not be found at the specified location /HVAC_STAGING/subrptQuoteLineItems. Please verify that the subreport has been published and that the name is correct.
processing!ReportServer_0-1!5884!11/20/2014-13:31:51:: e ERROR: An error has occurred while processing a sub-report. Details: The subreport 'rptCombinedItems' could not be found at the specified location /HVAC_STAGING/subrptQuoteLineItems. Please verify that the subreport has been published and that the name is correct. Stack trace:
at Microsoft.ReportingServices.OnDemandReportRendering.SubReport.CheckRetrievalStatus(Status status)
at Microsoft.ReportingServices.OnDemandReportRendering.SubReport.RetrieveSubreport()
As for parameter passing, the main report uses
<Parameters>
<Parameter Name="OfficeCopy">
<Value>=Parameters!OfficeCopy.Value</Value>
</Parameter>
<Parameter Name="QuoteProfile">
<Value>=Parameters!QuoteProfile.Value</Value>
</Parameter>
<Parameter Name="isBreakout">
<Value>=NOT(Parameters!ShowTotal.Value)</Value>
</Parameter>
<Parameter Name="quoteIDs">
<Value>=Parameters!quoteIDs.Value</Value>
</Parameter>
<Parameter Name="printOptions">
<Value>=Parameters!printOptions.Value</Value>
</Parameter>
And the subreport takes:
<ReportParameters>
<ReportParameter Name="OfficeCopy">
<DataType>Boolean</DataType>
<Prompt>OfficeCopy</Prompt>
</ReportParameter>
<ReportParameter Name="QuoteProfile">
<DataType>Integer</DataType>
<Prompt>QuoteProfile</Prompt>
</ReportParameter>
<ReportParameter Name="isBreakout">
<DataType>Boolean</DataType>
<Prompt>isBreakout</Prompt>
</ReportParameter>
<ReportParameter Name="quoteIDs">
<DataType>Integer</DataType>
<Prompt>quoteIDs</Prompt>
<MultiValue>true</MultiValue>
</ReportParameter>
<ReportParameter Name="printOptions">
<DataType>Integer</DataType>
<Prompt>printOptions</Prompt>
<MultiValue>true</MultiValue>
</ReportParameter>
</ReportParameters>
Finally, this is being called by Report Viewer 9.0.0.0 in a .NET 4.5.2 application, and the report server is running 10.0.5520.0. The server is running Server 2008.

how to allow a null values in multi valued parameter

I have a requirement to include a null value in multi valued parameter. I'm using fetchXML code in my dataset. Please help me with it.
In my report I have 2 datasets in which first one is main dataset having parameter #P1.
For #P1 I have assigned Dataset2 as "Availible values" and "Default values".
Now, when I run the report I should get a dropdown with list of all values in dataset2.
So, here in that dropdown I was asked to add a null value also. Is it possible?
Note:Parameter will accept multiple values from user.
You can add a CRM filter parameter to your report, by adding a blank-value report parameter to your SSRS report.
The XML for the parameter would be like the following, considering you are working for example with the Account entity:
<ReportParameter Name="FilteredAccount">
<DataType>String</DataType>
<Nullable>true</Nullable>
<DefaultValue>
<Values>
<Value></Value>
</Values>
</DefaultValue>
<AllowBlank>true</AllowBlank>
<Prompt>FilteredAccount</Prompt>
<Hidden>true</Hidden>
</ReportParameter>
After you add this parameter, you will upload the report to CRM, and CRM will automatically create the parameter for you as SQL query (Value) and will load CRM filters. Any specific required filters could be saved to the report in CRM.
And note that this report parameter should be passed from SSRS to the stored procedure, which fetches the report filtered results.
You could also find details about CRM 2011 report pre-filtering parameter in this blog
post
http://carlwillis.blogspot.com/2012/01/pre-filtering-in-crm-2011-ssrs-reports.html
Let's say you want to add a null option for selection to a list of codes from a query. All you need to do is add that to your result set by unioning it:
SELECT NULL AS Id, '<Null option>' AS Description
UNION ALL
SELECT Id, Description
FROM CodeTable
ORDER BY 1