Determining Report Parameter inheritence ie Effective Report Parameters

I'm looking for a technique to determine the Effective report parameters for a Report Subscription 

As a report subscription can inherit parameters from both the RPSReport and DialogReport parameter sets - and can be over written at any of the three levels - is the a build in function or stored proc that returns the effective parameters for an individual Report Subscription ?  before I resort to CTE recursive lookups . . . .

If I look at the parameters linked to the RPSSubscription directly via DialogParameterSet filter - some of the fixed value parameters defined on the DialogReport and RPSReport parametersets are not include - therefore I assume they will be determined at run time ?  What mechanism is used ? 

with thanks

Parents Reply Children
  • Use case is as follows 

    Customer would like to have Reports exported to share on MS Server.

    Per Report definition - they would like to define : 

    1 : Name of output file - that is not overwritten by Subscription name as in OOTB

    2 : Ability to specify file output type eg pdf vs XSLX - per Report Defintion.

    3 : Ability to have varying "Lifetime" / Aging that deletes old versions of reports.

    Custom Process on RPSSubscription created to export file using these Report Parameters. - using RPSSubscription model to provide context for user directory / permissions to be assigned. (Central Account added to Report storage path - similar to OOTB)

    Custom process developed to clean up reports on schedule - based on lifetime provided by paramter.

    Problem is - in order to have the parameters linked to the RPSSubscription paramterset - cannot make them fixed on the report definition (DialogReport) - they are only then shown against the DialogReport Parameter set - not the RPSReport or RPSSubscription version / parameter set . . .  Ideally - these Fixed paramters would be set once on the DialogReport parameterset - and inherited - preventing overwrite by Subscriber.

    Is see in the Object Layer documentation there is reference to : Parameter.GetData(Of TParam, TVal) Method (Func(Of TParam, TVal)) 

    Gets the data value from this parameter or one of it's parents

    Do you happen to have an illustration / example of this in use - returning inherited values or defaults ? 

    Thanks

  • Assuming that your process is running at the table RPSSubscription (hence Entity is an RPSSubcription) and assuming that your RPSSubscription entity has an assigned DialogParameterSet via DialogParameterSet.ObjectKeyUsedBy then you can access the value of a parameter with the following code. The code will fetch the value according to the parameter hierarchy as documented in the manuals.

    Dim pSet as IDialogParameterSet = VI.DB.DialogParameterSet.LoadFor(Session, Entity)
    Value = pset.Item("ParameterName").Value

    If you have more than one parameter you need to access in your code, you might want to create the DialogParameterSet in the pre-script to minimize round-trips..

  • Thank you - that worked perfectly . ..