Every year in january we organize our own internal Acorel InnoJam. This is a 24 hour development marathon (alike the SAP InnoJam) in which we try to create innovative applications to explore the limits of our capabilities and to share knowledge. Also we want to end up with a demo which is suitable for the VNSG (Dutch SAP User Group) DemoJam.
For this year the organizers came up with the idea to use a Parrot AR Drone 2.0 in this years InnoJam. Although a Drone of course is cool, we needed a realistic business scenario to make it a valid demo for the DemoJam. One of our functional colleagues, whom at the moment was involved in Mobility Strategy sessions at one of our customers, came up with a service inspector scenario. That customer needed an app with which they could easily navigate to service objects, which could be cranes and buildings and other large objects. We immediatly knew our scenario: the combination of Augmented Reality (a layer over the reality) to find objects to inspect and the Drone to take pictures on higher altitudes of objects that needed inspection.
In the 24 hours of the InnoJam we had a few teams. An Augmented Reality team, a Drone team and a NetWeaver Gateway team. They all started to solve their piece of the puzzle. In the end of the 24 hours we had 2 working AR-app’s (native iPad and native Android app) which showed to be inspected objects and additional details from our CRM Service system in a overlayer of the camera view. We also had a list of our service orders showed in an sdk app of the Drone on which we could save the pictures we had taken with the Drone! And this only in 24 hours! We had the DemoJam idea working in seperate components and now we “just” had to combine them and do a “little” redesign.
For the demo, we used four main technical components. Below we will describe the components and how we tied them together.
SAP CRM System / SAP Netweaver Gateway
The foundation of our demo was a good old SAP CRM system. The CRM system was used to create the service scenario and to store the installed bases/products.
To get the data to the iOS app in the demo, we used SAP Netweaver Gateway. Gateway was the ideal tool for the job. Gateway gives us the opportunity to create lightweight REST services. These services are ideal because we only had 3G connectivity to communicate with the server, the Wifi connection was used by the Drone. Below is a screenshot of the metadata of the simple gateway service we created to get the assigned service orders from the system.
The ABAP code behind the Gateway service was ordinary BOL / Function module programming. To search for assigned service orders, we used the standard BOL query BTQSrvOrd. To read the details we used the function module CRM_ORDER_READ. Below a screenshot from the CRM BOL browser.
The app you see in the demo is a native iOS app. The app lists assigned service orders on the left and displays details on the right.
To fetch the service orders from gateway we generated proxy classes using the SAP Netweaver Gateway developer tool for XCode. Using this tool you can browse for gateway services on your system, and generate objective-c code that you can easily include in your project.
For the app we used two sdk’s/libraries. One of them was the AR browser from ARLab. This API can be fed with objects coordinates and descriptions. To get objects from the system, we built an additional gateway service that searches for objects in a certain radius based on your current latitude/longitude. The AR Browser then presents the objects you supply in an overlay on a camera view. We modified the standard slightly with our own icons and added some logic to show an additional view when the to be inspected installed base/product was found. Below is a screenshot of the AR Browser.
The Drone you see in the demo is the Parrot AR Drone 2.0. We integrated the drone functionality based on the sample iOS app that you can find online. The Drone is used to fly and take pictures, wich can then be browsed and selected to be attached to the service order. The notes of the service order can be changed as well. To save the changes to the back-end, a third Gateway service was build.