- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 04-03-2019 02:35 PM
Welcome to the ServiceNow Knowledge19 Pre-Conference - Service Portal Advanced Class!
This is a dedicated Community Article for class communication, collaboration, and fun!!
- 5,555 Views
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Godmorning everyone!
Jesper from Denmark here.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning Jesper and a warm welcome to the Service Portal Advanced training!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Morning everyone, looking forward to getting stuck into the advanced portal class with you all today 🙂
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Mike from Olympia Washington here. Looking forward to advanced portal.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning Josh!! Welcome!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Should be fun!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning...
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
That's a very advanced portal, A+ Mike
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi everyone, good morning!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good Morning Everyone from a 3 time ServiceNow Community MVP!! 😉 Looking forward to this class. Excited !!:)

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning everyone, looking forward to a great class!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning and welcome to our Service Portal Advanced training!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning 🙂
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning! Welcome to our Service Portal Advanced training, you won't be dissapointed 🙂
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
A good morning Ross, let the portal fun begin!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Good morning Abhinay, enjoy!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
See attached for all events and all registrations
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
For those that don't have any demo data, you can import the following XML records to your instance

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
DEMO DATA for CloudDimensions Events application
Some student instances are missing the demo data for the application. Files for events and registrations are attached.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Howdy!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
The cde_background.png file is attached here as well.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello Phillip! Welcome!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Update Sets for Service Portal Advanced Modules 1 and 2.
As each lab is completed, the applicable update set will be posted to this comment so those who may be behind can catch up.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Note: Don't confuse AngularJS with Angular. Service Portal uses AngularJS

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello all,
Will the Lab book be available online? Thanks.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
The lab book is not available online.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
😞

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Attached are the update sets through 2.3

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
See comment including update sets (above)
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi Daniel,
hardcopy books cannot be consulted online as you'll need to purchase a seperate ebook instead; please contact training@servicenow.com if you'd like to do so.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
For those people who want to have more in-depth coverage of scoping and $scope - controllerAs; please consult the following URLs:
Understanding AngularJS | Pluralsight
AngularJS: MVC implementation | Pluralsight
AngularJS - Controllers: The Comprehensive How To | Pluralsight | Pluralsight
AngularJS Models: The Scoop on Scopes | Pluralsight | Pluralsight
"The Comprehensive How To" blog focuses on the ControllerAs concept of AngularJS works and also why we apply the controllerAs (ref "var c = this") instead of $scope in the Service Portal widget controller scripts (= client script) on the NOW platform. In order to understand this, if you're not familiar with AngularJS, it's recommended to read through top 2 blogs first.
Hope it will bring you more clarity!

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Followup on recordWatch().
The widget-data-table widget has different implementation of subscription with force unsubscribe on widget destruction.
I would like to know what is the difference.
var watcher;
function initRecordWatcher(table, filter){
if (watcher)
watcher.unsubscribe();
if (table && filter) {
var watcherChannel = amb.getChannelRW(table, filter);
amb.connect();
watcher = watcherChannel.subscribe(function(message) {
if (!message.data)
return;
switch(message.data.action) {
case "change":
updateRowFromRW(message);
break;
case "exit":
// A record was removed
case "enter":
// A record was added
default:
spUtil.update($scope);
break;
}
});
}
}
$scope.$on('$destroy', function() {
if (watcher)
watcher.unsubscribe();
});

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
is this
grNewRegistration.setValue('first_name', input.first_name);
the same as
grNewRegistration.first_name= input.first_name;
but without requiring .update()
?

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
no worries, located it here in the dev docs: https://developer.servicenow.com/app.do#!/api_doc?v=madrid&id=r_GlideRecord-setValue_String_Object
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
what are the all possible system variables that can be passed to the controller function
e.g $ scope,rootscope,location etc.. where can we find all the available list?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I think you want to use subscribe + unsubscribe when you refresh/change the content of the widget without refreshing the page.
so in the case of the datatable widget, you could change the table on-the fly - you dont refresh the page, the widget just reloads with new data - the initRecordWatch fn then gets called again and unsubscribes from the old listeners. In This case also the table and filter parameters of the record watchers change because its new table
Most of the time you only listen for specific table and filter, so you can use the simple recordWatch

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
grNewRegistration.first_name= input.first_name;
would still require .update(). So it's the exactly same thing AFAIK.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
ah yes, my bad...just spotted the .insert()!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
They are angular services you can inject to the controller https://code.angularjs.org/1.5.11/docs/api/ng/service

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Knowledge Base Update set for Lab 3.3 (for those who were missing demo data on day 1)
- Retrieve the attached update set
- Preview the loaded update set
- Commit the update set
Once the update set is committed, verify the update was successful:
- Navigate to Knowledge > Create New
- Select the Knowledge knowledge base
- Click on the search icon and verify there are categories and subcategories for the knowledge base

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
MODULE 3 UPDATE SETS

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Can you share the code of DC task card widget?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
The example is explained in Dan Conroy's community article: https://community.servicenow.com/community?id=community_article&sys_id=29188f2cdb2b57c08e7c2926ca961983. There you can download the XML file.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
When inserting a new record, what does gr.initialize() actually do? Inserting seems to work fine without that line, and I've seen OOB scripts that omit it.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
About the solution for the error of using the "key" up and down in lab 3.4, step B2, you should remplace at line 9 (into the doc):
if(String(controller.options.enable_arrow_key_selection) == 'true')
registerWindowEvents();
by
if (controller.options.enable_arrow_key_selection)
registerWindowEvents();
Enjoy
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
There are 2 methods available (initialize and newRecord) that do similar things and both explained here: https://community.servicenow.com/community?id=community_video&sys_id=d7e08749db947b44fece0b55ca9619c...
Essentially they're assigning default values, getting a number etc.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
MODULE 4 UPDATE SETS

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Can you please a code example showing benefits of using controllerAs syntax instead of using $scope?