SlideShare a Scribd company logo
Business Intelligence
Develop cube views for your own objects
Content
1. BI/Graph View
2. Technical Overview
3. Preparing Data
4. Displaying cube views
5. Case study: cross models
6. Conclusion
BI/Graph View
BI/Graph View
measure : can be aggregated (right now, only summed)
dimension : can be grouped
·
·
A Short History of BI in Odoo
pre 2014: list view + group bys, graph view
Q1/Q2 2014: graph view rewrite -> pivot table + graphs,
lots of backend work
future: ? we're looking at searchview/BI view integration.
·
·
·
Technical Overview
Odoo architecture
Anatomy of BI/Graph View
pivot tablepivot table: keeps the data, calls the ORM
graph widgetgraph widget : user interaction
graph viewgraph view : client interaction
·
·
·
BI view xml
<record<record id="..." model="ir.ui.view">>
<field<field name="name">>crm.opportunity.report.graph</field></field>
<field<field name="model">>crm.lead.report</field></field>
<field<field name="arch" type="xml">>
<graph<graph string="Leads Analysis" type="pivot" stacked="True">>
<field<field name="date_deadline" type="row"/>/>
<field<field name="stage_id" type="col"/>/>
<field<field name="planned_revenue" type="measure"/>/>
</graph></graph>
</field></field>
</record></record>
BI view API
In graph tag:
string: title
stacked: if bar chart is stacked/not stacked (default=false)
type: mode (pivot, bar, pie, line) (default=bar)
In field tags, type attribute:
row : will be grouped by rows (dimension)
col : will be grouped by cols (dimension)
measure : will be aggregated
if no type, measure by default
·
·
·
·
·
·
·
Date/datetime
Always want to be different: date/datetime have a special
syntax for groupby:
field_date:day,
field_date:week,
field_date:month (default)
field_date:quarter,
field_date:year
<graph<graph string="Leads Analysis" type="pivot" stacked="True">>
<field<field name="date_deadline:week" type="row"/>/>
<field<field name="stage_id" type="col"/>/>
<field<field name="planned_revenue" type="measure"/>/>
</graph></graph>
·
·
·
·
·
Graph widget setup
Graph widget has two more options:
visible_ui (true) : indicate if UI is visible
heatmap_mode ('none') can be set to row/col/both
·
·
Preparing Data
Odoo Model
Odoo BI view will read the various fields. Depending on
their type, it will use them for
measures : every fields of type integer, float (except 'id')
dimensions :
right now: every fields defined in the 'group by'
category in the search bar.
later: every field that can be grouped by the db
·
·
·
·
Where is your data?
The data needs to satisfy two conditions:
be stored in the database (beware of functional fields not
stored)
be accessed from one single odoo model
If yes, you're done. If not, two possibilities:
can you extend a model? (stored functional fields,
relational fields)
can you create a custom model with a postgres view, to
link the various models with the data?
Bottom line: it needs to be in the DB
·
·
·
·
Extending a model
WARNING: old API... Do not try this at home!!!
classclass res_partner((osv..osv):):
_name == 'res.partner'
_inherit == 'res.partner'
defdef _total_invoice((self,, cr,, uid,, ids,, ......):):
......
# [insert here nice looking code to
# compute the total invoice of a customer]
......
returnreturn result
_columns == {{
'total_invoiced':: fields..function((_total_invoice,,
string=="Total Invoiced",, type=='float',, store==True))
}}
More advanced: Cross model
analysis
Example: purchase/report/purchase_report.py
All reporting views use that technique. Warning: bypass the
ORM
Displaying cube views
Edit in live
1. go to developer mode
2. edit action, add 'graph',
3. edit views, create 'graph'
4. profit!
Good for testing.
Adding a BI view with xml
Add the desired graph view:
<record<record id="view_project_task_graph" model="ir.ui.view">>
<field<field name="name">>project.task.graph</field></field>
<field<field name="model">>project.task</field></field>
<field<field name="arch" type="xml">>
<graph<graph string="Project Tasks" type="bar">>
<field<field name="project_id" type="row"/>/>
<field<field name="planned_hours" type="measure"/>/>
</graph></graph>
</field></field>
</record></record>
Adding a BI view with xml(2)
Add it to the action:
<record<record id="action_view_task" model="ir.actions.act_window">>
...
<field<field name="view_mode">>kanban,tree,form,calendar,gantt,graph</field></field>
...
You can force the correct view:
<field<field name="view_id" ref="view_project_task_graph"/>/>
Advanced: client action
In js, create a widget and append it to your view:
thisthis..graph_widget == newnew openerp..web_graph..Graph((
thisthis,,
some_model,,
some_domain,,
options););
thisthis..graph_widget..appendTo((thisthis..$el););
Future of BI in odoo?
Thank you

More Related Content

What's hot

New Framework - ORM
New Framework - ORMNew Framework - ORM
New Framework - ORM
Odoo
 
Common Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo appsCommon Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo apps
Odoo
 
Instalasi Odoo ERP pada Ubuntu WSL di Windows
Instalasi Odoo ERP pada Ubuntu WSL di WindowsInstalasi Odoo ERP pada Ubuntu WSL di Windows
Instalasi Odoo ERP pada Ubuntu WSL di Windows
Aziz Adi Nugroho
 
Complete step by step guide to odoo manufacturing
Complete step by step guide to odoo manufacturingComplete step by step guide to odoo manufacturing
Complete step by step guide to odoo manufacturing
Rishi Pujara
 
Best Practices in Handling Performance Issues
Best Practices in Handling Performance IssuesBest Practices in Handling Performance Issues
Best Practices in Handling Performance Issues
Odoo
 
Odoo External API
Odoo External APIOdoo External API
Odoo External API
Odoo
 
Tools for Solving Performance Issues
Tools for Solving Performance IssuesTools for Solving Performance Issues
Tools for Solving Performance Issues
Odoo
 
Security: Odoo Code Hardening
Security: Odoo Code HardeningSecurity: Odoo Code Hardening
Security: Odoo Code Hardening
Odoo
 
How to show warning _ error messages in Odoo 16
How to show warning _ error messages in Odoo 16 How to show warning _ error messages in Odoo 16
How to show warning _ error messages in Odoo 16
Celine George
 
Odoo system presentation.pdf
Odoo system presentation.pdfOdoo system presentation.pdf
Odoo system presentation.pdf
Святослав Надозирний
 
Data Visualization(s) Using Python
Data Visualization(s) Using PythonData Visualization(s) Using Python
Data Visualization(s) Using Python
Aniket Maithani
 
Odoo disaster recovery with barman
Odoo disaster recovery with barmanOdoo disaster recovery with barman
Odoo disaster recovery with barmanOdoo
 
The Odoo JS Framework
The Odoo JS FrameworkThe Odoo JS Framework
The Odoo JS Framework
Odoo
 
pandas - Python Data Analysis
pandas - Python Data Analysispandas - Python Data Analysis
pandas - Python Data Analysis
Andrew Henshaw
 
Odoo Online platform: architecture and challenges
Odoo Online platform: architecture and challengesOdoo Online platform: architecture and challenges
Odoo Online platform: architecture and challenges
Odoo
 
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
Celine George
 
Multiple Branch operation Management Odoo App
Multiple Branch operation Management Odoo AppMultiple Branch operation Management Odoo App
Multiple Branch operation Management Odoo App
Axis Technolabs
 
Odoo Strategy for Mid-market & Corporate
Odoo Strategy for Mid-market & CorporateOdoo Strategy for Mid-market & Corporate
Odoo Strategy for Mid-market & Corporate
Odoo
 
How to empty an One2many field in Odoo
How to empty an One2many field in OdooHow to empty an One2many field in Odoo
How to empty an One2many field in Odoo
Celine George
 
Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!
Odoo
 

What's hot (20)

New Framework - ORM
New Framework - ORMNew Framework - ORM
New Framework - ORM
 
Common Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo appsCommon Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo apps
 
Instalasi Odoo ERP pada Ubuntu WSL di Windows
Instalasi Odoo ERP pada Ubuntu WSL di WindowsInstalasi Odoo ERP pada Ubuntu WSL di Windows
Instalasi Odoo ERP pada Ubuntu WSL di Windows
 
Complete step by step guide to odoo manufacturing
Complete step by step guide to odoo manufacturingComplete step by step guide to odoo manufacturing
Complete step by step guide to odoo manufacturing
 
Best Practices in Handling Performance Issues
Best Practices in Handling Performance IssuesBest Practices in Handling Performance Issues
Best Practices in Handling Performance Issues
 
Odoo External API
Odoo External APIOdoo External API
Odoo External API
 
Tools for Solving Performance Issues
Tools for Solving Performance IssuesTools for Solving Performance Issues
Tools for Solving Performance Issues
 
Security: Odoo Code Hardening
Security: Odoo Code HardeningSecurity: Odoo Code Hardening
Security: Odoo Code Hardening
 
How to show warning _ error messages in Odoo 16
How to show warning _ error messages in Odoo 16 How to show warning _ error messages in Odoo 16
How to show warning _ error messages in Odoo 16
 
Odoo system presentation.pdf
Odoo system presentation.pdfOdoo system presentation.pdf
Odoo system presentation.pdf
 
Data Visualization(s) Using Python
Data Visualization(s) Using PythonData Visualization(s) Using Python
Data Visualization(s) Using Python
 
Odoo disaster recovery with barman
Odoo disaster recovery with barmanOdoo disaster recovery with barman
Odoo disaster recovery with barman
 
The Odoo JS Framework
The Odoo JS FrameworkThe Odoo JS Framework
The Odoo JS Framework
 
pandas - Python Data Analysis
pandas - Python Data Analysispandas - Python Data Analysis
pandas - Python Data Analysis
 
Odoo Online platform: architecture and challenges
Odoo Online platform: architecture and challengesOdoo Online platform: architecture and challenges
Odoo Online platform: architecture and challenges
 
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
 
Multiple Branch operation Management Odoo App
Multiple Branch operation Management Odoo AppMultiple Branch operation Management Odoo App
Multiple Branch operation Management Odoo App
 
Odoo Strategy for Mid-market & Corporate
Odoo Strategy for Mid-market & CorporateOdoo Strategy for Mid-market & Corporate
Odoo Strategy for Mid-market & Corporate
 
How to empty an One2many field in Odoo
How to empty an One2many field in OdooHow to empty an One2many field in Odoo
How to empty an One2many field in Odoo
 
Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!
 

Similar to Odoo - Business intelligence: Develop cube views for your own objects

Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
Odoo
 
Drupal Views development
Drupal Views developmentDrupal Views development
Drupal Views development
OSInet
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Databricks
 
Simplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data WarehouseSimplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data Warehouse
FeatureByte
 
Drupal tips 'n tricks
Drupal tips 'n tricksDrupal tips 'n tricks
Drupal tips 'n tricksJohn Tsevdos
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
Dhaval Patel
 
Data herding
Data herdingData herding
Data herding
unbracketed
 
Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013
Vincent Michel
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
Logilab
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
MongoDB
 
Idef v4
Idef v4Idef v4
Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017
Donna Benjamin
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVC
Acquisio
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
codeinmotion
 
Data Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BIData Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BI
Senturus
 
Mvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senjaMvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senja
alifha12
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
An approach to implement model classes in zend
An approach to implement model classes in zendAn approach to implement model classes in zend
An approach to implement model classes in zendswiss IT bridge
 

Similar to Odoo - Business intelligence: Develop cube views for your own objects (20)

Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
 
Drupal Views development
Drupal Views developmentDrupal Views development
Drupal Views development
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
 
Simplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data WarehouseSimplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data Warehouse
 
Drupal tips 'n tricks
Drupal tips 'n tricksDrupal tips 'n tricks
Drupal tips 'n tricks
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
 
Data herding
Data herdingData herding
Data herding
 
Data herding
Data herdingData herding
Data herding
 
Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
 
Idef v4
Idef v4Idef v4
Idef v4
 
Vanjs backbone-powerpoint
Vanjs backbone-powerpointVanjs backbone-powerpoint
Vanjs backbone-powerpoint
 
Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVC
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Data Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BIData Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BI
 
Mvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senjaMvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senja
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
An approach to implement model classes in zend
An approach to implement model classes in zendAn approach to implement model classes in zend
An approach to implement model classes in zend
 

More from Odoo

Odoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-ViewerOdoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-Viewer
Odoo
 
Keynote - Vision & Strategy
Keynote - Vision & StrategyKeynote - Vision & Strategy
Keynote - Vision & Strategy
Odoo
 
Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14
Odoo
 
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting CapabilityExtending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
Odoo
 
Managing Multi-channel Selling with Odoo
Managing Multi-channel Selling with OdooManaging Multi-channel Selling with Odoo
Managing Multi-channel Selling with Odoo
Odoo
 
Product Configurator: Advanced Use Case
Product Configurator: Advanced Use CaseProduct Configurator: Advanced Use Case
Product Configurator: Advanced Use Case
Odoo
 
Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?
Odoo
 
Rock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced OperationsRock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced Operations
Odoo
 
Transition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organizationTransition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organization
Odoo
 
Synchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the CrisisSynchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the Crisis
Odoo
 
Running a University with Odoo
Running a University with OdooRunning a University with Odoo
Running a University with Odoo
Odoo
 
Down Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in OdooDown Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in Odoo
Odoo
 
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach foodOdoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo
 
Migration from Salesforce to Odoo
Migration from Salesforce to OdooMigration from Salesforce to Odoo
Migration from Salesforce to Odoo
Odoo
 
Preventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine LearningPreventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine Learning
Odoo
 
Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification
Odoo
 
Instant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping LabelInstant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping Label
Odoo
 
How Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 FoldHow Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 Fold
Odoo
 
From Shopify to Odoo
From Shopify to OdooFrom Shopify to Odoo
From Shopify to Odoo
Odoo
 
Digital Transformation at Old MacDonald Farms: A Personal Story
Digital Transformation at Old MacDonald Farms: A Personal StoryDigital Transformation at Old MacDonald Farms: A Personal Story
Digital Transformation at Old MacDonald Farms: A Personal Story
Odoo
 

More from Odoo (20)

Odoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-ViewerOdoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-Viewer
 
Keynote - Vision & Strategy
Keynote - Vision & StrategyKeynote - Vision & Strategy
Keynote - Vision & Strategy
 
Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14
 
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting CapabilityExtending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
 
Managing Multi-channel Selling with Odoo
Managing Multi-channel Selling with OdooManaging Multi-channel Selling with Odoo
Managing Multi-channel Selling with Odoo
 
Product Configurator: Advanced Use Case
Product Configurator: Advanced Use CaseProduct Configurator: Advanced Use Case
Product Configurator: Advanced Use Case
 
Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?
 
Rock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced OperationsRock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced Operations
 
Transition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organizationTransition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organization
 
Synchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the CrisisSynchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the Crisis
 
Running a University with Odoo
Running a University with OdooRunning a University with Odoo
Running a University with Odoo
 
Down Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in OdooDown Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in Odoo
 
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach foodOdoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
 
Migration from Salesforce to Odoo
Migration from Salesforce to OdooMigration from Salesforce to Odoo
Migration from Salesforce to Odoo
 
Preventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine LearningPreventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine Learning
 
Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification
 
Instant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping LabelInstant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping Label
 
How Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 FoldHow Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 Fold
 
From Shopify to Odoo
From Shopify to OdooFrom Shopify to Odoo
From Shopify to Odoo
 
Digital Transformation at Old MacDonald Farms: A Personal Story
Digital Transformation at Old MacDonald Farms: A Personal StoryDigital Transformation at Old MacDonald Farms: A Personal Story
Digital Transformation at Old MacDonald Farms: A Personal Story
 

Recently uploaded

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Securing your Kubernetes cluster: a step-by-step guide to success!
Securing your Kubernetes cluster: a step-by-step guide to success!Securing your Kubernetes cluster: a step-by-step guide to success!
Securing your Kubernetes cluster: a step-by-step guide to success!
KatiaHIMEUR1
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
QADay
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 

Recently uploaded (20)

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Securing your Kubernetes cluster: a step-by-step guide to success!
Securing your Kubernetes cluster: a step-by-step guide to success!Securing your Kubernetes cluster: a step-by-step guide to success!
Securing your Kubernetes cluster: a step-by-step guide to success!
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Odoo - Business intelligence: Develop cube views for your own objects

  • 1. Business Intelligence Develop cube views for your own objects
  • 2. Content 1. BI/Graph View 2. Technical Overview 3. Preparing Data 4. Displaying cube views 5. Case study: cross models 6. Conclusion
  • 4. BI/Graph View measure : can be aggregated (right now, only summed) dimension : can be grouped · ·
  • 5. A Short History of BI in Odoo pre 2014: list view + group bys, graph view Q1/Q2 2014: graph view rewrite -> pivot table + graphs, lots of backend work future: ? we're looking at searchview/BI view integration. · · ·
  • 8. Anatomy of BI/Graph View pivot tablepivot table: keeps the data, calls the ORM graph widgetgraph widget : user interaction graph viewgraph view : client interaction · · ·
  • 9. BI view xml <record<record id="..." model="ir.ui.view">> <field<field name="name">>crm.opportunity.report.graph</field></field> <field<field name="model">>crm.lead.report</field></field> <field<field name="arch" type="xml">> <graph<graph string="Leads Analysis" type="pivot" stacked="True">> <field<field name="date_deadline" type="row"/>/> <field<field name="stage_id" type="col"/>/> <field<field name="planned_revenue" type="measure"/>/> </graph></graph> </field></field> </record></record>
  • 10. BI view API In graph tag: string: title stacked: if bar chart is stacked/not stacked (default=false) type: mode (pivot, bar, pie, line) (default=bar) In field tags, type attribute: row : will be grouped by rows (dimension) col : will be grouped by cols (dimension) measure : will be aggregated if no type, measure by default · · · · · · ·
  • 11. Date/datetime Always want to be different: date/datetime have a special syntax for groupby: field_date:day, field_date:week, field_date:month (default) field_date:quarter, field_date:year <graph<graph string="Leads Analysis" type="pivot" stacked="True">> <field<field name="date_deadline:week" type="row"/>/> <field<field name="stage_id" type="col"/>/> <field<field name="planned_revenue" type="measure"/>/> </graph></graph> · · · · ·
  • 12. Graph widget setup Graph widget has two more options: visible_ui (true) : indicate if UI is visible heatmap_mode ('none') can be set to row/col/both · ·
  • 14. Odoo Model Odoo BI view will read the various fields. Depending on their type, it will use them for measures : every fields of type integer, float (except 'id') dimensions : right now: every fields defined in the 'group by' category in the search bar. later: every field that can be grouped by the db · · · ·
  • 15. Where is your data? The data needs to satisfy two conditions: be stored in the database (beware of functional fields not stored) be accessed from one single odoo model If yes, you're done. If not, two possibilities: can you extend a model? (stored functional fields, relational fields) can you create a custom model with a postgres view, to link the various models with the data? Bottom line: it needs to be in the DB · · · ·
  • 16. Extending a model WARNING: old API... Do not try this at home!!! classclass res_partner((osv..osv):): _name == 'res.partner' _inherit == 'res.partner' defdef _total_invoice((self,, cr,, uid,, ids,, ......):): ...... # [insert here nice looking code to # compute the total invoice of a customer] ...... returnreturn result _columns == {{ 'total_invoiced':: fields..function((_total_invoice,, string=="Total Invoiced",, type=='float',, store==True)) }}
  • 17. More advanced: Cross model analysis Example: purchase/report/purchase_report.py All reporting views use that technique. Warning: bypass the ORM
  • 19. Edit in live 1. go to developer mode 2. edit action, add 'graph', 3. edit views, create 'graph' 4. profit! Good for testing.
  • 20. Adding a BI view with xml Add the desired graph view: <record<record id="view_project_task_graph" model="ir.ui.view">> <field<field name="name">>project.task.graph</field></field> <field<field name="model">>project.task</field></field> <field<field name="arch" type="xml">> <graph<graph string="Project Tasks" type="bar">> <field<field name="project_id" type="row"/>/> <field<field name="planned_hours" type="measure"/>/> </graph></graph> </field></field> </record></record>
  • 21. Adding a BI view with xml(2) Add it to the action: <record<record id="action_view_task" model="ir.actions.act_window">> ... <field<field name="view_mode">>kanban,tree,form,calendar,gantt,graph</field></field> ... You can force the correct view: <field<field name="view_id" ref="view_project_task_graph"/>/>
  • 22. Advanced: client action In js, create a widget and append it to your view: thisthis..graph_widget == newnew openerp..web_graph..Graph(( thisthis,, some_model,, some_domain,, options);); thisthis..graph_widget..appendTo((thisthis..$el););
  • 23. Future of BI in odoo?