- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
05-13-2023 04:30 PM - edited 05-17-2023 10:53 AM
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:
- Introduce yourself and connect with others
- Ask questions and provide answers
- 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.
- 8,818 Views
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Womp womp. I cleared all the records in those tables on Test, uninstalled, refreshed, and still only showing 1.1.0 available for installation.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Forgive me if this has been asked... but what happens if you just did all the changes for module 6 in the Global scope?😖

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hey @Trevor Jerue1 — that seems to be the case as far as Next Experience in Flow Designer. I don't think we can access the code that executes when we click to open records in Flow Designer, since those are coded into Flow Designer and aren't typical UI Action records; if we could access that code, we could build the URI to set use_polaris to true. But who knows? Maybe a property is lurking somewhere that sets it as such.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Andy Minnich , you aren't alone. I think something is off in these course instances. It's happened to a number of folks—but not everyone. I did hear someone say that they went back and found an error in one of their scripts, fixed it, re-published, and then that version did show up. I wonder whether's some built-in error handler to prevent you from publishing an app version with certain errors? I've never heard such a thing, but... I guess I can stick an error into one of my scripts intentionally and see whether that version of the app vanishes into æther. One moment!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Michele If you did the Flow in Global, no biggie. If you made the Properties in Global, the scripts in lab 6.3 will need to be tinkered with to access the property values. Might just be easier to recreate the properties in Loaner Request scope.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Andy Minnich Dang. I introduced errors into my client scripts, and it still let me get away with it.
This issue sometimes happens during class, and I still don't know a surefire way to remediate.
I did just find this article from ServiceNow Support. I wonder whether there are still any progress workers you can find that can be canceled? Basically, append the following after your test instance's .com/, and cancel anything running (if you haven't zapped 'em all already).
sys_progress_worker_list.do?sysparm_query=name%3DChecking%20store%20app%20updates%5Estate%3Drunning&sysparm_view=
If you did already clear these out, you'd need to republish the app. Hopefully this "unclogs the pipe," and now something can be pushed through?

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@That Phil Guy... if its no biggie then what's the point of scopes 😂

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@JamesLindsay Yes! But with weirdness. If you wound up with two branches ("master" and "main"), seems like you need to merge them (from within GitLab) for ServiceNow to notice it.
For saving your app to load into your PDI, there's another process I prefer: the "Publish to Update Set" link on your Loaner Request application's record. If Laura doesn't demo it, I have a video about it and will post it here.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Michele Oh! I thought you meant in terms of impact on your lab work today. 🤡
Yeah, doing things in the wrong scope is bad. You can't change the scope. IRL, you'd go back and do it in the correct scope. Oops.
IRL, you'd want to rebuild the Flow; not much to be done about that.
And, IRL, If your properties were built in global scope, your application probably couldn't edit them, but using gs.getProperty('global.pickup.leadtime') instead of gs.getProperty('x_cdltd_loaner_req.pickup.leadtime') would fetch it, at least. Still, I'd rebuild.
So, when I say "no biggie" about that Flow, I say so because it's not going to affect the remainder of the labs in the course at all. Sometimes I even skip that lab when I teach. 😈
I'll leave it to you about the properties. That will affect labs 6.3 and 6.4. Lemme know if you need an assist!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Having given admin rights to the application admins and allowed them to update properties would it not be sensible to reference that property in the notification where we tell the user how long it is until they get their reminder? Thinking about 6 months time when the application admin changes that value to say 12 or 48 hours but the email tells them they will get it 24 hours before.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Is there a workaround for initializing properties in a client callable script include?

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Yeah—great thinking!
You could create something called a Notification Email Script and look up that property value with: gs.getProperty('x_cdltd_loaner_req.pickup.leadtime').
Or: you can "cheat" and pop that script in-between mail_script HTML tags. Not sure what I mean? Module 7 slides (and Lab 7.2) actually have you do that same mail_script tags technique.
Anyway, that way, it'll show the actual value set to the property instead of a hardcoded "24". Well played!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I'm admittedly guessing here. I think a client-callable Script Include is always called as the argument when constructing a GlideAJAX() class—i.e., var myAjax = new GlideAjax(''ScriptIncludeName").
I don't know whether you can blast out the template code that happens when you tick the "Client callable" box and then define a custom Class from scratch with an initialize().
Is that what you were looking to do? I'm not sure that we can—but of course, that doesn't mean for sure that we can't!
I'll try it in a bit.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Okay, so what I was hoping would work doesn't seem to. I hate to tentatively settle on "I don't think so," but I shall for now. I would like to be wrong if anyone knows otherwise! (Sorry!)

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@jonGriff Wait wait! I think this person figured it out! Look! At least, if you were asking for what I thought you were asking for. 🙂

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@That Phil Guyyup, that's exactly what I meant and the solution also makes sense, thanks for finding that!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
To confirm, REST Message is only for use with the RESTMessageV2 script method, not Flow designer? Flow only works with the credential alias and related records, correct?

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Yeah. Even using the REST step inside a custom Flow Designer action assumes you'll be working with those those records.
The RESTMessageV2 API looks up those Outbound REST Message records—or accepts parameters directly. Would be kinda cool if you could have the RESTMessageV2 API look up a Flow Designer Action instead of the Outbound REST Message record—but I don't think it's possible.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Need to get an overview of the mechanism of our Loaner Request out, complete with the course concepts/jargon? This sonnet-like summary is written so that each line ends in A SERVICENOW CONCEPT.
Every hour, a SCHEDULED SCRIPT
runs. Its script calls a SCRIPT INCLUDE
containing a GLIDERECORD QUERY
whose aim is to locate certain LOANER REQUEST RECORDS.
For each found record, an EVENT
is fired, which in turn triggers an EMAIL NOTIFICATION.
The body of the email refers to a NOTIFICATION EMAIL SCRIPT
whose script calls ServiceNow’s RESTMESSAGEV2 API
in order to send an OUTBOUND REST MESSAGE
to a different SERVICENOW INSTANCE.
The instance then returns a password for the requested item in JSON
format and includes it in the body of the email.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Also, have you seen my cat? Look at this handsome cat. My goodness, he is glorious. This is Pixel.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@That Phil Guy Gorgeous 😻

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I didn't introduce myself yesterday, but I'm Michele. I'm sys admin for University of Kentucky HealthCare. I have 6 years experience on the platform and I've loved every minute of it (well not every minute, but most minutes lol). The SN community/slack channel are by far the best group of people to help you through issues and I'm proud to be part of it.
Thank you! @LS7, @That Phil Guy, @Max23, @Anjali Malik. This course was great and I'm extremely excited to use what I've learned over the past two days to improve processes for my organization.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning, all! Whew, I don't know about you, but this keynote crowd has got me in full-on "flee!" mode already. I'd much rather be back in the classroom with y'all!
Did you know that you can save your Loaner Request application to a PDI to continue working on it later? This video walks through it. It's in the previous ServiceNow UI, but the process and principles are nearly identical.
There are some things to note:
- You'll need to use the text files in the .ZIP from the class KB for the scripts—or, if you're feeling tricky, you can steal the update set from "Local Update Sets."
- Forget about publishing the app to an App Repo. Your PDIs won't.
- For the password vault import in lab 7.1 and the web service stuff in lab 7.2, it's totally fine to just use your PDI for both "Dev instance" and "Test instance" roles (i.e., make the Password Vault table in your PDI, and for the web service call, it can be both the Consumer and the Provider.
It's great practice to keep tinkering with the application over time. Keep up the good work!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I spoke with some folks yesterday about collaborative development, with multiple developers in the same instance using Update Sets named for each developer to better organize source control commits. This is a wonderful article by ServiceNow about the topic which I promised I'd put here in the thread.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
OK, sorry I'm blowing up the thread! I got Laura's permission, I promise.
I hope this link points (successfully) to an example of the notes I "hand out" to students after class.It may serve as a useful beginning for your own review.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Greetings.
Some of you may have noticed that you cannot log into your instances. The instances were terminated by mistake. I apologize. 😞
As Phil posted above, you should have all of the necessary files to complete the labs. If not, they have been attached to the top of the article. You can do all of the labs (except the 'install in the test instance' parts) in a Personal Developer Instance (PDI). If you don't already have a PDI, you can request one through the Developer Portal (developer.servicenow.com).
Think of this as an opportunity to review and see how much you learned from class. 🙂
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Instance Update:
One of the perks of attending K23 this year is what ServiceNow is calling the "Golden Ticket" - access to all Now Learning for a year for free. So I would recommend enrolling in the self-paced version of App Dev Fun. This will:
- Give you a chance to review all of the content, including what we had to skip over or fly through.
- Assign two instances for you to work the labs.
Have a great conference, and if you take the certification exam - good luck and please let us know how you do.
Thank you.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
App Dev Resources
- ServiceNow - from the beginning: https://blogs.servicenow.com/2022/how-servicenow-was-born.html
- TechNow episode list: https://www.servicenow.com/community/developer-blog/technow-episode-list/ba-p/2292487
TechNow is the web series for ServiceNow developers and admins on a variety of Now Platform topics. The monthly series covers everything from platform features in the latest release to best practices. Whether you are new to ServiceNow or have years of experience, you’re sure to learn something from the TechNow team.
- Developer Blog - Utah Release: https://developer.servicenow.com/blog.do?p=/post/utah-release/
- “Ask Why” by Chuck Tomasi: https://www.servicenow.com/community/in-other-news/ask-why/ba-p/2276663
- ServiceNow Platform Hyper-automation and Low Code Tools: https://docs.servicenow.com/bundle/tokyo-application-development/page/build/custom-application/refer...
- ServiceNow Studio: https://docs.servicenow.com/bundle/utah-application-development/page/build/applications/concept/c_Se...
- Main Difference Between Studio, App Engine Studio, and UI Builder: https://www.servicenow.com/community/developer-forum/what-is-the-main-difference-between-studio-app-...
- Repository Links:
- Source Control integration = https://docs.servicenow.com/bundle/utah-application-development/page/build/applications/concept/c_So...
- ServiceNow application repository = https://docs.servicenow.com/bundle/utah-application-development/page/build/applications/concept/app-...
- SN Application Repository for self-hosted, air-gapped customers = https://docs.servicenow.com/bundle/utah-application-development/page/build/applications/concept/mana...
- Update Sets: https://docs.servicenow.com/bundle/utah-application-development/page/build/system-update-sets/concep...
- Developer Guides: https://developer.servicenow.com/dev.do#!/guides/utah/now-platform/tpb-guide/scripting_technical_bes...
- Debugging Recommended Practices: https://developer.servicenow.com/dev.do#!/guides/utah/now-platform/tpb-guide/debugging_best_practice...
- Script Debugger: both are starting points, with many good, related pages that follow
- Script Tracer: https://docs.servicenow.com/bundle/tokyo-application-development/page/script/debugging/concept/scrip...
- Integration Hub:
- Automated Test Framework (ATF):
- Accessibility Considerations:
- Web Content Accessibility Guidelines = https://www.w3.org/WAI/standards-guidelines/wcag/
- Color info and considerations = https://color.review/
- Courses on Now Learning:
- Scripting an Event (~1 hour = on-demand course)
- Scripting in Virtual Agent (~10 minutes = on-demand course)
- Learning Paths on Now Learning:
- Flow Designer Essentials (~8 hours)
- Integration Hub Essentials (~6 hours)
- Automated Test Framework (ATF) Essentials (~8 hours)
- Application Developer Skills (~18 hours)
- ServiceNow Application Developer Core Skills (~1 hour)
- ServiceNow Application Developer Advanced Skills (~19 hours)
- ServiceNow Architect Programs:
- Certified Master Architect = https://nowlearning.service-now.com/expertprograms?id=snpx_home&type=CMA
- Certified Technical Architect = https://nowlearning.service-now.com/expertprograms?id=snpx_home&type=CTA
- ServiceNow Developer Meetups: meetup.com/pro/ServiceNowDevProgram
- ServiceNow Developer YouTube Channel: YouTube.com/ServiceNowDevProgram
- ServiceNow Product Lab: https://community.servicenowproductlab.com/
- ServiceNow Innovation Lab: https://www.servicenow.com/community/innovation-lab/ct-p/innovation-lab
- « Previous
- Next »