OpenUI5 Tutorial at OSCON 2014

This week finds me in Portland, Oregon, for O’Reilly’s Open Source Convention (OSCON), an amazing conference with a wonderfully diverse range of topics (over 20 of them). I attended OSCON as a speaker in the early 2000′s and, along with an old friend and colleague Piers Harding, talked about SAP and Open Source, and I’m very happy to be coming back to OSCON as part of an extended SAP team to talk about SAP and Open Source topics.

This year SAP is an OSCON Gold Sponsor and there are a number of sessions that are related to that. One of these was a 3.5 hour tutorial on OpenUI5

Discover OpenUI5 – The New Web UI Library from SAP

We (Andreas Kunz, Frederic Berg and me) presented this tutorial which was based on an updated version of some work we and other UI5 team members had previously prepared for SAP TechEd. It was a lot of fun, and hopefully, educational for the attendees.

Of course, being Open Source related, we’ve made the session material (slides), comprehensive exercise document, the starter project and all the solutions to the exercises available. We collaborated on a Github repo, and it’s all there:

https://github.com/BluefinSolutions/OpenUI5-OSCON-2014

So have at it, see how you get on, and spread the OpenUI5 love.

Share & enjoy!

This Week in Fiori (2014-29)

My SpendI’m currently writing this episode of This Week in Fiori (TWIF) on a flight from Manchester via Philadelphia to Portland for O’Reilly’s Open Source Convention OSCON. It’s a super conference on all things Open Source and I can heartily recommend it.

Back in 2001, 2002 and 2003 I attended OSCON and spoke on the subject of SAP and Open Source. 2014 has come round and I’m back, this time on the subject of OpenUI5, the Open Sourced version of SAP’s UI5 toolkit. Along with a couple of friends & SAP colleagues Andreas Kunz and Frederic Berg, we’re giving a tutorial on the subject: Discover OpenUI5 – The New Web UI Library from SAP, as well as a presentation.

So I’d like to start the week by giving a couple of pointers to background material (“UI5 Credits” and “The Essentials”), to help you get a good idea of the Open Source software upon which UI5 is built. And of course, it’s upon UI5 that SAP Fiori apps are built.

UI5 Credits by the UI5 team
This part of the UI5 Software Development Kit (SDK) lists the libraries, toolkits and other software in the Open Source domain that are used to power parts of UI5.

The Essentials: SAPUI5, OpenUI5 and Fiori by me
If you’re interested in finding out more about the relationships between SAPUI5, OpenUI5 and Fiori, this short post should clear things up.

Updated Version of SAP Fiori Client by John Wargo
The SAP Fiori Client is a hybrid app for specific mobile devices (such as those running Android and iOS), designed specifically to run SAP Fiori apps. Built using Cordova (PhoneGap), it’s a hybrid app in that it is an OS-native install, but is effectively a shell around a browser core, which then acts as the runtime SAP Fiori as usual.

The SAP Fiori Client was designed with performance in mind; amongst other things; for example, it caches the runtime to reduce startup costs. Since the initial release there’s been an update, described in this post. The update contains bug fixes and relatively minor new functionality, but it’s a good sign that maintenance is ongoing. The SAP Fiori Client is definitely worth a look.

The SAP Fiori Fit: Part 1 – Your Fiori Strategy by Molly Maple
This is a nicely balanced piece in the SAP Mobile section of the SAP Community Network site. It talks about what SAP Fiori is (a “UX toolkit”) and what it isn’t (a “mobile platform”). It talks about the orthogonal styles of application delivery: Function-oriented (found in the traditional “dynpro-style” apps) and task-oriented (exemplified by the SAP Fiori apps themselves). And it covers some of the current benefits and shortcomings of Fiori when compared to the SAP Mobile Platform.

HR Renewal & SAP Fiori Q&A Transcript by Jeremy Masters
SAPInsider ran a recent Q&A session focused on HR Renewal, Employee Self Service / Manager Self Service (ESS/MSS) and SAP Fiori. Being a chat-based Q&A the questions and answers are all available. Folks asked about the ease of implementation, about the relationship with, and future demise of WebDynpro, and of course the Portal conundrum, made more interesting by the arrival of SAP Fiori’s Launchpad. Reading this Q&A gives you a good insight into what your peers are really thinking.

Of course, I have to take some slight exception to one of Jeremy’s answers regarding a reference to “web services” and Gateway :-)  Yes, OData has the concept of a service document, and it’s on the web (HTTP) but the specific phrase “web services” conjures up something altogether more complex and heavyweight (and less RESTful).

Well that just about wraps it up for this week. And while I’m thousands of feet over the Atlantic, currently somewhere due south of Iceland, I wanted to leave you with an observation: It seems that each week, new companies and offerings are appearing in the SAP Fiori arena. Webinars (yep, we hosted a webinar on Understanding SAP Fiori last month), demonstrations, Q&A sessions, fixed price implementation services and offers of free prototyping.

The best I saw this week was a statement from an SAP technology consulting company in the US, where the SAP Fiori practice lead claimed to have “five years plus of SAP Fiori focused delivery”. Seeing as SAP Fiori has been around for less than two years, that’s quite impressive! :-)

 

This Week in Fiori (2014-28)

SAP Fiori App Analysis toolAlready a week has passed since my first post in this series and the Fiori related content is increasing. A lot of that is technical, as folks get to grips with the configuration and development mechanisms that underpin Fiori. Perhaps I’ll have a technical “This Week in Fiori” (TWIF) post next time, but for now, here are some more articles, along with some observations.

SAP Fiori Brings Out Four Tools To Improve User Experience by Steve Anderson
The thing that struck me about this article is that the tools that Steve writes about – rapid deployment solutions, proof of concept services, and design thinking – implicitly underline the fact that User Experience (UX) has really arrived in the SAP world of enterprise software. UX has stopped just being a natural by-product of application design, as it might be when dynpro-oriented applications are built with a transactional focus; it’s now an explicit and important part of the overall process.

SAP Fiori UX – Apps Overview with Screenshots by Oliver Lehmann
This is a link to a great PDF-based resource containing details of the current SAP Fiori applications, of which there are over 300 (313 to be precise – see the “Webinar & More: Understanding SAP Fiori” link below). With the organisation by Line of Business (LoB) category, and role, and plenty of screenshots, it’s extremely useful as a visual reference, especially if you haven’t seen may of the SAP Fiori apps in action yet.

SAP Fiori Design Guidelines
Talking of great resources, one not to miss is this set of (beta) design guidelines for Fiori from SAP. I spent 6 months working as a member of the core UI5 team at SAP Walldorf in 2013/2014 and in my time there I really got to appreciate the tremendous passion, the effort and the attention to detail that the design and development teams have and exhibit on a daily basis. A lot of this detail, essential in making the SAP Fiori UX what it is today, has been collated and made available in a very easy to follow guidelines. As we move from “SAP Fiori” to “Fiori” and start to build our own apps, these guidelines will play an important role.

Webinar & More: Understanding SAP Fiori by me
A few weeks ago, Brenton O’Callaghan and I hosted a public Bluefin Solutions webinar “Understanding SAP Fiori” which was very well attended and fun to do. I wrote up some details in a followup post here, which you may find interesting. In particular, I’d like to draw your attention to a couple of things: there’s the SAP Fiori App Analysis tool that I wrote (itself a Fiori style app) which helps you explore the details of the currently available SAP Fiori apps, all 313 of them; it’s accompanied by a short explanatory video too. Then there’s all the stuff that Brenton and I didn’t manage to cover, in particular a deep dive into some of the details of an SAP Fiori application’s architecture. We recorded this as a sort of “Director’s Cut” video “Understanding SAP Fiori” as a follow on to the webinar itself.

So that’s it for this week, until next time – share & enjoy!

This Week in Fiori (2014-27)

SAP Fiori

The interest in SAP Fiori and the User Experience (UX) renewal at SAP is growing week on week. Ever since the launch of SAP Fiori Wave 1 back in summer 2013, with 25 Employee Self Service / Manager Self Service (ESS/MSS) apps, the momentum has been growing. Not surprising, given these things:

  • the successful growth of SAP’s HTML5 tookit “UI5″, in both its guises: SAPUI5 and OpenUI5
  • the fact SAP Fiori is “the future direction of the SAP experience” according to SAP’s Chief Design Officer (CDO) Sam Yen (see later)

Moreover, with the announcement at Sapphire 2014 in Orlando this year that SAP Fiori, along with SAP Personas, are now included in the existing licence and no extra fees are applicable, that interest has changed gear completely. As a result, there are plenty of articles to read; I thought I’d share my top picks of articles and posts that are doing the rounds right now.

How SAP is Reinventing the User Experience by Sam Yen.
This is a Q&A style interview with Sam that was done a couple of months back, but it’s a must-read not only given the recent Sapphire announcements, but also because it underlines the clarity of statement for SAP’s UX and User Interface (UI) direction. Regarding strategy, Sam states: “With SAP Fiori, we’re able to say ‘This is the future direction of the SAP experience’. All SAP solutions are going to be converging in this direction“. This nicely echoes a piece I wrote in 2012 – “SAPUI5 – The Future Direction of SAP UI Development?” … around a year before SAP Fiori was announced. It was clear from the state and potential of the UI5 toolkit even back then that the HTML5-based outside-in UI paradigm at SAP was here to stay.

Becoming Simple takes focus – now Fiori and Personas are free – how do you target your UX efforts? by Jocelyn Dart.
This is a good in-depth piece which talks about UX, a subject relatively unknown in the SAP world until recently. There’s an interview with two folks in the SAP UX space, one coming from SAP’s Design and Co-innovation centre and information on SAP’s UX Advisory service, which is designed to help customers shape their design skills and strategy.

Fiori Changes Perception of Campus Life! by Rob Jonkers.
Earlier this year I flew to SAP Labs Palo Alto to attend a board meeting in my role as a member of the SAP Developer Advisory Board. While there, I chanced to meet some of the members of HERUG – the Higher Education & Research User Group. This is an interesting and well established group within the SAP ecosphere, and they have their own focus, goals and direction. But what makes them part of the ecosphere is their common interest in UX and this post captures that very well. The breadth of functional coverage for Fiori is huge.

The Fiori Design Principles by Kai Richter.
In my role as an SAP Mentor I’m lucky enough to be able to attend and sometimes speak at some internal events, one of which was DKOM last year, where I saw Kai Richter speak. Kai is part of a large team of designers at SAP who are responsible for the UX that SAP Fiori brings. The members of the UI5 development and design teams are heroes of this new SAP era. This is a short article but captures nicely the principles and the essence of what Fiori means from a chief designer’s perspective.

If you have any must-read Fiori articles, let me know! 

SAP Mentor Monday on UI5 – Links

Today I was privileged to host a public SAP Mentor Monday on UI5, with Andreas Kunz as special guest. This is a collection of links that were mentioned in the session.

Session

General

SAPUI5

OpenUI5

JSBin

  • As you saw on the call, JSBin is a super environment for trying out, prototyping and sharing snippets and small apps for #UI5 and more
  • It also has that great codecasting facility that we tried out*

*I realise now why the people watching the codecast as well got “No data” later on in their binding display – it’s because I wasn’t using a proxy prefix for the OData service, I was using my Chrome Canary which by default opens with web security disabled, so it just worked for me. More on that in another post!

Paying IT Forward Links

Today I recorded another SAP CodeTalk session with Ian Thain, this time on the topic of teaching kids computational thinking, teaching them to code: Paying IT Forward … IT Does Compute.

Here’s a quick list of links to the activities and organisations we mentioned in the talk.

CodeClub

CoderDojo (Our Manchester CoderDojo, is hosted at the fantastic Sharp Project)

Young Rewired State

STEMnet

And if you need any more convincing about our computational future, you may be interested in this TEDx talk on “Our Computational Future“.

Share and enjoy!

 

 

OpenUI5 CodeTalk Links

I was honoured to be a guest again on SAP CodeTalk with Ian Thain. This time we talked about OpenUI5 - the open source version of SAPUI5, SAP’s UI development toolkit for HTML5.

 

Here are the links to what was mentioned.

Near the start of the recording, Ian mentioned our previous 2-part SAP CodeTalk on SAPUI5 and Fiori.

I talked about the differences between SAPUI5, OpenUI5 and where they fit with Fiori. Here’s a post explaining that in more detail: “The essentials: SAPUI5, OpenUI5 and Fiori“.

You can compare what’s available in SAPUI5 and OpenUI5 by looking at their respective API references: SAPUI5 API Reference and OpenUI5 API Reference.

Andreas Kunz’s post on SCN “What is OpenUI5 / SAPUI5?“, published when the open sourcing announcement was made. Just before the announcement was made, Jan Penninkhof’s post “13 reasons why SAP should open-source SAPUI5” was published.

OpenUI5′s “home” on the web is Github: http://sap.github.io/openui5/. There’s also a fledgling blog at http://openui5.tumblr.com with an inaugural “We’re open!” post.

Bug reporting for OpenUI5 is possible via Github issues, please read the “Report a Bug” page for more info.

Technical (programming-related) Q&A is active under the ‘sapui5′ tag on Stack Overflow (even though the questions are mostly independent of whether it’s SAPUI5 or OpenUI5).

Recently the OpenUI5 library was added to the list of selectable libraries in JSBin, and there is a small but growing list of templates for JSBin based snippets too (contributions welcome!)

Last but not least, there’s a Public SAP Mentor Monday webinar this coming Mon 24 Mar 2014 on UI5, with special guest Andreas Kunz. Come along and attend, all are welcome!

Alt-K: Reading Notes

With my Kindle, and the Send to Kindle Chrome extension, I have a nice workflow for saving stuff (with a quick alt-k keypress) to read later. The nice thing about the way the Kindle displays new articles is that there’s a “new” tag, until you’ve read it, and once you’ve read it, it floats away to the top (where I can find it, review what I’ve read, and remove it). So here’s a quick rundown of the stuff I read this early evening on a break. If it’s in this list, it’s recommended.

How to be a mentor: A thoughtfully written post with a lot of good suggestions for guiding a mentee along the right path. Let mentees set the agenda for meetings; allow them the occasional mistake (great learning); help them to help themselves by providing strategies for discovering the solution, rather than direct answers; use your experience to help them sort the wheat from the chaff as far as online content is concerned.

Getting access to SAP Fiori trial: many obstacles: Unfortunately the obstacle phenomenon is not a new thing; SAP seem to constantly struggle to make easy the things that should be easy. And in this case it’s commercially disadvantageous for them, hindering customer from trialling Fiori. This is one example of many instances where SAP really need to get a grip and learn from other presences on the Web (another is the SAP ID Service, but that’s a story for another time).

Why you don’t need an Enterprise Service Bus (ESB): This article made me smile, as it’s a simple piece but has a very strong impact. There are too many architecture astronauts out there (I for one have had my share of overengineered, overcomplex and underthought designes pushed in my face from them in my career) and I can imagine this piece being a lovely little wake up call to all those who have seen the classic “ESB icon [seemingly] pre-painted on their whiteboards”.

The many languages native to Britain: A fascinating piece, not only because of the myriad languages that are still alive within our shores (and beyond, it seems) but also because of the difficulty (futility?) in classification. What is a language, what is a dialect? What is native and what is immigrant? When do these classifications change? Who says? (Joseph – this is the piece I was telling you about).

King has trademarked the word CANDY (and you’re probably infringing): I read this piece probably with my mouth wide open. It beggars belief that the US Trademark Office bureaucrats are stupid enough to cause this to happen. It’s one thing for a greedy and self-centred games company to apply for a trademark like them (good luck to them, bold as brass and all) but it’s another for the ridiculous request to be granted. Good grief.

Stack Overflow’s About Page: I’ve recently started to become active on Stack Overflow in the UI5 area, in the light of OpenUI5 and our reachout to the wider non-SAP developer ecosphere(s). The reason Stack Overflow is such a success is because of the quality of its content, and the reason for the content quality is the conduct expected. This conduct is explained concisely in the About page, and there’s more information in the Help sections too. After struggling with SCN’s software for years, and trying to decipher hazy and incomplete questions so that I might answer them, it looks like Stack Overflow will be a breath of fresh air.

So there you have it. I really enjoyed each of these articles, perhaps you’ll find something there too.

Quick hack: Calendar Inviter

Working in different organisations sometimes means having different email addresses and calendars. Currently I have two Outlook instances I have to manage (one for Bluefin and one for a client) on top of my Google-based personal calendar.

Keeping them in sync is a struggle that I avoid, but there’s recently been a specific case where I do want to make the effort, and that’s time / location scheduling – where I’ll be, on what days. This information needs to be in all calendars, to share with work colleagues, and for my own sanity (I see my Google calendar as my master instance in this case).

calendarsSo I wrote a quick Google Apps Script hack to allow me to quickly specify the where/when events in a particular Google calendar that I maintain (called “Work”), and then have those events distributed, via invitations, to my other Outlook identities. It’s not very sophisticated – all it does is look through the Work calendar for all-day events matching a certain title pattern, then look at the guest list; if the emails I want to share the event with are not already on the list, they’re added, and invites are sent.

Because of an issue with the CalendarService component of Google Apps Script (that’s been open since May 2011!) you can’t directly cause invites to be sent to new guests that you add to an existing event. So one workaround is to create the calendar invitation (ICS file) yourself and email it. It’s pretty simple (and Romain Vialard has an example in the commentary on the issue).

Actually creating the ICS file myself was a solution to not one but two issues. The ICS files that are auto-generated by Google Calendar when you add a guest via the UI contain entries like this for all-day events:

DTSTART;VALUE=DATE:20140305
DTEND;VALUE=DATE:20140306

Unfortunately Outlook makes an incorrect guess as to the timezone for these dates, based on its own timezone, and when the recipient calendar is in a different timezone than the originating event (in my case UTC and UTC+1), it causes the replicated entry to be skewed by an hour, causing the all-day event to span the wrong days! So being in control of the ICS content generation means I can be more explicit which in turn means that Outlook doesn’t get it wrong.

DTSTART:20140305T000000Z
DTEND:20140306T000000Z

So that’s it. I’ve made the script available as a Gist on Github and here’s a screenshot of some typical results.

log

Share & enjoy!

 

 

SAP UK & Ireland User Group Conference – Demo Jam!

The conference season for this year is almost at an end. But it’s not complete without the annual UK & Ireland SAP User Group Conference, held this year in Birmingham, from Sunday 24 to Tuesday 26 Nov. With a range of exhibitors and attendees, from customers, partners, consultancies and more, it always makes for an interesting time with wide-ranging topics. It’s different from SAP TechEd in that the focus is less on technology and platform and more on the customer.

But this is exactly where the Demo Jam competition this year took me – the intersection between customer and technology, in other words, the user experience (UX).

The Demo Jam is an event within this conference and other conferences (such as SAP TechEd) where there are a series of teams giving short sharp bursts of presentation. There are simple rules: Live, no slides, and over in 5 mins. And a winner is voted by the audience with the help of a “clapometer”. It’s a bit of fun, but also has a serious side to it: The aim is to wow the audience with something relevant.

This year there were four teams due to participate but unfortunately one had to drop out at the last minute. To cut a long story short, I got a call on the Friday before the Sunday conference start asking if I could step in, put something together and take the place of the team that had dropped out.

Already with fairly full plans for the weekend, I found some space on Sunday (I was only going to be attending the conference on Monday) and thought about what I could do. With my current work at the SAP Mothership (i.e. Walldorf) with the SAPUI5 / Fiori teams, the answer came quite quickly: Show the audience what makes SAP Fiori apps tick, what’s under the hood … by building an SAP Fiori-like UI live on stage in 5 mins.

An updated version of an old TV / stage adage goes something like this:

“Never work with children or animals, or do live coding, unless you’re a fool”.

Photo by @timoelliott

Being a fool, and with no children or animals around, I went for the third option and wrote XML in front of hundreds of people, instantiating SAPUI5 controls and building an SAP Fiori-like app before their eyes (classic design – master/detail showing sales orders and details). It was made slightly more “interesting” than it might otherwise have been by the fact that my hands were really cold, and fingers inflexible (I’d recently arrived and it had been very cold outside) – not ideal for typing under pressure.

The key thing I wanted to get across was that there was no mystery around SAP Fiori; apps are created from building blocks like everything else – in this case building blocks in the SAPUI5 framework. It’s important to help folks understand what Fiori is, what it isn’t, and what it might be. A major part (but by no means the entire part) of what it is … is a set of applications built in an outside-in fashion using a modern UI framework (SAPUI5) that has a super design pedigree and which for its young age is extremely accomplished already.

The majority of the audience had heard of Fiori, which was great, and hopefully after my Demo Jam entry they understand a little bit more of what makes Fiori apps tick, and are better armed to ask the right questions and make the right decisions.

With the trophy

I was totally honoured to be part of Demo Jam this year, the other entries were great (everything from immersive virtual reality with big data, through automated training solutions to compliance systems) but perhaps largely due to eddies in the space time continuum, I won!

In a way, the fact that I only had a few hours to come up with something and prepare my entry made it quite a fun experience … and I’m already looking forward to seeing the entries next year!