Skip to content

Commit 1be674a

Browse files
committed
Return only requested filters/values
Fixes #65
1 parent 18872dc commit 1be674a

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

MDX2JSON/REST.cls.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ Wrapper for ##class(MDX2JSON.Utils).WriteFiltersForDataSource(pDataSource, pValu
248248
set Values = $$$R("Values")
249249
set Search = $$$R("Search")
250250
251+
#dim RequestedFilters As %ListOfDataTypes = $$$R("RequestedFilters")
252+
251253
#dim RelatedFiltersList As %ListOfObjects = $$$R("RelatedFilters")
252254
if $IsObject(RelatedFiltersList) {
253255
for i=1:1:RelatedFiltersList.Count() {
@@ -256,7 +258,7 @@ Wrapper for ##class(MDX2JSON.Utils).WriteFiltersForDataSource(pDataSource, pValu
256258
}
257259
}
258260
259-
set st = ##class(MDX2JSON.Utils).WriteFiltersForDataSource(DataSource, Values, Search, .RelatedFilters)
261+
set st = ##class(MDX2JSON.Utils).WriteFiltersForDataSource(DataSource, Values, Search, .RelatedFilters, RequestedFilters)
260262
return st
261263
]]></Implementation>
262264
</Method>

MDX2JSON/Tests.cls.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ Classes with support methods for testing MDX2JSON</Description>
88

99
<Parameter name="LastCommit">
1010
<Type>%String</Type>
11-
<Default>5e87ba70baf708f159b9c9dcf8eba0b4203981e9</Default>
11+
<Default>18872dc518d8009bdc105425f541953d2c9d461e</Default>
1212
</Parameter>
1313

1414
<Parameter name="LastCommitTS">
1515
<Type>%TimeStamp</Type>
16-
<Default>2017-04-06 13:37:06.092</Default>
16+
<Default>2017-05-26 16:20:17.307</Default>
1717
</Parameter>
1818

1919
<Method name="ProjectLength">

MDX2JSON/Utils.cls.xml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,24 @@ Get all filters for DeepSee DataSource in JSON format.<br>
142142
<b>pDataSource</b> - name of DeepSee datasource (cube, pivot, kpi, metric).<br>
143143
<b>pValues</b> - write all filters' values. Takes time.]]></Description>
144144
<ClassMethod>1</ClassMethod>
145-
<FormalSpec><![CDATA[pDataSource:%String,pValues:%Boolean=0,pSearchKey:%String="",&pRelatedFilters]]></FormalSpec>
145+
<FormalSpec><![CDATA[pDataSource:%String,pValues:%Boolean=0,pSearchKey:%String="",&pRelatedFilters,pRequestedFilters:%ListOfDataTypes]]></FormalSpec>
146146
<ReturnType>%Status</ReturnType>
147147
<Implementation><![CDATA[
148-
set st = ##class(%DeepSee.Dashboard.Utils).%GetFiltersForDataSource(pDataSource,.tFilters)
148+
set st = ##class(%DeepSee.Dashboard.Utils).%GetFiltersForDataSource(pDataSource, .tFilters)
149149
return:$$$ISERR(st) st
150150
return:($d(tFilters)=0) $$$ERROR($$$GeneralError,"Empty Filter values array. DataSource does not exist?")
151151
152+
if $isobject($g(pRequestedFilters)) {
153+
set key = $order(tFilters(""))
154+
for {
155+
quit:key=""
156+
kill:'pRequestedFilters.Find($lg(tFilters(key),2)) tFilters(key)
157+
set key = $order(tFilters(key))
158+
}
159+
}
160+
152161
if (pValues=1) {
153-
set key = $order(tFilters(""))
162+
set key = $order(tFilters(""))
154163
while (key '= "") {
155164
set st = ##class(%DeepSee.Dashboard.Utils).%GetMembersForFilter(pDataSource,$lg(tFilters(key),2),.tMembers,.tDefaultFilterValue,pSearchKey,.pRelatedFilters,0,,.tValueList)
156165
return:$$$ISERR(st) st

0 commit comments

Comments
 (0)