SlideShare a Scribd company logo
Embedding
Pentaho Dashboards into
an ADF application
Francesco Corti - Pedro Vale
Learn. Connect. Collaborate.
Pedro Vale Francesco Corti
VP of Engineering for
PDI and BA Platform
Evangelist at Alfresco
(proud) member of the
Alfresco & Pentaho
Community
Learn. Connect. Collaborate.
Pentaho and
Pentaho
Dashboards
• Pentaho is an Open Source Unified Data
Integration and Analytics Platform
– Data Integration
– Business Analytics
– Big Data
– Internet Of Things
• Acquired by Hitachi Data Systems in 2015, we
are now Hitachi Vantara
• Hitachi Vantara is strongly focused on an IoT
offering, the Lumada Platform.
Learn. Connect. Collaborate.
Pentaho and
Pentaho
Dashboards
• A large Part of the Business Analytics section
are Dashboards – interactive ways to analyze
and visualize your data
– End User Dashboards – Ability to compose
content and create simple, templated
dashboards (Dashboard Designer)
– Custom built dashboards – Uniquely tailored,
highly customized (CTools)
Learn. Connect. Collaborate.
Pentaho and
CTools
• The CTools are a set of community-driven
tools which are installed as a stack on top of
the Pentaho BA server. The core CTools are:
– CDF: Community Dashboard Framework
– CDE: Community Dashboard Editor
– CDA: Community Data Access layer
– CCC: Community Charting Components
– CGG: Community Graphics Generator
Learn. Connect. Collaborate.
Pentaho and
Embedding
• The ability to embed Pentaho content in other
applications has always been a primary
concern for the platform.
• The CTools dashboards provide several ways
to embed dashboards in other applications
• The latest, more efficient way is to consider a
dashboard as a require.js module
• You can then require the module from your
own application and look at the dashboard as
a javascript class that you can interact with
Let’s see it in action!
Learn. Connect. Collaborate.
Embedding
Pentaho
Dashboards
into an
Angular
application
https://github.com/fcorti/pentaho-dashboard-project
Learn. Connect. Collaborate.
Embedding
Pentaho
Dashboards
into an
Angular
application
https://fcorti.gitbooks.io/pentaho-dashboard-project/content/
Learn. Connect. Collaborate.
Embedding
Pentaho
Dashboards
into an
Angular
application
https://www.npmjs.com/package/pentaho-dashboard
Learn. Connect. Collaborate.
The pentaho-dashboard package
this.pentahoService.setUsername('admin');
this.pentahoService.setPassword('admin');
this.pentahoService.logIn(null);
5
PentahoDashboardService pentaho-dashboard component
<pentaho-dashboard
id = 'dashboard1'
pentahoPath = '/public/sample1.wcdf'>
</pentaho-dashboard>
if (this.pentahoService.isLoggedIn()) {
this.pentahoService.logOut(null);
}
• Login
• Logout
HTML
Typescript
Typescript
Learn. Connect. Collaborate.
How to use
the pentaho-dashboard package
into an ADF application?
An Alfresco ADF application
is a standard Angular (5) application
Learn. Connect. Collaborate.
login.component.html
Logging into Pentaho from an ADF application
<adf-login
...
(executeSubmit)='loginP($event)'
>
</adf-login> HTML
The same credentials must exists in
Alfresco and Pentaho (LDAP)!
Learn. Connect. Collaborate.
Logging into Pentaho from an ADF application
login.component.ts
...
import { PentahoDashboardService } from 'pentaho-dashboard';
...
constructor(private pentahoService: PentahoDashboardService) { }
...
Typescript
Learn. Connect. Collaborate.
Logging into Pentaho from an ADF application
login.component.ts
loginP(event: any) {
if (this.pentahoService.isNotLoggedIn()) {
var u = event.values.controls['username'].value;
var p = event.values.controls[’password'].value;
this.pentahoService.setUsername(u);
this.pentahoService.setPassword (p);
this.pentahoService.logIn(null);
if (this.pentahoService.isNotLoggedIn()) { ... }
} ... Typescript
Using the form’s fields
Logging into Pentaho
Managing login failure
Learn. Connect. Collaborate.
dashboard1.component.html
Adding a new component (page) for the dashboard
<div>
<pentaho-dashboard
id = 'dashboard1'
pentahoPath =
'/public/sample1.wcdf'>
</pentaho-dashboard>
</div> HTML
Learn. Connect. Collaborate.
Adding a new component (page) for the dashboard
dashboard1.component.ts (simplest version)
...
@Component({
selector: 'dashboard1',
templateUrl: './dashboard1.component.html',
styleUrls: ['./dashboard1.component.css']
})
export class Dashboard1Component {
}
Typescript
Learn. Connect. Collaborate.
Adding a new component (page) for the dashboard
dashboard1.component.ts
...
import { PentahoDashboardService } from 'pentaho-dashboard';
@Component({
selector: 'dashboard1',
templateUrl: './dashboard1.component.html',
styleUrls: ['./dashboard1.component.css']
})
export class Dashboard1Component {
constructor(private pentahoService: PentahoDashboardService) {
if (this.pentahoService.isNotLoggedIn()) { ... }
}
} Typescript
Learn. Connect. Collaborate.
Use cases: wherever you’d need BI into an Angular app
BI app
CRM
ERP
…
Content, Process and BI app
CRM
ERP
…
Other…
CRM
ERP
…
Embedding
Pentaho Dashboards into
an ADF application
Francesco Corti - Pedro Vale
Thank you!
Q&A FrkCorti

More Related Content

What's hot (20)

PDF
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
PPTX
Alfresco DevCon 2019 Performance Tools of the Trade
Luis Colorado
 
PPTX
Flexible Permissions Management with ACL Templates
Jeff Potts
 
PDF
Continuous integration and delivery for java based web applications
Sunil Dalal
 
PDF
Ingress? That’s So 2020! Introducing the Kubernetes Gateway API
VMware Tanzu
 
PDF
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Perficient, Inc.
 
PDF
OpenNTF Webinar, October 2020
Howard Greenberg
 
PDF
Why your APIs should fly first class
LibbySchulze
 
PPTX
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
Symphony Software Foundation
 
PPTX
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Mark Leusink
 
PPTX
Scribe Online CDK & Connector Development
CloudFronts Technologies LLP.
 
PPT
VAST 8.0
ESUG
 
PPTX
What's new in Spring Boot 2.0
VMware Tanzu
 
PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
PPTX
Developing for the Atlassian Ecosystem
Alex Henderson
 
PPTX
Engage 2020 - Ad19. Engaging users with HCL Connections Touchpoint and User I...
Matteo Bisi
 
PDF
OpenNTF Webinar, March, 2021
Howard Greenberg
 
PDF
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
All Things Open
 
PDF
MuleSoft approach to the integration - Warsaw MuleSoft Meetup
Patryk Bandurski
 
PPTX
Automate mule deployments with github actions and travis ci
NeerajKumar1965
 
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
Alfresco DevCon 2019 Performance Tools of the Trade
Luis Colorado
 
Flexible Permissions Management with ACL Templates
Jeff Potts
 
Continuous integration and delivery for java based web applications
Sunil Dalal
 
Ingress? That’s So 2020! Introducing the Kubernetes Gateway API
VMware Tanzu
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Perficient, Inc.
 
OpenNTF Webinar, October 2020
Howard Greenberg
 
Why your APIs should fly first class
LibbySchulze
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
Symphony Software Foundation
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Mark Leusink
 
Scribe Online CDK & Connector Development
CloudFronts Technologies LLP.
 
VAST 8.0
ESUG
 
What's new in Spring Boot 2.0
VMware Tanzu
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Developing for the Atlassian Ecosystem
Alex Henderson
 
Engage 2020 - Ad19. Engaging users with HCL Connections Touchpoint and User I...
Matteo Bisi
 
OpenNTF Webinar, March, 2021
Howard Greenberg
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
All Things Open
 
MuleSoft approach to the integration - Warsaw MuleSoft Meetup
Patryk Bandurski
 
Automate mule deployments with github actions and travis ci
NeerajKumar1965
 

More from Francesco Corti (20)

PDF
Supercharge Your AI Development with Local LLMs
Francesco Corti
 
PPTX
AI made practical: patterns and common usage in development teams
Francesco Corti
 
PDF
How AI is Changing Day-to-Day Work of a Product Manager
Francesco Corti
 
PDF
AI for Product Managers: Practical Tools and Insights
Francesco Corti
 
PDF
Benvenuti nella Developer Experience del (dopo)domani
Francesco Corti
 
PDF
Where developers are challenged, what developers want and where DevEx is going
Francesco Corti
 
PPTX
From the origin to the future of Open Source model and business
Francesco Corti
 
PDF
Successi (e insuccessi) nel lavoro in team con Product Manager, Engineering, ...
Francesco Corti
 
PDF
Lessons Learned About The Tension Between Product Manager And Engineering Whi...
Francesco Corti
 
PPTX
Organization and challenges (with best practices) behind a successful open-so...
Francesco Corti
 
PDF
Caring About DevEx & the Impact of Open Source
Francesco Corti
 
PDF
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
Francesco Corti
 
PPTX
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Francesco Corti
 
PDF
Alfresco DevCon 2019 - Alfresco Identity Services in Action
Francesco Corti
 
PPTX
Pentaho 8 Reporting for Java Developers - Because details matter
Francesco Corti
 
PDF
Next generation content intelligence (BeeCon 2017)
Francesco Corti
 
PPTX
Alfresco press in Office Hours (2017-02-24)
Francesco Corti
 
PPTX
Alfresco press in Office Hours (2017-01-27)
Francesco Corti
 
PPTX
Alfresco press in Office Hours (2016-12-16)
Francesco Corti
 
PPTX
Alfresco press in Tech Talk Live #99
Francesco Corti
 
Supercharge Your AI Development with Local LLMs
Francesco Corti
 
AI made practical: patterns and common usage in development teams
Francesco Corti
 
How AI is Changing Day-to-Day Work of a Product Manager
Francesco Corti
 
AI for Product Managers: Practical Tools and Insights
Francesco Corti
 
Benvenuti nella Developer Experience del (dopo)domani
Francesco Corti
 
Where developers are challenged, what developers want and where DevEx is going
Francesco Corti
 
From the origin to the future of Open Source model and business
Francesco Corti
 
Successi (e insuccessi) nel lavoro in team con Product Manager, Engineering, ...
Francesco Corti
 
Lessons Learned About The Tension Between Product Manager And Engineering Whi...
Francesco Corti
 
Organization and challenges (with best practices) behind a successful open-so...
Francesco Corti
 
Caring About DevEx & the Impact of Open Source
Francesco Corti
 
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
Francesco Corti
 
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Francesco Corti
 
Alfresco DevCon 2019 - Alfresco Identity Services in Action
Francesco Corti
 
Pentaho 8 Reporting for Java Developers - Because details matter
Francesco Corti
 
Next generation content intelligence (BeeCon 2017)
Francesco Corti
 
Alfresco press in Office Hours (2017-02-24)
Francesco Corti
 
Alfresco press in Office Hours (2017-01-27)
Francesco Corti
 
Alfresco press in Office Hours (2016-12-16)
Francesco Corti
 
Alfresco press in Tech Talk Live #99
Francesco Corti
 
Ad

Recently uploaded (20)

PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Ad

Alfresco DevCon 2018 - Embedding Pentaho dashboards into an Alfresco ADF application

  • 1. Embedding Pentaho Dashboards into an ADF application Francesco Corti - Pedro Vale
  • 2. Learn. Connect. Collaborate. Pedro Vale Francesco Corti VP of Engineering for PDI and BA Platform Evangelist at Alfresco (proud) member of the Alfresco & Pentaho Community
  • 3. Learn. Connect. Collaborate. Pentaho and Pentaho Dashboards • Pentaho is an Open Source Unified Data Integration and Analytics Platform – Data Integration – Business Analytics – Big Data – Internet Of Things • Acquired by Hitachi Data Systems in 2015, we are now Hitachi Vantara • Hitachi Vantara is strongly focused on an IoT offering, the Lumada Platform.
  • 4. Learn. Connect. Collaborate. Pentaho and Pentaho Dashboards • A large Part of the Business Analytics section are Dashboards – interactive ways to analyze and visualize your data – End User Dashboards – Ability to compose content and create simple, templated dashboards (Dashboard Designer) – Custom built dashboards – Uniquely tailored, highly customized (CTools)
  • 5. Learn. Connect. Collaborate. Pentaho and CTools • The CTools are a set of community-driven tools which are installed as a stack on top of the Pentaho BA server. The core CTools are: – CDF: Community Dashboard Framework – CDE: Community Dashboard Editor – CDA: Community Data Access layer – CCC: Community Charting Components – CGG: Community Graphics Generator
  • 6. Learn. Connect. Collaborate. Pentaho and Embedding • The ability to embed Pentaho content in other applications has always been a primary concern for the platform. • The CTools dashboards provide several ways to embed dashboards in other applications • The latest, more efficient way is to consider a dashboard as a require.js module • You can then require the module from your own application and look at the dashboard as a javascript class that you can interact with
  • 7. Let’s see it in action!
  • 8. Learn. Connect. Collaborate. Embedding Pentaho Dashboards into an Angular application https://github.com/fcorti/pentaho-dashboard-project
  • 9. Learn. Connect. Collaborate. Embedding Pentaho Dashboards into an Angular application https://fcorti.gitbooks.io/pentaho-dashboard-project/content/
  • 10. Learn. Connect. Collaborate. Embedding Pentaho Dashboards into an Angular application https://www.npmjs.com/package/pentaho-dashboard
  • 11. Learn. Connect. Collaborate. The pentaho-dashboard package this.pentahoService.setUsername('admin'); this.pentahoService.setPassword('admin'); this.pentahoService.logIn(null); 5 PentahoDashboardService pentaho-dashboard component <pentaho-dashboard id = 'dashboard1' pentahoPath = '/public/sample1.wcdf'> </pentaho-dashboard> if (this.pentahoService.isLoggedIn()) { this.pentahoService.logOut(null); } • Login • Logout HTML Typescript Typescript
  • 12. Learn. Connect. Collaborate. How to use the pentaho-dashboard package into an ADF application? An Alfresco ADF application is a standard Angular (5) application
  • 13. Learn. Connect. Collaborate. login.component.html Logging into Pentaho from an ADF application <adf-login ... (executeSubmit)='loginP($event)' > </adf-login> HTML The same credentials must exists in Alfresco and Pentaho (LDAP)!
  • 14. Learn. Connect. Collaborate. Logging into Pentaho from an ADF application login.component.ts ... import { PentahoDashboardService } from 'pentaho-dashboard'; ... constructor(private pentahoService: PentahoDashboardService) { } ... Typescript
  • 15. Learn. Connect. Collaborate. Logging into Pentaho from an ADF application login.component.ts loginP(event: any) { if (this.pentahoService.isNotLoggedIn()) { var u = event.values.controls['username'].value; var p = event.values.controls[’password'].value; this.pentahoService.setUsername(u); this.pentahoService.setPassword (p); this.pentahoService.logIn(null); if (this.pentahoService.isNotLoggedIn()) { ... } } ... Typescript Using the form’s fields Logging into Pentaho Managing login failure
  • 16. Learn. Connect. Collaborate. dashboard1.component.html Adding a new component (page) for the dashboard <div> <pentaho-dashboard id = 'dashboard1' pentahoPath = '/public/sample1.wcdf'> </pentaho-dashboard> </div> HTML
  • 17. Learn. Connect. Collaborate. Adding a new component (page) for the dashboard dashboard1.component.ts (simplest version) ... @Component({ selector: 'dashboard1', templateUrl: './dashboard1.component.html', styleUrls: ['./dashboard1.component.css'] }) export class Dashboard1Component { } Typescript
  • 18. Learn. Connect. Collaborate. Adding a new component (page) for the dashboard dashboard1.component.ts ... import { PentahoDashboardService } from 'pentaho-dashboard'; @Component({ selector: 'dashboard1', templateUrl: './dashboard1.component.html', styleUrls: ['./dashboard1.component.css'] }) export class Dashboard1Component { constructor(private pentahoService: PentahoDashboardService) { if (this.pentahoService.isNotLoggedIn()) { ... } } } Typescript
  • 19. Learn. Connect. Collaborate. Use cases: wherever you’d need BI into an Angular app BI app CRM ERP … Content, Process and BI app CRM ERP … Other… CRM ERP …
  • 20. Embedding Pentaho Dashboards into an ADF application Francesco Corti - Pedro Vale Thank you! Q&A FrkCorti