Press Release – KB Manager for iOS now available on the Apple App Store

A system admin notebook for Microsoft KB Articles on the iPad or iPhone.

Belmont, NC. – April 4, 2013 – Enterprise app development startup Lithium Labs has announced the release of its latest app: KB Manager for iOS. The free app gives system admin’s and IT professionals the ability to search for and save links to KB (Knowledge Base) articles on their iPad or iPhone.

The app was developed out of necessity while the team  was wasting a considerable amount of time trying to keep track of which articles to read, keep or even implement in the systems they were working with.  They also struggled to keep track of which KB’s belonged to which servers or applications. Which is why they collaborated on building a solution, and developed KB Manager.

KB Manager can be used to searching KB’s, categorizing them and also tagging them into groups. This gives the user the ability to quickly and easily find articles saved when working on the problem at hand. The app also has the ability to easily share KB articles via email. Comments can be added to each article which adds a collaborative experience to the application, we are hoping that this will encourage people to share their outcomes which is not available directly on the Knowledge base website.

We also have some exciting features which we will be adding in the near future thanks to our beta testers!

As with all of our apps, please feel free to reach out to us with any comments or constructive critisism!

Li-Labs Team

Download Link

https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=616713851&mt=8 

Screenshots

     

About Lithium Labs

Lithium Labs is a custom app development shop focused on mobilizing enterprise applications. These applications help expand the reach of many ERP and back office systems by putting information into the hands of employees anywhere and at anytime. Lithium Labs was founded in 2010 and their enterprise applications have been used by over 40,000 users globally. The companies goal is to build innovative and creative solutions to common business challages.

Blaze … a free iPad app for SAP Netweaver Gateway

72-App-Store-Icon.png

 

A couple of months ago I was working on creating services for a SAP App store app called Production Insight for SAP. While working on the app I constantly found myself using RESTClient for Firefox to test, debug and view the attributes of my service while I was developing in XCode. Eventually I pulled up the metadata and service implementation on my iPad and used it as a second screen for reference. This made my life much easier. After having done this a couple of times over the past few months, I figured it wouldn't be a bad idea to create an app which not only lets you view the service and its details, but also save requests, test them against multiple servers and also view the details easily. Which is why I built "Blaze", it does all this and a little more. It is a free app and available in the app store as of yesterday, if I could put a "demo" or "beta" sticker on it: I would. (but apple won' approve anything like that!) for all you "gatewayers" out there, please test it out and let me know what you like and don't. My intention is to create a iOS client for gateway which is useful to developers like myself. The app can also handle other OData servers and services like Netflix and XS Engine from HANA.

 

Here are a couple of the app's features:

 

  • Easily create and test new gateway services
  • Browse the service catalog of your servers
  • Save service calls as favorites for easy testing
  • Adding favorites saves request headers and methods
  • Handles both XML and JSON based services
  • Preview mode formats the response for easy reading
  • Links mode shows all links in the document which enables quick and easy drill down
  • Add headers easily with a list of choices
  • Also supports other OData Service Implementations such as Netflix and HANA XS Engine

 

  • This version currently requires SAP Netweaver Gateway SP04, the main reason for this is to easily browse the service catalog using JSON, if you don't have SP04, you can set the app to "other" type and it should work. <- feedback needed

 

Click here to download the app

 

Here is a short demo video of the app in action:

 

 

 

 

And here are a couple of screenshots:

 

iPad Screenshot 1

 

iPad Screenshot 2

 

iPad Screenshot 3

Communicating with other iOS apps using URL Schemes

When I started developing iOS apps a couple of years ago, I was concerned that enterprise apps were going to quickly succumb to the world of development scope creep. Since the apps were fairly focused and provided a single function or process solution, what if the business wanted more? For example, you have a CRM app displaying your customer contact information and some high level details regarding order history and credit limits, but what if the user wanted some additional details from your BI solution drilling down into historical orders and profit analysis? Well, in that case, you had a few options:

 

1) Extend the scope of the app – by adding functionality and options, sometimes a reasonable option if the scope is not excessive or the functionality is relative to the app. In our  above example, probably not.

2) Build another app with replicated functionality – duplicate code to display the customers and overview details in both apps.

3) Build 2 separate apps – But this would require the user to re-enter information (such as searching for and entering the Customer ID) in the 2nd app.

 

The fourth option is to use option 3 but with a twist, by enabling communication between the 2 apps by using URL Schemes. As the majority of iOS developers know, you can open other standard iOS apps like Safari, Mail or the Phone using the UIApplication SharedApplication class, what many developers and mobility architects overlook is that, not only standard apps can be called from your code, but any app which has a URL scheme defined. This gives you the ability to separate processes by application, and in the event a user would like drill deeper into additional information or functions, you can pass information to another app where that can be handled. What if the app is not installed? Good question … You device will smartly open the Apple App Store giving you the ability to install the missing app. Configuring and consuming the communication between 2 apps is very simple and straight forward.

 

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Art/app_open_url_2x.png

 

 

You can read about the URL Schemes within the apple documentation here:

http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html

 

and here: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW18

 

Within the SAP Suite of iOS Apps you can also find URL Schemes already configured and in use, some examples of these are:

 

CRM @ SAP

Find account by number: crmatsap://openAccount?accountid=<number>

Open opportunity by number: crmatsap://openOpportunity?opportunityid=<number>

Open account by number: crmatsap://openAccount?accountid=<number>

 

SAP Pricing

Open Product by ID: pricingapp://openProduct?productid=<productid>

 

If you are still not sure if iOS URL Schemes are right for you here are a couple of Pro's and Con's

 

Pros:

- Use other custom apps to augment yours

- Use other companies apps to augment yours

- No need to redevelop similar functionality

- Communicate between apps

- Launch your app from a hyperlink (online/in a web page?)

- No need to be online for base functionality

 

Cons:

- Shouldn't pass sensitive data

- Clearly define the scope of each app and avoid over simplifying (e.g. an app for searching for customers by name, another for searching by ID.)

- Should not be a critical function, since there is no guarantee that the data is being received by the other application

 

I am curious to know how many app developers out there are using URL Schemes within their custom development?

 

zSCN – A iPad SCN Community Reader

After spending a couple of months traveling in 2012, I wrote a personal app for reading and following content created on the SAP Community Network. Although it was slightly buggy and ghetto, I found it way faster than firing up my MBA to check if a comment or something helpful had been posted in my local Netweaver Gateway hangout. I spent the last +- 6 months using the app and after reading a few comments on the new Idea place and in the forums, I decided a couple of others may find it helpful and set out to build a user friendly version.

 

Now on to the app …. firstly, starting up the app you are presented with a list of spaces (thanks to Jason Lax for creating a helpful list here!), secondly, the app uses the RSS feeds from each SCN "Space" to curate the content, each time you select a space the content is cached on the device (in a little SQLite DB) and refreshes each time the space is opened. You can also select the number of items which are downloaded in each category (blogs, documents and forums). After logging into SCN using your SCN username/password, it will download your spaces, people and saved content. Keep in mind that you cannot "save" or create content from the app, since the SCN API's are not currently publicly available (I am hoping for some change on this!). However, each item can be selected and the original content will be displayed on the website where you can login and respond/comment. You can also easily email the item to a friend in need, or tweet it if you are a social butterfly

 

Currently the app has been written for iPad only but the iPhone version is in the works, but since blogs and more in depth content is more conducive to read on a tablet, I am still trying to decide if it would be warranted … any comment?

 

Personally, I am quite surprised the Community does not have a mobile app for iOS/Android since it would ultimately bring better adoption and collaboration amongst the users. Like all the other free apps I have developed, this is a work in progress and am hoping the direction and goals get driven by the community of users, so any and all constructive comments are welcome!

 

Here are a couple of screenshots and features of the app, you can download the iPad app here: https://itunes.apple.com/us/app/zscn-for-sap-scn/id587877577?ls=1&mt=8

Features:
- Access to your saved spaces, bookmarks and people
- View all available SCN spaces
- Blogs, messages and documents are all displayed on a single page for quick and easy browsing
- Each space includes relevant tweets
- Share articles via email or twitter easily

 

 

 

mzl.qqijnvvh.png

 

 

mzl.aanoimmq.png

 

 

mzl.vjmmiumh.png

 

 

mzl.mkweqdfx.png

 

 

mzl.wgoysymu.png

 

S2F: Developing an iPad app using SAP Netweaver Gateway – Part 2

 

In the Introduction and Part 1 of this 2 part blog series, we looked at the platform and prerequisites needed to develop an iPad using Netweaver Gateway as your data provider. In this part, we will step through the app itself and look at the System Development Life Cycle (SDLC), and some of the common points when dealing with each stage.

 

 

Slides
Slide17.PNG
In this case the 5 steps simply outline the general direction needed to take a app from conception to production.
Slide18.PNG
From a requirements point of view and as mentioned in the introduction, the app was built to provide a framework for the participants and encourage them to "Extend" it.
Slide19.PNG
When starting the app it makes an initial service call from BAPI_CUSTOMER_GETLIST, selecting one of the records will make a second call usig BAPI_CUSTOMER_GETDETAIL and populate the detail page.
Slide20.PNG
Another suggestion I made was to proof out the data access portion first, not necessarily build from the bottom up, but rather ensure that all data fields which are required are accessible. I have spent countless hours developing front end apps, with a "wishlist" of datasets which were not feasible when I started modelling the data services and had to reconsider many points.
Checkpoint
Slide21.PNG
So next up from a design perspective and as mentioned above, we walked through the data exposure piece, essentially using SE80 to take your BAPI and create a web service. From SP04 – this should be done in SEGW, not SE80. This guide has been particularly useful for me: http://scn.sap.com/docs/DOC-5010
Slide24.PNG
Once the service has been created and exposed, RESTClient for firefox is a great tool for testing the service before even touching any code. This to me is part of the "data access" test I do before design.
Slide25.PNG
Executing our service in this case produced the results showing a list of the customer details.
 
Checkpoint
Slide26.PNG
Data has been exposed and seems to be working. Next up design the app UI.
 
Slide27.PNG
Slide28.PNG
Slide29.PNG
As mentioned, a point people found interesting in the presentation was that I spent on average 50% of my time in a graphics editing program like photoshop, designing icons, UI elements, etc. IMO – UI is the difference between a good app, and a great app. The iPad/iPhone graph paper is very handy and you can print or even buy your own from this site: http://sneakpeekit.com/pad-sketchsheets/
 
Slide30.PNG
I also suggested that open source software should be considered when developing mobile apps, in our case the app will be using 2 packages to make life simpler, JSONKit and AFNetworking. Cocoacontrols.com is a great website for discovering open source code.
Checkpoint
Slide31.PNG
At this stage the data source created, the UI designed and its time to do some coding in XCode. I will be going into more detail behind these steps in an upcoming blog series called "S2F".
Slide33.PNG
Start with a master – detail template (from XCode). Add your UI elements comprising of labels and buttons.
Slide35.PNG
Create a 20 line method for fetching data from your gateway service and displaying it on the screen. Very quick and simple. Obviously *good* programming takes considerably more time, but as a POC and starting point, this is perfect.
 
Checkpoint
Slide36.PNG
Data, design and code done, next up some testing and deployment options.
Slide38.PNG

We did a quick test and spoke about the deployment options. If you are a partner and would like to certify your app, work needs to be done to package your content using the AAK toolkit and developing in your own namespace.

 

Also keep in mind that with a apple enterprise license:

"An app will not run if the distribution certificate has expired. Currently, distribution certificates are valid for one year. A few weeks before your certificate expires, request a new distribution certificate from the iOS Dev Center, use it create create new distribution provisioning profiles, and then recompile and distribute the updated apps to your users."

Slide39.PNG
Wrapping things up, we can see that with only a few lines of code you can easily (and without any additional tools) can connect and consume data from Netweaver Gateway. Also keep in mind that if you would like to cache that data in a local sqlite db, it really only takes a few more lines to make data available offline. (differential control when writing data is a WHOLE nother story!)
 

 

At the end a couple of the questions included:

 

I see you are passing the username and password in the URL? Yes, in this example that was the case to display the simplicity. Pratically you would want to definitively use SSL, pass your params in the header of the HTTP request and also possible hash/encrypt these variables.

 

Why did you use a native app versus HTML5? This is another blog post all together, but essentially my argument is it depends on the job at hand and what is trying to be accomplished. A bit like a decision of when do you add a web page to your portal versus developing windows form app, there is no simple or straight – once size fits all answer. Both have their place.

 

So that's an overview of the presentation and content, I know this may have been slightly drawn out, but for those who would have liked to attend, this is a close second 

S2F: Developing an iPad app using SAP Netweaver Gateway – Part 1

 

Click here if you would like an intro to this blog post …

 

Essentially, these are some of my slides from a TechEd presentation last week (MOB205). My position with this presentation is to depict the overall process I use when developing an app, a few of the *many* considerations to make, as well as the simplicity of using a product like Gateway to actually connect and "consume" ERP/CRM/Back office data in a few lines of code.

 

 

Slides
Capture.PNG
Capture2.PNG

Why Mobile?

Needs no introduction, mobile was one of the hottest topics at TechEd this year, if it had a "girly" name or acronym like "HANA" … I am convinced it would have been "the" hottest topic 

 

Why Gateway?

The mobile landscape is fairly complex right now, lot sof vendors, lots of choices and not particularly easy to navigate. One this is for sure, services are here to stay – particularly REST based web services and that is exactly what Gateway is built for.

 

Another great product: XS Data Services for HANA ….

Slide3.PNG
So this is the app being designed during the presentation. Essentially my goal was to develop a "template" type app which the attendees could download and use as a starting point for their mobile app development and encourage them to get their feet wet.

The app makes 2 service calls. 1 to pull a list of customers from SAP ERP, once selecting a customer, the app would download the additional details of the customer including the address. And lastly – the "idea" … anyone wanting to customize the app could pull additional data in, a good example would be: An Accounts Receivable Clerk who attends a weekly open payables meeting, may want to take their iPad, get a list of customers, select one in question and see all open payables which are relevant … easy to do with this type of structure and simple to implement.

 

Another example was a Business Development road warrior who could select a customer, and see a list of Open Quotes.

 

Your app … here is some starter type code and you decide …

I skipped a couple of the slides related to the Gateway platform … this included this slide/blog post I added a couple of weeks ago:

 

http://scn.sap.com/community/netweaver-gateway/blog/2012/10/02/what-sap-netweaver-gateway-is-not

 

Capture5.PNG

During the presentation I also reminded folks that mobile apps can be powered by a variety of data providers, including a method we (Lithium labs) did a couple years ago which was actually using SAP.Net Connector (v2.0) to create a ASP.NET Web Service (XML) which was called from the mobile device which worked and is still in production today.
Slide10.PNG
In this app, all the components are distributed. The Netweaver Gateway instance in the cloud at AWS (Thanks John!) and connected to a ERP backend which is in Walldorf (ES Workplace). The app talks to the AWS GW machine which pulls the data from the ERP and gives it back to the iPad via a REST web call.
Slide12.PNG
Now that we have covered the platform, we will go through the prerequisites for developing the iPad app. We will cover the development machine types, software need and useful tools.
Slide13.PNG
A mac development machine is recommended, when I started out 3 years ago, I tied to put together a hackintosh … didnt work, first update and it bombed… waste of time. A used mac mini off craigslist goes for +- $300 … worth the investment.
Slide14.PNG    

This is an overview of the developer accounts – most important point was that with the free account you cannot run your app on a physical device … (boo). Pay the $99 if you are getting started and if you develop something your company wants to deploy on a larger scale … i.e. > 10 devices, pony up to the Enterprise Program.

 

Click here for additional details:https://developer.apple.com/programs/start/ios

   
Slide15.PNG

Development options.

 

I am a native kind of guy …

Slide16.PNG

Useful tools include a solid graphics editor … I estimate that I spent +- 50% of my time when developing an app from start to finish with graphics and the UI. If you have access to a graphic or UI designer … USE THEM 

 

RESTClient for Firefox has saved me multiple hours … a quick and easy way to test your services before development.

Slide17.PNG
Overview of the "SDLC" we will be following in Part 2…. click here…..

 

TechEd 2012 and MOB 205

Well …. TechEd has passed and it was a great time. InnoJam was probably the best experience and I managed to be a part of a great collaboration which was fun from the start – I will blog a little about our solution in some of my free time in the coming weeks, but back to the topic at hand, since this was my first time as a speaker at TechEd I was slightly intimidated and anxious … my session was on Friday at 8:00AM, the night after the 3 Doors Down concert and I was skeptical if *anyone* would even show up . The morning came, and to my surprise, the room was full and even had multiple people standing at the back. I was impressed so many people attended, and showed that my investment of time and resources into the enterprise mobility space over the last few years was worth the effort. The presentation went well and thankfully I had the "Demo Gods" on my side connecting from the Venetian (iPad) to Amazon Web Services (Gateway) to Walldorf (ES Workplace) and back . After the presentation wrapped up I had great comments and questions from the audience but ran out of time answering all of them, I figured I would share the premise of the presentation here for everyone and hopefully encourage more companies to take a few easy steps to start their journey into the mobile enterprise. Firstly – this is a subset of the slides split up into 2 parts, I will also be putting together a tutorial in the coming weeks which outlines actually building this app from start to finish from a developer perspective (i.e. in XCode). In the end I should end up with the "S2F" blog series comprising of the presentation (2 parts) and the actual development project in XCode being another 2 parts. Secondly – My position with this presentation is to depict the overall process I use when developing an app, a few of the *many* considerations to make, as well as the simplicity of using a product like Gateway to actually connect and "consume" ERP/CRM/Back office data in a few lines of code. (With the help of some open source code). So lets get started ….

Part 1 of S2F: Developing an iPad app using SAP Netweaver Gateway

Part 2 of S2F: Developing an iPad app using SAP Netweaver Gateway

iCRM – a free mobile app powered by SAP ES Workplace

 

A *little* while ago, I developed and blogged about a app which used ES Workplace's enterprise services to power a simple CRM client on the iPad – I also mentioned it was going to be a free downloadable app in the app store, well that time has finally arrived. You can now download iCRM for SAP in the app storecreate an account on the ES Workplace landscape and test it out. The best part is that if you have any of these ES Workplace services/configured or implemented in your own CRM landscape you can connect to them by simply changing the configuring in the app's settings.

 

Some of the app features:

 

- View your business partners.

- View business partner contacts.

- Business partner attributes can be shown for additional insight.

- No additional username or details required

- Quick and easy login using your SAP CRM username/password.

- No middleware or additional mobile platforms required.

 

 

iPad Screenshot 1

 

iPad Screenshot 3

 

 

iPad Screenshot 4

 

 

iPad Screenshot 5

 

And here is a short clip:

 

 

 

 

 

 

 

 

 

What SAP Netweaver Gateway is NOT …. !

I believe that there is a lot of talk online where people are asking the question … Why should I use Netweaver Gateway if I have Netweaver Process Integration (PI) or vice versa. I was recently on a SAP mobility call which included a great slide entitled "What SAP Netweaver Gateway is and is not!". I thought I would share this with everyone and a couple other posts and links I have come across on the web, which hopefully people wanting to learn more about what Gateway has to offer, will find useful.

 

SAP Netweaver Gateway is NOT:

 

- The SAP Gateway process in the Netweaver Application Server ABAP that enables external communication (e.g. RFC).

- A mobile infrastructure (like Sybase Unwired Platform)

- A replacement for SAP Netweaver PI and eSOA services/ESB's

- Access to non-SAP systems

 

SAP Netweaver Gateway is:

 

- The point of access into SAP Business Suite data and functionality

- Uses a non-proprietary interface based on the Open Data Protocol (OData)

- Service can be consumed by any channel that can process XML received over an HTTP(s) connection

 

If you are interested in reading more on this topic, I would suggest checking out:

 

This blog from Sascha Wenniger who wrote a article a couple of months ago about both GW and PI having their own place in the enterprise to provide connectivity and data consumption. http://scn.sap.com/community/netweaver-gateway/blog/2012/01/31/netweaver-gateway-and-pi–theres-a-place-for-both

 

Another great article was written by William Li making a direct comparison between PI and GW. This will help anyone who is trying to decide which, or if both, is right for their needs: http://scn.sap.com/docs/DOC-25547

SAP Note Viewer for iPhone v2.5 Release

After iOS 6 was released we were getting some intermittent issues where users where unable to view the icon on the home screens. We also created the update to support the larger screen on the new iPhone 5. If you would like to download the app, click here … or if you already have it and would like to update, head over to your App Store and click on Updates.

v2.5 Fixes

- Fixed multiple bugs and corrected issues with iOS6.
- Added support for the retina display and iPhone 5.
- Added search support for German

iPhone Screenshot 1