function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
bluecapbluecap 

Lightning Component - Embed Wave Dashboard

Is it possible to embed a Wave Dashboard in a custom Lightning Component? I know its possible through Lightning pages, but there are limitations there that have caused us to look into custom development. Such as tabs can only be added to Record and Home pages, but not an App (which is totally odd btw!). Ideally we would like to have a single page where users choose which dashboard they would like to view and do this by choosing the dashboard from a picklist or clicking a tab or something similar. So the page would only show one dashboard at a time based on which one they've chosen. 
SidzSidz
yes, its not given in the documentation but if you explore the wave api of the dashboard , the component is visible and usable inside lightning components.
<wave:waveDashboard developerName="your_dashboard_name" height="200" />

namespace:wave
type:waveDashboard

hope this helps.
satheesh kumar 36satheesh kumar 36

You can Embed Wave Dashboard in Lightning Component like below.

$A.createComponent(
            "wave:waveDashboard",{
                "recordId" : component.get("v.recordId"),
                "dashboardId": "0FK3i000000LrdVGAS",
                "height": "300",
                "hideOnError" : true,
                "showHeader": false,
                "showTitle": "",
                "filter": "{'datasets':{'Customer_Financial_Holdings':[{'fields':['FinServ__FinancialAccount__c.FinServ__PrimaryOwner__c'],'filter':{'operator':'in','values':['$Id']}}]}}"
            },
            function(newcomponent){
                if (component.isValid()) {            
                    component.set("v.body", newcomponent);      
                }
            } 
        );

Use directly in component also like
 
<wave:waveDashboard recordId="{!v.recordId}" dashboardId="0FK3i000000LrdVGAS" height="200" />

I hope this will help you.
Thank you
 
bhaskar b 7bhaskar b 7
Hi Satheesh, 
I have a similar problem and I am new to salesforce development. Dashboard is seen but not filtering down on Opportunity ID in Opportunity page (recordid) using the code below.
Could you please look into it ? 

Component:

<aura:component  implements="flexipage:availableForRecordHome,force:hasRecordId" access="global" >   
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<div class="slds-grid slds-gutters">
     <div>
         <wave:waveDashboard recordId="{!v.recordId}" dashboardId="0FK1b000000025cGAA" height="800" />
        </div>
  </div>
</aura:component>

Controller:
({
    doInit : function(component, event, helper) {
        var recordId = component.get('v.recordId');
    }
})