Hi,
I tested FlexMonster out with the Data Server which you run via the executable and connected to MSSQL database. Everything worked fine here.
I then tried to implement the data service in our .NET API after some struggles (We use Azure Functions HTTP Trigger), I managed to get things to run and the reports on the front end talking to the API in our Azure Functions.
I did however run into a strange problem, I now notice that when adding any measure now, it only gives me the option of count and distinct count. The values I am using are numbers. I did notice something in the /fields API call. When I point my reports to the Flex Monster executable, I notice it returns "uniqueName" and "type" but the value for "type" is either "number", "string" or "date".
When I point this to the .NET implementation, I notice this returns 1, 2, 3 for the field type. So I am almost certain its then applying the aggregation {any} to my data.
I have made sure I am on the latest version in .NET i.e. 2.8.28 and have the same version in our Angular project. I did dig into the models of the NuGet package "FlexMonster.DataService.Core" and I see the types in the Fields model are Enums. Is there any property I need to set on the front end or report configuration to change the way it handles these fields?
Kind Regards
Michael
Hello, Michael!
Thank you for the detailed explanation of the issue and for providing the screenshots.
Our team has investigated your question and came up with the idea of why the types in the /fields
response have numeric values. We assume that this behavior is related to the JSON library used in the project.
Therefore, could you please let us know whether you use any third-party library for converting responses to JSON (e.g. Newtonsoft)? If so, please inform us which one. This info will greatly help us to find the solution for your case.
Looking forward to hearing from you.
Best regards,
Milena
Hi Milena,
Thanks for your response.
We not using any specific library to convert the object back to JSON, I am just passing the object back via OkObjectResult as you will see in my one screenshot. (I did try some other options to convert to JSON but made no difference, still see the 1, 2, 3.
I have also attached a screenshot of the debugger with the response as it looks after doing the GetFields call. I have then drilled into the FlexMonster Library to show why it seems to me that its passing 1, 2, 3 as that's the value in the Enum.
Hopefully, the screenshots will help. Once again to confirm, I am using FlexMonster.DataService.Core (2.8.28).
Kind Regards
Michael
Hello, Michael,
Thank you for providing further information about the case.
We would like to suggest several solutions to try:
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true; // not neccessary, but recommended line
options.JsonSerializerOptions.Converters.Add(new Flexmonster.DataServer.Core.JsonConverters.ColumnTypeJsonConverter());
});
var serializerSettings = new System.Text.Json.JsonSerializerOptions();
serializerSettings.Converters.Add(new Flexmonster.DataServer.Core.JsonConverters.ColumnTypeJsonConverter());
return new JsonResult(response, serializerSettings);
Please kindly note that our dev team does not have much experience with Azure Functions, so the code above is just an example that could possibly help. You are welcome to customize it to your needs.
In case our suggestions do not work for you, please notify us, and we will do some modifications to Flexmonster Data Server to resolve your issue.
Looking forward to hearing your feedback.
Best regards,
Milena
Hi, Michael,
We were wondering whether our suggestions helped.
Please let us know if everything works fine now or if further assistance is needed.
Waiting for your reply.
Kind regards,
Milena
Hi Milena,
Apologies for the delay.
I did manage to try your suggestions and it is now returning the types of the field as strings and not integers, so the suggestions you provided did work ?
Thanks again for all the help.
Kind Regards
Michael
Hello, Michael,
Thank you for sharing the feedback!
We are happy to know that the issue is resolved.
Do not hesitate to contact us if any further questions arise.
Best regards,
Milena