SlideShare a Scribd company logo
1 of 43
Building a utilities portal
with Magnolia 5 and SAP
Magnolia Conference 2014
Matteo Pelucco, Senior Software Engineer
Basel, 26th June 2014
Digital Technology with
Emotion
2
Tinext integrated offer
3
1995
45+
650+
2 mio 800+
2
2
3000+ 24x7
x365
Our first web project
Employees
Hosted websites
web pages clients
We are in Switzerland
and Italy
Datacenters
Managed mailboxes
Guaranteed
assistance
Physical servers
Realized projects
160+
1500+
Facts and figures
4
About Tinext
Tinext combines the latest digital marketing expertise together with the
deep technical understanding of a seasoned enterprise systems integrator.
The end results are solid enterprise web solutions that transform our
clients’ businesses.
Since 2001, our teams have conceived, delivered, deployed and maintained more than 500
successful projects, with clients including Al Arabiya News Channel, Royal Caribbean
International, Whirlpool Europe, City of Lausanne, Generali Group and Swiss national
broadcasters RSI.
With a comprehensive range of digital services delivered through our three core practices,
Tinext can deliver complete projects or flexible services working in combination with other
providers.
5
Clients
6
Matteo Pelucco, Senior Software Engineer
7
@matteopelucco
Aziende Industriali di Lugano (AIL)
8
Company
Public Utility company
Produces electricity & water. Imports gas.
Retails electricity, gas & water in Ticino.
Project
CMS Replacement: Magnolia
100k potential users
23 business processes to build
Sensitive data
Open Suite Approach
9
www.royalcaribbean.it
25 Business Processes to model
..and many more..
Each of them interacts with SAP in a
different way (few common patterns)
Standard form builder was not
enough!
Just an example: what stakeholders think
Just an example: how things really are
13
USE YOUR HP!
Form builder reloaded
Standard Form Builder has been extended, several
new features has been introduced:
• SAP-aware validators
• Multistep navigation bar
• Step Validators
• Scriptable default values for input (eval)
• Final summary step
• Dynamic mail processors
• Everything responsive!
A business process site tree
A business process interface
bp#17: change payment method
Step validators
New form field types
Responsive multistep navigation
Responsive contextual help (STK)
21
SAP INTEGRATION
Legacy SAP integration
Do you remember? We are moving an existing
(live!) project, already on SAP.
Legacy SOAP-based SAP integration layer
Refactoring not in project scope!
No documentation
Only WSDL
jUnit as reverse engineering tool
Tests to reverse engineer SOAP layer
Java WS client: built with jax-ws, filled with
jUnit test cases.
Magnolia 5 IoC allowed our team to mock all
the remote functionalities, without blocking
front-end developers.
SAP URLs in magnolia.properties file
No risk of accessing the wrong SAP
environment.
jUnit as reverse engineering tool
Each jUnit test decomposed in FormProcessor
and/or FormStepValidator
Quick debugging: just change few properties
and launch the test
jUnit as reverse engineering tool
AbstractTest.java
LoginTest.java
ChangeUsernameTest.java
SendMeterReadingsTest.java
…
Flow simulation,
real SAP calls,
asserts,
utilities tuning,
…
Common methods / utilities
Prepares a «logged» context,
@before method
26
DMS INTEGRATION: ALFRESCO
Legacy Alfresco DMS
Customer communications were stored in
Alfresco (v. 2.x!)
SAP ask Alfresco to generate PDF, and to
serve them to customers
Need to hide real Alfresco URLs..
Alfresco API
Used standard Alfresco API to download
documents
A dedicated Magnolia
«DocumentDownloadServlet»
transparently proxies the document download
request for a logged user, applying a security
layer on top of it.
Alfresco API
User Document Archive
Authentication and authorization
Users are in SAP
No ACLs: everything is data-driven
Rules not applicable on a
hierarchical resource tree
Page renderer
Page protection (for each page)
Security layer exposed to freemarker
conditional presentation layer statements
user interface personalization
Agile: easy to test and debug
[#if …] normal flow [#else] exception [/#if]
User Login
Freemarker Custom Util
Freemarker Security Statements
Conclusions
Magnolia «open suite approach» easily allows to «plug» your
integration activity
• So many «injection points»
• Reliable: integration patterns
Form Builder is very powerful and customizable
Mock activity is foundamental in projects like this.
Magnolia IoC helps the project lifecycle and team work
User data security always on top of feature set
Future Improvements
Simplify Form building activity
Now it is for superusers
Too many Magnolia green bars, even for short forms
SAP represents a single point of failure
Expose SAP data to a «look-aside» repository, periodically refreshed. This will allow also horizontal
scaling..
Heavy usage of Http Session
No cache
Provide a way to communicate between a form step and another
No single-page app
Form builder should be exposed also to JS frameworks (Backbone, Angular..) for a better user
experience and performance.
38
SVN Sync (app)
Allows automatic synchronization of a SVN repository to
Magnolia webapp (filesystem)
Bootstrap tasks
Clone Magnolia standard security, create pages, utilities
Java Utils
HTTP helpers, Calendar, Captcha, Text, Collections,
Magnolia, ..
Freemarker Utils
Calendar, Text, Magnolia, STK shortcuts, …
Page Builder API
Allow to create pages simulating user interactions
Captcha
Integration with Tinext Captcha System
NECTAR: A NEW TINEXT MODULE
Nectar: SVN Sync App
y
Nectar: SVN Sync App
y
Nectar: SVN Sync App
Nectar: SVN Sync App
42
Thank you for your attention.
Tinext SA
Viale Serfontana 7
6834 Morbio Inferiore
Switzerland
+41 91 612 22 66
info@tinext.com
www.tinext.com
Tinext Italia Srl
Via Borghi 8
21013 Gallarate
Italy
+39 0331 667 747

More Related Content

What's hot

Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?VMware Tanzu
 
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformÁkos Horváth
 
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...Neo4j
 
Back to Basics: Embedded Analytics 101
Back to Basics: Embedded Analytics 101Back to Basics: Embedded Analytics 101
Back to Basics: Embedded Analytics 101TIBCO Jaspersoft
 
Udemyfor businesscourselist
Udemyfor businesscourselistUdemyfor businesscourselist
Udemyfor businesscourselistJigarUndavia2
 
How to Design Reports and Data Visualizations Your Users Love
How to Design Reports and Data Visualizations Your Users LoveHow to Design Reports and Data Visualizations Your Users Love
How to Design Reports and Data Visualizations Your Users LoveTIBCO Jaspersoft
 
#ATAGTR2020 Presentation - GraphQL for CICD integration
#ATAGTR2020 Presentation - GraphQL for CICD integration#ATAGTR2020 Presentation - GraphQL for CICD integration
#ATAGTR2020 Presentation - GraphQL for CICD integrationAgile Testing Alliance
 
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...Anoop Ramachandran
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...Jitendra Bafna
 
Pentaho PDI and the Jare Ruleengine
Pentaho PDI and the Jare RuleenginePentaho PDI and the Jare Ruleengine
Pentaho PDI and the Jare Ruleengineuwe geercken
 
JCNC13 Application Lifecycle Management
JCNC13 Application Lifecycle ManagementJCNC13 Application Lifecycle Management
JCNC13 Application Lifecycle ManagementAmbientia
 
Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101  Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101 TIBCO Jaspersoft
 
Managing the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc ReportingManaging the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc ReportingTIBCO Jaspersoft
 
O365Engage17 - What Do I Need to Know as a Power Apps Business Developer
O365Engage17 - What Do I Need to Know as a Power Apps Business DeveloperO365Engage17 - What Do I Need to Know as a Power Apps Business Developer
O365Engage17 - What Do I Need to Know as a Power Apps Business DeveloperNCCOMMS
 
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer SuccessWSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer SuccessWSO2
 

What's hot (20)

Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?
 
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
 
GraphQL.net
GraphQL.netGraphQL.net
GraphQL.net
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platform
 
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...
GraphConnect Europe 2016 - Governing Multichannel Services with Graphs - Albe...
 
Back to Basics: Embedded Analytics 101
Back to Basics: Embedded Analytics 101Back to Basics: Embedded Analytics 101
Back to Basics: Embedded Analytics 101
 
Udemyfor businesscourselist
Udemyfor businesscourselistUdemyfor businesscourselist
Udemyfor businesscourselist
 
How to Design Reports and Data Visualizations Your Users Love
How to Design Reports and Data Visualizations Your Users LoveHow to Design Reports and Data Visualizations Your Users Love
How to Design Reports and Data Visualizations Your Users Love
 
QlikView & Salesforce
QlikView & SalesforceQlikView & Salesforce
QlikView & Salesforce
 
Harmeet singh
Harmeet singhHarmeet singh
Harmeet singh
 
#ATAGTR2020 Presentation - GraphQL for CICD integration
#ATAGTR2020 Presentation - GraphQL for CICD integration#ATAGTR2020 Presentation - GraphQL for CICD integration
#ATAGTR2020 Presentation - GraphQL for CICD integration
 
Dimitri SCHMITT - CVEN
Dimitri SCHMITT - CVENDimitri SCHMITT - CVEN
Dimitri SCHMITT - CVEN
 
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...
Anypoint Monitoring - Built in Dashboards, Custom Dashboards, Alerts and Func...
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
Pentaho PDI and the Jare Ruleengine
Pentaho PDI and the Jare RuleenginePentaho PDI and the Jare Ruleengine
Pentaho PDI and the Jare Ruleengine
 
JCNC13 Application Lifecycle Management
JCNC13 Application Lifecycle ManagementJCNC13 Application Lifecycle Management
JCNC13 Application Lifecycle Management
 
Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101  Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101
 
Managing the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc ReportingManaging the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc Reporting
 
O365Engage17 - What Do I Need to Know as a Power Apps Business Developer
O365Engage17 - What Do I Need to Know as a Power Apps Business DeveloperO365Engage17 - What Do I Need to Know as a Power Apps Business Developer
O365Engage17 - What Do I Need to Know as a Power Apps Business Developer
 
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer SuccessWSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
WSO2Con USA 2017: Building a Successful Delivery Team for Customer Success
 

Viewers also liked

Integration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMSIntegration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMShpesojg
 
Stormwater Utilities: A regional and national perspective on planning and imp...
Stormwater Utilities: A regional and national perspective on planning and imp...Stormwater Utilities: A regional and national perspective on planning and imp...
Stormwater Utilities: A regional and national perspective on planning and imp...OHM Advisors
 
Greek and Roman Architecture
Greek and Roman ArchitectureGreek and Roman Architecture
Greek and Roman ArchitectureOwl Black
 
Gothic architecture
Gothic architectureGothic architecture
Gothic architectureBinumol Tom
 
Islamic Architecture Lecture
Islamic Architecture LectureIslamic Architecture Lecture
Islamic Architecture LectureImran Qamar
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyMagnolia
 
History of islamic architecture
History of islamic architectureHistory of islamic architecture
History of islamic architectureShahril Khairi
 
Plumbing in Architecture
Plumbing in ArchitecturePlumbing in Architecture
Plumbing in ArchitectureSneha Nagarajan
 
Presentation plumbing
Presentation plumbingPresentation plumbing
Presentation plumbingLiguidliguid
 

Viewers also liked (12)

Integration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMSIntegration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMS
 
Stormwater Utilities: A regional and national perspective on planning and imp...
Stormwater Utilities: A regional and national perspective on planning and imp...Stormwater Utilities: A regional and national perspective on planning and imp...
Stormwater Utilities: A regional and national perspective on planning and imp...
 
Greek and Roman Architecture
Greek and Roman ArchitectureGreek and Roman Architecture
Greek and Roman Architecture
 
Plumbing
PlumbingPlumbing
Plumbing
 
Gothic architecture
Gothic architectureGothic architecture
Gothic architecture
 
plumbing
plumbingplumbing
plumbing
 
Islamic Architecture Lecture
Islamic Architecture LectureIslamic Architecture Lecture
Islamic Architecture Lecture
 
Basic Plumbing System
Basic Plumbing System Basic Plumbing System
Basic Plumbing System
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficiently
 
History of islamic architecture
History of islamic architectureHistory of islamic architecture
History of islamic architecture
 
Plumbing in Architecture
Plumbing in ArchitecturePlumbing in Architecture
Plumbing in Architecture
 
Presentation plumbing
Presentation plumbingPresentation plumbing
Presentation plumbing
 

Similar to Building a utilities portal with Magnolia 5 and SAP integration

Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechDivante
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam Timpany
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013Marc Gille
 
Syclo Techno Functional Consultant
Syclo Techno Functional ConsultantSyclo Techno Functional Consultant
Syclo Techno Functional ConsultantBalaji Mahesh B
 
Jesy George_CV_LATEST
Jesy George_CV_LATESTJesy George_CV_LATEST
Jesy George_CV_LATESTJesy George
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeVMware Tanzu
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352sflynn073
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Julian Feinauer
 
FORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia ChapterFORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia ChapterDiana Gray, MBA
 
Manoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma
 
Manoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder Singh
 
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...DeeDee Kato
 
Prateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcsPrateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcsPrateek Tulsiyan
 

Similar to Building a utilities portal with Magnolia 5 and SAP integration (20)

Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-Resume
 
Profile_Ahmad2
Profile_Ahmad2Profile_Ahmad2
Profile_Ahmad2
 
Venu gopal_CV
Venu gopal_CVVenu gopal_CV
Venu gopal_CV
 
CV_DebarpanMukherjee
CV_DebarpanMukherjeeCV_DebarpanMukherjee
CV_DebarpanMukherjee
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013
 
Syclo Techno Functional Consultant
Syclo Techno Functional ConsultantSyclo Techno Functional Consultant
Syclo Techno Functional Consultant
 
Jesy George_CV_LATEST
Jesy George_CV_LATESTJesy George_CV_LATEST
Jesy George_CV_LATEST
 
Sumeet cv
Sumeet cvSumeet cv
Sumeet cv
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!
 
FORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia ChapterFORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
 
Big Data Ready Enterprise
Big Data Ready Enterprise Big Data Ready Enterprise
Big Data Ready Enterprise
 
Manoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9years
 
Manoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9yearsManoj Sharma_Enovia_9years
Manoj Sharma_Enovia_9years
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resume
 
Software Engineer
Software EngineerSoftware Engineer
Software Engineer
 
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
 
Prateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcsPrateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcs
 

More from Magnolia

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO WorkflowMagnolia
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headlessMagnolia
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceMagnolia
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital EraMagnolia
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessMagnolia
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureMagnolia
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianMagnolia
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Magnolia
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demandMagnolia
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterMagnolia
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOTMagnolia
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesMagnolia
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round holeMagnolia
 
Solving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachSolving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachMagnolia
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutionsMagnolia
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnoliaMagnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4Magnolia
 

More from Magnolia (20)

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO Workflow
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthrough
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headless
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer Experience
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital Era
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital Business
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices Architecture
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynote
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demand
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites faster
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOT
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websites
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round hole
 
Solving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachSolving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approach
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutions
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
 

Building a utilities portal with Magnolia 5 and SAP integration

  • 1. Building a utilities portal with Magnolia 5 and SAP Magnolia Conference 2014 Matteo Pelucco, Senior Software Engineer Basel, 26th June 2014
  • 4. 1995 45+ 650+ 2 mio 800+ 2 2 3000+ 24x7 x365 Our first web project Employees Hosted websites web pages clients We are in Switzerland and Italy Datacenters Managed mailboxes Guaranteed assistance Physical servers Realized projects 160+ 1500+ Facts and figures 4
  • 5. About Tinext Tinext combines the latest digital marketing expertise together with the deep technical understanding of a seasoned enterprise systems integrator. The end results are solid enterprise web solutions that transform our clients’ businesses. Since 2001, our teams have conceived, delivered, deployed and maintained more than 500 successful projects, with clients including Al Arabiya News Channel, Royal Caribbean International, Whirlpool Europe, City of Lausanne, Generali Group and Swiss national broadcasters RSI. With a comprehensive range of digital services delivered through our three core practices, Tinext can deliver complete projects or flexible services working in combination with other providers. 5
  • 7. Matteo Pelucco, Senior Software Engineer 7 @matteopelucco
  • 8. Aziende Industriali di Lugano (AIL) 8 Company Public Utility company Produces electricity & water. Imports gas. Retails electricity, gas & water in Ticino. Project CMS Replacement: Magnolia 100k potential users 23 business processes to build Sensitive data
  • 10. 25 Business Processes to model ..and many more.. Each of them interacts with SAP in a different way (few common patterns) Standard form builder was not enough!
  • 11. Just an example: what stakeholders think
  • 12. Just an example: how things really are
  • 14. Form builder reloaded Standard Form Builder has been extended, several new features has been introduced: • SAP-aware validators • Multistep navigation bar • Step Validators • Scriptable default values for input (eval) • Final summary step • Dynamic mail processors • Everything responsive!
  • 15. A business process site tree
  • 16. A business process interface bp#17: change payment method
  • 18. New form field types
  • 22. Legacy SAP integration Do you remember? We are moving an existing (live!) project, already on SAP. Legacy SOAP-based SAP integration layer Refactoring not in project scope! No documentation Only WSDL
  • 23. jUnit as reverse engineering tool Tests to reverse engineer SOAP layer Java WS client: built with jax-ws, filled with jUnit test cases. Magnolia 5 IoC allowed our team to mock all the remote functionalities, without blocking front-end developers. SAP URLs in magnolia.properties file No risk of accessing the wrong SAP environment.
  • 24. jUnit as reverse engineering tool Each jUnit test decomposed in FormProcessor and/or FormStepValidator Quick debugging: just change few properties and launch the test
  • 25. jUnit as reverse engineering tool AbstractTest.java LoginTest.java ChangeUsernameTest.java SendMeterReadingsTest.java … Flow simulation, real SAP calls, asserts, utilities tuning, … Common methods / utilities Prepares a «logged» context, @before method
  • 27. Legacy Alfresco DMS Customer communications were stored in Alfresco (v. 2.x!) SAP ask Alfresco to generate PDF, and to serve them to customers Need to hide real Alfresco URLs..
  • 28. Alfresco API Used standard Alfresco API to download documents A dedicated Magnolia «DocumentDownloadServlet» transparently proxies the document download request for a logged user, applying a security layer on top of it.
  • 31. Authentication and authorization Users are in SAP No ACLs: everything is data-driven Rules not applicable on a hierarchical resource tree
  • 32. Page renderer Page protection (for each page) Security layer exposed to freemarker conditional presentation layer statements user interface personalization Agile: easy to test and debug [#if …] normal flow [#else] exception [/#if]
  • 36. Conclusions Magnolia «open suite approach» easily allows to «plug» your integration activity • So many «injection points» • Reliable: integration patterns Form Builder is very powerful and customizable Mock activity is foundamental in projects like this. Magnolia IoC helps the project lifecycle and team work User data security always on top of feature set
  • 37. Future Improvements Simplify Form building activity Now it is for superusers Too many Magnolia green bars, even for short forms SAP represents a single point of failure Expose SAP data to a «look-aside» repository, periodically refreshed. This will allow also horizontal scaling.. Heavy usage of Http Session No cache Provide a way to communicate between a form step and another No single-page app Form builder should be exposed also to JS frameworks (Backbone, Angular..) for a better user experience and performance.
  • 38. 38 SVN Sync (app) Allows automatic synchronization of a SVN repository to Magnolia webapp (filesystem) Bootstrap tasks Clone Magnolia standard security, create pages, utilities Java Utils HTTP helpers, Calendar, Captcha, Text, Collections, Magnolia, .. Freemarker Utils Calendar, Text, Magnolia, STK shortcuts, … Page Builder API Allow to create pages simulating user interactions Captcha Integration with Tinext Captcha System NECTAR: A NEW TINEXT MODULE
  • 43. Thank you for your attention. Tinext SA Viale Serfontana 7 6834 Morbio Inferiore Switzerland +41 91 612 22 66 info@tinext.com www.tinext.com Tinext Italia Srl Via Borghi 8 21013 Gallarate Italy +39 0331 667 747

Editor's Notes

  1. Logo bancastato è stato sostituito con belgacom