Exported a modified Report from dev to test. Now report complains about missing parameter values - reporting-services

I've updated a report (Data provider based) to include new parameters. The report runs perfectly on the dev environment so I exported it via XPO to the test environment (including all tables and classes). Now when I try to run the report I'm getting a slew of errors stating that parameter X is missing a value.
I know how to fix these. The problem is that one of them is my newly added parameter which I've confirmed via debugging is assigned a value.
Even after multiple:
Forward and CIL compiles
Cache clearings
Re-deploys
Re-imports
Service restarts
the problem persists.
UPDATE: I've tried a Full Build + Full CIL Compile as well. Clearing the XPPIL folder and doing another full build + full cil isn't an option at the moment. So I've gone and set all the parameters to "AllowEmpty" and "Nullable" which does get rid of the error messages. But the core problem persists as I have expected: The parameter I added is not receiving the value from the contract.

Related

Parameter Value: "Get values from a query" not working on host

I'm having problems when using the option "Get values from a query" in my Parameter settings.
On the server everything works like a charm.
But when I deploy and then launch the report on my hosting, I get an error message:
If I use the option: "None", then everything works fine.
I've placed a test Tablix, to see the result of the dataset on the host, and also this causes no problem.
So the issue is only with the "Get values from a query" section AND only on the hosting.
Anybody got an idea?
EDIT: I turned EnableRemoteErrors on, as requested by the errormessage, but no additional info is given.
The detail of the error is in the SSRS log file located at -->
<SSSRS_INSTALL_DIR>\Report Server\Log Files.
That is where I would go. Based how you describe the dataset driving the parameters works but not when given a value then I would expect this to be a parameter mismatch or missing parameter. Make sure that you are feeding the dataset the parameters you think you are. Also, if you don't allow nulls then make sure you are supplying a default value.
You said, you placed a tablix on the report showing the results of the YearsDOW dataset and this fails. If this also fails when you set your available values to 'None' then we can assume, as the error states, that the issue was with executing the query itself, not your report design.
As this seems to work when you run it from your local machine in development but fails when run from the server I would suspect it's an authentication/permissions issue.
Check the credentials on the datasource in your development environment and compare these to the SSRS server's version of the datasource. Remember, by default datasources do not get overwritten so it maybe that you deployed the datasource initially with one set of credentials then then changed them in your development environment.
If this is the case and the datasource is not used for other reports on the server, then you can either change the project properties to overwrite datasources but personally I prefer to delete the datasource from the server and then redeploy, that way future changes won't affect the servers version unintentionally.
If the datasource is used in other reports without problems then you could just rename the datasource to something unique so it will get redeployed under the new name and your report will point to that new version.

SSIS Error COde 0xC0202020: The buffer type is not valid. Make sure the Pipeline layout and all components pass validation

I have developed a package to find the data that is truncated.
I have excel and csv files as sources. I have given redirect row on error and truncation in the source.The destination I have given as script component where I am updating the variable value. It is working fine in local development environment but not working in Server. I am getting the "The buffer type is not valid. Make sure the Pipeline layout and all components pass validation.
Error Code : 0xC0202020"
I tried the following ways:
1) In both 32 as well as 64 bit machine versions.
2) Replacing the script component with Row count transform.
3) Running the package as administrator.
4) Refreshing the connection managers and columns
None of them worked for me and facing the same issue. How to solve this issue.
I had not mapped the source output since i already had dumped the data in another package by setting the ignore failure property on truncation and error.
I had redirected only source error output. After mapping the source output to a dummy data flow task Union ALL my issue is resolved.

SSRS showing wrong data after deploying report

I am having this problem where the data being shown in report is different when I deploy it on server. So let's say if I am viewing report by pressing F5 (to debug) or by clicking on "Preview" button on the report in BI Studio the data shown is correct. But when I deploy the same report and when I run it from server such as http://myserver/reports then data shown is incorrect/missing.
For e.g. in some cases it is not showing data for a particular field and there are some number fields which are showing wrong data. I have cleaned the solution, deleted data cache files, rebuilt and deployed like 100 times but no luck.
When I deploy it shows some warning (which I guess I can ignore) but no errors.
I have checked the database by running queries and stored procedures directly and they all return correct data.
How do I fix this issue?
I went to report server and looked at the XML of one of the data set which was creating problem and found out that the new FIELD I have added is not there. Then I tried to deploy that data set and it said Overwrite Dataset property is set to False and that's why it was not deploying and I missed it in messages when it deploys a solution. So I simply set the property to True, deployed it and viola problem is solved.

Issue re-deploying updated default parameters in SSRS report

I have an SSRS (SQL Server 2008 R2) report with several parameters. I'm having an issue where one of the parameters is not consistently choosing its default value when the report is first loaded.
Specifically, it works fine in BIDS but works intermittently (works on one server but not another) once deployed to IIS and viewed in IE. By intermittently, I mean it works on the server I deploy it to, but when I copy the RDS file to another server, the default behaviour for my parameter is broken.
Details
The parameter has a series of specified (constant) integer values specified in the Available Values section, which represent a selection of fixed reporting periods. The Default Values has a single specified value, which matches one of the Available Values.
Options: data type integer, no null values, no multiple values, parameter visible, automatically determine when to refresh.
Any ideas why I'm seeing this behaviour?
That is true, once the report is deployed to the server then the parameters are controlled at the server level.
Once item to note however is if you redeploy the report with changes to the default values THEY WILL NOT be changed on the server!!! The report must be deleted and deployed for the new defaults to take effect.
If you do not wish to delete the report then change the defaults by hand on the Report Server.
I've discovered my own answer to this question. I'm detailing it here for anyone else new-ish to SSRS who might be confused by the same behaviour. The parameters can be managed separately from the RDL file, and defaults can be overridden once the report is deployed to the server. To manage the parameters on the server:
Click on the report name link at top left on the browser page.
Click on the Parameters tab at left.
Manage the parameters as needed (e.g. set the default value).
Click Apply.
Click the report name link (large bold text at top) to return to the report.
Another solution without having to delete the reports (the issue when you delete the report is the logs are also deleted) is to open the new deployed report with ReportBuilder (Modifier dans le Générateur de rapports).
Just save the report and the defaults values will be changed.
lets say your report name is xyz.rdl
if you have set default parameter and deployed it to server now, it will not change on the server.
i suggest 3 options
1. change the parameter 'Has Default' value on the server, by right click manage on the report
2. delete the report on the server and redeploy it
3. deploy a dummy report or old version report with same name say 'xyz.rdl' which doesn't have this parameter, doing this will erase report parameters on the server, report stays in tact. then deploy your new version report with default parameter, now it should work.
I had similar issue. When a report has been deployed to the Server "Without" Default, and you subsequently modify this report in Visual Studio and change the same parameter to have a default, the server will not pickup that the modify report has a default now.
My workaround to this dilemma was to create a dummy parameter and put it to the top of the list. I then redeployed the report with the new dummy parameter and the same modified one with a default parameter. This time the server picked up that the parameter I was interested in as having a default value. I then proceeded to delete the dummy parameter in visual studio and redeployed the report. The parameter that I was interested in remained as having a default value.
I prevented deleting the report and adding subscriptions to it if I had went that route in order to fix my dilemma.
It takes a bit of work to correctly handle all the various scenarios, but it is (at least as of Sql Server 2012) possible to update the parameters from a script by loading the .rdl file as an xml file, and comparing it to the various settings available from the ReportingService2010.GetItemParameters method of the SSRS management web service
Based on that comparison, you can then update the parameters on the SSRS server using the ReportingService2010.SetItemParameters method.
Finally, there is a connect issue "Report parameter defaults not updated during deployment" that is a bit more limited in scope to allow just auto-updating parameter defaults.
I have noticed this is only a problem when making updates to static parameter values (Value "1"). The expression parameter values seem to a good job of getting updated (Value "=iif(1=1, 1, 0)". Screenshot example included below.
I would suggest using an expression. Or if it's a static value just type that in at the manager page. For example:
//ssrsdev/Reports/manage/catalogitem/parameters/Accounts%20Receivables/Bill%20of%20Lading%20Comparison
Also, I typically deploy my reports using the ReportServerTools powershell cmdlet, so I don't know if maybe their deployment does a better job with updating parameters. So you might try installing and deploying with that tool instead of from Visual Studio.
Write-RsRestCatalogItem
#------------------------------------------------------
# --1,FILES: Add
# Upload file from disk to server
#------------------------------------------------------
## TARGET FOLDER
$rsFolder= "/Accounts Receivables" #Datasets #Cost
$rsReportPortalUri= "http://ssrsname/Reports/"
$locDir= "C:\MyPath\Solution\Report Project\"
Get-variable rsReportPortalUri; Get-variable rsFolder; get-variable locDir
## SOURCE ITEM
$rsItem= "Bill of Lading Comparison.rdl"
$locPath= $locDir + $rsItem
Get-variable locPath
## Write-RsRestCatalogItem (1)
Write-RsRestCatalogItem -Path $locPath -RsFolder $rsFolder -ReportPortalUri $rsReportPortalUri -RestApiVersion "v1.0" -Overwrite "true" -verbose
Parameters - "Static" vs "Expression"

SSIS Configuration problem: not returning SQL Server Table config values

This was posted on server fault, but in retrospect that may not be the best spot for it, so I've moved it here.
I have a package that runs fine on my dev machine but in production (and also on another dev desktop) the Config seems to stop working. I'm using SQL Server Table configuration to pull a value from a table and populate a variable. My Database connection string is passed in at runtime so this should be taken care of in the production environment. There are no errors, but the value is not retrieved and the variable remains blank (it is actually a path, so I get a file not found as the path is blank).
The package works on my machine. It retrieves the correct path from the table and populates the variable as expected. Why this stops working with no error elsewhere is a mystery. Is there someplace that configuration needs to be 'switched on', apart from the checkbox on the front page of the config wizard.
Try Event Handlers
1. Select Event Handler OnVariableValueChanged
2. Add a script task to the pane
3. Pass in System::VariableName,System::VariableValue as InputVariables
4. Add the following to the code:
Public Sub Main()
Dts.Events.FireInformation(0, "VariableChangedEventLog", "Variable " & Dts.Variables("System::VariableName").Value.ToString() & " Changed to:- " & Dts.Variables("System::VariableValue").Value.ToString(), "", 0, True)
Dts.TaskResult = Dts.Results.Success
End Sub
This will print out the variables and will at least give you an indication of whether the correct values are passed into the package.
I have the problem that my package receives the correct configuration file, but then is not passing this value onto my child packages. May well post a link to a new post on this.