Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Question

Does anyone know of a way to query data straight out of a

...

Data Source from a calculation logic instead of setting up a Datamart + Data Load for it?

I found that I can use the search API to find the DS, but it contains no actual data, only the structure:

...

update
Code Block
api.find("DMDS", Filter.equal("uniqueName", "DSNAME"))
Page Properties
hiddentrue
Author
Contributors
limit1
showLastTimetrue
reversetrue
order

Answer

You need to use DatamartContext.getDastaSource(String name).

Code Block
def dmCtx = api.getDatamartContext()
def salesDS = dmCtx.getDataSource("SalesHistory2")
def dsQuery = dmCtx.newQuery(salesDS)

def filters = [
    Filter.equal("Sku", api.product("sku")),
]

dsQuery.select("SUM(Revenue)", "revenue")
dsQuery.select("SUM(UnitsSold)", "unitsSold")
dsQuery.select("YearMonth", "month")
dsQuery.where(filters)

def result = dmCtx.executeQuery(dsQuery)