Hari
Hari

Reputation: 121

SAP UI5 - adding element with duplicate id

Flexible Column Layout App when opened second time from Launchpad it shows up error "adding element with duplicate id 'application-CSR_Flexible-monitor-component---detail--zstmViewvizFramePopOver'

Object.view.xml ==> 4th Block has got Viz Frame.

                                <l:FixFlex id="chartFixFlex" minFlexSize="400">
                                <l:flexContent title="Order Holds Overview" visible="{zstmView>/FlexContent}">
                                    <viz:Popover id="zstmViewvizFramePopOver"/>
                                    <viz:VizFrame id="zstmViewvizFrame" uiConfig="{applicationSet:'fiori'}" busy="{zstmView>/VizFramebusy}" visible="{zstmView>/VizFrameshow}" height="100%" width="100%" vizType="pie" selectData=".onSelect">
                                        <viz:dataset>
                                            <viz.data:FlattenedDataset data="{zstm_vizFrame>/stat}">
                                                <viz.data:dimensions>
                                                    <viz.data:DimensionDefinition name="HoldText" value="{zstm_vizFrame>HoldText}"/>
                                                </viz.data:dimensions>
                                                <viz.data:measures>
                                                    <viz.data:MeasureDefinition name="Count" value="{zstm_vizFrame>Count}"/>
                                                </viz.data:measures>
                                            </viz.data:FlattenedDataset>
                                        </viz:dataset>
                                        <viz:feeds>
                                            <viz.feeds:FeedItem uid="size" type="Measure" values="Count"/>
                                            <viz.feeds:FeedItem uid="color" type="Dimension" values="HoldText"/>
                                        </viz:feeds>
                                    </viz:VizFrame>
                                </l:flexContent>
                            </l:FixFlex>

                            

First Load will initialize Chart Content in inInit() method. Object View inInit method doesn't trigger second time.

            var oVizFrame = oView.byId("zstmViewvizFrame");
        oVizFrame.setVizProperties({
                        legend: {
                            title: {
                                visible: true
                            }
                        },
                        title: {
                            visible: true
                        }
                    });

        jQuery.sap.require("sap/suite/ui/commons/ChartContainer");
        var oChartContainerContent = new sap.suite.ui.commons.ChartContainerContent({
                            icon : "sap-icon://pie-chart",
                            title : "Customer Order Holds Overview",
                            content : [ oVizFrame ]
                        });
        var oChartContainer = new sap.suite.ui.commons.ChartContainer({
            content : [ oChartContainerContent ]
        });
        oChartContainer.setShowFullScreen(true);
        oChartContainer.setAutoAdjustHeight(true);
        oChartContainer.setShowZoom(true);
        oView.byId("chartFixFlex").setFlexContent(oChartContainer); 

Any idea why the error?

Upvotes: 0

Views: 4578

Answers (1)

In my case, I solved this issue by removing from the manifest.json file in the Targets array the property "ViewId" and just keeping "ViewName" and "ViewType".

I changed my code from this

"targets": {
            "View1": {
                "viewType": "XML",
                "viewId": "View1",
                "viewName": "View1"
            },
            "View2": {
                "viewType": "XML",
                "viewName": "View2"
            }
        }

To this

"targets": {
            "View1": {
                "viewType": "XML",
                "viewName": "View1"
            },
            "View2": {
                "viewType": "XML",
                "viewName": "View2"
            }
        }

Upvotes: 2

Related Questions