Interface EssDrillthrough

All Known Implementing Classes:
EssDrillthroughImpl

public interface EssDrillthrough
  • Method Details

    • getCube

      EssCube getCube()
      Returns the cube that owns this drill-through object.
      Returns:
      the parent cube for this drill-through definition
    • getName

      String getName()
      Gets the name of this drill-through report.
      Returns:
      the drill-through name
    • getType

      EssObject.Type getType()
    • getUrl

      String getUrl()
      Gets the URL of this drill-through report (URL-style only!). This API will likely change soon as support for different drill-through types is built out.
      Returns:
      the drill URL if there is one, null otherwise, such as on data source reports
    • getDrillthroughType

      EssDrillthrough.DrillthroughType getDrillthroughType()
      Gets the type of report, which will be either DATASOURCE or URL. This method causes a fetch to the drill-through report definition endpoint if it hasn't already been fetched.
      Returns:
      the type
      See Also:
    • setUrl

      void setUrl(String url)
      Sets the drill (again, likely to change soon)
      Parameters:
      url - the drill URL
    • getDrillableRegions

      List<String> getDrillableRegions()
      Get the drillable regions.
      Returns:
      the list of drillable regions
    • setDrillableRegions

      void setDrillableRegions(List<String> drillableRegions)
      Sets the drillable regions for this report
      Parameters:
      drillableRegions - the drillable regions
    • isUseTempTables

      boolean isUseTempTables()
      Gets the useTempTables parameter for this report which is only valid using Oracle DB.
      Returns:
      the use temp tables setting
    • setUseTempTables

      void setUseTempTables(boolean useTempTables)
      Sets the useTempTables parameter for this report which is only valid using Oracle DB.
      Parameters:
      useTempTables - the use temp tables setting
    • getDataSourceName

      String getDataSourceName()
      Gets the name of the data source for this report.
      Returns:
      the name of the data source.
    • setDataSourceName

      void setDataSourceName(String dataSourceName)
      Sets the name of the data source for this report.
      Parameters:
      dataSourceName - the name of the data source
    • save

      void save()
      Saves updates to this report
    • delete

      void delete()
      Deletes this drill-through report
    • getColumns

      List<String> getColumns()
      The source columns this report returns, for a datasource report.
      Returns:
      the column names, or null on a URL report, which has none
    • setColumns

      void setColumns(List<String> columns)
      Sets the source columns this report returns.
      Parameters:
      columns - the column names, in the order they should come back
    • getColumnMappings

      Which source column is filtered by which cube dimension, keyed by column name.

      This is what makes a datasource report a drill-through rather than a query: the drilled cell's members become the filter on these columns.

      Returns:
      the mappings, empty on a URL report
    • setColumnMappings

      void setColumnMappings(Map<String,EssDrillthroughColumnMapping> columnMappings)
      Sets the column-to-dimension mappings.
      Parameters:
      columnMappings - the mappings, keyed by source column name
    • execute

      Runs this report for a drilled cell and returns the detail behind it.

      Executed by the server rather than assembled here, which is the difference that matters: the drillable regions, the column mappings, the runtime parameters and the temporary-table setting are all honoured, because Essbase is running its own report rather than this code guessing at what that report means.

      Each dimension carries a set of members rather than one, because a drill can come from a selected range of cells and not only a single intersection.

      Parameters:
      pov - the drilled cell, as dimension to the members selected in it
      Returns:
      the detail rows
      Throws:
      EssApiException - if the report is a URL report, which the server cannot execute - there is nothing to run, only a URL for a client to open
    • execute

      EssDrillthroughResult execute(Map<String,Set<String>> pov, String aliasTable)
      Runs this report for a drilled cell, resolving member names through an alias table.
      Parameters:
      pov - the drilled cell, as dimension to the members selected in it
      aliasTable - the alias table the member names are expressed in, or null for none
      Returns:
      the detail rows