- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
Our customers and partners have built thousands of custom applications on ServiceNow Service Automation Platform — from nigh-on every industry vertical and every function within an enterprise. And, over the years we have cataloged some of these applications in our Platform book, others are described in the ServiceNow Community, but too many remained trapped in our personal email accounts. So for Knowledge14 we wanted to bring all of our customers' achievements together in one place, so that conference attendees could understand and visualize the breadth of custom applications their peers are creating on ServiceNow.
Creating the ServiceNow App Showcase
To make this dream a reality, we engaged Siva Dirisala, Senior Director Applications Development at ServiceNow, who quickly turned this idea into the ServiceNow App Showcase with, you guessed it, a custom application on ServiceNow.
The core requirement was to have a table that captured various attributes of the application — the application name, the developer, industry category, and summary information — and a compelling UI front end to visualize the applications. On the backend, we wanted a simple approval process, before an app becomes visible, and the ability to report on the apps by categories, contributor, etc. We also wanted as much of the application behavior to be configuration-driven rather than hard-coded.
Custom app Q&A with Siva Dirisala
After the success of the App Showcase, I sat down with Siva to talk about the app design and some best practices.
Nick: Siva, thank you for spending time with me to share what you know with others. Can you start by describing your role at ServiceNow?
Siva: I head a development group called Application Technology Group (ATG) within the Applications division. I focus on building out common application components, setting standards and guidance for all the application teams within ServiceNow, and working closely with the Platform team to channel enhancement requests from the apps teams.
Nick: Where have you previously worked? What did you bring with you to ServiceNow?
Siva: I worked at Oracle for over 15 years building large-scale enterprise applications, business intelligence, and master data management (MDM) solutions. The building of large-scale enterprise apps is the experience that I continue to make most use of at ServiceNow.
Nick:Which other platforms have you built applications on? How would you summarize your experience building on ServiceNow compared to these?
Siva: I have used various Java and Oracle technologies including Oracle Forms, Oracle OAF, Oracle ADF and Oracle APEX over the years.
These platforms require a lot of care and "feeding" that has nothing to do with the application that I wanted to build — infrastructure, multiple development and management tools, and very coding-heavy. The ServiceNow Platform in contrast lets me focus on the application. It's possible to build the entire application from within the browser - creating the data models, defining business rules, ACLs (access control lists), setting up workflows, email notifications (outbound and inbound), import and export data, reports and dashboards. Most of it doesnt require any coding. The best part is, after building the app, I can export the entire definition as a single unit and upload it to another instance. The system also takes care of highlighting merge conflicts, allowing me to select what I want to merge and helps propagate an application from one instance to another! So it has been liberating building apps on ServiceNow platform.
Nick: Focusing in on the App Showcase: Can you describe the high level architecture and design of the app, and how you take advantage of the built-in functionalities and services the platform provides?
Siva: A couple of weeks prior to Knowledge14, I was approached to build an app using ServiceNow platform to showcase customer apps. We had a high-level vision of what was required and we took an iterative approach to build it. I initially gathered the data that needed to be captured for each application and came up with the data model. I then built the app and the tables using ServiceNow App Creator. Since I was planning to use Javascript libraries, I built a service to stream out the application data in JSON format, which I could access from the UI page. The initial prototype took me a couple of days, it helped everyone visualize the app and they were able to suggest modifications. We iterated on it over the next couple weeks and then loaded the data.
Nick:Can you drill-down into the UI to talk about the Javascript libraries you use - why did you choose these libraries and how easy or hard was it to integrate these libraries with the platform?
Siva:The ServiceNow Platform automatically creates many of the UI elements like Forms, Lists etc. when you create a table. This is sufficient for most applications. However, in this case we wanted to have a completely custom UI that provided a tiled look, a pop-up image gallery, etc. There are several open source JavaScript libraries that already provide this functionality. I used tilesjs, Metro JS and Magnific Popup libraries since these provided the UI functionality I required. I used UI pages that execute on the server, and retrieve data from the database as well as easily incorporate JavaScript and CSS. Incorporating the Javascript libraries was very easy to do, I used the include_script directive that is documented on the wiki. Finally, the ServiceNow Platform allows a UI page to be available as a public page (i.e. it doesn't require login to the system). This allowed us to expose the final App Showcase as a public page such that it could be linked to from the corporate website.
Nick: Let us talk about the features of the app that are configuration-driven rather than hard-coded. Can you describe a few of these features and how you built them?
Siva: One of the requirements which was initially daunting was the ability to show a list of apps where the list is based on ad-hoc conditions. However, the Platform has a data type to capture filter conditions as data. So, rather than hardcoding the lists and the filter conditions for each list, it's completely data driven. This allowed the Marketing team to define additional filters once it is put into production. As we were tweaking the UI constantly, rather than changing the code each time, I wanted to make it configurable. ServiceNow provides the ability to define properties and also the ability to group a set of related properties together for configuration. So, the App Showcase had a set of configurable properties to change the behavior of the app at runtime without requiring changes to the code.
Nick: BTW, this configurability has been extremely useful since it has allowed us in Marketing to make changes ourselves.
Nick: Finally, what are some best practices to keep in mind when creating a custom app on the ServiceNow platform?
Siva:I suggest identifying the key functional objectives and then design the data model that best supports the functional objectives. You want the data model to be fairly stable, as drastic changes in the data model can be expensive to incorporate. This is a best practice for building applications on any platform. Once the data model is built, the UI and logic can happen iteratively and incrementally. Of course, it's always possible to add additional tables and columns to your application data model and, as long as these are meant to augment rather than replace/reorganize your existing data model, then it doesn't require much effort.
The other best practice is don't reinvent the wheel — the ServiceNow Platform has a lot of built in functionality and, since it's metadata driven, a lot of the common application behavior gets created for you automatically. Take advantage of this — the less code you write, the less code you have to test and maintain.
Nick: Siva thank you for your time.
If you have additional questions for Siva please post them as a comment below. I also encourage you to submit your own app for inclusion in the showcase. Just follow the instructions here. Once you post it on the community, we will extract it and add it to the App Showcase AND send you a cool t-shirt!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.