Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Portfolio Oversight With eazyBI

105 views

Published on

How to leverage eazyBI for combined planning and finance reporting across the Tempo product suite.
- Kris Siwiec, Lead Consultant - New Verve Consulting, United Kingdom

Published in: Software
  • Be the first to comment

Portfolio Oversight With eazyBI

  1. 1. Portfolio Oversight with eazyBI Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com
  2. 2. Agenda The who
  3. 3. The who Who are these people?
  4. 4. Meet the team!
  5. 5. Agenda The what
  6. 6. The what What is this all about?
  7. 7. Integration is the path to riches and peace. E C PRESCOTT
  8. 8. Why eazyBI?
  9. 9. Love We love: the tool, the community, the ecosystem… Why eazyBI?
  10. 10. Love Freedom Why eazyBI? For the tool, the community, the ecosystem. To structure, query and present data.
  11. 11. Why eazyBI? Freedom IntegrationLove To structure, query and present data. Bridging gaps in functionality and understanding. For the tool, the community, the ecosystem.
  12. 12. Why NOT Tempo?
  13. 13. “He that breaks a thing to find out what it is has left the path of wisdom” Tempo “tantrums” Rigidness Built-in reports & gadgets not designed for easy customization • Pre-defined views of data • Limited number of - presets - units - scales
  14. 14. “You shall not pass”Tempo “tantrums” Obstructiveness Built-in reports & gadgets respect user permissions • Jira permissions - Browse Projects - Filter Owner - … • Tempo permissions - Administrators - Team Administrators - Account Administrators - Rate Administrators - Folio Owner
  15. 15. “A wizard is never late…nor is he early” Tempo “tantrums” Laziness Built-in reports & gadgets computed on- the-fly
  16. 16. “My preciousss…”Tempo “tantrums” Possessiveness • Built-in reports not available through dashboard gadgets • Limited choice of built-in gadgets • Gadgets respect user permissions i.e. not suitable for unprivileged users (e.g. JSD customers)
  17. 17. • Rigidness • Obstructivenes s • Laziness • Possessivenes s • Love • Freedom • Integration = riches & peace WHY EAZYBI WHY NOT TEMPO
  18. 18. Agenda The eazy
  19. 19. The eazy Getting our hands on the data
  20. 20. Database API Different points of view Bottom-up view of data Top-down view of data
  21. 21. SELECT FROM WHERE
  22. 22. select portfolio_name, expired, actual, account_id, account_key, account_name, rate_table_id, rate_table_name, cost_name, id, category, workload_scheme, team_id, team_name, team_role_id, role_id, role_name, start_date_p, end_date_p, amount from ( select concat('ALOC', aloc.`ID`) id, fo.`NAME` portfolio_name, if(fo.`END_DATE`>=CURDATE(),'OPEN','EXPIRED') expired, if(po.`ACTUAL`=1,'Actual','Planned') actual, # filter.`VALUE` query, # only used with AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER # filter.`reqcontent` query, # returns the full JQL filter query substring_index(substring_index(filter.`reqcontent`, ''')', 1), '(''', -1) account_key_jql, # extracts the account key from JQL query # po.`ACCOUNT_KEY` account_key, # comes up NULL #account.`ID` account_id, fo.`WORKLOAD_SCHEME_ID` workload_scheme, fo.`RATE_TABLE_ID` rate_table_id, po.`TEAM_ROLE_ID` team_role_id, # WARN: does not line up with role_id below user.`ROLE_ID` role_id, user.`ROLE_NAME` role_name, # for comparison with ID user.`TEAM_ID` team_id, user.`TEAM_NAME` team_name, # for comparison with ID po.`CATEGORY` category, # 'Salaries' type, # optional constant po.`NAME` cost_name, wage.`WAGE`*aloc.`PERCENTAGE`/100*8*(5 * (DATEDIFF(aloc.`END_DATE`, aloc.`START_DATE`) DIV 7) + MID('0123455501234445012333450122234501101234000123450', 7 * WEEKDAY(aloc.`START_DATE`) + WEEKDAY(aloc.`END_DATE`) + 1, 1)) amount, # needs reviewing aloc.`START_DATE` start_date, aloc.`START_DATE` start_date_p, aloc.`END_DATE` end_date_p from AO_2D3BEA_POSITION as po join AO_2D3BEA_FOLIO as fo on po.`FOLIO_ID`= fo.`ID` join AO_2D3BEA_ALLOCATION as aloc on aloc.`POSITION_ID`=po.`ID` join AO_2D3BEA_WAGE as wage on wage.`POSITION_ID`=po.`ID` join AO_2D3BEA_USER_INDEX as user on user.`USER_KEY`=po.`MEMBER` # join AO_2D3BEA_USER_FILTER as filter on filter.`ID`=fo.`SAVED_FILTER_ID` # both AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER are useless join searchrequest as filter on filter.`ID`=fo.`SAVED_FILTER_ID` ) t1 join ( select * from ( select ID account_id, NAME account_name, `KEY` account_key from AO_C3C6E8_ACCOUNT_V1 ) t3 join ( select NAME rate_table_name, SCOPE_ID scope_id, SCOPE_TYPE scope_type, PARENT_ID parent_id from AO_C3C6E8_RATE_TABLE where SCOPE_TYPE='ACCOUNT' ) t4 on t3.`account_id`=t4.`scope_id` ) t2 #on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`rate_table_id` on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`parent_id` # cannot join on rate_table_id as we need the parent rate table
  23. 23. • indirect data access • high access time • low access cost • balance of granularity and control • direct data access • low access time • high access cost • maximum granularity and control DATABASE API
  24. 24. Point taken
  25. 25. Agenda The not-so-eazy
  26. 26. The not-so-eazy Getting our hands on MORE data
  27. 27. Request timeouts WHEN MORE DATA = BIGGER DATA Request proxying • Response time • Response size • Page size • Cache response • Format/paginate • Publish response
  28. 28. 1h → 1m → 1s / account Data processing time reduction on a 500-account portfolio
  29. 29. API coverage WHEN MORE DATA = BETTER DATA API stability • Not all data officially exposed • Sometimes in the response you get more than you bargained on • Public endpoints often experimental • Private endpoints here be dragons
  30. 30. Agenda Wee demo
  31. 31. Wee demo How does this all fit together?
  32. 32. Data processing workflow Data cache Source application Data source Data proxy • User properties • Active Objects • AWS S3 • …Database • REST API data connector in eazyBI • Pagination • Authentication • Public endpoints • Private endpoints • SQL queries • …Screen scrapes • Microservice • Scripted service / CRON job • Custom endpoint
  33. 33. Agenda Wrap-up
  34. 34. Wrap-up DO • Proxy your data • Cache your data • Use public endpoints DON'T • Presume performance • Use DB queries • Use private endpoints DOs & DON'Ts
  35. 35. Questions? Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com
  36. 36. Cheers! Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com

×