 Hi there, we're here at the Dublin offices of SAP close to San Francisco to learn a little bit more about what they're doing for mobile developers and those that use Visual Studio. Let's take a look. Hey there, this is Seth Juarez and we're here in one of the SAP offices in the San Francisco area. I'm here with Kedon and Mark and they're here to tell us a little bit more about some cool mobile developments with SAP. Why don't we start with you Kedon? Thank you, thank you Seth for coming here. So SAP has been in the mobile platform business for a long time right now. So what we are going to talk today is some of the early bits about what we are doing with Visual Studio and our relationship with Microsoft over the last six or eight months has been very good and we will show, my colleague Mark will show some of the early bits of the development and I'll show you some of the things that we've been doing lately. That's awesome. Now SAP writes some of the software that sort of runs the world business. Why don't you give us sort of maybe a couple of sentences on what SAP does for those that might not know and they've been under a rock forever? Yeah, so if you look at your payroll first of all right, you will have a system which is powered by SAP. If you buy something from Amazon or Apple, there will be something powered by SAP. So SAP powers most of the logistics and if you know something, 90% of the traffic, SMS traffic, it's also powered by SAP. So it's huge in that regard. So computing has sort of changed, right? We've gone through looking at stuff through like a computer screen to the mobile world and because of that SAP has to sort of migrate but not only are they migrating but they're going to help developers do that as well. Why don't we talk about that? Yeah, so one of our main strategies for developers to bring their own tools, bring your own tools, right? So we allow developers to use the language of their choice. It can be Java, JavaScript, anything and we provide SDKs which is software development kits. So using those kits, any developer can quickly onboard, they can connect to an SAP backend and create cool mobile applications and they have to just focus on the business side of it and we take care of the infrastructure and the plumbing element of it through our SDKs. Awesome, well let's start. Let's talk about these SDKs. They have a name. Tell us a little bit about the process of getting started with these things because you don't only provide SDKs but you provide some really good guidelines too. Yes, so the cool thing about SAP is that we are an open platform, right? So you can use any technology that you want to do for the development. So what, if you traditionally look up an SAP backend, so there are data residing in tables and other things, right? To simplify the whole process, the whole data can be exposed in something called an OData which is an XML format of representation. Now, once that OData is exposed, you can add some security parameters around it, so you don't want anybody to access your business data. Sure. So we do have different ways of doing it. We have the SAP mobile platform through which you can pipe a specific feed and you can see who has access to it, you can add credentials, then you can use the mobile SDK. The mobile SDK is available for developers to download freely from our SAP website store. You can download the SDK and SDK knows how to connect to a SAP backend using all these things. I see. And then to augment that feed, so you can have business use cases where you want to make the business data offline on a device, right? So the SDK provides those facilities also. So it's up to the developer, however they want to develop. All these functionalities are provided by us. Awesome. So I heard there's a name called Fiori. What is Fiori? You mentioned a little bit of some of the stuff that SAP does, but how does Fiori fit in? Right. So SAP Fiori is an user experience paradigm. So it's a set of design guidelines that allow people to create HTML5 apps. So you start with a basic HTML5 app and we have something on the screen. So you can start with the basic HTML5 hybrid app and then you can create your own customized logic on top of it. So SAP is a business apps company. We have close to 600 apps right now built on top of Fiori covering from payroll, invoice to business travel or any of those things. I see. So this is something that you've been using internally to sort of expose some of the SAP workflow engines to the mobile space. Exactly. Exactly. And now you're letting developers sort of take that and make their own. Correct. Correct. So like I mentioned, Fiori is an HTML5-based development, right? So now to take an HTML5 app and create a mobile app around it, there are other things which is what we will augment with the Fiori kind of development. I see. So it's not just a pure, we're going to push web pages into this frame on mobile. You can actually augment it by doing more things. Exactly. So as you know, a mobile page can be viewed on a browser, right? But think about the device capabilities. You need to access a camera, you need to access the microphone, barcode scanner. Those are device capabilities that you need to access, right? And that's where we come in. So we provide you those plugins which we built on top of Apache Codewa to enable you to create those business use cases. All right. So we have some bullet points. We talked about the UI, that's a library. We talked about Fiori UX, which are a set of guidelines, which are exhaustive. I mean, I went through some of them last night and you go down to here's when you should use a split screen. Here's a workflow of deleting something. Here's the workflow of creating something, which was pretty amazing. What is SAP SAP Fiori Launchpad? Yeah. So if you look at a Fiori application, it's available as an individual tile, what we call as a tile, right? So you may have a collection of applications. So there could be three applications. One may be your invoice or purchase requisition. Another could be your travel approval. Those are appearing as tiles. But Fiori Launchpad is a centralized dashboard kind of view where the styles can fit in and the user can now access it from there. Awesome. So you say you have over 500 apps that SAP has developed and now you're hoping the developers will be able to take this and make as many as... Exactly. Awesome. All right. So we have this thing called the SAP Web IDE. What is that? SAP Web IDE is a cloud-based development environment where you can create Fiori applications, you can extend Fiori applications, and also you can mobilize Fiori applications. So all these different use cases around Fiori apps, you can start with a Web IDE. And it's a cloud-hosted environment, right? Nobody has to download anything on their machine. That's awesome. Now developers originally with Microsoft are excited to use Visual Studio. Are you providing something that will work with Visual Studio? Exactly. So that's what we wanted to do. So we know Visual Studio is a really great tool. And we have developer community who are really used to Visual Studio development. And what we are doing is we are creating wizard-based approaches inside Visual Studio where a developer can just take a Fiori app and start customizing it and then even deploying it to an SAP backend. That's interesting. So one of the things that we mentioned before is if a developer from Microsoft is using Visual Studio to sort of get this really important SAP data, what can they do to protect that data as a developer? Because some of it is sensitive and by certain countries' regulations, if it leaks, you could be in trouble legally. Exactly, exactly. That's a very important point. So what we do really is, like I mentioned in the beginning, the business data comes out as an OData feed. Not everyone can access that OData feed. There is always a security umbrella around that OData feed. So what we do is, there are multiple ways of ensuring the security. One approach is to put SAP mobile platform in the middle and the platform will take care of all those security endpoints. So it could be SAML auth, or it could be an Active Directory, or it could be an OAuth. So we provide all those endpoints from our SDK to kind of authenticate a Fiori application and consume it. So that's where the platform value comes in. Awesome. What if they're already using something, for example, like Microsoft Intune? Is there something that you're doing to sort of help collaborate there? Right. So there are two aspects to security. One is the enterprise access security and the second is the enterprise data security. So enterprise data security happens on the device itself, right? So you don't know who is going to use that particular device where the application is. So that's where mobile application management and the EMM suite comes in. So what we have done, and along with Microsoft, is Microsoft has created a plugin which is specific for Intune management, right? So this plugin can be added on top of a custom Fiori application and what you can do is now you can add additional capabilities, no copy paste, no access to camera, all those specific use cases, right? And it's like a two-click approach and you just add the plugin in the Visual Studio, just build and the whole application is wrapped. And that's cool because Intune has this sort of enterprise way of managing, centralized way of managing sort of those kinds of cut, paste, take picture things. Right. So those are feature restrictions. So based on the user privileges and feature restrictions, now you can clearly say, okay, I need this user to access these specific capabilities when you are in this geo location. So think about those use cases. You can add or not top of each other. So this is the SAP mobile platforms. As you can see, a developer can kind of look at the console and see what's happening. So here I have two applications that are connected and like I mentioned to you about the different endpoints, the security. It's all about this is the endpoints. So if you define an endpoint that is always a security associated to it. So if you go to the applications and look up that particular endpoint, you would see that there would be the backend URL where this data is coming from. This is the OData URL and you can also look at the authentication. So we support a lot of authentication so you can add your own authentication if I want to go there and you can see there are a lot of certificate based authentication. So it's pretty nicely done. So anything that enterprise needs with respect to security, it's all covered in here. And this is for each of those SAP Fiori sort of parts. Yes. So if you have an SAP Fiori app and that goes to the mobile platform, this is where you set up the specific security guidelines. Awesome. And if you're used to Intune, you'd set the security guidelines over there as well. Right. So Intune, any managed configuration parameters that would also come in here. So that would be another way. Awesome. And that's great because now you can protect your data from the SAP side and you can also manage access to the SAP data from the Microsoft Intune. Exactly. Awesome. Well, we've talked a lot. Maybe we can look at a demo of how this stuff works. Yeah. So what we've done here is we've taken the Cordova integration that's already built into Microsoft Visual Studio. If I create a new blank Apache Cordova app, and let's just give that a more intuitive name. So this is just going to create a blank Cordova container, which by itself doesn't really do very much. We can actually launch that just to make sure that all of our pieces are working here. So just to be clear, you just created a brand new Cordova Apache Cordova application that's just blank. Yeah. So there's nothing SAP specific in here yet. And while that's building, I'll talk a little bit about what we're going to do here. So this is running inside Internet Explorer. This is the Fiori launchpad that we talked about previously. And this is... I think what happened is it started. Okay. Yeah. And launched in Chrome. Yeah. So this is just what the standard empty Cordova container looks like. Okay. When you create an empty project. But what we want to do is to mobilize this Fiori launchpad. So this is just a standard reference app that we use that kind of shows what you'd see on a normal Internet shopping site. So I can go look through all my products here, do a search for DVD players if I want. But this is running in Internet Explorer. What we want to do is package that so that a developer can release this as a standalone application. Absolutely. So what we're going to look at here is some early bits of some of the technology we've been working on at SAP to bring the SAP Capsule SDK, which is what we call our proprietary work on top of Cordova, which we make available in our SDK that you can download from the SAP website. So now I'm in my blank Cordova app that I created. So you'll see here we've got a new Fiori application catalog. So what this does is it's an extension to Visual Studio that lets us go to that Fiori server and ask it, okay, which applications do you have available for me to package? Now these applications are going to be specific to whatever business you're in, because you're going to have certain sort of capabilities in your web server. Yeah, so those 500 plus Fiori applications, every business probably isn't going to have all 500 of those. They're going to have the subset of those that are useful for their business. So those 500 that you've built are sort of pieces and aspects of whatever your business is using. Exactly. You might have 10 or 15 that you might want to aggregate together in your own application. Right. So I might say my employees, they're using expense approval. They're using vacation leave request approval. They're using talent management packages altogether into the app that I then brand with my company's own assets to be the specific version of Fiori for my company. So I press continue here. I'm going to go to the front end server, and this is a development server, so there's a lot of development applications in there with the names that developers use. So what I want to do is package that shopping cart application that I saw on the previous screen. So I think I'm starting to understand, you have a lot of sort of business processes that SAP manages, and what you're doing is you're exposing pieces of that in the Fiori sort of mobile catalog, and then when you're building your own custom application, you're sort of aggregating them into your own sort of special way of doing your business. That's awesome. So let me just take my shop app. Now when I press package here, it's going to actually go to the Fiori front end server and pull down the UI5 assets we talked about along with CSS for branding, along with the JavaScript for the applications themselves. So what we really have done is extend the Visual Studio capabilities because this is based on tackle tools for Apache code. So we use those CLI commands and CLI things to kind of extract it, and now you can see the Visual Studio solution which Mark showed in the beginning was a very planned solution. Now what's really happening is we are packaging those assets, putting in the right places for a code of a build to happen, and now somebody can use Visual Studio to do a build and start running, and you can use the Visual Studio emulator to see the app. This is amazing because traditionally you would have to hire a consultant to do this costly work that would take months, maybe years even, but now what you're doing is you're exposing key parts of SAP into custom mobile applications. Exactly, exactly. Okay, that's pretty cool. And once this finishes here, we should see the new app now with all of the SAP assets added. So I'm noticing here something that says Capsule, what's that? So those are the hybrid SDK components, which is like I told you about the device capability. So we create our own plugins to access specific capabilities of the device. It could be something like a barcode scanning. So you'll have an SAP utility to do that. People can use the third party libraries also to enable it. So we call the hybrid SDK as Capsule. I see. Capsule. You call it Capsule? Capsule is the German for Capsule. That's cool. Capsule actually allows you to sort of add additional things to access sort of device-specific things in the Apache condo application. Yes. I see. Is there any special that are specific to SAP? There are specific to SAP also. Like I mentioned about the SAP mobile platform if it is there. So if you want to make it an offline content. So we have a whole offline plugin that allows you to offline the whole business data on the device. I see. And it manages sort of making sure that data is synchronized with SAP. Right. That's not an easy problem. It's not an easy problem. I mean, and we've been doing this for a very long time. Sure. And we have optimized it. We know the right way to do the mobile business off-laning, really. All right. Well, let's see what we got. Okay. So I'm going to switch over to another. It's the same project that I built previously. So we can see the full set of plugins. Yes. So this one made that one application. I'm going to go back to this new one to see what the additional plugins are. Yeah. So these are some of those, the SAP specific plugins that Kiran was referring to. So now if we look inside the plugins folder, we'll see a lot of the standard Cordova plugins. So these are, you know, there's nothing special going on here. These are just the ones provided by the Cordova open source project. But along with that, we have a set of capsule plugins. So these are the ones that SAP provides as part of its SDK. So things like proxying the authentication and the authorization to the back-end server, viewing attachments, encrypted storage, which is important for security, some localization plugins for SAP products are available in what, 32 different languages? Yes. You know, handling some of the localizations so that the user says, okay, I'm logging in in Arabic or I'm logging in in simplified Chinese. That information is passed through to the back-end so that it renders the UI in the appropriate language. And then you have a voice recording plugin. There's quite a few capsule plugins that are provided that augment capabilities already provided by Cordova. I see. Well, can we go back to the original application and see it running? Yes. I'll let Karen walk through more of the details. But this is in the Android SDK emulator. But once they launch that packaged app, this is the initial screen they're going to see and then they can log in. And they'll have an experience pretty much the same as what they had inside their next floor. Because it's pretty much the same code. It is the same code. Yeah. Just running locally out of the packaged app container rather than on the web. That's fantastic. And so for the developer's perspective, if you're going to want to use this SAP Fiori-type applications, all you do is open Visual Studio, create a new Apache Cordova application, and then use your plugin to say, this is the stuff I want. It's almost like you're at a buffet and you're picking the menu on SAP stuff. Exactly. And you can use Microsoft stuff also in between. So there are plugins available for Microsoft, like the Intune in this case we talked about. So you can also say I need an Intune plugin also to be as part of this, which is a Cordova plugin. Right. So we are all adhering to the same open standards of Cordova and the plugin model of development. That's the beauty of it. That's awesome. So I'm looking here and this feels like you're pulling down a lot of stuff. What if you want to sort of make it a little bit easier? Is there a way to do that as well? Right. So here, like we showed the catalog. The catalog has a big right. So there are so much assets and everything we're pulling down. So essentially you may not need the whole catalog also. There could be a metadata which could kind of say what are the different files are there. The reason why we're pulling the catalog is because this could be packaged, right? Right. It's a packaged app. So you don't want things to come when the user is really using the app. So everything is packaged. It is cached inside a Fury container. Right. And then it's an awesome experience with respect to a native app. I see. So is there a different way of doing it? Do you have some kind of client? Yes. Actually what we also have is actually Fury has three models. One is the mobile browser model, right? Then there is a Fury client model. Fury client is a container app, which we built. And you can point to a Fury URL and we will automatically download those assets and then show it in an optimized way in a mobile device. I see. So you have sort of, you have a little UI web app, which is, you're going through the browser. Yes. The second level would be you have your own container shell. Right. That can access those things in the back. And then sort of the last way is to be able to sort of bring all those assets down. Exactly. Can you show us a little bit? Sure. Okay. Let me show how it looks like in the Visual Studio. So what we provide as part of the SDK is bits for people to kind of extend the Fury client. So there is a Fury client that we create and put in the app store. You as a developer can also extend that. So the whole project, you could import into Visual Studio. There is a tackle command to just import everything. So you do a tackle create. It creates the whole Visual Studio project. It has all the plugins and everything in the right setup. You can see all the plugins. Right. Similar to what? Including capsule. It's all capsule plugins. And so, and then you just do a build. I just did a build. And I'm going to show you, it's still running. So if you go into the details. So this is how an app would look like. This is actually a mobile app really, right? And I'm just pointing to a Fury URL. And if you go into the specifics of that URL, you'll see those tiles and everything is being pulled out. Right. So actually it will start authenticating. You can see this is the Fury experience. So you can see those tiles already in there. You can go into the specific mine box. And since this is running inside the Fury client container, and it has all those specific logic of caching. And once you load it one time, we know which assets has been received at the client and that gets cached. And this is where Intune also comes in. I see. So now this is a Fury client. The Fury app which is built in, right? So you just add the Intune SDK or Intune plugin. And now the whole app itself is kind of protected. MAM protected. And now you can push it to an enterprise app store or you can push it to the app stores. So we've talked a lot about sort of this hybrid based approach. Do you have anything for native help? Yeah, sure. I mean, most of our development community come from the iOS and Android and Windows side, right? So we have also created plugins for them inside Visual Studio. I see. So if you are a native developer who knows C-Sharp, there is a SAP project available in Visual Studio. You just go there, select the project template, and it will ask you a few things around where is your server, what are the configurations. You click OK. And you have a pre-built application ready which you can customize. So it's like an app ready for you in five minutes. It's sort of the same spirit of the SAP Fury. Yes. Sort of, you know, you pick what you want. Exactly. And then you go down if you're doing native Windows phone development, same thing. Right. And it's all about developer experience, right? You have to simplify the developer experience and have the developer focus on the business side. See, one of the things that I think people have been nervous about, particularly CIOs, is that when people bring their own device, how do you make them productive while still being safe and following the regulations? It looks like in any case, whether you're doing it through the web app, whether you're doing it through the client, or where you're doing it bringing down the assets yourself, you have the important SAP data you need, and you're also protected. Yes, exactly. So where can developers go to find out more about how to get started? Yeah. So one of the important areas of the ecosystem is SCN. We have a SAP Community Network. If you go to scn.sap.com, slash mobile, it has the whole mobile information in there. It has Fury information. A developer can download the SDK free. They can also use the cloud version of the platform 30 days free. So it's quick and easy to get started. And all of us are in the blogs and in there. All the information is there. People can reach out to us, and we are really excited to help out the developers. That's awesome. This is really cool stuff. If you're a developer and you use SAP, which you probably do, and Visual Studio, this looks like a great way to get started to make your SAP data mobile and available in a safe, secure, and maybe even a fun way. Yeah. All right. Thanks for watching. We'll see you next time. Thank you.