kuji-cube 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,219 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: http://localhost:8282/icCube/xmla
6
+ body: ! "<?xml version=\"1.0\" encoding=\"UTF-8\"?><env:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
7
+ xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:wsdl=\"http://tempuri.org/wsdl/\"
8
+ xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ins0=\"http://tempuri.org/type\"><env:Body><Execute
9
+ xmlns=\"urn:schemas-microsoft-com:xml-analysis\"><Command> <Statement> <![CDATA[
10
+ select [Measures].[Broj] on COLUMNS, non empty topcount ( [Razlog prijave].[Razlog].children
11
+ * [Lokacija].[Kvart].children , 20, [Measures].[Broj] ) on ROWS from [GOSJAR]
12
+ ]]> </Statement> </Command> <Properties> <PropertyList> <Catalog>GOSJAR</Catalog>\n
13
+ \ <Format>Multidimensional</Format> <AxisFormat>TupleFormat</AxisFormat>
14
+ </PropertyList> </Properties></Execute></env:Body></env:Envelope>"
15
+ headers:
16
+ soapaction:
17
+ - ! '"urn:schemas-microsoft-com:xml-analysis:Execute"'
18
+ content-type:
19
+ - text/xml;charset=UTF-8
20
+ content-length:
21
+ - '788'
22
+ response: !ruby/struct:VCR::Response
23
+ status: !ruby/struct:VCR::ResponseStatus
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ expires:
28
+ - Thu, 01-Jan-1970 00:00:00 GMT
29
+ set-cookie:
30
+ - JSESSIONID=17ppia5d4a6s4ye5e3kyuvczs;Path=/
31
+ content-type:
32
+ - text/xml; charset=utf-8
33
+ transfer-encoding:
34
+ - chunked
35
+ server:
36
+ - Jetty(6.1.25)
37
+ body: ! '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><Session
38
+ SessionId="0015d5a5-fa0b-4c32-ad94-36f4c1a79b55" xmlns="urn:schemas-microsoft-com:xml-analysis"/></soap:Header><soap:Body><ExecuteResponse
39
+ xmlns="urn:schemas-microsoft-com:xml-analysis"><return><root xmlns="urn:schemas-microsoft-com:xml-analysis:mddataset"
40
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><xs:schema
41
+ targetNamespace="urn:schemas-microsoft-com:xml-analysis:mddataset" elementFormDefault="qualified"
42
+ xmlns="urn:schemas-microsoft-com:xml-analysis:mddataset" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType
43
+ name="MemberType"> <xs:sequence> <xs:any namespace="##targetNamespace"
44
+ minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
45
+ name="Hierarchy" type="xs:string"/> </xs:complexType> <xs:complexType
46
+ name="PropType"> <xs:sequence> <xs:element name="Default"
47
+ minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="xs:string"
48
+ use="required"/> <xs:attribute name="type" type="xs:QName"/> </xs:complexType> <xs:complexType
49
+ name="TupleType"> <xs:sequence> <xs:element name="Member"
50
+ type="MemberType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType
51
+ name="MembersType"> <xs:sequence> <xs:element name="Member"
52
+ type="MemberType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute
53
+ name="Hierarchy" type="xs:string" use="required"/> </xs:complexType> <xs:complexType
54
+ name="TuplesType"> <xs:sequence> <xs:element name="Tuple"
55
+ type="TupleType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:group
56
+ name="SetType"> <xs:choice> <xs:element name="Members" type="MembersType"/> <xs:element
57
+ name="Tuples" type="TuplesType"/> <xs:element name="CrossProduct"
58
+ type="SetListType"/> <xs:element name="Union"> <xs:complexType> <xs:group
59
+ ref="SetType" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> </xs:choice> </xs:group> <xs:complexType
60
+ name="SetListType"> <xs:group ref="SetType" minOccurs="0" maxOccurs="unbounded"/> <xs:attribute
61
+ name="Size" type="xs:unsignedInt"/> </xs:complexType> <xs:complexType
62
+ name="OlapInfo"> <xs:sequence> <xs:element name="CubeInfo"> <xs:complexType> <xs:sequence> <xs:element
63
+ name="Cube" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element
64
+ name="CubeName" type="xs:string"/> <xs:element
65
+ name="LastDataUpdate" minOccurs="0" type="xs:dateTime"/> <xs:element
66
+ name="LastSchemaUpdate" minOccurs="0" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element
67
+ name="AxesInfo"> <xs:complexType> <xs:sequence> <xs:element
68
+ name="AxisInfo" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element
69
+ name="HierarchyInfo" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any
70
+ namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
71
+ name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute
72
+ name="name" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element
73
+ name="CellInfo"> <xs:complexType> <xs:choice
74
+ minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##targetNamespace"
75
+ minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType
76
+ name="Axes"> <xs:sequence> <xs:element name="Axis" maxOccurs="unbounded"> <xs:complexType> <xs:group
77
+ ref="SetType" minOccurs="0" maxOccurs="unbounded"/> <xs:attribute
78
+ name="name" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType
79
+ name="CellData"> <xs:sequence> <xs:element name="Cell" minOccurs="0"
80
+ maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any
81
+ namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
82
+ name="CellOrdinal" type="xs:unsignedInt" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element
83
+ name="root"> <xs:complexType> <xs:sequence> <xs:any
84
+ namespace="http://www.w3.org/2001/XMLSchema" processContents="strict" minOccurs="0"/> <xs:element
85
+ name="OlapInfo" type="OlapInfo" minOccurs="0"/> <xs:element name="Axes"
86
+ type="Axes" minOccurs="0"/> <xs:element name="CellData" type="CellData"
87
+ minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element></xs:schema>
88
+
89
+ <OlapInfo><CubeInfo><Cube><CubeName>GOSJAR</CubeName><LastDataUpdate xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">2012-02-09T09:45:32</LastDataUpdate><LastSchemaUpdate
90
+ xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">2012-02-09T09:45:32</LastSchemaUpdate></Cube></CubeInfo><AxesInfo><AxisInfo
91
+ name="Axis0"><HierarchyInfo name="[Measures]"><UName name="[Measures].[MEMBER_UNIQUE_NAME]"
92
+ type="xsd:string"/><Caption name="[Measures].[MEMBER_CAPTION]" type="xsd:string"/><LName
93
+ name="[Measures].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Measures].[LEVEL_NUMBER]"
94
+ type="xsd:int"/><DisplayInfo name="[Measures].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo><AxisInfo
95
+ name="Axis1"><HierarchyInfo name="[Razlog prijave].[Razlog]"><UName name="[Razlog
96
+ prijave].[Razlog].[MEMBER_UNIQUE_NAME]" type="xsd:string"/><Caption name="[Razlog
97
+ prijave].[Razlog].[MEMBER_CAPTION]" type="xsd:string"/><LName name="[Razlog
98
+ prijave].[Razlog].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Razlog
99
+ prijave].[Razlog].[LEVEL_NUMBER]" type="xsd:int"/><DisplayInfo name="[Razlog
100
+ prijave].[Razlog].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
101
+ name="[Lokacija].[Kvart]"><UName name="[Lokacija].[Kvart].[MEMBER_UNIQUE_NAME]"
102
+ type="xsd:string"/><Caption name="[Lokacija].[Kvart].[MEMBER_CAPTION]" type="xsd:string"/><LName
103
+ name="[Lokacija].[Kvart].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Lokacija].[Kvart].[LEVEL_NUMBER]"
104
+ type="xsd:int"/><DisplayInfo name="[Lokacija].[Kvart].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo><AxisInfo
105
+ name="SlicerAxis"><HierarchyInfo name="[Vrsta].[Vrsta]"><UName name="[Vrsta].[Vrsta].[MEMBER_UNIQUE_NAME]"
106
+ type="xsd:string"/><Caption name="[Vrsta].[Vrsta].[MEMBER_CAPTION]" type="xsd:string"/><LName
107
+ name="[Vrsta].[Vrsta].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Vrsta].[Vrsta].[LEVEL_NUMBER]"
108
+ type="xsd:int"/><DisplayInfo name="[Vrsta].[Vrsta].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
109
+ name="[Ulica].[ulica]"><UName name="[Ulica].[ulica].[MEMBER_UNIQUE_NAME]" type="xsd:string"/><Caption
110
+ name="[Ulica].[ulica].[MEMBER_CAPTION]" type="xsd:string"/><LName name="[Ulica].[ulica].[LEVEL_UNIQUE_NAME]"
111
+ type="xsd:string"/><LNum name="[Ulica].[ulica].[LEVEL_NUMBER]" type="xsd:int"/><DisplayInfo
112
+ name="[Ulica].[ulica].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
113
+ name="[Produkt].[Produkt]"><UName name="[Produkt].[Produkt].[MEMBER_UNIQUE_NAME]"
114
+ type="xsd:string"/><Caption name="[Produkt].[Produkt].[MEMBER_CAPTION]" type="xsd:string"/><LName
115
+ name="[Produkt].[Produkt].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Produkt].[Produkt].[LEVEL_NUMBER]"
116
+ type="xsd:int"/><DisplayInfo name="[Produkt].[Produkt].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo></AxesInfo><CellInfo><Value
117
+ name="VALUE"/><FmtValue name="FORMATTED_VALUE" type="xsd:string"/><CellOrdinal
118
+ name="CELL_ORDINAL" type="xsd:unsignedInt"/></CellInfo></OlapInfo><Axes><Axis
119
+ name="Axis0"><Tuples><Tuple><Member Hierarchy="[Measures]"><UName>[Measures].[Broj]</UName><Caption>Broj</Caption><LName>[Measures].[MeasuresLevel]</LName><LNum>0</LNum><DisplayInfo>0</DisplayInfo></Member></Tuple></Tuples></Axis><Axis
120
+ name="Axis1"><Tuples><Tuple><Member Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog
121
+ prijave].[razlog].&amp;[1]</UName><Caption>Ne radi svjetiljka</Caption><LName>[Razlog
122
+ prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>0</DisplayInfo></Member><Member
123
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[11]</UName><Caption>NOVI
124
+ ZAGREB – ZAPAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>0</DisplayInfo></Member></Tuple><Tuple><Member
125
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
126
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
127
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[15]</UName><Caption>GORNJA
128
+ DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
129
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
130
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
131
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[20]</UName><Caption>SESVETE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
132
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
133
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
134
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[10]</UName><Caption>NOVI
135
+ ZAGREB – ISTOK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
136
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
137
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
138
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[8]</UName><Caption>MAKSIMIR</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
139
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
140
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
141
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[6]</UName><Caption>GORNJI
142
+ GRAD – MEDVEŠČAK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
143
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
144
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
145
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[13]</UName><Caption>TREŠNJEVKA
146
+ – JUG</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
147
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
148
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
149
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[7]</UName><Caption>TRNJE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
150
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
151
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
152
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[9]</UName><Caption>PEŠČENICA
153
+ - ŽITNJAK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
154
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
155
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
156
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[18]</UName><Caption>PODSUSED
157
+ – VRAPČE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
158
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
159
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
160
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[14]</UName><Caption>ČRNOMEREC</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
161
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
162
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
163
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[5]</UName><Caption>DONJI
164
+ GRAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
165
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
166
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
167
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[16]</UName><Caption>DONJA
168
+ DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
169
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[3]</UName><Caption>Ne
170
+ radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
171
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[11]</UName><Caption>NOVI
172
+ ZAGREB – ZAPAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
173
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[3]</UName><Caption>Ne
174
+ radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
175
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[10]</UName><Caption>NOVI
176
+ ZAGREB – ISTOK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
177
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[3]</UName><Caption>Ne
178
+ radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
179
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[7]</UName><Caption>TRNJE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
180
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[37]</UName><Caption>Redovna
181
+ izmjena</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
182
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[13]</UName><Caption>TREŠNJEVKA
183
+ – JUG</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
184
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[1]</UName><Caption>Ne
185
+ radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
186
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[12]</UName><Caption>TREŠNJEVKA
187
+ – SJEVER</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
188
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[3]</UName><Caption>Ne
189
+ radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
190
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[20]</UName><Caption>SESVETE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
191
+ Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&amp;[37]</UName><Caption>Redovna
192
+ izmjena</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
193
+ Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&amp;[15]</UName><Caption>GORNJA
194
+ DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple></Tuples></Axis><Axis
195
+ name="SlicerAxis"><Tuples><Tuple><Member Hierarchy="[Vrsta].[Vrsta]"><UName>[Vrsta].[Vrsta
196
+ prijave]</UName><Caption>Vrsta prijave</Caption><LName>[Vrsta].[Vrsta].[All-L]</LName><LNum>0</LNum><DisplayInfo>5</DisplayInfo></Member><Member
197
+ Hierarchy="[Ulica].[ulica]"><UName>[Ulica].[Ulice].[Ulica]</UName><Caption>Ulica</Caption><LName>[Ulica].[ulica].[Ulice]</LName><LNum>0</LNum><DisplayInfo>5092</DisplayInfo></Member><Member
198
+ Hierarchy="[Produkt].[Produkt]"><UName>[Produkt].[All-M]</UName><Caption>All-M</Caption><LName>[Produkt].[Produkt].[All-L]</LName><LNum>0</LNum><DisplayInfo>15</DisplayInfo></Member></Tuple></Tuples></Axis></Axes><CellData><Cell
199
+ CellOrdinal="0"><Value xsi:type="xsd:long">1401</Value><FmtValue>1401</FmtValue></Cell><Cell
200
+ CellOrdinal="1"><Value xsi:type="xsd:long">1383</Value><FmtValue>1383</FmtValue></Cell><Cell
201
+ CellOrdinal="2"><Value xsi:type="xsd:long">1316</Value><FmtValue>1316</FmtValue></Cell><Cell
202
+ CellOrdinal="3"><Value xsi:type="xsd:long">1208</Value><FmtValue>1208</FmtValue></Cell><Cell
203
+ CellOrdinal="4"><Value xsi:type="xsd:long">1043</Value><FmtValue>1043</FmtValue></Cell><Cell
204
+ CellOrdinal="5"><Value xsi:type="xsd:long">994</Value><FmtValue>994</FmtValue></Cell><Cell
205
+ CellOrdinal="6"><Value xsi:type="xsd:long">955</Value><FmtValue>955</FmtValue></Cell><Cell
206
+ CellOrdinal="7"><Value xsi:type="xsd:long">837</Value><FmtValue>837</FmtValue></Cell><Cell
207
+ CellOrdinal="8"><Value xsi:type="xsd:long">823</Value><FmtValue>823</FmtValue></Cell><Cell
208
+ CellOrdinal="9"><Value xsi:type="xsd:long">821</Value><FmtValue>821</FmtValue></Cell><Cell
209
+ CellOrdinal="10"><Value xsi:type="xsd:long">717</Value><FmtValue>717</FmtValue></Cell><Cell
210
+ CellOrdinal="11"><Value xsi:type="xsd:long">677</Value><FmtValue>677</FmtValue></Cell><Cell
211
+ CellOrdinal="12"><Value xsi:type="xsd:long">635</Value><FmtValue>635</FmtValue></Cell><Cell
212
+ CellOrdinal="13"><Value xsi:type="xsd:long">631</Value><FmtValue>631</FmtValue></Cell><Cell
213
+ CellOrdinal="14"><Value xsi:type="xsd:long">620</Value><FmtValue>620</FmtValue></Cell><Cell
214
+ CellOrdinal="15"><Value xsi:type="xsd:long">602</Value><FmtValue>602</FmtValue></Cell><Cell
215
+ CellOrdinal="16"><Value xsi:type="xsd:long">597</Value><FmtValue>597</FmtValue></Cell><Cell
216
+ CellOrdinal="17"><Value xsi:type="xsd:long">581</Value><FmtValue>581</FmtValue></Cell><Cell
217
+ CellOrdinal="18"><Value xsi:type="xsd:long">580</Value><FmtValue>580</FmtValue></Cell><Cell
218
+ CellOrdinal="19"><Value xsi:type="xsd:long">575</Value><FmtValue>575</FmtValue></Cell></CellData></root></return></ExecuteResponse></soap:Body></soap:Envelope>'
219
+ http_version: '1.1'
data/spec/cube_spec.rb ADDED
@@ -0,0 +1,143 @@
1
+ #encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+
5
+
6
+
7
+ describe XMLA::Cube do
8
+ it 'supports multiple items on x axis' do
9
+ configure_icube
10
+ VCR.use_cassette('kvatovi_u_koloni') do
11
+ result = XMLA::Cube.execute("select [Lokacija].[Kvart].children on COLUMNS, [Measures].[Broj] on ROWS from [GOSJAR]")
12
+ result.rows.count.should == 1
13
+ result.header.count.should == 18
14
+ result.rows.join('|').should == "Broj|1422|2259|2148|2733|2004|2607|2829|1611|2581|1945|3602|1356|1696|2327|1228|3186|"
15
+ end
16
+ end
17
+
18
+ it 'supports multiple items on y axis' do
19
+ configure_icube
20
+ VCR.use_cassette('kvartovi_u_recima') do
21
+ result = XMLA::Cube.execute("select [Measures].[Broj] on COLUMNS, non empty topcount( [Lokacija].[Kvart].children, 100, [Measures].[Broj]) on ROWS from [GOSJAR]")
22
+ result.rows.count.should == 16
23
+ result.header.join('|').should == '|Broj'
24
+ result.rows[5].join('|').should == 'TRESNJEVKA - JUG|2607'
25
+ result.rows[15].join('|').should == 'PODSLJEME|1228'
26
+ end
27
+ end
28
+
29
+ it 'support multiple items on y axis and multiple items on x axis' do
30
+ configure_icube
31
+ VCR.use_cassette('razlog_prijave_i_kvart') do
32
+ result = XMLA::Cube.execute("select [Measures].[Broj] on COLUMNS, non empty topcount ( [Razlog prijave].[Razlog].children * [Lokacija].[Kvart].children , 20, [Measures].[Broj] ) on ROWS from [GOSJAR]")
33
+ result.rows.count.should == 20
34
+ result.header.join('|').should == "||Broj"
35
+ result.rows[1].join('|').should == "|GORNJA DUBRAVA|1383"
36
+ result.rows[19].join('|').should == "Redovna izmjena|GORNJA DUBRAVA|575"
37
+ end
38
+ end
39
+
40
+ it 'check if request is correct - to fix that bug with class varables not beign visible inside the block' do
41
+ configure_icube
42
+ XMLA::Cube.send(:request_body, "SELECT", "GOSJAR").gsub("\n","").gsub(" ", "").should ==
43
+ "<Command><Statement><![CDATA[SELECT]]></Statement></Command><Properties><PropertyList><Catalog>GOSJAR</Catalog>
44
+ <Format>Multidimensional</Format><AxisFormat>TupleFormat</AxisFormat></PropertyList></Properties>".gsub("\n","").gsub(" ","")
45
+ end
46
+
47
+ it 'should connect to mondrian' do
48
+ configure_mondrian
49
+
50
+ VCR.use_cassette('mondrian_broj_intervencija') do
51
+ result = XMLA::Cube.execute("SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS, NON EMPTY {Hierarchize({[Gradska cetvrt].[Gradska cetvrt].Members})} ON ROWS FROM [Kvarovi]")
52
+ result.rows.count.should == 16
53
+ result.header.join('|').should == "|Broj intervencija"
54
+ result.rows[1].join('|').should == "GORNJI GRAD – MEDVEŠČAK|2,259"
55
+ end
56
+ end
57
+
58
+ it 'should handle the case with only one row in result' do
59
+ configure_mondrian
60
+
61
+ VCR.use_cassette('mondrian_jedan_red_odgovor') do
62
+ result = XMLA::Cube.execute <<-MDX
63
+ SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS,
64
+ non empty ( { Filter (Hierarchize({[Razlog prijave].children}), [Measures].[Broj intervencija] >= 7000 )}) ON ROWS
65
+ FROM [Kvarovi]
66
+ MDX
67
+ result.rows.count.should == 1
68
+ result.header.join('|').should == "|Broj intervencija"
69
+ result.rows[0].join('|').should == "Ne radi svjetiljka|14442"
70
+ end
71
+ end
72
+
73
+
74
+ it 'should handle the case with zero rows in result' do
75
+ configure_mondrian
76
+
77
+ VCR.use_cassette('mondrian_nula_redaka') do
78
+ result = XMLA::Cube.execute <<-MDX
79
+ SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS,
80
+ non empty ( { Filter (Hierarchize({[Razlog prijave].children}), [Measures].[Broj intervencija] >= 15000 )}) ON ROWS
81
+ FROM [Kvarovi]
82
+ MDX
83
+ result.rows.count.should == 0
84
+ result.rows[0].should == nil
85
+ end
86
+ end
87
+
88
+ it 'should handle when scalar value is returned' do
89
+ configure_mondrian
90
+
91
+ VCR.use_cassette('mondrian_scalar_value') do
92
+ result = XMLA::Cube.execute_scalar <<-MDX
93
+ SELECT {Hierarchize({[Measures].[Rok otklona]})} ON COLUMNS
94
+ FROM [Kvarovi]
95
+ WHERE [Vrijeme prijave].[2011]
96
+ MDX
97
+ result.should == 7.356
98
+ end
99
+
100
+ end
101
+
102
+
103
+ it "should return formatted value if available" do
104
+ configure_mondrian
105
+
106
+ VCR.use_cassette('formatted_values') do
107
+ result = XMLA::Cube.execute <<-MDX
108
+ SELECT { [Measures].[Scope 1 Carbon] } on COLUMNS,
109
+ { [Category].[Energy].Children } on ROWS
110
+ FROM [Carbon]
111
+ WHERE [Date].[Year].[2009]
112
+ MDX
113
+ result.rows[0][1].should == "3,813,012"
114
+ result.rows[1][1].should == "3,046,551"
115
+ end
116
+
117
+ end
118
+
119
+ describe "getting the members only" do
120
+ before { configure_mondrian }
121
+
122
+ it "should allow queries with just column" do
123
+ VCR.use_cassette('member_query', :match_requests_on => [:body]) do
124
+ result = XMLA::Cube.execute_members <<-MDX
125
+ SELECT { [Category].[Energy].Children } on COLUMNS
126
+ FROM [Carbon]
127
+ MDX
128
+ result.should == [[["Electricity"], ["Natural Gas"]]]
129
+ end
130
+ end
131
+
132
+ it "should allow queries with just column" do
133
+ VCR.use_cassette('member_query', :match_requests_on => [:body] ) do
134
+ result = XMLA::Cube.execute_members <<-MDX
135
+ SELECT { [Category].[Energy].Children } on COLUMNS,
136
+ { [Entity].LastChild } on ROWS
137
+ FROM [Carbon]
138
+ MDX
139
+ result.should == [[["Electricity"], ["Natural Gas"]], [["Wrythe Green Surgery - General Practitioner"]]]
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,53 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+
4
+ require 'rspec'
5
+ require 'cube'
6
+ require 'webmock'
7
+ require 'vcr'
8
+
9
+ begin
10
+ require 'ruby-debug'
11
+ rescue
12
+ puts "debugger not found!"
13
+ end
14
+
15
+
16
+ # def configure_mondrian
17
+ # XMLA.configure do |c|
18
+ # c.endpoint = "http://localhost:8080/mondrian/xmla"
19
+ # c.catalog = "Husky"
20
+ # end
21
+ # end
22
+
23
+
24
+ def configure_icube
25
+ XMLA.configure do |c|
26
+ c.endpoint = "http://localhost:8282/icCube/xmla"
27
+ c.catalog = "GOSJAR"
28
+ end
29
+ end
30
+
31
+ def configure_mondrian
32
+ XMLA.configure do |c|
33
+ c.endpoint = "http://localhost:8383/mondrian/xmla"
34
+ c.catalog = "GOSJAR"
35
+ end
36
+ end
37
+
38
+
39
+ VCR.config do |c|
40
+ c.default_cassette_options = { :record => :none }
41
+ c.cassette_library_dir = 'spec/cassettes'
42
+ c.stub_with :webmock
43
+ end
44
+
45
+
46
+ # Requires supporting files with custom matchers and macros, etc,
47
+ # in ./support/ and its subdirectories.
48
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
49
+
50
+ RSpec.configure do |config|
51
+ config.filter_run :focus => true
52
+ config.run_all_when_everything_filtered = true
53
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kuji-cube
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.5.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - drKreso
9
+ - stellard
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-05-16 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: savon
17
+ requirement: &70216168646180 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70216168646180
26
+ - !ruby/object:Gem::Dependency
27
+ name: webmock
28
+ requirement: &70216168645660 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *70216168645660
37
+ description: Eases the pain I had to go through to get to the data out of XMLA based
38
+ OLAP provider(Mondiran, Pentaho, icCube)
39
+ email:
40
+ - kresimir.bojcic@gmail.com
41
+ - scott@kujilabs.com
42
+ executables: []
43
+ extensions: []
44
+ extra_rdoc_files: []
45
+ files:
46
+ - .document
47
+ - .gitignore
48
+ - .rspec
49
+ - Gemfile
50
+ - Gemfile.lock
51
+ - LICENSE.txt
52
+ - README.md
53
+ - Rakefile
54
+ - kuji-cube.gemspec
55
+ - lib/cube.rb
56
+ - lib/cube/cube.rb
57
+ - lib/cube/olap_result.rb
58
+ - lib/cube/version.rb
59
+ - lib/cube/xmla.rb
60
+ - lib/wsdl/xmla.xml
61
+ - spec/cassettes/.yml
62
+ - spec/cassettes/formatted_values.yml
63
+ - spec/cassettes/kvartovi_u_recima.yml
64
+ - spec/cassettes/kvatovi_u_koloni.yml
65
+ - spec/cassettes/member_query.yml
66
+ - spec/cassettes/mondrian_broj_intervencija.yml
67
+ - spec/cassettes/mondrian_jedan_red_odgovor.yml
68
+ - spec/cassettes/mondrian_nula_redaka.yml
69
+ - spec/cassettes/mondrian_scalar_value.yml
70
+ - spec/cassettes/mondrian_vrati_samo_jedan_broj.yml
71
+ - spec/cassettes/razlog_prijave_i_kvart.yml
72
+ - spec/cube_spec.rb
73
+ - spec/spec_helper.rb
74
+ homepage: http://github.com/kujilabs/cube
75
+ licenses:
76
+ - MIT
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ requirements: []
94
+ rubyforge_project:
95
+ rubygems_version: 1.8.6
96
+ signing_key:
97
+ specification_version: 3
98
+ summary: Get's the data from OLAP cube via XMLA(Mondiran, Pentaho, icCube)
99
+ test_files:
100
+ - spec/cassettes/.yml
101
+ - spec/cassettes/formatted_values.yml
102
+ - spec/cassettes/kvartovi_u_recima.yml
103
+ - spec/cassettes/kvatovi_u_koloni.yml
104
+ - spec/cassettes/member_query.yml
105
+ - spec/cassettes/mondrian_broj_intervencija.yml
106
+ - spec/cassettes/mondrian_jedan_red_odgovor.yml
107
+ - spec/cassettes/mondrian_nula_redaka.yml
108
+ - spec/cassettes/mondrian_scalar_value.yml
109
+ - spec/cassettes/mondrian_vrati_samo_jedan_broj.yml
110
+ - spec/cassettes/razlog_prijave_i_kvart.yml
111
+ - spec/cube_spec.rb
112
+ - spec/spec_helper.rb