We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Invalid input on InitializeChart service call

Hi everyone,

I'm trying to develop a OLAP browser with SyncFusion ejOlapClient, but I'm getting this error:

"The input is not a valid Base64 string that contains a character that is not Base 64, more than two filler characters or invalid character between the fill characters."

In the attached image you can see how the third request made to the WCF service has failed.

The related base64 string/object is generated in InitializeClient method. This base64 is sent by the client in the second call (InitializeGrid), but no error raised.
In the third method called, throws an exception, but the base64 string has no changed since it was generated.

Base64 string is generated by this line:
olapClientHelper.GetJsonData(action, DataManager, clientParams);
In the second method is just the same:
olapClientHelper.GetJsonData(action, DataManager, gridLayout);
But in the third method is calling another method from other helper class:
return htmlHelper.GetJsonData(action, DataManager);

Just say, that our code is pretty equal to the sample provided with SyncFusion solution, except by the culture related variables.

The heavy data is down:
Thanks in advice for your time.

---------------------------------------------

The response from 1st call:
{"d":[{"Key":"Cubes","Value":"[{\"name\":\"alarmCube\"}]"},{"Key":"Columns","Value":"#Measures"},{"Key":"Rows","Value":"#Date.Fiscal"},{"Key":"Slicers","Value":""},{"Key":"CubeTreeInfo","Value":"[{\"id\":\"Measures_0\",\"name\":\"Measures\",\"hasChildren\":false,\"spriteCssClass\":\"folderCDB e-icon\",\"tag\":\"Measures\"},{\"id\":\"Measures_1\",\"name\":\"Measures\",\"hasChildren\":false,\"spriteCssClass\":\"folderCDB e-icon\",\"tag\":\"Measures\"},{\"id\":\"Measures_2\",\"name\":\"Measures\",\"hasChildren\":false,\"spriteCssClass\":\"folderCDB e-icon\",\"tag\":\"Measures\"}]"},{"Key":"CurrentReport","Value":"H4sIAAAAAAAEAL1Y32\/bNhB+H7D\/wfD7oqTBXgpWRWInbbG0DWw3bVD0gZGvNmGa1EjKTvrX90RREklR3YZ1e7O++z7yjj\/ujiYvH\/d8cgClmRQvpmcnp9OX+a+\/kPeclgsopTITJAj9\/FGvX0y3xpTPs+x4PJ4cz0+k2mTPTk\/Psk9vb5bFFvZ02pHZX5N\/Y0IbKgqY4oSTCZlRAxupWEH5FYc9CKOtAU03TBv3G7\/eGNh3X\/jt2HeUVzDBqZ+bpxJeTN8C1ZWCdqypJ+lFOkARD1WRFe3v6B4m2RB3gjHzB8H+rKC25p\/dFPrLyedZpY3cg5rMZCXMF5J5vMix7AeekSwZDrl6LHi1hnU7Y+BZJ7IL1y9v5q0vybylJ2\/0NeMG1Hu1xIPxXuRfKdeAghi3+5mNbSi5Ehsm4K45dPk7KXCMEGsOxJYqswRjmNh0R+FCAb2kxW6jcMXWXUDkUqo1qJnkUvXgnBp6K1kbonM3Qh3XzpYa2RrswLeUozeQz+ErrbjBCAcmXzOXxe4GNiDWt1IzU8e1kqVTJYy+doVHOC8kr\/bCCSziKK8UXTNczwux4ZCfkiwE2u0SuCdMqlRQb\/SMqYLD8mn\/IHm\/kQHacW\/oA\/AV7EuOW3rWsyM8zX82wn82wj8f4Z\/3\/AUUmDk2Q\/djQ6dY4kqAtveqI3tYx1splhw4wjv+J3uGdE9sgY5xHzPuQ4aNUd8xzR4YZ+apJQ7wlm8PzWwLxe5SPiZ0Y\/ZAP6Yb8q8eSyrwag0VCYvTLI2SO1htWbEToHV9QmOoZdr1TIQ\/NDhFexyGkoTFaT5dPDJ9LYW5pgXkmGTWVFCShXDIVfDKXpn8kuP16bgd7LPtVtXjfAS22Zp8AZuKU+VEsdUp79M+3ad8uk\/7FMM+e9SnpLXda0EfOJzPux1uv9vd2srja8zo31BJ+SvF1jeYtHVuVFVv2YjVE2OYpq4HKenQ5srIoAyQmjIoDJzL4xI4ZoA6mboIItRxrxXAN3gNFE+v8yCAfI\/ryzoDzldScsNK3+HY5K+SHcg3tuc6afSUb2H\/AOpWybJeD9A1ZRXqxyj+SixAs2+wkEcdLIUHD9kzW29SgtbiNP0oK3nNTCuI4YDthmgszSImDP4SYsFTnIldsHQd2ByOwUkgs0oprISz6qFpoy7WB\/zE7mfyUaqdxvMUERqVFKI5I5iocDBXKUnT2KT6Ub+W\/qO2KDGk7SrbtmLS9N0k671rKtVP6YrnDNG6x3L2qC1uHMEk6k0fD+lxfCSgvmagqCq2TwHcTnDNNF70xBTRJC1vbBpbzg4QvxdGzANr6M7kHur8mJhkxC8nGHfO6prL2nqYeBvYTs326RcHynidcRtN3zOMmAfRZj8INzRGD4UsvV9krhjnS0P9ptfDhtwP5VwehZ0pCtW3NwHEhM6HYO9DNBDEefD\/fd4kLqXNW1f70jw1Sa1+afjZKzaFGkycSUGLW\/YHDR+3oGDGaaUBi\/+SswITlkupo+Z+Kte1+aW3xxoaan5y0ksMSVZygx31LTvIroL4kPtTgBdV3dStw0P\/77xJj0rumDIV5X+U7KfGPjIsuaUb5JZ10ekmat\/MlNfWJZbH\/PfT\/intwQOBq2s1IT\/zJb6hra\/27AZTRFBAjIYegk2gg4CaOw\/rutXpQmR+oSI78FMO0bb65s0dafokkjmwv8K+iNiHMYLeAxnRg731CB\/8R37mTf63HFm03dp\/44XLpv4Kudu3wOcmNMepyWsk6\/+Ty78Dn1ZhqLcTAAA="},{"Key":"ClientReports","Value":"H4sIAAAAAAAEAK1X227jNhD9FcPvG+WCAkXAaJHIcRLU2Ri2c8NiH2hpIhOmSZWkfMnPt0NRsihZRtvdPvKcM8PhZWbIv8jX7Yr31qA0k+Kqf3Zy2u+BiGXCRHrVz83Hl9\/7X0NyrRTdPX08cZpNIJPK9NBM6MutTq76C2OyyyDYbDYnm4sTqdLg\/PT0LHh7HE3jBaxofy9m\/yz+woQ2VMTQD0k9XUgiaiCVisWU33JYgTA6JCOmkXowsApJib5QnkMPp7o0uwyu+o9Ada6gsunvhWje5ELyja6gF+wV1fBZsD9zsKPwe2mif5x8j3Jt5ApUL5K5MD9I4OlI0PYd1NPebmOeJ5BUvuwcgR8+Dt2agnKBesi4AfWkprgXTyL8oFwDito4CTq36VakTMCLO+TwmxRo28RItKDKTMEYPHdtzxvoDY2XqcK1JTbAG6kSUJHkUtnhgBo6lqwKuAyohTqvTT8FVLgZU47zQTiAD5pzg7EfUE49kPFyBCmIZCw1MzbemcxKfQfprGZ4\/GEseb4SpbRAyJ2iCcN9uRYph\/CUBE2APAjcUSZVM+wHHTEVc5juVnPJ6wNooKga0TnwGawyjgdxVutaeFt5fkR5fqC8OKK8sMoJxJg76WGYbQK1U1wl6OK27mUehoqZYp3OWjgq34rz1rWkApB7b3MVQIr49QvTbM44M7tKcoATd8DRAuLljdx2WBzjS8tjFr7ydptRgVf8UNvBkKlRcgmzBYuXArS296gNEbc\/HQs8JEh1jIfiDoa8XW+ZHkphhjSGEJM4oYKSoAlXKgV3xTUObzhe6b1qDztdsenW9hVYujDhBNKcU1XK2yx5746gCVeqdgRt2OmORtDJYlGjcw4Xg\/0pVWMyXcjNPdbAT1RTfqdYMsJSp0Ojcrv5R9jCDBdibO3sMjrkyrpSl01LeUWUc7mZAsfcs2WpjLOFkqEC+IR7oHjDytkakIvLpkwEnM+k5IZlflhtyq2\/MPbh6u51koXNI6zmoMZKZnaloC05a1oek7i1TkCzT5jIjW4s1oN9XVTU5i5pxZDaciaHzFTSNkwaZg5zG9RBuO3BVqA4E8vGtuxB2xT8k4xypbBDRPnctffrZI1D7N29V6mWGu9BS0AiKYQ7YSwL6MT2ENesm68X11v+dXtvuygmKxtozz2VSOAicLX8P72VBgxR+x4o+X41AZafyq33NipxHyH3DBRV8WJXmg6ZxpTpMq6YhvkI1uC\/77xhw2HvHWxlOOa1pBuu3dWtfBf7Lop32PWaMm5rh1PUneoIbZuHH1bQCjrw9mCgGOdTQ\/1njoc5\/jkbyI0ovBRPqxpzU1pw77Oxd02UtLPz\/3xYtq+TTZjbVWZ2Lrnsy8\/PpTZV6zFtO8UVTp41vC5AQcRprgHbxJSzGFOoTOmjtJui7NV+4a4xYrW\/mIJtFzOZ4ltozNZyX598CD8uPM5tA0\/2F+gnZu3w8sKUySn\/I2O\/tJ4uN2Oaoiaz5UvXXy\/KLT7Fghr+dlp\/NTzYk5YV0VLhmS\/2ibJINdy2oFLScncIkqAZdJFFkNgmhyNW3PolYErqoh6H7m66TkiCEiRBISk+Cj08x+LDsC4yB4frMoWcs0OXk6qz\/pS\/oBmxu2YTfGiDOzKXzf6XODj4lYd\/A1AyUJvQDwAA"},{"Key":"ReportsCount","Value":1},{"Key":"ReportList","Value":"[{\"name\":\"Default Report\"}]"},{"Key":"MeasureGroups","Value":""}]}
the object receibed and sended later (incorrect base64):
H4sIAAAAAAAEAL1Y32\/bNhB+H7D\/wfD7oqTBXgpWRWInbbG0DWw3bVD0gZGvNmGa1EjKTvrX90RREklR3YZ1e7O++z7yjj\/ujiYvH\/d8cgClmRQvpmcnp9OX+a+\/kPeclgsopTITJAj9\/FGvX0y3xpTPs+x4PJ4cz0+k2mTPTk\/Psk9vb5bFFvZ02pHZX5N\/Y0IbKgqY4oSTCZlRAxupWEH5FYc9CKOtAU03TBv3G7\/eGNh3X\/jt2HeUVzDBqZ+bpxJeTN8C1ZWCdqypJ+lFOkARD1WRFe3v6B4m2RB3gjHzB8H+rKC25p\/dFPrLyedZpY3cg5rMZCXMF5J5vMix7AeekSwZDrl6LHi1hnU7Y+BZJ7IL1y9v5q0vybylJ2\/0NeMG1Hu1xIPxXuRfKdeAghi3+5mNbSi5Ehsm4K45dPk7KXCMEGsOxJYqswRjmNh0R+FCAb2kxW6jcMXWXUDkUqo1qJnkUvXgnBp6K1kbonM3Qh3XzpYa2RrswLeUozeQz+ErrbjBCAcmXzOXxe4GNiDWt1IzU8e1kqVTJYy+doVHOC8kr\/bCCSziKK8UXTNczwux4ZCfkiwE2u0SuCdMqlRQb\/SMqYLD8mn\/IHm\/kQHacW\/oA\/AV7EuOW3rWsyM8zX82wn82wj8f4Z\/3\/AUUmDk2Q\/djQ6dY4kqAtveqI3tYx1splhw4wjv+J3uGdE9sgY5xHzPuQ4aNUd8xzR4YZ+apJQ7wlm8PzWwLxe5SPiZ0Y\/ZAP6Yb8q8eSyrwag0VCYvTLI2SO1htWbEToHV9QmOoZdr1TIQ\/NDhFexyGkoTFaT5dPDJ9LYW5pgXkmGTWVFCShXDIVfDKXpn8kuP16bgd7LPtVtXjfAS22Zp8AZuKU+VEsdUp79M+3ad8uk\/7FMM+e9SnpLXda0EfOJzPux1uv9vd2srja8zo31BJ+SvF1jeYtHVuVFVv2YjVE2OYpq4HKenQ5srIoAyQmjIoDJzL4xI4ZoA6mboIItRxrxXAN3gNFE+v8yCAfI\/ryzoDzldScsNK3+HY5K+SHcg3tuc6afSUb2H\/AOpWybJeD9A1ZRXqxyj+SixAs2+wkEcdLIUHD9kzW29SgtbiNP0oK3nNTCuI4YDthmgszSImDP4SYsFTnIldsHQd2ByOwUkgs0oprISz6qFpoy7WB\/zE7mfyUaqdxvMUERqVFKI5I5iocDBXKUnT2KT6Ub+W\/qO2KDGk7SrbtmLS9N0k671rKtVP6YrnDNG6x3L2qC1uHMEk6k0fD+lxfCSgvmagqCq2TwHcTnDNNF70xBTRJC1vbBpbzg4QvxdGzANr6M7kHur8mJhkxC8nGHfO6prL2nqYeBvYTs326RcHynidcRtN3zOMmAfRZj8INzRGD4UsvV9krhjnS0P9ptfDhtwP5VwehZ0pCtW3NwHEhM6HYO9DNBDEefD\/fd4kLqXNW1f70jw1Sa1+afjZKzaFGkycSUGLW\/YHDR+3oGDGaaUBi\/+SswITlkupo+Z+Kte1+aW3xxoaan5y0ksMSVZygx31LTvIroL4kPtTgBdV3dStw0P\/77xJj0rumDIV5X+U7KfGPjIsuaUb5JZ10ekmat\/MlNfWJZbH\/PfT\/intwQOBq2s1IT\/zJb6hra\/27AZTRFBAjIYegk2gg4CaOw\/rutXpQmR+oSI78FMO0bb65s0dafokkjmwv8K+iNiHMYLeAxnRg731CB\/8R37mTf63HFm03dp\/44XLpv4Kudu3wOcmNMepyWsk6\/+Ty78Dn1ZhqLcTAAA=
The detailed error: 
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131076</EventID><Type>3</Type><SubType Name="Error">0</SubType><Level>2</Level><TimeCreated SystemTime="2015-03-26T11:44:08.4366219Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{09d1b4a1-7828-4051-8de5-1bbf80684f00}" /><Execution ProcessName="w3wp" ProcessID="5816" ThreadID="51" /><Channel /><Computer>ARECORT</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord Severity="Error" Channel="Operational" xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"><TraceIdentifier>http://msdn.microsoft.com/es-ES/library/System.ServiceModel.Diagnostics.TraceHandledException.aspx</TraceIdentifier><Description>Control de una excepción. Detalles de la excepción: System.FormatException: La entrada no es una cadena Base 64 válida porque contiene un carácter que no es Base 64, más de dos caracteres de relleno o un carácter no válido entre los caracteres de relleno. 
   en System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)
   en System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)
   en System.Convert.FromBase64String(String s)
   en Syncfusion.JavaScript.Olap.Utils.DecompressData(String cString)
   en Syncfusion.JavaScript.Olap.Utils.DeserializeOlapReport(String report)
   en Tempe.Business.ServiceBL.InitializeChart(String action, String customObject)
   en SyncInvokeInitializeChart(Object , Object[] , Object[] )
   en System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)
   en System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)
   en System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</Description><AppDomain>/LM/W3SVC/11/ROOT-27-130718437431158638</AppDomain><Exception><ExceptionType>System.FormatException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>La entrada no es una cadena Base 64 válida porque contiene un carácter que no es Base 64, más de dos caracteres de relleno o un carácter no válido entre los caracteres de relleno. </Message><StackTrace>   en System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)
   en System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)
   en System.Convert.FromBase64String(String s)
   en Syncfusion.JavaScript.Olap.Utils.DecompressData(String cString)
   en Syncfusion.JavaScript.Olap.Utils.DeserializeOlapReport(String report)
   en Tempe.Business.ServiceBL.InitializeChart(String action, String customObject)
   en SyncInvokeInitializeChart(Object , Object[] , Object[] )
   en System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp;amp; outputs)
   en System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace><ExceptionString>System.FormatException: La entrada no es una cadena Base 64 válida porque contiene un carácter que no es Base 64, más de dos caracteres de relleno o un carácter no válido entre los caracteres de relleno. 
   en System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)
   en System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)
   en System.Convert.FromBase64String(String s)
   en Syncfusion.JavaScript.Olap.Utils.DecompressData(String cString)
   en Syncfusion.JavaScript.Olap.Utils.DeserializeOlapReport(String report)
   en Tempe.Business.ServiceBL.InitializeChart(String action, String customObject)
   en SyncInvokeInitializeChart(Object , Object[] , Object[] )
   en System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp;amp; outputs)
   en System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp;amp; rpc)
   en System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</ExceptionString></Exception></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent>


Attachment: callsFromClient_19dca202.zip

4 Replies

AE Aurora Espinosa March 27, 2015 01:43 PM UTC

Hi again,

I solved the problem changing this code:

public Dictionary<string, object> InitializeChart(string action, string customObject)
        {
            OlapDataManager DataManager = new OlapDataManager(_connection);
            System.Collections.Generic.Dictionary<string, object> jsonObj = (System.Collections.Generic.Dictionary<string, object>)serializer.DeserializeObject(customObject);
            System.Collections.Generic.KeyValuePair<string, object> valor = jsonObj.ToArray()[0];
            OlapReport reporte = OLAPUTILS.Utils.DeserializeOlapReport(valor.Value.ToString());
            DataManager.SetCurrentReport(reporte);
            return htmlHelper.GetJsonData(action, DataManager);
        }
The problem was in serialization: 
  • OLAPUTILS.Utils.DeserializeOlapReport is waiting for a base64 string, but is receiving a json object.
  • serializer.DeserializeObject return a Dictionary and you just need the values inside.

Now I'm taking some other errors, this time at client side (attached are those images)

  • On any page reload, the measures and dimensions are duplicated (image 1)
  • Chart is not working (image 3)
  • Grid section is loading well, but chart is stucked with a "Globalize" variable unrecognized, causing olapClient get freezed (images 4 and 5)

Another think to say is that I removed all cultural behaviors in the service, but these variables and checkings are only used with the SQLCE connectionString, and I'm not using that in any way.

We don't need to use multiples cultures or SQLCe. Is SyncFusion able to be used without this functionality?

Thanks in advance.

Attachment: Image_captures_f2f3aabe.zip


NM Narendhran M Syncfusion Team March 30, 2015 11:20 AM UTC

Hi Aurora,

Thanks for using Syncfusion Products.

Please find the corresponding comments for the queries below.

S. No.

Queries

Comments

1.

On any page reload, the measures and dimensions are duplicated (image 1)

We need to check the cube which is used on occasion of the reported error. Kindly provide us your cube with dummy values with which we could proceed further to resolve this problem.

2.

  • Chart is not working (image 3)
  • Grid section is loading well, but chart is stucked with a "Globalize" variable unrecognized, causing olapClient get freezed (images 4 and 5)

Kindly ensure that the below script files are referred in the sample.

jquery.globalize.cultures.min.js

jquery.globalize.min.js

Please find the mentioned files in the below location

<System Drive>:\Program Files\Syncfusion\Essential Studio\[version]\JavaScript\assets\external\

Kindly import the files from this location to your project and refer the same. If the error still persists after reference, please revert us back.

3.

Another think to say is that I removed all cultural behaviors in the service, but these variables and checkings are only used with the SQLCE connectionString, and I'm not using that in any way.

We don't need to use multiples cultures or SQLCe. Is SyncFusion able to be used without this functionality?

Yes. Cultural behaviours are not necessarily required for rendering of control. They can be added when it is required to render with specific culture other than default culture.

Please let us know if you have any concern.

Regards,

Narendhran M.



AE Aurora Espinosa April 17, 2015 10:07 AM UTC

Hi, Narendhran.

We continue stuck with the problem of duplicated dimension/measures.  Unfortunately, our company does not allow us to send you a cube. We have discovered another symptom which should help you on getting the cause of this issue. Is about using the OLAP client from several machines pointing to the same service on server. When, say, user 1 refresh the page and get two duplicated sets of measures, and user 2 loads the OLAP browser for the first time, he finds the list already duplicated. And if user 2 refresh, getting a triplicated set, user 1 gets after reloading his browser four sets of reperated elements.

This problem seems to be caused by a shared session of the service. In order to solve this, we tried to change the service values of concurrency and throttelling, but successless.

On your guide for creating our first OLAP, the figure 2 shows the architecture of this control. We suspect that duplication takes place in the base assembly processing layer.

Should you give us directions on where to find (cube, service...) the responsible of injecting duplicated data into the treeview?

Regards.


AD Alagarsamy D Syncfusion Team April 20, 2015 09:16 AM UTC

Hi Aurora,

Thanks for the update.

We have checked the reported scenario at our end with 2 users using our online host sample simultaneously and we regret to inform you that we couldn’t able to reproduce the reported problem.Usually script file will get downloaded initially when the web page is loaded and manipulation will take place through the downloaded file. The information about the entire control will get stored in the script side in a serialized manner which would not get affected between users using the same connection since each have their own script file downloaded in their machine’s web page. Please check the below link with multiple users at your end for verification.

Online Link:
http://js.syncfusion.com/demos/web/#!/azure/olapclient/DefaultFunctionalities

Please let us know if you have any concerns.

Thanks,
Alagarsamy D.

Loader.
Live Chat Icon For mobile
Up arrow icon