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:
...
Code Block | ||
---|---|---|
api.find("DMDS", Filter.equal("uniqueName", "DSNAME")) | ||
Page Properties | ||
| Author | |
Contributors | ||
limit | 1 | |
showLastTime | true | |
reverse | true | order | update
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) |