When you comment a parameter in a SUBMIT of a report, what would be its value? The initial value of that type or the value that should have in a standard run of the equivalent transaction?
I mean, if you want to run a transaction setting in a defined way several dynprofields by submitting the transaction report, would you have to state every field that does have initial value or set just those that differ from the usual value they have when executing the transaction?
The initial value, so you don't need to pass those values in the SUBMIT (you can comment those out).
Related
I have an excel with 300 rows. I need to use each of these rows as a field name in a transformation.
I was thinking of creating a job that for each row of a table sets a variable that I use afterwards on my transformation.
I tried defining a variable as the value I have in one row and the transformation works. Now I need a loop that gets value after value and redefines the variable I created then executes the transformation.
I tried to define a Job that has the following:
Start -> Transformation(ExcelFileCopyRowsToResult) -> SetVariables -> Transformation(The transf that executes using whatever the variable name is at the moment).
The problem is that the variable I defined never changes and the transformation result is always the same because of that.
Executing a transformation for each row in a result set is a standard way of doing things in PDI. You have most of it correct, but instead of setting a variable (which only happens once in the job flow), use the result rows directly.
First, configure the second transformation to Execute for each row in the Edit window.
You can then use one of two ways to pass the fields into the transformation, depending on which is easier for you:
Start the transformation with a get rows from result. This should get you one row each time. The fields will be in stream directly and can be used as such.
Pass the fields as parameters, so they can be used like variables. I use this one more often, but it takes a bit more setup.
Inside the second transformation, go to the properties and enter variable names you want in the Parameters tab.
Save the transformation.
In the job, open the transformation edit window and go to Parameters.
Click Get Parameters.
Type the field name from the first transformation under Stream Column Name for each parameter.
I am creating pentaho jobs
In first set variable box i am passing value sysdate the first dfp job working perfectly.
In second set variable box i am passing value sysdate+1 ,so sysdate+1 file is picked correctly to process but second dfp job only getting error.
Is this logic is possible in pentaho Jobs?
I have numerous example of that kind that works perfectly every night. And I guess the Set variables have the appropriate level (valid in parent job).
So the bug is probably in the value you give to the variable in Set variable 2. The value sysdate+1 has the literal value (the string "sysdate+1") not the Date of tomorrow.
You must first compute that value. Which is done in a transformation replacing Set variable 2, which would do something like this:
So, the problem is that report on SSRS is executing immediately after opening. I use query based default parameters.. And i saw the solution with adding additional parameter without default value. It doesn't work for me because of the textbox which cannot be hidden (i tried to hide it and report stop working).
So is there a way to hide this additional parameter? or maybe another way to solve this issue?
The problem is happening because you are setting a required parameter as nullable or you are giving it a default value that is invalid. To fix the problem, remove the default values. When you go to the report it will not be able to run until you give it the required value(s).
There can be two solutions to it.
Set the default of the parameter in question to such a value that would absolutely have no matches in dataset. Say for example, the parameter is Location. Give the defalut value as "Mars". (Unless of course you build software of extra terrestrial beings). This way the report will execute pretty fast, without any errors.
Set the default value of the parameter to be NULL. Add a dataset filter like below:
=IIF(ISNOTHING(Parameters!Location.Value), TRUE, FALSE)
Using IsNothing function you can ask dataset to return rows only when the parameter has values.
Let me know if either approach works out.
In SSRS 2008R2, how it is possible to allow a user type in multi values instead of selecting?
The report must have multiple filters and all are optional where user can select one or any parameter to filter. Transaction # and category code are parameters where its required allowing the user type in values or select.
Parameters are as below
from date:
To Date:
Transaction #:
Category code:
Using a multi value parameter where available values are based on a query is not a solution as the result will have a very long list and user wont be able to type in. thus we need the user to type the values to be filtered on.
transaction# is an integer and user may enter one or many or just keep it blank to get the result based on other used filters.
The following will work with an embedded query:
First set up your parameter with data type Text and to Allow multiple values.
Since the parameter needs to be optional, set a default value (such as All) and update the WHERE clause in your query to get results based on this parameter:
...
WHERE ('All' IN (#Customer) OR CustomerNumber IN (#Customer))
...
Now when you run the report you can highlight the default value in the dropdown:
and start typing in the values to search on (using Enter between each item):
the only solution integrated into SSRS i found so far is to sue single valued text parameters to be parsed by the underlying database.
multi-valued parameters are replaced by single valued parameters, your users can fill them as they please, you have to split/validate these input values in the report code or at the sql layer.
this is very quick to implement and integrated into SSRS but has some (imho) huge drawback: input validation and error handling.
if an external solution is an option you can go with an asp.net report viewer.
leveraging on web scripting, ajax and so on the input interface can be very user friendly while keeping SSRS as a backend to do the heavy work.
I created multiple combo-boxes from which i extracted data for each of them from the stored procedure created, all these boxes were working until earlier on today, 2 of the combo boxes stopped working, on checking the "immediate window" for the rows and columns,i got results for the columns but when i check for the columns e.g ?dsContactTitles.Tables(0).Rows i get the following as part of the list that comes up:
item: In order to evaluate an indexed property, the property must be qualified and the
arguments must be explicitly supplied by the user.
else when i check for a specific row i get an ArrayOutOfBoundException. this was working perfectly for a long time, please would anyone know the cause of this inconsistency?.
Since you are dumping the entire Rows object in the immediate window, you are seeing the list of properties for the Rows object. One of the properties is Item, but this requires an index in order to display any valid data, which is what the message is telling you.
If you look at ?dsContactTitles.Tables(0).Rows.Item(0), then you will see the first row, if one exists.
If you check a specific row and get an index out of bounds error, then that means you are no longer retrieving the row from the database. Try executing your stored procedure manually to see if it is returning the values you expect. If not, you either need to update your database or the stored procedure.