Application Development Fundamentals Flashcards
What are the 6 philosophies of scoped applications?
- They should be able to be uninstalled
- Apps should not break the system
- Apps should not break other apps
- Apps should be self-contained
- Apps should have clearly defined dependencies
- Apps should only access what they need (least privilege)
True or False: Delegated development is available in the Global scope.
False. It is only available in scoped applications.
What features are available in both Scoped and Global applications?
- Source Control Integration
- Publish to App Repository
- Easy File Management
What are the elements of a namespace?
- Prefix characters “x_”
- Instance customer prefix (between 2 and 5 characters long)
- Application ID (up to 40 characters)
What happens if the namespace application ID is longer than 18 characters?
The system truncates the application name and appends it to the prefix.
What does the system use as the application ID by default?
The application name.
What are update sets used for? Essential for: 2, Useful for: 4
Essential for:
- Customizing baseline applications
- Customizing applications purchased from the store
Useful for:
- Keeping track of why a change was made
- Exporting work ahead of a clone
- Associating changes with SDLC artifacts (Stories, problems, bugs, enhancements etc.)
- Deploying an application if the app repo is unavailable
When do you use update sets vs. an application repository?
- When moving components containing functionality that is not a finalized product, between instances.
- Exporting work ahead of a clone
- Deploying an application if the app repo is unavailable
Which role has the ability to install/uninstall applications?
admin
Which ServiceNow IDE is targeted to low-code developers for continuing development on applications?
Application Engine Studio
Which ServiceNow IDE is targeted to pro-code developers working on custom applications in one centralized location?
ServiceNow Studio
What interface provides a step-by-step process to guide a user through the initial application development?
Guided Application Creator
What are 3 benefits of Studio IDE?
- All work can be done in one place.
- Commit, branch and merge to your Git repository with integrated source control.
- Provide individual developer access to specific application resources.
Which user experience templates are available in App Engine Studio? (5)
- Standard catalog item
- Record producer
- Workspace
- Portal
- Mobile experience
What are 3 benefits of the Guided Application Creator?
- Intuitive development interface
- Guides users through the application process
- Steps through basic application contents
What are 5 benefits of Integration Hub?
- Speed time to value
- Remove integration complexity
- Reduce integration costs
- Ignite IT productivity
- Build custom integrations
True or False: Not all applications within the ServiceNow store have been certified by ServiceNow.
False
What is the minimum version are all ServiceNow store apps built on?
Fuji
What steps does the Guided Application Creator take a user through? (7)
- Application Configurations
- User Roles
- User Experience
- Tables
- Field Inputs
- Table Configurations
- Next Steps
Within Guided Application Creator, what can you configuration for the base application properties?
- Name
- Description
- Scope
What options are available for configuring new tables within the Guided Application Creator?
- Upload spreadsheet
- Extend table
- Create table
What table configuration options are available within Guided Application Creator?
- Label
- Auto-numbering
- Manage access
When should you extend a table?
- A table exists with fields similar to what is needed
- The scripts and workflow for an existing table are useful for the application
- You want to use the approval workflow activities
When should you create a new table?
- No similar table exists
- Table will contain sample or seeded data that is used only for reference by the application
- You prefer to script the application behaviors yourself
What is Git?
A cloud-based source control management system that uses repositories and branching.
What information can be found in the status bar when linking to Git? (5)
- Application Name
- Application Version
- Branch Name
- Number of files/how many have been saved
- Whether the application is linked to a Git repository branch
Explain the steps involved in using source control.
- Pull a new copy of the code from the source repository
- Make your changes
- Commit changes
- Pull a fresh copy from the source repository
- Publish the application to the application repository
What is a branch?
Different versions of code within a repository at the same time.
What is the purpose of a branch?
- Allows development work to explore different solutions to a problem.
How do you prevent local changes from being lost when switching branches during development?
- Commit changes before switching your branch.
- Stash changes
What is a stash?
A locally stored set of changes that are stored on the device rather than pushed to a repository.
Which changes are captured when you create a stash?
ALL local changes that you’ve made that have not yet been committed.
What are the 4 steps involved in working with a stash?
- Create the stash
- Give it a name
- Switch to the branch you want to apply the stash to
- Select the stash to apply
What becomes of conflicts created when apply a stash?
They must be resolved before the stashed changes can be applied.
What are the steps for linking to source control using Git?
- In Git, create a project.
- Click “Clone” and select “Clone with HTTPS”
- Copy the URL
- In ServiceNow ensure the scope is correct.
- Connections and Credentials > Credentials
- Create a new “Basic Auth Credential” with your GitLab credentials.
- In ServiceNow Studio IDE, click “Link to source control” under the “Source Control” menu.
- Paste link from GitLab into the URL field.
- Select the GitLab credential you created
- Confirm branch is set to “master”
- Click “Link to Source Control”
What are the 4 sections of application ServiceNow Studio IDE?
- Header
- Application Explorer
- Content Frame
- Status Bar
Which of the following capabilities does ServiceNow Studio IDE have? (8)
* Form layout
* Navigation and tabbed environment
* Script intellectual property protection
* Code search
* Quick creation of scripts and files
* Push repository
* Push external source control
* Push to internal application repository
* Push deployment
* Merge branches
* Ability to add data
* Global application files management
* Previous number check
* Push to update set
* Testing of the application
- Navigation and tabbed environment
- Code search
- Quick creation of scripts and files
- Push to repository
- Push to external source control
- Push to internal application repository
- Push deployment
- Global application files management
What happens if you attempt to work on an out-of-scope artifact?
A warning is presented
True or False: An application’s scope is unchangable.
True
What are the 6 standard default fields all tables will have?
- Created
- Created by
- Updated
- Updated by
- Updates
- Sys ID
What is captured in the “Updates” field?
The number of updates for a particular record
What do you check if you want to allow a table to be extended from?
“Extensible”
When would the “Application Access” tab be evaluated?
Runtime
What is the purpose of the caller access field?
Track cross-scope application requests.
Which plug-in provides access to the “Caller Access” field within table configuration?
Restricted Caller Access”
Which two options are available for the “Accessible from” field of table configuration?
- All application scopes
- This scope only
When creating a table, what is the default name of the application? Of the module?
- The name of the table
- The plural of the table name
What does the default module of a table direct to?
A list of records within the table.
When configuring a module, what does the “Link type” dictate?
The type of page the module holds.
- ie List of records, New record, URL etc.
When creating a new UI policy, what do you need to first do before you can add actions?
Save the new record
Why does a UI policy have better performance than a client script?
The UI policy has a condition. It only runs when that action is true. Client scripts, however, do not have trigger conditions and will always evaluate.
Build conditions with ___ rather than ___ for better performance.
- Condition Builder
- Script
What 3 behaviors can be controlled via a UI Policy?
- Mandatory
- Visible
- Read only
What additional UI policy capabilities are “unlocked” with scripting?
- Create complex conditions
- Show/hide sections
- Remove/add/change/validate data in fields
- Full use of JavaScript methods
What must you do before you can access the advanced script of a UI policy?
- Save the record, if it is new
- Click the “Advanced view” related link (NOT the context menu)
What does the “Global” checkbox on a UI policy do?
When true, it applies to all views for that table.
What is the default value for the UI Policy “On load” field?
The course says “The onLoad checkbox deals with whether this UI policy should execute when the form is loaded. The default behavior for a UI policy is to execute when the user makes a manual change to a field on a form. If we do want this to be evaluated also when the form is loaded, we would need to check the onLoad checkbox”
This isn’t true at least from what I can tell in our instance. When I went to create a new UI policy, the onLoad field was checked. When I looked at its dictionary entry, its default value is true.
Would you need a UI policy or client script to keep track of a fields prior value?
Client script.
Which executes first: UI policies or client scripts?
Client scripts
What is the syntax for setting a display business rule scratchpad variable?
g_scratchpad.var1 = current.field1;
What is the syntax for accessing a scratchpad variable from a client-side script?
g_scratchpad.var1;
When does a display business rule execute?
Before the form is presented to the user, just after the data is read from the database.
When publishing an application, are you able to publish a version number that is in the past with respect to your current version?
Yes, you could go from 1.0.0 to 0.3.2
Can you publish version 1.0.0 and then later publish version 1.0.0 again?
No, version numbers must be unique.
What are the 3 categories of ACL’s?
- table.none
- table.field
- table.*
What access does table.none provide?
Access to all of the records/all of the data within the specified table.
What access does the table.* ACL provide?
Every other field on the table that does not have a field-specific rule on it already.
What is the first level of evaluation of ACL’s?
Table
What are the steps to check ACL’s?
Table-level check:
* table
* parentTable
* tableInInheritanceChain (wildcard)
Field-level check:
* table.field
* parentTable.field
* tableInInheritanceChain.field (wildcard.field)
* table.wildcard
* parentTable.wildcard
* tableInInheritanceChain.wildcard (wildcard.wildcard)
With ___ you can only watch one field, whereas with ___ you can watch multiple.
- Field watcher
- Debug security rules
How do you watch a particular field using debug security rules?
Click the blue bug icon.
What does a blue bug icon next to a field indicate vs. a black bug?
- Debug security rules
- Field watcher
Starting from left to right, what does each circle represent in the debug security rules log?
- Access Handler
- Role-based permission
- Conditional-based permission
- Script evaluation
What do blue circles indicate in the debug security rules?
The system is using a cached value.
What is recommended if you are looking to incorporate security into scripts, outside of ACL’s? Why?
Use server-side scripts, specifically the GlideSystem and GlideRecord methods. Server side scripts are more performant and more secure.
What happens if you have a script in one application scope that deletes records but the caller application does not have delete access?
What if the script also contains an insert and the caller application DOES have access?
- It would not throw errors nor update system logs because unauthorized access is simply skipped/ignored.
- The insert would proceed still.
Within the “Application Access” tab of table configuration, what does the “Allow configuration” checkbox control?
Whether it grants other application scopes permission to impact the configuration and behavior of the table you’re configuring.
Describe the 3 choices in the “Caller Access” field of the “Application Access” table configuration tab.
- None: Acts on the value of the Accessible from field
- Caller Restriction: Manually approved and tracked in the Restricted Caller Access table.
- Caller Tracking: Automatically approved. Tracked in the Restricted Caller Access table.
Describe the 3 protection policy choices.
- None: You can see the code and make changes to it.
- Read-only: You can see the code but cannot edit the code.
- Protected: You cannot see the code nor make changes to it.
Describe the 3 types of Flow triggers.
- Application: Some action in the application causes the flow to begin
- Schedule: The flow executes on a certain schedule
- Record: Triggered when a record is created and/or updated
True or False: When running a test within Flow Designer, any changes made by the flow will be rolled back.
False. The system does not back out the behaviors that were executed during the test.
True or False: Unlike Workflow, Flow Designer does not have the ability to run two branches concurrently and join paths when they complete.
True. This is not yet a capability of Flow Designer.
What is a spoke?
A predefined action, flow or integration for connecting or automating third party systems or processes within Flow Designer
What is the function of Integration Hub spokes?
Provide a connection between ServiceNow and a third-party resource.
What is the 4 step process for creating application properties?
- Create a System Property category
- Add Properties
- Order properties
- Create Properties Module
When creating the module that links to the system properties page, what is entered in the URL field?
system_properties_ui.do?sysparm_title=(Title from system property category form)&sysparm_category=(Name of the category for that form)
When scheduling script execution, what options appear within the “Run” field?
Options that set the “periodicity” of the job.
The options available in the “Time” field on the scheduled script execution are based upon what is selected in the ___ field.
Run
How do scheduled script executions run? (When?)
Asynchronously
What variables are available within scheduled script execution? What is not?
- Variables in the condition script
- Current/previous object
Where do you go to find jobs that are scheduled to run today?
The “System Scheduler” application
What are two modules under the Scheduled Jobs module?
- Today’s Scheduled Jobs
- Scheduled Jobs
Events are written to the ___ and processed by the ___.
- Event log
- Event queue
What is the only mandatory field when registering an event?
- Suffix (In a scoped app)
- Name (In Global)
What is the purpose of the weight field?
If there are multiple notifications triggered for the same record to the same recipients, to prevent spamming them, only the notification with the highest weight will be sent.
If the weight is 0, the notification is always sent.
What happens in the following scenario for notifications with the same trigger/recipients:
- Notification 1 has a weight of 10
- Notification 2 has a weight of 20
- Notification 3 has a weight of 0
- Notification 2 will be sent because it has the hightest weight.
- Notification 3 will be sent becasue its weight is 0, which is always sent.
What is inserted to an email when ${URI} is included in the HTML?
The word “link” with a link to whatever is being referenced.
What are Web Services?
Web-based method allowing applications to connect to other software applications over a network and exchange information.
What is the role of the web service consumer?
Generates an outbound REST message asking for information and providing necessary data
What is the role of the web service provider?
- Parses the request and any input variables
- Responds with an inbound message back to the consumer with resulting information.
Which document outlines the formatting, variables and access to be sent with the outbound request?
Web Service Descriptive Language document
What is the REST API Explorer?
A form guiding users through the process of creating endpoints and testing methods/variables
Within the REST API Explorer, what is the default API name that is selected?
Table API
What is the Table API used for?
Querying, creating, updating and deleting a table’s records.
Where can you modify the “Retrieve Records from a Table URL?”
- HTTPS value in the script stub code
- It cannot be modified in the API explorer
What is the purpose of the “Web Service Access Only” checkbox on the user record?
Allows the user account to leverage information from ServiceNow without giving them direct access to the platform.
What are the 6 steps of the Software Testing Lifecycle?
- Requirements Analysis
- Test Planning
- Test Case Development
- Environment Setup
- Test Execution
- Test Cycle Closure
What are the two roles used by ATF?
- Test Administrator
- Test Designer
Determine if an application is a good fit with ServiceNow:
What are 5 qualities make a process a good fit for ServiceNow?
- Data can be modeled in a relational database
- Extensive use of forms to interact with data
- Requires reporting capability
- Need workflow/flow to manage process
- Can extend existing functionality through JavaScript
Determine if an application is a good fit with ServiceNow:
What are 4 qualities make a process a bad fit for ServiceNow?
- Data is unstructured, such as audio or video
- Requires access to proprietary libraries that do not have an API
- Multi-player games or applications requiring graphics engines
- No process flow through application
Determine if an application is a good fit with ServiceNow:
Which are 3 examples of processes that would be a good fit for ServiceNow?
- Processes managed in spreadsheets and email
- Departmental apps built on aging incumbent platforms
- Applications with a request-fulfill pattern
Use Application Scope
What is the purpose of scope?
It protects an application from damage to or from another application.
Use Application Scope
True or False:
Studio allows the development of both scoped and global applications.
True
Use Application Scope
Which features do scoped and global applications share?
- Specific namespace
- Delegated Development
- Source Control Integration
- Publish to App Repository
- Easy File Management
- Source Control Integration
- Publish to App Repository
- Easy File Management
Use Application Scope
What is an artifact?
Application files comprising an application
Use Application Scope
In the baseline case, custom applications only have ___ access to each other’s table records.
Read. They cannot perform any other database operations.