SSRS Report not timing out due to "databasequerytimeout" variable value - reporting-services

I might be missing something here but i have the below scenario. In Dynamics CRM 2013 we have a SSRS report on CRM Dashboard. The rsreportserver.config file has the following values:
<Add Key="SecureConnectionLevel" Value="0"/>
<Add Key="CleanupCycleMinutes" Value="10"/>
<Add Key="MaxActiveReqForOneUser" Value="20"/>
<Add Key="DatabaseQueryTimeout" Value="180"/>
<Add Key="RunningRequestsScavengerCycle" Value="60"/>
<Add Key="RunningRequestsDbCycle" Value="60"/>
<Add Key="RunningRequestsAge" Value="30"/>
<Add Key="MaxScheduleWait" Value="5"/>
<Add Key="DisplayErrorLink" Value="true"/>
<Add Key="WebServiceUseFileShareStorage" Value="false"/>
As we can see here the databasequerytimeout has a value of 180 seconds. I went to CRM Dashboard which was having the SSRS report, the report took quite a lot of time more than 180 seconds but didn't timeout out.
The latest log entries from ExecutionLog3 view for the specific report that i executed is as follow:
TimeStart TimeEnd TimeDataRetrieval TimeProcessing TimeRendering
29:01.1 32:50.5 229173 10 132
So my confusion here is why the report didn't timedout ?? Isn't the TimeDataRetieval(229.173 seconds) should be less than 180 seconds or the report will timeout ??
The Report Timeout in Processing Options on SSRS server is set as Use the system default settngs which i believe is 180 seconds
Thank you...!

Related

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 report - Display 1 to Many relationships

I am trying to build a custom SSRS report and publish to our CRM system. I have a Dataset created using FetchXml by connecting to Microsoft Dynamics CRM 365. The data set has 1 to Many and Many to Many relationships. The query looks fine and I am able to preview the Dataset results in Visual Studio. I am able to display the primary entity fields in the report but failed to show the 1 to Many relationship values. Please suggest on how to get this wprking. My fetch xml looks like this
<?xml version="1.0" encoding="UTF-8"?>
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="entity1">
<attribute name="name"/>
<link-entity name="entity2" from="entity2id" to="entity1id">
<attribute name="name"/>
</link-entity>
</entity>
</fetch>
alias & link-type is missing in your query syntax.
<link-entity name="entity2" from="entity2id" to="entity1id" alias="xyz" link-type="inner" >
On a side note, I recommend you to use Xrmtoolbox FetchXML builder to build the query without errors.

How to preselect a multiselect parameter using prefiltering in SSRS with fetchxml in Dynamics CRM 2016

I have an SSRS report query for which is in fetchxml. The main dataset "DS_PromissoryNotes" which fetches data for the report has a pretty basic query.
<?xml version="1.0" encoding=""?>
<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0" >
<entity name="promissorynote">
<attribute name="promissorynoteid" />
<attribute name="totalamount" />
<attribute name="name" />
<attribute name="duedate" />
<attribute name="pn_customer" />
<attribute name="pn_distributor" />
<attribute name="dateofissue" />
<order descending="false" attribute="name" />
<filter type="and" >
<condition attribute="promissorynoteid" value="#PromissoryNoteId" operator="in" />
</filter>
</entity>
</fetch>
As you can note that the fetchXML query takes a parameter #PromissoryNoteId which can be multiple so I have "Allow multiple" checked of course. Data for the parameter is fetched from another dataset "DS_PNID" which is almost similar to the above fetchXML query only fetching 'name' and 'promissorynoteid' attribute with no filter condition.
I want to be able to select multiple records from the Promissory Notes grid displayed on the entity's page and run report for the selected record. It should display the report data and also mark the selected PromissoryNoteIds in the multi-select dropdown filter so that I can modify the selection and view updated report from the report page itself.
I tried applying prefiltering on the main dataset "DS_PromissoryNotes" like this
<entity name="core_promissorynote" enableprefiltering="true" prefilterparametername="CRM_promissorynoteid">
After doing this I added it as new report. When I ran the report it gives me same result i.e. I have to manually select the PromissoryIDs from the filter dropdown. Promissory ID belonging to those records are not preselected.
P.S. When I remove the parameter and only use prefilter, it works fine. But I want to have that dropdown as the report is also present in report area where the report is run without selecting the records and the dropdown is the only way for selecting the PromissoryIds. I also don't want to make 2 separate reports.
Please help.
OK so I figured it out the next day. Didn't have time to post so posting it now.
What I basically did is,
Removed prefiltering from the main dataset. Also deleted the parameter
which was created due to prefiltering.
Created another dataset "DS_PrefilteredPNID" which is same as
"DS_PNID" (dataset which fetches Promissory Note IDs for my
parameter) and applied prefiltering on the newly created dataset.
Make sure that the newly created parameter is placed above the old one in
sequence.
Now, edit the old parameter. In the default section, choose "from
query". Then select the newly created dataset and value.
BOOM! This works flawlessly.

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.

Deploying from BIDS to SSRS - Parameters Not Getting Updated

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.)