LS7
ServiceNow Employee
ServiceNow Employee

This article is the digital forum for the K23 ServiceNow Application Development Fundamentals pre-conference learning experience.

 

We are using this article for a few different functions:

  1. Introduce yourself and connect with others
  2. Ask questions and provide answers
  3. Any resources you want to share

 

Classroom staff will be monitoring this conversation during class May 14-15, 2023 and will answer to the best of their ability. NOTE: This article will not be monitored post-conference, but feel free to continue the conversation.

Comments
Max23
ServiceNow Employee
ServiceNow Employee

My name is Max Kauer-Henze I'm one of the Training Assistance for the Application Development Fundamentals class. I'm in the training department for over 4 years, I'm certified in CSA, CAD, CIS-ITSM, CIS-CSM, CIS-IRM. I'm currently in the Certified Technical Architect Program. I've been an ServiceNow Instructor for various classes, have been a Training Solution Consultant and I am currently a Program Manager to shape ServiceNow learning offerings for RiseUp. 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Good day—and お疲れ様です!

 

I'm Phil. I frequently teach the Application Development Fundamentals and Scripting in ServiceNow Fundamentals courses, with the help of Pixel, my feline teacher's assistant. (Apparently, I'm also earning some notoriety as the voice behind the on-demand ServiceNow Administration Fundamentals course.) I've been part of the ServiceNow party for nearly eight years, and I'm very pleased to be working with such great folks and such a cool product. 

 

My education is in Japanese Studies and "Interdisciplinary Computing and the Arts" (think art + tech). Off the clock, I'm fond of singing out my frustrations at karaoke, and my current interest is making fancy craft cocktails. I hope one day to retire alone in a small town in Kyūshū prefecture, surrounded by cats. 

 

I hope I can be helpful to you over the next few days. Please stop and say hello!

 

LS7
ServiceNow Employee
ServiceNow Employee

Greetings.

I'm Laura. I'll be your pilot on this journey the next two days. I've been with ServiceNow a bit over eight years, and working with the App Dev course for at least six of those. I've seen the platform go through a series of updates, revisions, and overhauls. It's been interesting and exciting.

 

My background is in training and education. I was a classroom teacher for almost ten years before I shifted to technical training in the workplace. Most anything earth or physical science related, I'm all over it. Within the ServiceNow ecosystem, I tend to focus more on the platform vs any one specific application/service. Knowledge and skills that can be applied across the platform - scripting, admin tools, service portal, performance analytics, app dev, and platform implementation.

 

I hope you get the most out of our time together. Get ready to go!

Zachery Gardner
Tera Contributor

Hello,

 

I come from a Cybersecurity and Management background but took over my company's, TekSynap, implementation of ServiceNow last year. I lead our implementations of ITSM, and ITOM, and established our pipeline and best practices within the system.  I have developed a few scoped applications to meet business needs using App Engine Studio. I am still learning every day and am open to any advice or criticism.

 

Feel free to reach out!

JasonH5
Tera Contributor

Hello, 

I have been working in ServiceNow for 5+ years.  I am currently CSA and CSM Implementation Certified along with Advanced Performance Analytics.  I am taking this class to finish out the cert that I missed along the way.  I look forward to closing this gap in my ServiceNow expertise.  

SNOW-Padawan
Tera Explorer

Hello there,
I'm Patrick Love. I am fairly new to the ServiceNow scene (2 years) and have been doing everything in my power to learn more. I'm currently working as an Applications Systems Analyst where I provide SNOW integrations, customizations and development for my organization. I'm by no means an expert and have to get refreshers on my knowledge trainings I have had as I don't use everything I have learned to this point all of the time. I am a little intimated by this conference but happy to learn! I'm also ready to meet people who know more than me and can teach me things I can take back to my organization to benefit it. Excited to participate and meet everyone here!

Kyle Johansen
Tera Contributor

Hello

 

I am from Kansas City and work for GEHA. You know the company who has naming rights for the Chiefs Arrowhead stadium.  The "GEHA field at Arrowhead Stadium".   Go. Chiefs!   

JamesLindsay
Giga Guru

Happy to be here on an early Sunday morning.

Anjali Malik
ServiceNow Employee
ServiceNow Employee

Hi there, I'm Anjali Malik - I'm one of the teaching assistants here.

 

I'm an individual with a passion for adventure and a love for all things unique! I'm a sucker for all things quirky and offbeat. Always up for a good laugh and a new adventure, whether it's trying a new recipe or exploring a hidden gem in the city or indulging in my hobbies. By day, I am a Technical Trainer, (with these certifications: CSA, CAD, Scripting, CIS-RC, CIS-VRM, HRF); and, by night, I transform into a caffeinated hummingbird. So if you're looking for someone with a bit of whimsy and a lot of heart, you've come to the right place!

 

Wishing you a good luck with the class. Have fun 🙂

Andy Minnich
Tera Expert

Good morning!

 

My name is Andy, I am still fairly new to developing on the ServiceNow platform. I am here to learn as much as possible about the process and soak up all the information that I can about ServiceNow in general!

elidaegarza
Giga Explorer

Good day my name is Elida Garza, I work with Dept of Housing and Urban Development under the Human Capital and Development Branch as a HR (Info Systems) out of New Orleans, Louisiana, USA. I currently use the Power Platform to develop applications and automatic flows and look forward to what ServiceNow has to offer.

icenhower
Tera Contributor

Hi all,

I'm Påll Blaasvaer, a Faroese living in Sweden but plying my trade in Denmark at an Investment bank.

I'm a Solution architect now, but since I took over our ServiceNow instance 7 years ago I've been owner, administrator, developer, project manager, guru, wizard and magician for our instance, but finally our team has started to grow and major investments are being made I can focus on the architectural part.

We are running, ITSM & SecOps Security Incidents.

We are currently implementing IRM Enterprise, CSDM, Privacy Mgtm, ITSM Pro.

We will be doing a POC on ITOM after the knowledge and there are some other things discussed in the pipeline so plenty of learning opportunities ahead.
This is my 3rd Conference in Las Vegas and I hope it will be just as awesome as the 2 before.

Ps: I'm not a real developer per trade, but I do like to dabble with it.

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Hello @icenhower ! I once studied in Iceland to attempt learning Icelandic (I failed), and also dreamed of learning Faroese. I was lucky enough to visit a friend in Klaksvík for a few days, but didn't ever manage to pick up any Faroese. One day I will try again!

 

This class is great for "dabbling" developers. Welcome to the course!

icenhower
Tera Contributor

@That Phil Guy That is awesome, we see the Icelandic as our family even though the languages are quite different. I hope you get back there some day although it would be easier to learn Klingon 😉 (which is a bigger language).

CurtisSmithNC
Tera Contributor

Hello all,

 

My name is Curtis Smith, and I've been working with ServiceNow for about six years since originally launching on the Kingston release. At Martin Marietta, I've held multiple organizational roles from implementor, to business analyst, to developer, to now owning the platform owner. My team and I have started rolling out applications on the Now platform, and we're here to learn best practices to make sure we're not shooting ourselves in the foot down the road.

 

I'm excited to learn. 

GArseneau
Tera Explorer

Greetings from eastern Canada! Happy to be here at Knowledge23, and hoping to see Edmonton win tonight against Vegas so I an catch a game on Tuesday.  Go Oilers!

Eduardo Paredes
Giga Guru

Hello everyone,

My name is Eduardo Paredes. I am an Application Architect for the San Diego County Office of Education and have been working as a ServiceNow platform admin and application developer since 2020. We are currently working on developing a custom application in App Engine Studio, and some of the challenges we are facing is managing visibility of different core platform objects (e.g. walk-up locations queue) for different departments without domain separation.

I really love the developer experience with ServiceNow.

Matthew Nolan
Tera Explorer

do the PDI instances provided as part of this course contain preloaded data pertinent to the course, or are we able to spin up new PDIs to review the course after Saturday?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Hey @Matthew Nolan ! This course has syntax editor macros built in to make scripting easier. In this course, it's also set up with a pair of instances so you can practice publishing your application and making a REST call from one instance to another. Short answer: yes, you can give it a go in your PDI later, but I'd definitely use the special course instances in this class!

 

More details:

Wanna keep plugging away on your app in your PDI? You can do this with the following tips: 

  • Export your application by using the "Publish to Update Set" UI Action on the application's record to do this. See this video for help
  • To get the scripts:
    • Make sure to save the .ZIP file in the instance's KB (the labs point out how to do this), or
    • Just steal the "Syntax Editor Macros" update set and pop it into your own instance (look in "Local Update Sets")
  • Wanna practice the REST call? It's cool: redo labs 7.1 & 7.2, but just use your PDI as both the consumer and the provider
  • Forget about practicing the application install process! ¯\_(ツ)_/¯  
SNOW-Padawan
Tera Explorer

Speaking of Update Sets. In my experience, update sets are great for most uses, but do not capture a lot of things that aren't OOTB(Out-Of-The-Box). Meaning, custom flows that must be published, not just created in order to be captured. A lot of the table prefixes or field prefixes cause issues in some cases where the sys_ids or other things do not match up. This happens even in instances that are cloned and should be very accurate to "the same" for each other. Is there some better process to prevent these things from happening? I spend a lot of time doing clean up when moving things between instances.

JasonH5
Tera Contributor

If we are supporting self-hosted instances, can we deploy a self-hosted application repository to which our instances can connect for deployment?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Hi @JasonH5 !

 

I don't believe the App Repo proper is available for on-prem customers.

 

I'd bet you'd have better luck developing a scoped app as normal, but either:

  1. Using a source control/GIT solution as your deployment solution (this seems a bit odd, but it's an idea), or 
  2. Publishing your application as an update set and using connected instances to pull the update set over.

 

If you're controlling your own server space, I bet working with your implementation partners could scare something up, but using the Application Repo features as we'll do them is likely off the table. 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@SNOW-Padawan , we'll see that building applications in a private scope helps sidestep a lot of these issues, as publishing to the Application Repository tends to avoid a lot of the mess of update sets. 

 

That said, it's also good to keep in mind that not everything gets captured into update sets or the Application Files table, and that's by design. However, it's possible to force files into applications, and Lab 4.3 in this class'll show you how. 

I know this is a bit of a simple answer, but I hope seeing how the Application Repository works will help you out!

That Phil Guy
ServiceNow Employee
ServiceNow Employee

I had a face-to-face question about application scope in domain separated instances. I was a bit tentative in my answer, but this Community thread seems to agree

 

Key takeaway: "Your applications will not know anything related to domain. The configuration you make within these applications could be living in any of the domains."

Oh! Something helpful from the official docs, here

Michael Searle
Tera Guru

Licensing required for users of custom applications: when building a custom application what are the license applications for the various types of users? I assume that employee self-service users don't require any license. It's the other types, the approvers, fulfillers, and owners and other higher level of access (than ESS) that I'm asking about.

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Hi, @Michael Searle ! 

 

We trainers are usually told to stay away from questions about things like licenses, subscriptions, money, sales, legal... Instead, we're told to send you to your ServiceNow rep. And this might be one of those questions!

 

But, this article in the docs might be helpful as a jumping off point

That Phil Guy
ServiceNow Employee
ServiceNow Employee

A quick note about this Loaner Request application and the Service Catalog: 

 

Remember, if something is _only_ built in the Service Catalog as a Service Catalog Item, it is limited to the catalog fulfillment progress; you can dictate its fulfillment from a Flow or Workflow you associate with the item record, but your offering lives only in the Catalog Item table.

 

What if you have an entire, robust set of processes for a greater goal? What if you need your own data model? Your own integrations? You go beyond the Service Catalog.

 

But! What if you'd really like this new solution to be found in the Service Catalog, for all the reasons that people love it? It's creating a Record Producer that does this. It's how you can make an entire process, and entire application, appear to be a simple Catalog Item.

 

Module 9 has an additional lab or two for making a Record Producer for the Loaner Request form.

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Tables:

 

Wondering about whether to extend or create from scratch? Pages 77 & 81 in your course textbook is a good place to start. 

 

We extend to inherit (most of the) existing customizations. Trying to rebuild all of the Task table's custom features from scratch would be really difficult. Simply put: are you trying to create a table that tracks any kind  of assignable work or request? Extend Task.

 

We also extend often for storing a specific subset of data. Think the CMDB:
Configuration Items --> Hardware --> Computers --> Servers --> UNIX Servers ...

 

Note that the User (sys_user) table isn't commonly extended. Try it for yourself: your custom table won't have the many-to-many database relationships with the Roles and Groups tables that the User table proper does (sys_user_has_role and sys_user_grmember, respectively). So, your cool new table of people won't be able to put folks into groups or bless them with roles—unless you wanna rebuild those mechanisms too. But, if you build a custom table of people and create a field called "Name" (for example) that refers to the user table, you get almost the best of both worlds. 

 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

Laura said something important about inheriting scripts when extending tables: client-side solutions like Client Scripts and UI Policies have an "Inherit" field. If it's checked, the script is hereditary. I can't think of any server-side things that work this way.

 

 

Michael Searle
Tera Guru

Hi Phil, have you always been a troublemaker?

Rob Bushrod
Tera Guru

Hi everyone,

 

My name is Rob from Bell Integration in the UK, and I've been working in ServiceNow since 2015, first as a user and then in 2016 becoming a CSA. Have been doing scoped application work recently and so wanted to do the course to get that certification and continue my learning journey.

 

Anjali Malik
ServiceNow Employee
ServiceNow Employee

To add to the 'system default fields' - you'll notice things that get created when you create an application: 

- 6 system default fields (3-2-1 : 3 updates fields, 2 create fields & 1 sys ID fields) // we know of this already - this happens whether you create a new table or extend an existing table

- App menu & its modules
- Access control for the user role created

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@Michael Searle  Only when I'm bored, apparently. 😅

Anjali Malik
ServiceNow Employee
ServiceNow Employee

Download resources: All >> Self service >> Knowledge >> ADF >> Download the zip file (not needed at lab 3.2 though).

 

SNOW-Padawan
Tera Explorer

Earlier I asked this question:
Why does related lists and "list views" not perform lazy load or object pooling and instead loads the entire table when the form loads.

The response was similar to:
"Originally this is how the platform was built back in 2015, or a limitation of the platform at that time. We are always looking to make optimizations but at the time that was the choice that was made"

Reasons I asked:
It doesn't seem to be very performant to do things this way and lazy loading (loading as needed) or object pooling(Loading a certain subset of information that changes and drops information as the user goes backward or forward) is a more performant way to accomplish the same thing.

Things to be aware of:
Optimization for the sake of optimization isn't always what should be done. However, this can become business critical as your instance will steadily get slower and slower the more information is pumped into the tables without this optimization (or something similar).

Anyways, glad SNOW is always open to making improvements!

Harshvardhan11
Tera Contributor

If scope name (namespace) is same for applications. Eg currently in training lab, does it causes problem while deploying to application repository or app store?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@SNOW-Padawan 

Indeed!

Considering what I call ServiceNow's "layer cake" may provide clues about this—but let me be clear: I don't know!

 

ServiceNow is built—basically!—with these technologies, as a stack of cakes:

 

Service Portal (AngularJS1.5, Bootstrap 3.3.6, SCSS/SASS, etc.)

ServiceNow GUI (ECMA5, still, for server-side; HTML, CSS; some React going on, I think; and... Apache Jelly 😅)

Mozilla Rhino (Java <--> JavaScript | do you notice the .do files in the ServiceNow URIs?)

MariaDB

 

I've noticed I don't see a lot of long-built-in script using things like Promises and the like. And I suspect the queries are being done at that Rhino level? 

 

Anyway, I'm out of my depth on this topic. I'm not privy to the inner workings and the history of decisions made in their implementation. But, maybe this explains a bit.

 

Finally, I have seen some lazyload stuff. For example, the new-ish GlideQuery() class is built on two other classes: Optional, and Stream. They involve lazyloads of some kind. (Try doing a code search in Studio set for "all applications" on the word "lazy," for example! I've attached a screenshot.)

 

I know there's something else I'm forgetting—a slide in another course I teach that discusses how things are loaded lazily. If I can remember, I'll update this comment. Screenshot 2023-05-14 at 1.22.20 PM.png

Eduardo Paredes
Giga Guru

Question,

What does the "Application Administration" check box do in the scope record? In the record I see an info message "Enable Application administration to prevent System Administrators from accessing the application." In the eBook it says "You can make any role an application-specific administrator by selecting the Application Administrator check box in Role Configuration."

How do we set the role that will be the application-specific administrator?

I'm confused on what the check box actually does. 

 

Thank you

 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@Harshvardhan11 

Only instances in your stack (with the same appcreator company code) can talk to the same repository. That's by design!

Deploying to the store is a different process, and your apps are meant to retain the same scope namespace, so no problems there.

Finally, it's possible to export your entire application as an update set, and when done as such, yes you can pop them in to instances with different appcreator company codes. 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@Eduardo Paredes 

Here's the docs on this topic. Basically, it's to provide a way to make sure that people with the admin role don't act like admins in that application — think HR for example. You'd create a custom HR role and say that it is a role suitable for special application administration instead. 🙂

rafi438
Tera Contributor

Is it possible to move files via update set from source instance to target, if you have installed an initial version in the target instance already through the app repository approach?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@rafi438 

Yes, I think so—but generally, you'd just continue to publish updates to the App Repo. When iterating versions of your application to the App Repo, Update Sets become used only in special cases, rather than being the norm for moving updates. 

 

Maybe others can chime in here. I stick with the Repo, personally, when developing a scoped app!

rafi438
Tera Contributor

Do you have any suggestions/best practices on how to handle customizations to OOTB-scoped apps?

For example, if we customize OOTB Major Incident Management on top of the base 1.0 version, Can we never upgrade to future versions(Which ServiceNow releases) for that particular app?

How can we go hand-in-hand with the updates made and future versions coming from ServiceNow for the same app!!!?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@rafi438 

I think it depends on the nature of your customizations.

If you edit scripts and other configurations of those OOTB apps directly, I think those would get skipped upon upgrade. However, if you create new scripts, etc., it's only those that get skipped on upgrade. It's not like the entire application gets skipped.

I think you can use things like Upgrade Center to manage this. 

I think people also like to use Git for this kind of thing. 

This might also prove useful.

Eduardo Paredes
Giga Guru

Question,

What does the "Include changes not tracked via the Customer Update [sys_update_xml] table" checkbox when committing to source control from Studio do?

JasonH5
Tera Contributor

We setup the Loaner Requests numbering to be 6 digits and start at 2000.  What happens when we reach LNR999999?  Does it roll back to 000001?

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@Eduardo Paredes 

Check out step 5 on this Docs page

Basically, not _every_ record change is tracked as an "update." The Active checkbox field is a typical example. It turns out that any field can be marked as "update exempt" (I think as a dictionary attribute?). So, checking the "Include changes not tracked..." box you asked about will include all changes—even ones on fields which had been marked as exempt. 

JasonH5
Tera Contributor

Is there a data restriction that prevents capitals from being used in field/table/etc. names, or is it just best practice?

Eduardo Paredes
Giga Guru

Thank you for your answers, @That Phil Guy 

That Phil Guy
ServiceNow Employee
ServiceNow Employee

@JasonH5 

I think either it starts displaying random graphics assets (think getting hundreds up extra lives in the original Super Mario Bros.), or it hits a kill screen (like some old arcade games).

I'm kidding. I actually don't know for sure. But I do know that the Number field isn't enforced uniqueness, so I wouldn't be surprised if if just starts from the beginning. 

Finally, check out the NumberManager() Script Include, which I thiiiink handles this logic (by way of a [global] Business Rule called getNextObjectNumberPadded(), which is the default value in an auto-number field). Could be that some of the logic in there yields the answer.  

Version history
Last update:
‎05-17-2023 10:53 AM
Updated by:
ServiceNow Employee
Contributors