Hi All,Is there any way to create the fields dynamically in cdt and then assign values.
I have a use case,User will be uploading a excel and i need to show the excel data in grid format (excel can be different),So for that i am using readexceldata function and and I am trying to create a cdt with the column names and their respective row values (here column names are dynamic) to use that in the data field for grid field.
Ex:excel file has 2 columns A,B now the cdt will be an array of row data like {{A:first row A value,B:first row B value},{A:seconf row A value,B:second row B value}} and if the excel has 3 columsn as A,B,C then the expected cdt should be {{A:first row A value,B:first row B value,C:first row C value},{A:seconf row A value,B:second row B value,C:second row C value}} and use this cdt in gridfield data parameter.
Thanks in Advance,SSP
Discussion posts and replies are publicly visible
While I do not recommend to load a unknown volume of data into memory, is there a reason a map does not make it? Alternatively a dictionary. Did you try any of these two?
Here The data will be minimal only and map and dictionary both are not possible as the field names are dynamic and logic based ie.,headers of the Excel and the excel cannot be static.Ex: a!map(local!exceldata.result[1].values[1]):"value")Error : Expression evaluation error at function a!map [line 48]: Total keys and values must be equal. Received 0 keys and 1 values
Hi , Can you share the output of local!exceldata variable above?
You'd probably need to read just the first (header) row and use those as your data keys. It can be a bit tricky but in the past I've done it by manually transforming the result into a JSON string, then casting that back from JSON to dictionary.