Hi Team,
I am trying to create a Dashboard/Paginated report through the QuickSIght Java APIs.
As of now I am able to create an analyses. Like I am calling the CreateAnalysis API with basic details, its creating the simple analyses on QuickSight.
Now am calling the DescribeAnalysisDefinition API for the newly created analyses. Below is the response,
{Analysis: {AnalysisId: bb333849-c359-4597-a8e8-11b7401f1103,Arn: arn:aws:quicksight:us-east-1:385817851343:analysis/bb333849-c359-4597-a8e8-11b7401f1103,Name: API Analyses 8,Status: CREATION_IN_PROGRESS,DataSetArns: [],CreatedTime: Tue Mar 28 17:53:31 IST 2023,LastUpdatedTime: Tue Mar 28 17:53:31 IST 2023,Sheets: []},Status: 200,RequestId: aa939c34-a82d-40a2-8c53-9c97c2d3b749}
Now the main thing is, I have to create a complete Dashboard with multiple charts, visuals etc, If am calling the CreateAnalysis API then I have to set a lot of values from code so that I will create the required analysis, But its too much of coding for me to write down every config of every visual. Is there any better way to do this?
BarChartVisual bar = new BarChartVisual();
// Visual id
bar.setVisualId("visualid-1");
VisualTitleLabelOptions titleLabelOptions = new VisualTitleLabelOptions();
ShortFormatText shorttext = new ShortFormatText();
shorttext.setPlainText("Bar chart");
titleLabelOptions.setFormatText(shorttext);
// Title
bar.setTitle(titleLabelOptions);
ColumnHierarchy hirerachy = new ColumnHierarchy();
List<ColumnHierarchy> columnHierarchiesList = new ArrayList<>();
columnHierarchiesList.add(hirerachy);
PredefinedHierarchy predefinedHierarchy = new PredefinedHierarchy();
List<ColumnIdentifier> columnIdentifierList = new ArrayList<>();
columnIdentifierList.add(col2);
predefinedHierarchy.setColumns(columnIdentifierList);
hirerachy.setPredefinedHierarchy(predefinedHierarchy);
// Hierarchy
bar.setColumnHierarchies(columnHierarchiesList);
BarChartConfiguration barConfig1 = new BarChartConfiguration();
BarChartFieldWells field = new BarChartFieldWells();
BarChartAggregatedFieldWells wells = new BarChartAggregatedFieldWells();
List<MeasureField> values = new ArrayList<>();
List<DimensionField> categoryList = new ArrayList<>();
DimensionField category = new DimensionField();
NumericalDimensionField numericalDimensionField = new NumericalDimensionField();
numericalDimensionField.setColumn(col2);
numericalDimensionField.setFieldId("secongdimensiotn2");
category.setNumericalDimensionField(numericalDimensionField);
categoryList.add(category);
MeasureField mf = new MeasureField();
values.add(mf);
NumericalMeasureField numericalMeasureField = new NumericalMeasureField();
ColumnIdentifier col = new ColumnIdentifier();
col.setColumnName("isLatest");
col.setDataSetIdentifier("Sales Pipeline");
numericalMeasureField.setColumn(col);
numericalMeasureField.setFieldId("firstfield1");
mf.setNumericalMeasureField(numericalMeasureField);
wells.setValues(values);
wells.setCategory(categoryList);
field.setBarChartAggregatedFieldWells(wells);
barConfig1.withFieldWells(field);
barConfig1.setOrientation("HORIZONTAL");
barConfig1.setBarsArrangement("STACKED");
// bar configuration
bar.setChartConfiguration(barConfig1);
BarChartVisual bar2 = new BarChartVisual();
bar2.setVisualId("visualid-2");
BarChartConfiguration barConfig2 = new BarChartConfiguration();
barConfig2.setOrientation("HORIZONTAL");
barConfig2.setBarsArrangement("STACKED");
bar2.setChartConfiguration(barConfig2);
List<Visual> visuals = new ArrayList<>();
Visual visual = new Visual();
Visual visual2 = new Visual();
visual.setBarChartVisual(bar);
visuals.add(visual);
visuals.add(visual2);
sheetDef.setVisuals(visuals);
List<SheetDefinition> sheetDefList = new ArrayList<>();
sheetDefList.add(sheetDef);
DataSetIdentifierDeclaration data = new DataSetIdentifierDeclaration();
data.setIdentifier("Sales Pipeline");
List<DataSetIdentifierDeclaration> list = new ArrayList<>();
list.add(data);
definition.setDataSetIdentifierDeclarations(list);
definition.setSheets(sheetDefList);
req.setDefinition(definition);
CreateAnalysisResult results1 = getClient().createAnalysis(req);