Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lessons Learned Deploying Fiori at Scale

Lessons Learned Deploying Fiori at Scale

A greenfield implementation of SAP S/4HANA for one of SAP’s long-time customers demanded a modern, user-experience-centric (UX) approach based on SAP Fiori UX. Yet deploying around 1,400 apps to users in more than 50 countries proved quite a challenge. Join this session for a full-stack view of our solution to this challenge, covering hosting infrastructure, network optimisation, personalisation of SAP Fiori Launchpad, custom app development, and related topics.

Presented at SAP Singapore User Group 2020, as an updated version of the SIT Online 2020 talk.

A5604f2015f157ee20ceb1ea6e609bc9?s=128

Sascha Wenninger

December 02, 2020
Tweet

Transcript

  1. Public Lessons Learned Deploying SAP Fiori at Scale Sascha Wenninger

    Technology Lead, 4S Program Orica
  2. None
  3. A Global Company 3

  4. A Global Workforce 4 13,000 people 57 countries

  5. 8 End-to-End Business Processes Business plan to reporting Market intelligence

    to order to cash Issue to resolution Source to purchase to pay Plan to inventory Project inception asset acquire to retire to project closure Recruit to hire to terminate Master data management Business budgeting, forecasting, month end, half year and full year reporting. Opportunities, bid management, sales contracts & orders, shipments, billing & accounts receivables. Complaints management. I.e., returns, credit notes. Sourcing, purchase contracts and orders, goods receipt, accounts payable. Sales and operations planning, distribution requirement planning, material requirement planning, discrete/continuous manufacturing, goods receipt in stock. Project approvals process, asset acquisition & maintenance, integration to fixed-assets, asset obsolesce & project closure. Recruitment, on boarding, succession planning, performance review, payroll, mobility, off boarding and organisational structure. Create / change / delete master data (i.e. customers, vendors, SKU’s) and enterprise structure, (i.e., company codes, plants, storage locations). 1. 2. 3. 4. 5. 6. 7. 8.
  6. Architecture

  7. 7

  8. Business Vision One System Consistent processes globally Quality Master Data

    Controlled IT system risks Predictability Visibility One way of working
  9. Technology Vision Anywhere, Any Device Productivity

  10. None
  11. None
  12. None
  13. Architecture

  14. Azure Our Architecture S/4HANA 1809 Business Suite (PY) Business Suite

    (GTS, EM) HANA 2.0 HANA 2.0 Front-End Server Web Dispatcher
  15. Azure …if we were doing it again… S/4HANA 1809 Business

    Suite (PY) Business Suite (GTS, EM) HANA 2.0 HANA 2.0 Front-End Server Web Dispatcher
  16. Landscape Design Highly customer-specific! • Greenfield or Brownfield? • How

    many systems? How many S/4HANA? • SaaS footprint? • Scalability? Take the time to plan this! Also see SAP Fiori Deployment Options and System Landscape Recommendations
  17. Location

  18. Choosing a Location Availability of SaaS apps IaaS feature availability

    Legal & Privacy Network connectivity Costs
  19. Network Bandwidth Source: https://global-internet-map-2018.telegeography.com

  20. IaaS Cost Source: https://azureprice.net/Region

  21. HTTP/2

  22. What is it? New version of HTTP, feat: • Binary

    transfer • Multiplexing • Header Compression • Encryption
  23. Multiplexing With HTTP/1.1, browsers open 4-8 TCP connections per origin

    For each connection: • TCP Handshake (2 Round-Trips) • TLS Handshake (2+ Round Trips) • TCP Slow Start HTTP/2 Multiplexing avoids this! 1 TCP Connection for everything
  24. Basic Setup Requires kernel >= 7.49 WebDispatcher and ICM support

    this SSL mandatory! 2 Steps: 1. icm/HTTP/support_http2=true 2. Restart ICM More info: Nick Yang’s blog post SAP Web Dispatcher ABAP System Java System ICM HANA DB HANA DB HTTP/2 HTTP/1.1 ICM
  25. Advanced Setup Requires kernel >= 7.49 WebDispatcher and ICM support

    this SSL mandatory! 3 Steps: 1. icm/HTTP/support_http2=true 2. wdisp/support_http2_to_backend=true 3. Restart ICM More info: Nick Yang’s blog post SAP Web Dispatcher ABAP System Java System ICM HANA DB HANA DB HTTP/2 HTTP/2 ICM
  26. Performance Gains 0 1 2 3 4 5 0 2

    4 6 8 10 12 14 16 18 20 22 24 Frequency Load Time (n=10) Fiori Launchpad: Load time -20% 18s 14s
  27. SAPUI5 CDN

  28. +

  29. Akamai Edge locations Source: Akamai

  30. None
  31. SAPUI5 CDN Read more: Blog post by Jorge Baltazar, or

    Note 2526542 Map credit: $200inaire ~200ms ~20ms
  32. Will it Help? Often A Good Idea, but depends on

    network topology • Where are your users? Is Akamai really “closer”? • Do you have Riverbed WAN Acceleration? • Is your internet link congested? • Is your proxy slow? • Individual results will vary
  33. Our Experience with Fiori Launchpad HTTP Requests 2.6 MB 550

    kB HTTP Requests 39 37 SAP Front-End Server SAPUI5 CDN
  34. 0 1 2 3 4 5 0 2 4 6

    8 10 12 14 16 18 20 22 24 Frequency Load Time (n=10) Fiori Launchpad: Load time Performance Gains -20% 18s 14s -20% 11s
  35. Access from Anywhere

  36. 0 50 100 150 200 5 10 15 20 25

    30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 More Workers on Site Access from Anywhere 3,500+ Workers at Customer Sites 400+ Customer Sites “Access SAP from any Computer”
  37. None
  38. Azure Application Proxy Azure App Proxy Connector https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/application-proxy

  39. Azure Application Proxy • Managed by Azure • Single Sign-On

    with MFA • Pre-authentication • WAF features • Scalable • Secure • Cheap
  40. Software Currency

  41. Software Currency Keep up to date! Update your Front-End Server!

    – Performance improvements (e.g. FES 5.0) – Features (e.g. in-place GUI for HTML) Beware of version dependencies: Note 2618605 – usually some updates needed in all systems Beware of custom themes and dependencies with UI5 library
  42. Software Currency Stateful Application Container for SAP GUI Improves performance

    for launching GUI for HTML and Web Dynpro Refer to Jocelyn Dart’s blog post on how to set this up Launchpad Generation Upgrading to FES 5.0 reduced load time by ~30%! 11s -25% 8s
  43. Google Analytics

  44. Visibility Read more: Blog post by Nathan Ingram

  45. Our Scope

  46. 1,424 Fiori Tiles 456 UI5 apps 75 custom Analytics Tooling

    GUI for HTML N W B C UI5 URL Link Web Dynpro UI Technologies
  47. Prepare for the Effort

  48. Activating standard apps SAP-delivered Roles often don’t align to company

    processes Installation via Rapid Content Activation is not perfect… (though much improved since 1610/1709) Troubleshooting takes effort! Discover Activate Troubleshoot Evaluate 3.5 Apps/person/day 180+ SAP Incidents
  49. Team Structure 4 Basis consultants Close collaboration with Security Once

    activated, it’s all about Security! Technology Development Basis Fiori Security
  50. None
  51. None
  52. None
  53. Design Thinking

  54. But… “Big Bang” Go-Live ~630 Jobs (personas) 57 countries

  55. Business Process Management

  56. Top-Down Decomposition E2E Model Process Model Process Step Value Chain

    Diagrams
  57. E2E Model Process Model Process Step Value Chain Diagrams Top-Down

    Decomposition Generated by SolMan from lower-level models
  58. E2E Model Process Model Process Step Value Chain Diagrams Top-Down

    Decomposition
  59. Value Chain Diagrams Top-Down Decomposition E2E Model Process Model Process

    Step
  60. Each Process Step has Executables Links to Fiori App ID,

    Semantic Object
  61. E2E Model Process Model Process Step Value Chain Diagrams 8

    x 38 x 149 x 498 x 4,257 x BPM Library
  62. Job-Role Mapping Person Job Swimlane Role Fiori App

  63. FLP & Security Process Models + Org Structure Authorisations +

    Fiori Launchpad content = Person Job Role
  64. Target Design (This is dummy data from the dev system!)

  65. Target Design Tabs represent “Level 2 Processes” Sorted alphabetically

  66. Target Design (This is dummy data from the dev system!)

    KPI Tiles always at the beginning
  67. Target Design Transactional Apps sorted alphabetically

  68. Target Design Display-only Apps as Links to save space

  69. Target Design Target Mapping ~630 jobs Fiori Group ~38 groups

    Fiori Catalog ~38 catalogs • Catalog contains all tiles available for the user to choose from, accessible from App Finder • One Catalog for each Level 2 process defined in BPM • Fiori Group contains Tiles displayed on first logon. • Rules-based organisation (KPI tiles first, alphabetically sorted, Display-only apps as Links) • Target mapping controls which Tiles will be shown/hidden based on Swimlane Roles, which are grouped to form Job Roles.
  70. None
  71. None
  72. Iterate and refine: Find logical groups Separate into new Group

  73. Use the App Finder Reduces clutter on the Launchpad Lets

    people discover less-frequently-used apps Encourage users to personalize!
  74. Sample Launchpad Default Fiori Launchpad for Senior Manager, Logistics

  75. Stay Standard We chose Belize Light + Orica logo Consistent

    with SuccessFactors, Cloud for Customer Minimises upgrade effort Fiori 3 will bring further UI alignment. Eventually…
  76. Stay Standard Even this caused some CORS pain! Root cause:

    SAP’s poor Theme Editor implementation! Cross-Origin issues with GUI in Stateful Container CORS
  77. Stay Standard. Really! Monthly UI5 patching was much more complex,

    and prone to error. èWe are back to standard now!
  78. Engage SAP MaxAttention Innovation Control Centre Regional Implementation Group (RIG)

    Customer Engagement Initiatives SAP Community Network …
  79. None
  80. Effort & Time! Deploying Fiori needs both. Needed from Design

    to UAT and hypercare. A dedicated team is best. Skills: Basis, Security, Empathy, Patience
  81. Pain Point: Sorting • Must be done manually in Launchpad

    Designer! • Slow for large Groups (>1 minute to move a tile!) • There is no Excel upload/download or bulk maintenance Next time, we’ll build some custom code!
  82. Pain Point: Smart Business Tiles • Cannot be controlled using

    Target Mapping • Always shown even no authorization to data! • Must use personalization to hide Next time, we’d probably put these into a separate Fiori Group Refer SAP Note 2644149
  83. Fiori Launchpad Content Manager

  84. Fiori Launchpad Content Manager Released in July 2019 Requires SP

    upgrade of SAP_UI 7.52 or later If you can, use it!
  85. Pain Point: SolMan Process Modelling SolMan’s Executable Library is keyed

    by Semantic Object + Action. Apps cannot be added to the library automatically! Several Fiori apps have identical key values! Difficult to determine correct App for Job or Role…
  86. Pain Point: User Experience of Old Apps Not all Fiori

    apps are beautiful Some require user to remember codes and IDs between apps. Many don’t implement navigation Newer apps generally much better: filtering, type-ahead, app-to-app navigation, etc. Still many inconsistencies (e.g. User Defaults in Me Area)
  87. Pain Point: Personalization User friendly but challenging to maintain. Some

    changes can corrupt personalization data for some users. To fix, reset personalization. Complicates consistent look & feel across people with same Job.
  88. Lessons Learnt Prepare & Plan Create a Factory Combine Security

    & Fiori teams Build your own tools Keep systems up to date Stay Standard! It’s not easy!
  89. Sascha Wenninger sascha.wenninger@orica.com +65 8799 1446 @sufw Thank you! P.S.

    the slides are here: https://slides.sufw.me/ssug2020
  90. Some Links • SCN Fiori Wiki – great central place

    for all things Fiori – Fiori on S/4HANA – specific for S/4HANA – Fiori Elements – more and more relevant as Fiori Elements matures • SAP Fiori Deployment Options and System Landscape Recommendations • Nick Yang’s blog post on enabling http/2 • Configuring SAPUI5 CDN, by Jorge Baltazar • Calling GUI and Web Dynpro apps without opening new tab, by Jocelyn Dart • SAP Fiori Launchpad Content Manager Keep monitoring Customer Influence!