<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sophia Semga</title>
    <description>The latest articles on DEV Community by Sophia Semga (@sophiasemga).</description>
    <link>https://dev.to/sophiasemga</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1238310%2F7cc6a292-30c0-480e-a5ce-165e3f69f983.jpeg</url>
      <title>DEV Community: Sophia Semga</title>
      <link>https://dev.to/sophiasemga</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sophiasemga"/>
    <language>en</language>
    <item>
      <title>ServiceNow UI Builder</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Thu, 09 Jan 2025 00:15:13 +0000</pubDate>
      <link>https://dev.to/sophiasemga/servicenow-ui-builder-10he</link>
      <guid>https://dev.to/sophiasemga/servicenow-ui-builder-10he</guid>
      <description>&lt;h2&gt;
  
  
  Hey guys, happy new year!
&lt;/h2&gt;

&lt;p&gt;✨&lt;br&gt;
I know some of you have been wondering where I’ve been for the last few months. After passing my Cloud Architect exam, I decided to dive into this shiny, new web interface everyone’s been talking about: &lt;strong&gt;UI Builder!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is UI Builder?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;UI Builder&lt;/strong&gt; is a web interface for creating and configuring custom pages for workspaces and portals. It’s part of the &lt;strong&gt;Now Experience UI Framework&lt;/strong&gt; and allows you to:&lt;br&gt;
    •Build pages.&lt;br&gt;
    •Set up layouts and components.&lt;br&gt;
    •Define event handlers for actions.&lt;br&gt;
    •Fetch and display data using data binding.&lt;br&gt;
        •Create client scripts and client state parameters(also known as variables) to use within components.        &lt;/p&gt;

&lt;p&gt;It’s essentially a &lt;em&gt;one-stop shop&lt;/em&gt; for creating custom web experiences. Let’s break down the key parts of UI Builder and how to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  How UI Builder Works
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Experiences and Pages
&lt;/h4&gt;

&lt;p&gt;An experience is a collection of pages where users can manage work, find information, or get help. Each page is defined by its URL and defines the contents sitting in that URL. It consists of two key elements: &lt;strong&gt;Layout and Components.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2. Layouts&lt;/strong&gt;&lt;br&gt;
Layouts organize how content is displayed on a page. They’re the first step in building a page and can use:&lt;br&gt;
    •Basic column layouts: Predefined structures with up to six columns.&lt;br&gt;
    •Advanced layouts: Flexbox or CSS grid-based designs for more customization.&lt;br&gt;
Layouts also come with tools like a simplified content tree and panels for configuration and styling.&lt;br&gt;
&lt;strong&gt;3. Components&lt;/strong&gt;&lt;br&gt;
Components are the &lt;em&gt;building blocks&lt;/em&gt; of a page, such as forms, buttons, data lists, charts, images, or menus. Once you set up a layout, you can add components to the page. You can customize each component using the &lt;strong&gt;Configuration Panel&lt;/strong&gt;, which includes:&lt;br&gt;
    &lt;strong&gt;•Configure Tab:&lt;/strong&gt; Edit properties using static values, data binding, or JavaScript.&lt;br&gt;
    &lt;strong&gt;•Styles Tab:&lt;/strong&gt; Add custom CSS.&lt;br&gt;
    &lt;strong&gt;•Events Tab:&lt;/strong&gt; Set up actions triggered by user interactions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;It’s best practice to add layouts first, then components.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Page Variants and Conditions
&lt;/h4&gt;

&lt;p&gt;All pages in UI Builder are variants. The first page you create is the &lt;strong&gt;default variant&lt;/strong&gt;. Think of variants like form views: the same record, but displayed differently based on the context. You can create additional variants for different audiences or conditions. &lt;br&gt;
Conditions determine when a page variant is  &lt;strong&gt;visible&lt;/strong&gt;. These can be set using:&lt;br&gt;
    •Using the Condition Builder to set rules.&lt;br&gt;
    •Specifying conditions via encoded queries.&lt;br&gt;
For conditions to work, they rely on data passed by page parameters, which we’ll cover in detail in the next article.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Lets create a simple experience in UI Builder!&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;We will be creating an experience that allows us to view a record page.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1.Getting Started.
&lt;/h4&gt;

&lt;p&gt;.Log in to your ServiceNow instance.&lt;br&gt;
.Navigate to &lt;strong&gt;Now Experience Framework &amp;gt; UI Builder&lt;/strong&gt; in the filter navigator to open the UI Builder interface.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5k0n0jsra4raly0kddr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5k0n0jsra4raly0kddr.png" alt="Image description" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2.Creating an Experience
&lt;/h4&gt;

&lt;p&gt;.Click the &lt;strong&gt;Create&lt;/strong&gt; button in the top-right corner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9118j45y9q70f4wbxia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9118j45y9q70f4wbxia.png" alt="Image description" width="800" height="502"&gt;&lt;/a&gt;&lt;br&gt;
.Select &lt;strong&gt;Experience&lt;/strong&gt; from the dropdown. A modal window will appear.&lt;br&gt;
. Fill in the following details:&lt;br&gt;
&lt;strong&gt;•Name:&lt;/strong&gt; Any name. Ex ‘ Default Workspace’.&lt;br&gt;
&lt;strong&gt;•App Shell UI:&lt;/strong&gt;  Ex ‘Workspace App Shell’.&lt;br&gt;
&lt;em&gt;An app shell is the wrapper of the contents for an experience and defines the general look of your experience—it’s the theme of the experience.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;•Landing Path:&lt;/strong&gt; Leave as default - Home.&lt;br&gt;
&lt;strong&gt;•Roles:&lt;/strong&gt; Remove the default role for now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiksdnr11ib0v302sin41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiksdnr11ib0v302sin41.png" alt="Image description" width="800" height="641"&gt;&lt;/a&gt;&lt;br&gt;
.Click &lt;strong&gt;Create&lt;/strong&gt;, then select &lt;strong&gt;Open Experience&lt;/strong&gt; to proceed.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.Creating a Page
&lt;/h4&gt;

&lt;p&gt;.In your new experience, click &lt;strong&gt;Create New Page&lt;/strong&gt; or the &lt;strong&gt;+&lt;/strong&gt; icon next to Pages and Variants.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ns6tw6jdnxctohfilsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ns6tw6jdnxctohfilsb.png" alt="Image description" width="800" height="470"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;We are going to be using a template&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Choose Standard Record Template&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3in6f9vvf2nuyrq9zj8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3in6f9vvf2nuyrq9zj8q.png" alt="Image description" width="800" height="544"&gt;&lt;/a&gt;&lt;br&gt;
.Enter a &lt;strong&gt;page name&lt;/strong&gt; for your template. The URL path will auto-populate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcnzp322foir7s8sjt0d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcnzp322foir7s8sjt0d.png" alt="Image description" width="800" height="544"&gt;&lt;/a&gt;&lt;br&gt;
.Click &lt;strong&gt;Continue&lt;/strong&gt;, &lt;br&gt;
.Our record template comes with pre configured required(table &amp;amp; sys_id) and optional(query, extraParams views, selectedTab)parameters, review it then select &lt;strong&gt;Looks Good.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faug64rfxy1loo9ousjh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faug64rfxy1loo9ousjh7.png" alt="Image description" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4.Creating a Variant
&lt;/h4&gt;

&lt;p&gt;.Name your &lt;strong&gt;page variant&lt;/strong&gt;, then skip &lt;strong&gt;Audience and Conditions&lt;/strong&gt; for now. Click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;br&gt;
.Familiarize yourself with the &lt;strong&gt;Variant Editor:&lt;/strong&gt;&lt;br&gt;
    &lt;strong&gt;•Left Panel:&lt;/strong&gt; Content tree for adding layouts and components.&lt;br&gt;
    &lt;strong&gt;•Right Panel:&lt;/strong&gt; Configuration panel with tabs for customizing components.&lt;br&gt;
    &lt;strong&gt;•Bottom Left:&lt;/strong&gt; Tools for dynamic data like Data Resources, Client State Parameters, and Client Scripts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbymly25rxklq8y9jyxbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbymly25rxklq8y9jyxbs.png" alt="Image description" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thats it!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;In&lt;/strong&gt; the next article we will be expanding on our experience by adding page parameters to the our page variant- to allow us to pass data values to be utilized within the page.  &lt;/p&gt;

&lt;p&gt;This overview introduced the basics of UI Builder, from layouts and components to pages and variants. In upcoming articles, we’ll dive deeper into creating dynamic, interactive pages by exploring:&lt;br&gt;
    •Page Parameters.&lt;br&gt;
    •Data Resources.&lt;br&gt;
    •Client State Parameters.&lt;br&gt;
    •Client Scripts.&lt;br&gt;
    •Events.&lt;br&gt;
By the end of this series, you’ll have a solid grasp of UI Builder and how to create resourceful, user-friendly experiences!!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Learn More About UI Builder&lt;/strong&gt;&lt;br&gt;
    •Take a Free Now Learning Course on UI Builder&lt;br&gt;
&lt;a href="https://nowlearning.servicenow.com/lxp/en/now-platform/ui-builder-fundamentals-washington?id=learning_course_prev&amp;amp;course_id=7ba080d447fdd65076e07884f16d435e" rel="noopener noreferrer"&gt;https://nowlearning.servicenow.com/lxp/en/now-platform/ui-builder-fundamentals-washington?id=learning_course_prev&amp;amp;course_id=7ba080d447fdd65076e07884f16d435e&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•ServiceNow Documentation on UI Builder&lt;br&gt;
&lt;a href="https://www.servicenow.com/docs/bundle/xanadu-application-development/page/administer/ui-builder/concept/ui-builder-overview.html" rel="noopener noreferrer"&gt;https://www.servicenow.com/docs/bundle/xanadu-application-development/page/administer/ui-builder/concept/ui-builder-overview.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>servicenow</category>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>SubFlows in ServiceNow Flow Designer</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 02 Oct 2024 01:12:03 +0000</pubDate>
      <link>https://dev.to/sophiasemga/subflows-in-servicenow-flow-designer-45kh</link>
      <guid>https://dev.to/sophiasemga/subflows-in-servicenow-flow-designer-45kh</guid>
      <description>&lt;p&gt;&lt;strong&gt;In ServiceNow Flow Designer,&lt;/strong&gt; subflows are reusable actions or smaller units of logic that can be called from a parent flow or another subflow. They cover specific processes, making them reusable and easier to maintain across different automation scenarios. This flexibility helps simplify workflows, particularly in complex automation environments.&lt;/p&gt;

&lt;p&gt;Subflows allow developers to create reusable logic without rewriting the same steps repeatedly in various flows. These components are essential in managing complexity, improving maintainability, and enhancing overall system efficiency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Components of Subflows
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Inputs: These are the data or parameters provided to the subflow when it is executed. They define what information the subflow needs to perform its tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outputs: After the subflow runs, it can return data to the calling flow through outputs. These outputs can be used by the parent flow to make further decisions or trigger other actions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  The Difference Between Inputs and Outputs in Subflows
&lt;/h4&gt;

&lt;p&gt;Inputs: Inputs are like the ingredients you pass into a recipe. They are the parameters that the subflow requires to operate. For example, if you have a subflow to create an incident, inputs might include:&lt;br&gt;
    • Short description&lt;br&gt;
    • Priority&lt;br&gt;
    • Assignment group&lt;br&gt;
    • Caller&lt;/p&gt;

&lt;p&gt;Outputs: Once the subflow runs its course, outputs are the results or the outcome that can be passed back to the main flow. For example, in the same incident creation subflow, outputs might include:&lt;br&gt;
    • Incident number&lt;br&gt;
    • Incident sys_id&lt;br&gt;
    • Created date&lt;/p&gt;

&lt;p&gt;Inputs are essentially the information you provide the subflow to work with, and outputs are the useful data you get after the subflow completes its task.&lt;/p&gt;

&lt;h5&gt;
  
  
  Let’s break down a basic use case to understand how subflows work in a real-world scenario. We’ll create a subflow that handles the creation of change requests.
&lt;/h5&gt;

&lt;h6&gt;
  
  
  In the sub-flow we will:
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;Create a change request.&lt;/li&gt;
&lt;li&gt;Set assignment group in change request.&lt;/li&gt;
&lt;li&gt;Send an email to assignment group.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Watch this 14 minute Youtube video on &lt;a href="https://youtu.be/Kqhq4-KhPX8" rel="noopener noreferrer"&gt;automating change request using sub flows.&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Advantages of Using Subflows
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Reusability: Once created, a subflow can be reused in multiple parent flows, reducing redundancy and improving maintenance.&lt;/li&gt;
&lt;li&gt;Simplicity: Break complex flows into smaller, manageable subflows, simplifying the overall design.&lt;/li&gt;
&lt;li&gt;Maintainability: When a subflow is updated, any flow using it benefits from the update, enhancing consistency across the platform.&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Best Practices for Working with Subflows
&lt;/h5&gt;

&lt;p&gt;• Limit Inputs and Outputs: Keep your inputs and outputs concise and relevant. Avoid overloading subflows with unnecessary parameters.&lt;br&gt;
• Test Regularly: Make sure to test subflows independently before integrating them into a larger flow. This ensures they work correctly in isolation.&lt;br&gt;
• Use Subflows for Repetitive Tasks: If a task is common across multiple flows, create a subflow to handle it, saving development time and reducing duplication.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Subflows are powerful tools in ServiceNow Flow Designer, enabling developers to create reusable logic that can simplify complex workflows. By understanding the differences between inputs and outputs, and using practical use cases like the change automation subflow, developers can build efficient and maintainable solutions.&lt;/p&gt;

&lt;p&gt;Subflows are particularly useful when multiple flows share similar logic or actions, ensuring consistency across processes while reducing the risk of errors.&lt;/p&gt;

&lt;h6&gt;
  
  
  #TheWorldWorksWithServiceNow :)
&lt;/h6&gt;




&lt;p&gt;-ServiceNow Product documentation on SubFlows:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/xanadu-build-workflows/page/administer/flow-designer/concept/subflows.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/xanadu-build-workflows/page/administer/flow-designer/concept/subflows.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-ServiceNow Product documentation on Flow Designer:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-build-workflows/page/administer/flow-designer/concept/flow-designer.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-build-workflows/page/administer/flow-designer/concept/flow-designer.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Watch Youtube Video on SubFlows:&lt;br&gt;
&lt;a href="https://youtu.be/Kqhq4-KhPX8" rel="noopener noreferrer"&gt;https://youtu.be/Kqhq4-KhPX8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ServiceNow Xanadu Release: An Overview of Key Upgrades</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Mon, 05 Aug 2024 01:24:46 +0000</pubDate>
      <link>https://dev.to/sophiasemga/servicenow-xanadu-release-an-overview-of-key-upgrades-3f1o</link>
      <guid>https://dev.to/sophiasemga/servicenow-xanadu-release-an-overview-of-key-upgrades-3f1o</guid>
      <description>&lt;p&gt;&lt;strong&gt;ServiceNow has once again impressed us with the Xanadu release. In this blog, we'll explore some of my favorite upgrades from this new release and what they entail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When ServiceNow announces upgrades, they truly mean it. I appreciate how each upgrade not only enhances ServiceNow functionalities but also ensures that these enhancements benefit every professional using the platform. These upgrades are designed to improve operations not just for developers, but also for administrators, process owners, business analysts, and product owners.&lt;/p&gt;

&lt;p&gt;In this overview of the Xanadu release, we’ll delve into some &lt;strong&gt;ITSM&lt;/strong&gt; and &lt;strong&gt;ITOM&lt;/strong&gt; product release notes:&lt;/p&gt;

&lt;h3&gt;
  
  
  ITSM Product Release Notes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Incident Management&lt;/strong&gt;: Email notifications now offer greater flexibility by allowing you to choose where links to an incident record are redirected. Instead of opening automatically in the Classic UI 16 Interface, the incident record can be redirected to the Service Operation Workspace (SOW). The incident record link in the email will open in SOW under the following conditions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;(sow_email_notification_redirect)&lt;/code&gt; system property is set to true.&lt;/li&gt;
&lt;li&gt;The user clicking the incident record link has the &lt;code&gt;sn_sow_user&lt;/code&gt; role.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Now Assist ITSM:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge Articles: Enable your agents to create comprehensive knowledge articles by leveraging information from similar incidents.&lt;/li&gt;
&lt;li&gt;Chat Reply Recommendations: Assist agents in responding to common questions in chats using the “Write with Now Assist” feature for chat reply suggestions.&lt;/li&gt;
&lt;li&gt;Contextual Understanding: Help agents gain a better understanding of chat and incident contexts with Sidebar discussion summarization when proposing resolutions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: The Now Assist for ITSM application requires an IT Service Management Pro Plus or Enterprise Plus license.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Service Operations Workspace (SOW):
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;SOW&lt;/strong&gt; provides a unified experience for multiple IT Service Management and IT Operations Management capabilities. In the Xanadu release, several enhancements have been made:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View VIP field decorators on call fields in incident records for VIP users.&lt;/li&gt;
&lt;li&gt;Test Incident Management features and workflows in SOW with quick start tests.&lt;/li&gt;
&lt;li&gt;Resolve password-reset related incidents using the password-reset UI action on an incident record.&lt;/li&gt;
&lt;li&gt;Obtain AI-powered search results for the following record types: Incident, Incident Tasks, Problem, Problem Tasks, Change Requests, Change Request Tasks, Interaction, and Request.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IT Operations Management (ITOM) Release Notes
&lt;/h3&gt;

&lt;p&gt;The Xanadu release introduces updated features across ServiceNow &lt;strong&gt;ITOM&lt;/strong&gt; products:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ITOM Health:&lt;/strong&gt; Track and maintain the health of your organization's services, including Health Log Analytics, Event Management, Agent Client Collector applications, and more.&lt;br&gt;
&lt;strong&gt;ITOM Cloud Accelerate:&lt;/strong&gt; Provides workflows to assess cloud readiness and enforce ITOM Cloud Accelerate guidelines.&lt;br&gt;
&lt;strong&gt;ITOM Optimization:&lt;/strong&gt; Automates cloud workflows for managing resources throughout their life cycles, offering visibility into costs and enabling the deployment of certified, enterprise-compliant clouds.&lt;br&gt;
&lt;strong&gt;ITOM Visibility:&lt;/strong&gt; Provides a unified, connected view of your entire IT network and the services it supports.&lt;/p&gt;

&lt;h4&gt;
  
  
  ITOM Visibility Highlights in the Xanadu Release:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Benefit from a unified workspace for configuring discovery, managing errors, and tracking progress with diagnostic tools that offer insights into discovered data. View discovery trends, tasks, and access relevant information through the Discovery Admin home. Analyze discovery errors and troubleshoot them using the Diagnostic tab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With the Xanadu release, you can enhance your application Service Mapping by installing the App Service Extension application from the ServiceNow store. Use Automated Service Suggestions and CMDB data to create a new application service, eliminating the need for Mid-servers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Xanadu release documentation includes many more powerful upgrades that I can’t all cover in detail here. I encourage you to review the release notes this week, identify your favorite upgrades, and make sure to update your PDI to Xanadu to experience these new features firsthand on the ServiceNow platform.&lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;code&gt;#TheWorldWorksWithServiceNow :)&lt;/code&gt;
&lt;/h5&gt;




&lt;p&gt;Learn More About ServiceNow Xanadu release here:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/family-release-notes.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/family-release-notes.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn More about Xanadu IT Service Management release notes:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/it-service-management/it-service-management-rn-landing.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/it-service-management/it-service-management-rn-landing.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn More about Xanadu IT Operation Management release notes:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/it-operations-management/it-operations-management-rn-landing.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/xanadu-release-notes/page/release-notes/it-operations-management/it-operations-management-rn-landing.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>servicenow</category>
      <category>development</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>THE POWER OF LDAP INTEGRATION</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 24 Jul 2024 14:58:42 +0000</pubDate>
      <link>https://dev.to/sophiasemga/ldap-integration-59fp</link>
      <guid>https://dev.to/sophiasemga/ldap-integration-59fp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Lightweight Directory Access Protocol (LDAP)&lt;/strong&gt; is a cross-platform protocol used to manage and access directory services, such as Active Directory, which is used to authenticate users and groups. LDAP follows a client/server model, where an LDAP application requests information from an associated LDAP server. Once authenticated, the database responds to the LDAP server, which in turn sends the response back to the application.&lt;/p&gt;

&lt;p&gt;LDAP integration enables ServiceNow to connect with an existing LDAP directory/server for user authentication and data synchronization. The integration works by having the LDAP application request data (acting as the client side) and providing a username and password for authentication. The server verifies these credentials, and if they are valid, the data is transmitted. Notably, the password entered is contained &lt;em&gt;entirely&lt;/em&gt; within the HTTPS session, as this integration never stores LDAP passwords.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfgzr86lji9oxhunvacx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfgzr86lji9oxhunvacx.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two key aspects to the integration:&lt;/p&gt;

&lt;h3&gt;
  
  
  1.Data Population
&lt;/h3&gt;

&lt;p&gt;Integration with LDAP servers allows you to quickly and easily populate ServiceNow with user records from the existing LDAP database. Configuration flags are available to either create, ignore, or skip incoming LDAP records to prevent data inconsistencies. You can limit the data imported by specifying LDAP attributes, thereby importing only the data you want to expose to an instance. If no LDAP attributes are specified, the integration imports all available object attributes from the LDAP server.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Authentication
&lt;/h3&gt;

&lt;p&gt;In an LDAP-integrated ServiceNow environment, when users try to log in, their credentials are passed to all defined LDAP servers. By authenticating against your LDAP server, users can access the platform with the same credentials they use for other internal resources on your network domain.&lt;/p&gt;

&lt;h4&gt;
  
  
  LDAP Directories/Structure
&lt;/h4&gt;

&lt;p&gt;LDAP directories are structured as tree entities, where each entity consists of a set of attribute-value pairs describing an object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aczel1fhnsh5r3q13o4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aczel1fhnsh5r3q13o4.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Prerequisites for LDAP Integration
&lt;/h4&gt;

&lt;p&gt;.Allow inbound network access through the firewall&lt;br&gt;
.External IP/Name of the LDAP server&lt;br&gt;
.User credentials with read-only access&lt;br&gt;
.The directory services server must be LDAP V3 compliant&lt;br&gt;
.PKI certificate for an LDAP V3 compliant directory services server&lt;/p&gt;

&lt;h4&gt;
  
  
  LDAP Servers Supported by ServiceNow
&lt;/h4&gt;

&lt;p&gt;.Microsoft Active Directory&lt;br&gt;
.Novell&lt;br&gt;
.Domino&lt;br&gt;
.Open LDAP&lt;/p&gt;

&lt;h5&gt;
  
  
  How to Set Up and Perform LDAP Integration in ServiceNow
&lt;/h5&gt;

&lt;p&gt;LDAP integration uses a read-only connection that never writes to the LDAP directory/server. The integration's sole purpose is to query for information and update the database accordingly.&lt;/p&gt;

&lt;h6&gt;
  
  
  1. Search for LDAP in Application Navigator and create a new server:
&lt;/h6&gt;

&lt;p&gt;-For "Type of LDAP Server," leave it as Active Directory (or choose "other" if working with a different server).&lt;br&gt;
-For "Server Name," enter a name (e.g., TestLDAPIntegration).&lt;br&gt;
-For the server URL, use a free LDAP test server found online (e.g., forumsys.com).&lt;br&gt;
-Paste the server URL from the free test server into ServiceNow.&lt;br&gt;
-For "Starting Search Directory," indicate where ServiceNow should begin its search for users and groups.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc7xto700p6wsz62in50.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc7xto700p6wsz62in50.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  2. Submit the form:
&lt;/h6&gt;

&lt;p&gt;-You will be taken to a different record containing the information you filled out.&lt;br&gt;
-Provide a Login Distinguished Name and Login Password to allow ServiceNow to access the server/directory. You can find these details on the free test server website.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5keei8py100fpsbupxo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5keei8py100fpsbupxo.png" alt="Image description" width="800" height="54"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fanebowc2opqeribe9dbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fanebowc2opqeribe9dbb.png" alt="Image description" width="800" height="126"&gt;&lt;/a&gt;&lt;br&gt;
-Save and submit the form.&lt;/p&gt;

&lt;h6&gt;
  
  
  3. Verify the connection:
&lt;/h6&gt;

&lt;p&gt;-A message should display indicating that the connection has been successful.&lt;br&gt;
-In the related list under LDAP OU Definitions, click "Users."&lt;br&gt;
-Remove the out-of-the-box (OOB) value displayed in the filter field and replace it with the specific data you are querying (e.g., users with names starting with "e").&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkob152xqj5d5r1xe5g0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkob152xqj5d5r1xe5g0l.png" alt="Image description" width="800" height="359"&gt;&lt;/a&gt;&lt;br&gt;
-Click the 'Test connection' related link to secure connection and 'Browse' related link to validate and check if the test worked.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t8i41pkry1vnrnnt3dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t8i41pkry1vnrnnt3dw.png" alt="Image description" width="800" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  4. Import and map data:
&lt;/h6&gt;

&lt;p&gt;-Now that you have fetched the desired user data, populate the data into your ServiceNow database on the sys_user table.&lt;br&gt;
-Under LDAP OU Definition &amp;gt; Users, click on the data included in Data Source to access the import set.&lt;br&gt;
-Click "Load All Records."&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzeio0ix3m6jk1a9mi61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzeio0ix3m6jk1a9mi61.png" alt="Image description" width="800" height="274"&gt;&lt;/a&gt;&lt;br&gt;
-Create a transform map, name it, set the target table to &lt;em&gt;'sys_user'&lt;/em&gt;, and automap fields.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2tib8h8fsy0ayrlqhy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2tib8h8fsy0ayrlqhy.png" alt="Image description" width="800" height="284"&gt;&lt;/a&gt;&lt;br&gt;
-Use the mapping assist to map fields (e.g., UID to UserID).&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7iwlh7nfkrmvw5npt228.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7iwlh7nfkrmvw5npt228.png" alt="Image description" width="800" height="191"&gt;&lt;/a&gt;&lt;br&gt;
-Save and transform the data.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyl5gpyloiq3agy7dhh9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyl5gpyloiq3agy7dhh9v.png" alt="Image description" width="800" height="197"&gt;&lt;/a&gt;&lt;br&gt;
-Verify that the users have been populated successfully in the user table.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p2jqsqe1qrh621ioycz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p2jqsqe1qrh621ioycz.png" alt="Image description" width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! you have been able to successfully perform LDAP integration on your ServiceNow instance. LDAP integration is a powerful feature that streamlines user management and authentication in ServiceNow, making it easier to maintain consistency and security across your network.&lt;/p&gt;




&lt;p&gt;Here are some additional links + documentation to help you sharpen your understanding of LDAP Integration:&lt;/p&gt;

&lt;p&gt;•What is ServiceNow Integration:&lt;br&gt;
&lt;a href="https://www.servicenow.com/content/dam/servicenow-assets/public/en-us/doc-type/success/enablement/integration-implementation-faq.pdf" rel="noopener noreferrer"&gt;https://www.servicenow.com/content/dam/servicenow-assets/public/en-us/doc-type/success/enablement/integration-implementation-faq.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•ServiceNow LDAP : &lt;a href="https://docs.servicenow.com/bundle/vancouver-platform-security/page/integrate/ldap/concept/c_LDAPIntegration.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/vancouver-platform-security/page/integrate/ldap/concept/c_LDAPIntegration.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Understanding ServiceNow LDAP :&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/vancouver-platform-security/page/integrate/ldap/reference/r_LDAPIntegrationFAQs.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/vancouver-platform-security/page/integrate/ldap/reference/r_LDAPIntegrationFAQs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•LDAP Test Servers : &lt;a href="https://www.google.com/search?q=ldap+test+server&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;hl=en-us&amp;amp;client=safari" rel="noopener noreferrer"&gt;https://www.google.com/search?q=ldap+test+server&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;hl=en-us&amp;amp;client=safari&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Configure LDAP in ServiceNow : &lt;a href="https://youtu.be/e4c0MgJzwu4?si=GN70OLjLRKIDzvxG" rel="noopener noreferrer"&gt;https://youtu.be/e4c0MgJzwu4?si=GN70OLjLRKIDzvxG&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>testing</category>
    </item>
    <item>
      <title>ServiceNow Mid-Server Insights</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 03 Jul 2024 18:25:13 +0000</pubDate>
      <link>https://dev.to/sophiasemga/servicenow-mid-server-insights-48b9</link>
      <guid>https://dev.to/sophiasemga/servicenow-mid-server-insights-48b9</guid>
      <description>&lt;p&gt;&lt;strong&gt;ServiceNow Mid servers&lt;/strong&gt;, also known as Management Instrumentation and Discovery, play a crucial role in extending the platform's capabilities. These Java applications, installed on external servers, act as bridges, fetching data from third-party sources and delivering it back to ServiceNow. &lt;/p&gt;

&lt;h4&gt;
  
  
  What are Mid Servers and How Do They Work?
&lt;/h4&gt;

&lt;p&gt;Mid servers facilitate seamless data flow between ServiceNow and external applications, services, and data sources. They initiate communication with the ServiceNow instance and leverage the External Communication Channel (ECC) Queue for message exchange. This queue acts as a communication log, allowing data insertion, updates, and queries.&lt;/p&gt;

&lt;h4&gt;
  
  
  ECC Queue: The Communication Hub
&lt;/h4&gt;

&lt;p&gt;Think of the ECC Queue as a central communication point. It houses two record types:&lt;/p&gt;

&lt;p&gt;Output Probes: Instructions sent by ServiceNow to the mid-server for data retrieval.&lt;br&gt;
Input Probes: Responses containing retrieved data sent by the mid-server back to ServiceNow.&lt;/p&gt;

&lt;h4&gt;
  
  
  Security is Paramount
&lt;/h4&gt;

&lt;p&gt;Secure connections are essential for both mid-server installation and data discovery. ServiceNow utilizes &lt;code&gt;HTTPS:443&lt;/code&gt; for encrypted communication with the mid-server. Similarly, the mid server establishes secure network connections with data sources to ensure information integrity.&lt;/p&gt;

&lt;h4&gt;
  
  
  Installing a Mid Server in ServiceNow
&lt;/h4&gt;

&lt;h5&gt;
  
  
  1.&lt;u&gt;Create a User and Give Them the Mid-Server Role&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;•Go to the sys_user table on your ServiceNow instance to create a new user who will interact with the mid-server. &lt;code&gt;This user account is created to have a specific account to manage the integration, preventing it from stopping. Using other user accounts risks termination or revocation, which can cause the server to stop running.&lt;/code&gt;&lt;br&gt;
•Create a user and set a password.&lt;br&gt;
•Once the user is created, give them the &lt;code&gt;mid-server&lt;/code&gt; role.&lt;/p&gt;

&lt;h5&gt;
  
  
  2.&lt;u&gt;Download the Mid Server&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;•Search for &lt;code&gt;“Mid Server”&lt;/code&gt; in your application navigator and click on &lt;code&gt;“Downloads”&lt;/code&gt; to download the mid server. Select the appropriate installer based on your operating system (e.g., Windows, Linux).&lt;br&gt;
•Download the mid-server.&lt;br&gt;
•Once the download is complete, it will be accessible under your file downloads.&lt;br&gt;
•Go to your files and create a folder in your &lt;code&gt;C: drive&lt;/code&gt;, which will act as your directory. In the directory, create a new folder and name it.&lt;br&gt;
•Under downloads, where your mid server has been downloaded, right-click to &lt;code&gt;extract all&lt;/code&gt; and select the folder you created under your directory so that it is extracted into the designated folder.&lt;br&gt;
•Go to your drive/folder, which now contains mid-server contents, and click on the &lt;code&gt;agent folder&lt;/code&gt;.&lt;br&gt;
•Under the agent folder, click on the &lt;code&gt;config XML file&lt;/code&gt; and fill in the required parameters, including your instance URL&lt;code&gt;(ex,https://dev210312.service-now.com/)&lt;/code&gt; &lt;br&gt;
the username &lt;code&gt;(ex, midserver_user)&lt;/code&gt; &lt;br&gt;
and password of the user you created and assigned the mid-server role to, and create a name. &lt;br&gt;
&lt;strong&gt;Then save.&lt;/strong&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  3.&lt;u&gt;Validate and Update&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;•Wait for it to populate on your instance under mid_server. Then click on it to validate and update it. Wait for it to validate and for the status to be up.&lt;br&gt;
•Once the status is populated, congratulations! You have successfully installed a mid server into your ServiceNow instance.&lt;/p&gt;

&lt;h4&gt;
  
  
  Upgrading the Mid Server
&lt;/h4&gt;

&lt;p&gt;ServiceNow mid servers typically perform periodic checks for upgrade availability. Upon detecting a newer version, they automatically download and install the upgrade package. Manual upgrades are also an option. &lt;/p&gt;

&lt;h4&gt;
  
  
  Troubleshooting Mid-Server Issues
&lt;/h4&gt;

&lt;h5&gt;
  
  
  1. &lt;u&gt;Restarting the Mid Server:&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;You can restart the mid-server through the ServiceNow UI or the Command Line Interface (CLI).&lt;/p&gt;

&lt;h5&gt;
  
  
  UI Method
&lt;/h5&gt;

&lt;p&gt;•Sign in to ServiceNow.&lt;br&gt;
•Go to “System Definition” and select “Mid Servers.”&lt;br&gt;
•Choose the mid-server that needs restarting.&lt;br&gt;
•Click the “Restart” button at the top.&lt;br&gt;
•Wait a few minutes until the mid-server status changes to “Running.”&lt;br&gt;
•Verify its connectivity and performance.&lt;/p&gt;

&lt;h5&gt;
  
  
  CLI Method
&lt;/h5&gt;

&lt;p&gt;•Log into the machine hosting the mid-server.&lt;br&gt;
•Execute commands from ServiceNow documentation.&lt;/p&gt;

&lt;h5&gt;
  
  
  2.&lt;u&gt;Checking Mid-Server Logs:&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;The mid-server logs, located in the installation directory, offer valuable insights into any issues encountered.&lt;/p&gt;

&lt;h4&gt;
  
  
  ServiceNow Applications that Leverage Mid Servers:
&lt;/h4&gt;

&lt;p&gt;.Discovery&lt;br&gt;
.Service Mapping&lt;br&gt;
.Event Management&lt;br&gt;
.Cloud Management&lt;br&gt;
.Integration Hub&lt;br&gt;
.Orchestration&lt;/p&gt;

&lt;h4&gt;
  
  
  External Applications that Utilize Mid Servers:
&lt;/h4&gt;

&lt;p&gt;.Import sets&lt;br&gt;
.Microsoft System Center Configuration Manager (SCCM)&lt;br&gt;
.Microsoft Identity Integration Server (MIIS)&lt;br&gt;
.Microsoft System Center Operations Manager (SCOM)&lt;/p&gt;

&lt;h4&gt;
  
  
  Compatibility Matters
&lt;/h4&gt;

&lt;p&gt;For seamless communication, ensure compatibility between the mid-server version and your ServiceNow instance version. The mid-server version should at least belong to the same major release (e.g., Tokyo) as the instance. While minor version compatibility (e.g., Tokyo Patch 1) might work, it's highly recommended to upgrade to the latest version for optimal performance and security.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;ServiceNow mid servers are powerful tools for extending platform functionality. By understanding their purpose, configuration process, and use cases, you can leverage them to streamline data integration and enhance your overall ServiceNow experience.&lt;/p&gt;




&lt;p&gt;ServiceNow Product Documentation on MidServers:&lt;/p&gt;

&lt;p&gt;What is a mid-server: &lt;a href="https://docs.servicenow.com/bundle/washingtondc-servicenow-platform/page/product/mid-server/concept/mid-server-landing.html"&gt;https://docs.servicenow.com/bundle/washingtondc-servicenow-platform/page/product/mid-server/concept/mid-server-landing.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configure mid-server parameters: &lt;a href="https://docs.servicenow.com/bundle/washingtondc-servicenow-platform/page/product/mid-server/reference/mid-server-parameters.html"&gt;https://docs.servicenow.com/bundle/washingtondc-servicenow-platform/page/product/mid-server/reference/mid-server-parameters.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>cloud</category>
      <category>vim</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Leverage ServiceNow REST API: Integrate &amp; Create Records Selectively</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 19 Jun 2024 19:27:45 +0000</pubDate>
      <link>https://dev.to/sophiasemga/servicenow-rest-apis-1mej</link>
      <guid>https://dev.to/sophiasemga/servicenow-rest-apis-1mej</guid>
      <description>&lt;p&gt;&lt;strong&gt;ServiceNow&lt;/strong&gt; offers a powerful tool for integrating with external applications: the REST (Representational State Transfer) API. This inbound web service allows external applications and clients to interact with data within your ServiceNow instance in a controlled manner.&lt;/p&gt;

&lt;p&gt;Think of it as a set of well-defined functions that enable you to send requests and receive responses from other applications using HTTP protocols. &lt;br&gt;
Common REST HTTP methods include:&lt;br&gt;
    • GET: Retrieve data from a third-party application.&lt;br&gt;
    • PUT: Update data within a third-party application.&lt;br&gt;
    • POST: Create new data within a third-party application.&lt;br&gt;
    • DELETE: Delete data from a third-party application.&lt;br&gt;
    • PATCH: Partially update data within a third-party application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case: Creating a ServiceNow Record from Another Application with Selective Field Copying
&lt;/h3&gt;

&lt;p&gt;This scenario demonstrates how to create a ServiceNow record from another application while including specific fields from being copied into the ServiceNow record.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Setting Up the Inbound Web Service
&lt;/h4&gt;

&lt;p&gt;•Navigate to &lt;strong&gt;Web Services &amp;gt; Inbound&lt;/strong&gt;. This is where you define how external applications can interact with your ServiceNow data.&lt;br&gt;
•Fill in the &lt;strong&gt;Label Name&lt;/strong&gt; (a user-friendly name for your integration).&lt;br&gt;
Select the &lt;strong&gt;Target Table&lt;/strong&gt; where the data will be stored (e.g., Incident table).&lt;br&gt;
•Under &lt;strong&gt;Web Service Fields&lt;/strong&gt;, define the fields you'll receive from the third-party application. These are the fields required to create a record in ServiceNow (e.g., caller, short description).&lt;br&gt;
•Click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F840wfeefyee9fj13xg52.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F840wfeefyee9fj13xg52.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Configuring the Transform Map
&lt;/h4&gt;

&lt;p&gt;•Upon creation, a &lt;strong&gt;Transform Map&lt;/strong&gt; is generated. This map translates data from the source table (where the third-party application sends data) to the target table (the ServiceNow table you selected).&lt;br&gt;
•Click on &lt;strong&gt;Automapping Assist&lt;/strong&gt; to automatically map fields from source to target.&lt;br&gt;
Review and adjust the mappings as needed.&lt;br&gt;
•Click &lt;strong&gt;Save&lt;/strong&gt; to save the transform map.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Testing the Web Service
&lt;/h4&gt;

&lt;p&gt;•Locate your newly created inbound web service in the &lt;strong&gt;Application Navigator&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F64i9fweicjx7j0jt1cvr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F64i9fweicjx7j0jt1cvr.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Under &lt;strong&gt;Related Links&lt;/strong&gt;, click &lt;strong&gt;Explore REST API&lt;/strong&gt;. This interface allows you to test the web service before integrating with the third-party application.&lt;br&gt;
•On the &lt;strong&gt;Explore REST API&lt;/strong&gt; interface, you'll see the staging table name and a request body section.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2340y1oszv53jhmktiw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2340y1oszv53jhmktiw.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•In the request body, enter test data for the fields you defined earlier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fathhwhqymn1or9foz70d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fathhwhqymn1or9foz70d.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Click &lt;strong&gt;Send&lt;/strong&gt;. &lt;br&gt;
Remember, request formats for ServiceNow REST APIs are always in JSON format.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Verifying Successful Test
&lt;/h4&gt;

&lt;p&gt;•A successful test will return a status code of &lt;strong&gt;201 (Created)&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1ynp3z8o8tp79lgm9du.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1ynp3z8o8tp79lgm9du.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•The response body will display a newly created test record.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgl4krg8fe8ejvv72gah.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgl4krg8fe8ejvv72gah.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Double-check by navigating to &lt;strong&gt;Incident &amp;gt; Open&lt;/strong&gt; to confirm the test record exists.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2524sg1fawam0zsbouf9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2524sg1fawam0zsbouf9.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4vaa7rsiz5piqdldkfy8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4vaa7rsiz5piqdldkfy8.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Integration with Third-Party Application (HoppScotch)
&lt;/h4&gt;

&lt;p&gt;🔗:&lt;a href="https://hoppscotch.com/" rel="noopener noreferrer"&gt;https://hoppscotch.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's integrate your ServiceNow instance with a third-party application called HoppScotch to create records directly from HoppScotch.&lt;/p&gt;

&lt;h5&gt;
  
  
  Configuration on HoppScotch
&lt;/h5&gt;

&lt;p&gt;•Use the &lt;strong&gt;POST&lt;/strong&gt; method as you're creating a new record.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4pgrkht8io7gb9r71cy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4pgrkht8io7gb9r71cy.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•In the &lt;strong&gt;Request URL&lt;/strong&gt;, copy the &lt;strong&gt;method URL&lt;/strong&gt; from the ServiceNow REST API Explorer. This URL defines the resource where data will be posted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqw1jvacdj9uvd688nigg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqw1jvacdj9uvd688nigg.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•For &lt;strong&gt;Authorization&lt;/strong&gt;, select &lt;strong&gt;Basic Auth&lt;/strong&gt; and enter your ServiceNow username and password. This ensures secure communication between applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawvuklaoi3frkm7dxic9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawvuklaoi3frkm7dxic9.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Under &lt;strong&gt;Headers&lt;/strong&gt;, set the &lt;strong&gt;Content-Type&lt;/strong&gt; to &lt;strong&gt;application/json&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8j8j3m2m150mfrh2z3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8j8j3m2m150mfrh2z3l.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•In the &lt;strong&gt;Body&lt;/strong&gt; section, copy and paste the request body data from the ServiceNow REST API Explorer. This data defines the information to be included in the new record.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw7mnt8mv523wvxnli4h.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw7mnt8mv523wvxnli4h.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Click &lt;strong&gt;Send&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Confirmation and Verification
&lt;/h4&gt;

&lt;p&gt;•A successful creation will return a status code of &lt;strong&gt;201 (Created)&lt;/strong&gt;.&lt;br&gt;
The response body will contain details about the import set, staging table, and the newly created ServiceNow record.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbt6g0qttjiv193lny667.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbt6g0qttjiv193lny667.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Navigate back to your ServiceNow instance under &lt;strong&gt;Incident &amp;gt; Open&lt;/strong&gt; to confirm the record was successfully created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8kdyp16jrpko3ptfci.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8kdyp16jrpko3ptfci.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l6vt1d2ujgec2d5huak.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l6vt1d2ujgec2d5huak.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations! You've successfully utilized ServiceNow's REST API to create a record in your instance through a third-party application.&lt;br&gt;
                🎊🎊&lt;/p&gt;

&lt;h4&gt;
  
  
  Expand Your Toolkit: Exploring Additional REST API Clients
&lt;/h4&gt;

&lt;p&gt;Beyond HoppScotch, several other tools offer functionalities similar to API testing, development, and collaboration. Here are a few popular options:&lt;/p&gt;

&lt;p&gt;•Insomnia:[&lt;a href="https://insomnia.rest/" rel="noopener noreferrer"&gt;https://insomnia.rest/&lt;/a&gt;]&lt;br&gt;
•Paw: [&lt;a href="https://paw.cloud/" rel="noopener noreferrer"&gt;https://paw.cloud/&lt;/a&gt;]&lt;br&gt;
•Postman:[&lt;a href="https://www.postman.com/" rel="noopener noreferrer"&gt;https://www.postman.com/&lt;/a&gt;]&lt;br&gt;
•SwaggerHub: [&lt;a href="https://swagger.io/tools/swaggerhub/" rel="noopener noreferrer"&gt;https://swagger.io/tools/swaggerhub/&lt;/a&gt;]&lt;/p&gt;




&lt;h4&gt;
  
  
  Further Learning:
&lt;/h4&gt;

&lt;p&gt;For a deeper dive into ServiceNow REST API functionalities and methods, refer to the ServiceNow product documentation on REST APIs.&lt;br&gt;
•ServiceNow REST API: &lt;a href="https://docs.servicenow.com/bundle/washingtondc-application-development/page/integrate/inbound-rest/concept/c_RESTAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-application-development/page/integrate/inbound-rest/concept/c_RESTAPI.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•ServiceNow REST API reference: &lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/build/applications/concept/api-rest.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/build/applications/concept/api-rest.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>webdev</category>
      <category>cloud</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Leveraging SOAP APIs for Outbound Integration: A Step-by-Step Guide.</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 05 Jun 2024 21:23:05 +0000</pubDate>
      <link>https://dev.to/sophiasemga/leveraging-soap-apis-for-outbound-integration-a-step-by-step-guide-245c</link>
      <guid>https://dev.to/sophiasemga/leveraging-soap-apis-for-outbound-integration-a-step-by-step-guide-245c</guid>
      <description>&lt;h2&gt;
  
  
  Soap API: Outbound Integration
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SOAP (Simple Object Access Protocol)&lt;/strong&gt; is an XML-based messaging protocol used for exchanging information between two applications. It includes a &lt;strong&gt;WSDL&lt;/strong&gt; file, which contains the necessary information about what the web service does and the location of the web service.&lt;br&gt;
&lt;strong&gt;WSDL&lt;/strong&gt;, also known as Web Service Definition Language, is the format in which data can be represented. All tables and import sets dynamically generate a WSDL XML document that describes the table schema and available operations.&lt;/p&gt;

&lt;p&gt;You can obtain a table’s WSDL by using a URL call to your instance that contains the name of the target table and the WSDL parameter &lt;code&gt;(e.g.,&lt;br&gt;
https://myinstance.servicenow.com/incident.do?WSDL).&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To get started with SOAP, you need a source instance and a target instance (the target instance could be another third-party application or another ServiceNow instance).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xhnhkv2dm6e0jskj8zp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xhnhkv2dm6e0jskj8zp.jpeg" alt="Image description" width="800" height="453"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkut16us0uv851v3xy4my.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkut16us0uv851v3xy4my.jpeg" alt="Image description" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;Use case: Whenever an incident record is created in the source instance, that same record should get inserted/populated in the target instance/application.&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;We are going to create an inbound integration on the target instance, essentially an import set that will synchronously transform the incoming data &lt;strong&gt;(SOAP message + Basic AUTH)&lt;/strong&gt; based on associated transform maps.&lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;u&gt;Web Services &amp;gt; Inbound&lt;/u&gt;
&lt;/h5&gt;

&lt;p&gt;&lt;code&gt;•Label&lt;/code&gt; - Name of Import : Incident demo&lt;br&gt;
&lt;code&gt;•Name&lt;/code&gt; - Value of name of Import: u_incidentdemo&lt;br&gt;
&lt;code&gt;•Checkmark &amp;lt;u&amp;gt;Copy fields from target table&amp;lt;/u&amp;gt;, because we need all the fields that are in the table&lt;/code&gt;&lt;br&gt;
&lt;code&gt;•Target Table&lt;/code&gt; - Name of table you’re deriving data from: Incident &lt;/p&gt;

&lt;h3&gt;
  
  
  Click Create
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5c2psjwdg7hx75bm6q6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5c2psjwdg7hx75bm6q6.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;•Then Click “Automapping Assist” to pull out all the fields from the target table, creating an import set.&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kaq0dffowiyxgxq41po.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kaq0dffowiyxgxq41po.png" alt="Image description" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is The Purpose:
&lt;/h2&gt;

&lt;p&gt;To generate the WSDL URL data of the table. If you type the label name, it’ll come up as a module. Click on it and copy the WSDL URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wicw32eixq02q4mjb0u.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wicw32eixq02q4mjb0u.jpeg" alt="Image description" width="800" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  On to the Source Instance:
&lt;/h3&gt;

&lt;p&gt;On the source instance, search for SOAP API - SOAP Message. Keep in mind that our source instance is performing the outbound integration because a record is being ‘thrown out’ of the system.&lt;/p&gt;

&lt;p&gt;On SOAP Message: &lt;br&gt;
&lt;strong&gt;Click New&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn83lxirgo17gklszkc7l.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn83lxirgo17gklszkc7l.jpeg" alt="Image description" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;1•Name:&lt;/code&gt; Name of Soap Message: IncidentDemo&lt;br&gt;
 (Naming conventions doesn’t matter)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;2•WSDL:&lt;/code&gt; Date copied from target instance &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgypt0dpe7x1hrd0cb9ub.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgypt0dpe7x1hrd0cb9ub.jpeg" alt="Image description" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;3•Authentication Type: Basic&lt;/code&gt;&lt;br&gt;
&lt;code&gt;4•Basic Auth Profile:&lt;/code&gt; Serves as credentials to authenticate the client( target instance ) by verifying the username and password against its authentication system before processing soap requests.&lt;br&gt;
 To get the Basic Auth profile, go to the target instance to get your system administrator username and password. Make sure it’s set or reset it if need be. (&lt;code&gt;Sys_user.LIST&lt;/code&gt; to access the admin account.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp43fuoqyw0r95u6xoo7f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp43fuoqyw0r95u6xoo7f.jpeg" alt="Image description" width="800" height="462"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;•Once username and password has been reset&lt;/code&gt;, &lt;br&gt;
go back to source instance and add it on Basic AUTH profile field, then save form.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxham4rod55bdima8p74.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxham4rod55bdima8p74.jpeg" alt="Image description" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;5•Once you save it, you will see a “Generate Sample Soap Messages” related link.&lt;/code&gt; —-this is a no code approach to simply insert requested data without any need for a customization(scripting). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9js07utrf477w5d036o9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9js07utrf477w5d036o9.jpeg" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;6•Click on the link,&lt;/code&gt; and it'll download the WSDL of the target instance target table from the URL, generating the Soap methods.&lt;br&gt;
                     &lt;code&gt;•Update - to update records. &lt;br&gt;
                      •getRecords - to get multiple records.&lt;br&gt;
                      •deleteRecord - to delete a record. &lt;br&gt;
                      •Insert - to insert a record. &lt;br&gt;
                      •deleteMultiple - deletes multiple records. &lt;br&gt;
                      •get- to get a record.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6kmxsw9ttc0vss5wdom.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6kmxsw9ttc0vss5wdom.jpeg" alt="Image description" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Click on the Insert Method&lt;/strong&gt;, because we’re going to be inserting a new record on the target instance.&lt;br&gt;
        1• Select authentication as Basic and choose the Basic Auth we created.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1t6yuza9ge6t56anmfbs.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1t6yuza9ge6t56anmfbs.jpeg" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2•On the envelope field, we see all the fields that make up incident record in an XML file, you can remove fields that  aren’t required/ part of requirement.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzegx1t18zslls3h5qw1n.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzegx1t18zslls3h5qw1n.jpeg" alt="Image description" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3•Once done, Save the form.&lt;/p&gt;

&lt;p&gt;4•Go to the “&lt;u&gt;Autogenerate Variables&lt;/u&gt;” related link on form, which generates variable substitution for all template variables on the envelope/ XML data.&lt;/p&gt;

&lt;p&gt;5•Once generated, we are given the option to test,&lt;br&gt;
by providing these variables with test values to validate integration success, before implementing business rule to customize the integration.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gfe053cc542j99fktcj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gfe053cc542j99fktcj.jpeg" alt="Image description" width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6• After given it test values, click on the Test related link, upon testing review the HTTP status to ensure it states: &lt;strong&gt;200&lt;/strong&gt;,&lt;br&gt;
meaning testing was successful and integration worked. &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08oegmum7dwj4oe8n7xd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08oegmum7dwj4oe8n7xd.jpeg" alt="Image description" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How do we check if the incident record was created/inserted in the target instance?
&lt;/h3&gt;

&lt;p&gt;Go to the target instance, navigate to the target table (Incident), and check if the test record has been inserted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02oshdg00y5pxtj1ss4u.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02oshdg00y5pxtj1ss4u.jpeg" alt="Image description" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our test record got inserted—great job! You successfully performed SOAP integration. 😊&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw38kxbywaai4qcj8359s.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw38kxbywaai4qcj8359s.jpeg" alt="Image description" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;However&lt;/strong&gt;, our set priority is of a different value because the priority field value is dependent on two other fields (&lt;strong&gt;impact and urgency&lt;/strong&gt;). To properly set the priority field value, you have to set values for the impact and urgency fields.&lt;/p&gt;

&lt;p&gt;Other than that, you successfully performed a SOAP integration that inserted a new record into another application!&lt;/p&gt;

&lt;h3&gt;
  
  
  Check YouTube video here:
&lt;/h3&gt;

&lt;p&gt;[&lt;a href="https://youtu.be/mAOIWpEiTF8?si=AYIke1KphsITk1CP"&gt;https://youtu.be/mAOIWpEiTF8?si=AYIke1KphsITk1CP&lt;/a&gt;]&lt;br&gt;
To watch the implementation on how to create an after-business rule to always insert a new incident record into the target instance whenever an incident record is created in the source instance.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;PS: Do not ever use the **“Before”** business rule during integration because you don’t want the record to get stored in the target system before the source system.&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Key things to keep in mind when watching the YouTube video:
&lt;/h4&gt;

&lt;p&gt;We are going to be creating an “After” business rule with the “Insert” operation.&lt;/p&gt;

&lt;p&gt;For the advanced field, to set up the code, go back to the SOAP message insert function and click on the “&lt;u&gt;Preview Script Usage&lt;/u&gt;” related link, copy the code, preview, and paste it into the business rule advanced field.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the code doing?
&lt;/h3&gt;

&lt;p&gt;The code is calling the SOAP message we created ‘IncidentDemo’ and the method ‘Insert’ that was used in the SOAP message. &lt;br&gt;
Then it’s setting parameters; the values in our parameters are from our testing, so we will need to replace them with current values.&lt;br&gt;
Once that’s done, save your business rule, and again, by creating a new incident on the source instance, go to your target instance to make sure that it got populated there as well.&lt;/p&gt;

&lt;p&gt;PS: It’s very important to keep in mind that only the field values that are being set in the parameter would show up in the target instance.&lt;/p&gt;




&lt;p&gt;Thank you for reading and watching! I hope this lesson broke down SOAP integrations properly. To learn more about SOAP, check out these product documentations:&lt;br&gt;
 •&lt;a href="https://docs.servicenow.com/bundle/tokyo-application-development/page/integrate/inbound-soap/concept/c_SOAPWebService.html"&gt;https://docs.servicenow.com/bundle/tokyo-application-development/page/integrate/inbound-soap/concept/c_SOAPWebService.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>integration</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Unveiling GlideUser: Your Guide To Current User Information in ServiceNow</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 15 May 2024 17:33:31 +0000</pubDate>
      <link>https://dev.to/sophiasemga/unveiling-glideuser-your-guide-to-current-user-information-in-servicenow-307i</link>
      <guid>https://dev.to/sophiasemga/unveiling-glideuser-your-guide-to-current-user-information-in-servicenow-307i</guid>
      <description>&lt;p&gt;&lt;strong&gt;ServiceNow is a powerful platform that empowers businesses to streamline IT service management. When developing applications within ServiceNow, understanding the context of the user who's logged in is often crucial. This is where the GlideUser API comes in!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is GlideUser?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GlideUser is a client-side API specifically designed to retrieve information about the user currently logged into ServiceNow. It provides a more efficient way to access user data compared to other traditional GlideRecord queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Functionalities of GlideUser:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retrieving User Details: With GlideUser, you can easily access various user attributes like first name, last name,username, and user ID. It even offers a convenient &lt;code&gt;getFullName()&lt;/code&gt; method to retrieve the user's full name in one go.&lt;/p&gt;

&lt;h4&gt;
  
  
  1.  &lt;code&gt;getUserID()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the sys_id of the current user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zav80zoqql1i0ok1key.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zav80zoqql1i0ok1key.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;code&gt;getUserName()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the username (login name) of the current user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66t2klxo05372xx5g39y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66t2klxo05372xx5g39y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. &lt;code&gt;getFullName()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the full name of the current user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4jrwc07vv5cpu2l7tbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4jrwc07vv5cpu2l7tbk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Checking User Roles: GlideUser empowers you to determine if the current user possesses a specific role or belongs to a particular group. This functionality is essential for access control and personalizing the user experience within your ServiceNow applications. Imagine forms that automatically adjust visibility based on a user's role!&lt;/p&gt;

&lt;h4&gt;
  
  
  4. &lt;code&gt;hasRole(role)&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Checks if the current user has the specified role/ admin role.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parameters&lt;/strong&gt;: &lt;code&gt;role&lt;/code&gt; (String) - The role to check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Returns&lt;/strong&gt;: &lt;code&gt;Boolean&lt;/code&gt; - &lt;code&gt;true&lt;/code&gt; if the user has the role, &lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ceeep4ndoopuboruw9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ceeep4ndoopuboruw9l.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  5. &lt;code&gt;haRoleExactly(role)&lt;/code&gt;
&lt;/h5&gt;

&lt;p&gt;-&lt;strong&gt;Description&lt;/strong&gt;: Logged-in user has exactly the specified role, without considering administrative privileges that might grant additional roles. The hasRoleExactly method returns true only if the user has the specific role in question, making it useful for precise role checks.&lt;br&gt;
-&lt;strong&gt;Returns&lt;/strong&gt;: &lt;code&gt;Boolean&lt;/code&gt; - &lt;code&gt;true&lt;/code&gt; if only the user had the specific/precise  role In question, &lt;code&gt;false&lt;/code&gt; otherwise. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd8t3ve9cq1k2hvg7u6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd8t3ve9cq1k2hvg7u6l.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OTHER METHODS:&lt;/strong&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  6. &lt;code&gt;isMemberOf(group)&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Checks if the current user is a member of the specified group.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parameters&lt;/strong&gt;: &lt;code&gt;group&lt;/code&gt; (String) - The group to check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Returns&lt;/strong&gt;: &lt;code&gt;Boolean&lt;/code&gt; - &lt;code&gt;true&lt;/code&gt; if the user is a member of the group, &lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6190j39nvhdtfbhdb0k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6190j39nvhdtfbhdb0k.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  7. &lt;code&gt;getCompanyID()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the sys_id of the company to which the current user belongs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2371nfdqghkcy161yvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2371nfdqghkcy161yvr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  8. &lt;code&gt;getCompanyName()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the name of the company to which the current user belongs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdut6dehlxdt98sneqhgd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdut6dehlxdt98sneqhgd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  9. &lt;code&gt;getLocation()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the location name of the current user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g3v3rrn1l2kyw78x0di.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g3v3rrn1l2kyw78x0di.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  10. &lt;code&gt;getDepartmentID()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the sys_id of the department to which the current user belongs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7v533fm6qtwb7nu6snxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7v533fm6qtwb7nu6snxh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  11. &lt;code&gt;getDepartmentName()&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Returns the name of the department to which the current user belongs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe85emthqbxu75plr7phc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe85emthqbxu75plr7phc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases for GlideUser:&lt;/strong&gt;&lt;br&gt;
.GlideUser shines in client-side scripts, allowing you to:&lt;br&gt;
Pre-populate forms with the current user's details, saving them time and effort.&lt;/p&gt;

&lt;p&gt;.Control field visibility based on user roles. This ensures users only see the information relevant to them.&lt;/p&gt;

&lt;p&gt;.Personalize greetings or notifications based on the logged-in user. A simple "Hello, [Username]" can make a big difference!&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Usage
&lt;/h3&gt;

&lt;p&gt;Here are some examples to demonstrate how &lt;code&gt;GlideUser&lt;/code&gt; methods can be used in client scripts:&lt;/p&gt;

&lt;h4&gt;
  
  
  Example 1: Check if the current user has the 'admin' role.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4phm3f2h3t036hfz9dc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4phm3f2h3t036hfz9dc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Example 2: Display the current user's full name and username.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwyhwxfn6t2g29pv4q6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwyhwxfn6t2g29pv4q6o.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Example 3: Check if the current user is a member of a specific group.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxg8z2nyc0mdw8safe2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxg8z2nyc0mdw8safe2x.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Using GlideUser:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Efficiency:&lt;/em&gt;&lt;/strong&gt; GlideUser offers a faster and more efficient way to access user information compared to GlideRecord queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Simplified User Context:&lt;/em&gt;&lt;/strong&gt; By leveraging GlideUser, you can easily incorporate user context awareness into your client-side scripts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Considerations and Best Practices:&lt;/strong&gt;&lt;br&gt;
It's important to remember that client-side validation using GlideUser can be bypassed. To ensure proper security, always implement server-side validation for critical operations. Additionally, GlideUser is primarily for client-side scripts and not recommended for server-side scripts or UI actions running on the server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
GlideUser is a valuable tool for ServiceNow developers looking to enhance their user experience in their applications by providing personalized interactions based on the user's attributes and roles within the ServiceNow platform.&lt;br&gt;
By incorporating GlideUser into your client-side scripts, you can streamline data entry, personalize the user experience, and ultimately create more user-friendly and efficient workflows.&lt;/p&gt;




&lt;p&gt;Learn More about ServiceNow Glide API's: &lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/glide-server-apis/topic/p_GlideServerAPIs.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/glide-server-apis/topic/p_GlideServerAPIs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn More about ServiceNow GlideUser API's: &lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideUser/concept/c_GlideUserAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideUser/concept/c_GlideUserAPI.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>productivity</category>
    </item>
    <item>
      <title>LOOKUP! The Power Of ServiceNow Data Matching</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 01 May 2024 17:14:18 +0000</pubDate>
      <link>https://dev.to/sophiasemga/lookup-the-power-of-servicenow-data-matching-31jm</link>
      <guid>https://dev.to/sophiasemga/lookup-the-power-of-servicenow-data-matching-31jm</guid>
      <description>&lt;h2&gt;
  
  
  Have you ever encountered a seemingly simple ServiceNow scripting task that turned into a lengthy debugging session?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;I&lt;/strong&gt; recently faced this challenge while working on a Catalog client script that involved matching choice fields. &lt;br&gt;
   What I envisioned as a quick fix became a six-hour debugging marathon! My notification script kept popping up unexpectedly, and only some choices were being matched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;But fear not, fellow developers! ServiceNow documentation, our most trusty companion, came to the rescue!!!&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While searching for solutions, I stumbled upon the power of &lt;code&gt;Data lookup rules&lt;/code&gt;. &lt;br&gt;
These rules allow administrators to define conditions that automatically set field values, streamlining workflows and saving precious time.&lt;br&gt;
Here's the magic: Data lookup tables enable you to look up values in fields and map them to corresponding values in other fields. Additionally, catalog items have their own dedicated data lookup definition, separate from standard table definitions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrqfgt6vhv6godvkl7yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrqfgt6vhv6godvkl7yr.png" alt="Image description" width="800" height="796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wanna practice data lookup rules, follow these steps:
&lt;/h3&gt;

&lt;p&gt;.&lt;code&gt;Create a Data Lookup Table:&lt;/code&gt; This table will house the fields you want to match and the corresponding fields you want to auto-populate based on the matches. Think of it as a mapping guide. In our example, we'll call the fields containing the matching values "matches" and the fields to be auto-populated "setters."&lt;/p&gt;

&lt;p&gt;.&lt;code&gt;Configure Matching Choices:&lt;/code&gt; Within your data lookup table, configure the choices to match exactly with the choices available in your target field (in this case, your catalog item field).&lt;/p&gt;

&lt;p&gt;.&lt;code&gt;Define the Data Lookup in Your Catalog Item:&lt;/code&gt; Navigate to the Catalog Data Lookup Definitions section within your catalog item form (or System Policy &amp;gt; Data Lookup for regular tables).&lt;/p&gt;

&lt;p&gt;.&lt;code&gt;Create a New Lookup Definition:&lt;/code&gt; Specify the fields you created in your data lookup table within the new lookup definition.&lt;/p&gt;

&lt;p&gt;.&lt;code&gt;Set Matchers and Setters:&lt;/code&gt; Within the lookup definition form, define the "matchers" (fields containing matching values) and the "setters" (fields to be auto-populated)&lt;/p&gt;

&lt;p&gt;.&lt;code&gt;Prioritize Your Lookups:&lt;/code&gt; Data lookup rules are processed in a specific order. Access your data lookup table again and set an order for each record. This order dictates the sequence in which the records are processed, ensuring data flows smoothly.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
Data lookup rules offer a powerful and efficient way to automate data population in ServiceNow. By following these steps and leveraging this functionality, you can significantly reduce manual effort, improve data accuracy, and streamline your workflows.&lt;/p&gt;

&lt;h6&gt;
  
  
  ####TheWorldWorksWithServiceNow! 😄
&lt;/h6&gt;




&lt;ul&gt;
&lt;li&gt;Watch My Youtube Video on Custom Data Look Up Rules: &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://youtu.be/zs2td3hdZVs?si=J45yW6NqWKcpDiux"&gt;https://youtu.be/zs2td3hdZVs?si=J45yW6NqWKcpDiux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Learn More About ServiceNow Custom Data LookUp and Record Matching:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.servicenow.com/bundle/washingtondc-platform-administration/page/administer/field-administration/concept/c_DataLookRecMatchSupport.html"&gt;https://docs.servicenow.com/bundle/washingtondc-platform-administration/page/administer/field-administration/concept/c_DataLookRecMatchSupport.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>development</category>
    </item>
    <item>
      <title>Don't Get Time-Warphed! Using GlideDate and GlideDateTime In ServiceNow</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 17 Apr 2024 18:52:11 +0000</pubDate>
      <link>https://dev.to/sophiasemga/dont-get-time-warphed-using-glidedate-and-glidedatetime-in-servicenow-2k9l</link>
      <guid>https://dev.to/sophiasemga/dont-get-time-warphed-using-glidedate-and-glidedatetime-in-servicenow-2k9l</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;code&gt;What day is it today?? Can someone Glidey check the time and let us know.😅&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  We spent the past few weeks exploring ServiceNow JavaScript  APIs and today I glidely present to you two  essential API tools for managing dates and times:
&lt;/h2&gt;

&lt;h4&gt;
  
  
  GlideDate and GlideDateTime.
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;While&lt;/strong&gt; both reside within the ServiceNow platform and function as server-side APIs, they cater to different scenarios and offer unique sets of functionalities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GlideDate&lt;/strong&gt; shines as an essential component within the platform that serves as a server side API class used for managing and manipulating date values. &lt;br&gt;
It is primarily used when dealing with dates exclusively and represents only the day component without any time information. Think birthdays, anniversaries, deadlines, or any scenario where only the day component matters. GlideDate effortlessly manages these dates, storing them in the familiar &lt;code&gt;"yyyy-MM-dd"&lt;/code&gt; format.&lt;br&gt;
It also offers a comprehensive set of methods for working with dates and a fundamental tool for developers building custom functionalities involving calculation of date comparisons, and formatting. &lt;br&gt;
Developers can access and initiate GlideDate object using the &lt;code&gt;GlideDate()&lt;/code&gt; function in server side scripts, to create a new GlideDate object representing the current date. This object can be manipulated using various methods provided by the GlideDate API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some methods include:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;getDate()&lt;/code&gt;: Retrieves the date portion of the GlideDate object in the form "yyyy-MM-dd".
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdpwydxq9dwcicw875yb.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-&lt;code&gt;getByFormat()&lt;/code&gt;: Retrieves the date portion of the GlideDate object in the specified format "dd-MM-yyyy" or “EEEE” to get day of the week.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01dv1pmfwbih4mv4rrxp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01dv1pmfwbih4mv4rrxp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;getDayOfMonthNoTZ()&lt;/code&gt;: Retrieves the day of the month, expressed in the UTC time zone.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8833eyfdw148ctabqdj.png" alt="Image description"&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  #####P.S, GlideDate Objects are stored in UTC (Coordinated Universal Time) by default. This is crucial to remember when displaying dates to users across different time zones.
&lt;/h6&gt;

&lt;h6&gt;
  
  
  ####If you need to adjust for time zones, consider leveraging the GlideTimeZone class (&lt;em&gt;not covered in this blog, but readily available in ServiceNow documentation&lt;/em&gt;).
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;getDisplayValue()&lt;/code&gt;: Retrieves the date value and time zone formatted based on the user's display preferences.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40hqhkhmd3thcv12n0u1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40hqhkhmd3thcv12n0u1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;getDisplayValueInternal()&lt;/code&gt;: Retrieves the date value in the internal format (yyyy-MM-dd) and time zone regardless of user preferences.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3snxpdupl4qmbv9htrhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3snxpdupl4qmbv9htrhx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;setValue(String value)&lt;/code&gt;: Sets the value of the GlideDate object. The input must be in the internal format "yyyy-MM-dd" and the system time zone by default.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx9hoz46l8uoqxq33ef8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx9hoz46l8uoqxq33ef8.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;getNumericValue()&lt;/code&gt;: Retrieves the date value as the number of milliseconds since January 1, 1970, 00:00:00 UTC.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxbuqlev33s1gnmnp94y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxbuqlev33s1gnmnp94y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-&lt;code&gt;isInPast(), isInFuture()&lt;/code&gt;: Checks if the GlideDate is in the past or future, respectively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1hb4gjaz2szhdih44r4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1hb4gjaz2szhdih44r4.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Similarly, you can manipulate dates by adding/subtracting days, weeks, etc using method like:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;addDays(Number days), addWeeks(Number weeks), addMonths(Number months)&lt;/code&gt;: Adds the specified number of days, weeks, or months to the GlideDate object.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0uqd95x1b1qxom0bvtz.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-&lt;code&gt;subtract()&lt;/code&gt;: Subtracts one GlideDate object from another, returning the difference in days.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fweist4ujqf48osy9xstr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fweist4ujqf48osy9xstr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GlideDate object can also be used to compare dates using operators like &amp;gt; (greater than), &amp;lt; (less than), and == (equal to), making decision making in workflows a breeze .&lt;/p&gt;

&lt;h2&gt;
  
  
  Next,
&lt;/h2&gt;

&lt;p&gt;We have our timekeeper API also known as &lt;strong&gt;GlideDateTime&lt;/strong&gt;. &lt;br&gt;
&lt;strong&gt;GlideDateTime&lt;/strong&gt; is another service side API that represents date and time combined. Think timestamps, time zone conversions, managing time-bound SLAs (Service Level Agreements), tracking login events with precise timestamps, or scheduling tasks with specific deadlines. GlideDateTime effortlessly handles all of these scenarios, representing dates and times in the format &lt;code&gt;"yyyy-MM-dd HH:mm:ss [year, month, day, hour, minute, second]”&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To invoke the GlideDateTime method, similarly to GlideDate use &lt;code&gt;new GlideDateTime()&lt;/code&gt; or provide a specific date and time string for more control.&lt;br&gt;
GlideDateTime inherits all functionalities of GlideDate for date manipulation, comparison, and formatting, but some of it’s additional methods for time handling include:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;getDayOfMonth()&lt;/code&gt;: Returns the current day of the month for the GlideDateTime object in UTC time zone.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnf0cwjoik7oxyrj99v10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnf0cwjoik7oxyrj99v10.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;getDayOfWeek()&lt;/code&gt;: Returns the day of the week for the GlideDateTime object expressed in the users time zone.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F19nf6pml311oq5ve1oaf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F19nf6pml311oq5ve1oaf.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;getYear()&lt;/code&gt;: Returns the year for the GlideDateTime object.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76r2kndq17ttvgxam77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76r2kndq17ttvgxam77.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;getDisplayValue()&lt;/code&gt;: Returns the date and time in the display format according to the user's preferences.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9bu601rgzpim5auj21p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9bu601rgzpim5auj21p.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;getDisplayValueInternal()&lt;/code&gt;: Returns the date and time in internal format, yyyy-MM-dd HH:mm:ss. This method is useful for date/time fields, but not for date fields.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb1uorzdsgejzguwpxyc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb1uorzdsgejzguwpxyc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  ####It also includes additional methods for time handling, such as adding/subtracting hours, minutes, seconds, extracting extra time components like &lt;code&gt;getHours(), getMinutes(), and getSeconds()&lt;/code&gt;
&lt;/h6&gt;

&lt;h6&gt;
  
  
  ####and time conversions&lt;code&gt;(with GlideTimeZone)&lt;/code&gt;
&lt;/h6&gt;

&lt;p&gt;&lt;code&gt;getUserTimeZone()&lt;/code&gt;: Retrieves the time zone for the current user session. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjyamc4h6xdb9abi87ns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjyamc4h6xdb9abi87ns.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;subtract()&lt;/code&gt;: Subtracts specified amount time.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08a30w764u8z58il4aw7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08a30w764u8z58il4aw7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;u&gt;Choosing the Right Tool for the Job&lt;/u&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Date Only? GlideDate&lt;/strong&gt; is your champion for scenarios where time is irrelevant (e.g., birthdays, anniversaries).&lt;br&gt;
&lt;strong&gt;Dates and Times? GlideDateTime&lt;/strong&gt; reigns supreme when you need to manage both dates and times (e.g., deadlines, scheduled events). GlideDateTime's versatility makes it a future-proof choice, as you can always incorporate time elements if needed.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Remember: GlideDateTime builds upon GlideDate, offering all its functionalities in addition to time management. This makes it the more versatile option for most development scenarios.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3dfl26zw561ccazt9jb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3dfl26zw561ccazt9jb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay tuned for more insights on JavaScript APIs within the ServiceNow platform. We’ve merely scratched the surface, and there’s so much more knowledge waiting for us to explore.&lt;/p&gt;

&lt;p&gt;Until our next “glide” (or should I say “dive”) into the depths of JavaScript APIs,&lt;/p&gt;

&lt;h6&gt;
  
  
  ####Happy coding! 😄
&lt;/h6&gt;




&lt;p&gt;.Learn More About ServiceNow GlideDate: &lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideDate/concept/GlideDateAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideDate/concept/GlideDateAPI.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.Learn More About ServiceNow GlideDateTime:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideDateTime/concept/c_GlideDateTimeAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideDateTime/concept/c_GlideDateTimeAPI.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>api</category>
      <category>cloud</category>
      <category>development</category>
    </item>
    <item>
      <title>Glide Like a Pro: Building Dynamic Forms with Glide Form</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 03 Apr 2024 18:09:04 +0000</pubDate>
      <link>https://dev.to/sophiasemga/glide-like-a-pro-building-dynamic-forms-with-glide-form-35e2</link>
      <guid>https://dev.to/sophiasemga/glide-like-a-pro-building-dynamic-forms-with-glide-form-35e2</guid>
      <description>&lt;h3&gt;
  
  
  In our previous article, we delved into the realm of JavaScript, particularly focusing on APIs in ServiceNow, with a spotlight on Glide Record and Glide Ajax. Let’s quickly recap our journey, shall we? 😊
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Glide Ajax&lt;/strong&gt;, a client-side API, facilitates asynchronous calls to server-side scripts (such as script includes and business rules) from client-side scripts (UI policies, Catalog UI policies). It acts as a bridge enabling seamless integration of server-side functionalities like database queries without causing page refreshes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On&lt;/strong&gt; the flip side, &lt;strong&gt;Glide Record&lt;/strong&gt;, a server-side API, is crucial for efficient database operations. It handles operations such as queries, updates, and deletions of records through server-side scripts (like script includes and business rules).&lt;/p&gt;

&lt;p&gt;In our exploration, we delved deeper into the specific APIs associated with each function, their methods, and the tasks these methods perform. However, one lingering mystery still remains: the origin of the term &lt;em&gt;“Glide”&lt;/em&gt;—perhaps hinting at the smooth user interface development experience?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Today&lt;/em&gt;&lt;/strong&gt;, our focus shifts to another powerful and informative JavaScript class: &lt;strong&gt;Glide form&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Glide form&lt;/strong&gt;, a client-side script API, plays a vital role in developing and customizing user interfaces. It allows developers to manipulate form elements, set and retrieve field values, and interact seamlessly with the user interface.&lt;br&gt;
Accessed through the &lt;em&gt;g_form&lt;/em&gt; global object in client-side scripts like UI policies and client scripts, Glide form’s methods are tailored for making precise and custom changes to form views of records. &lt;/p&gt;

&lt;h3&gt;
  
  
  Here's a glimpse into some key methods:
&lt;/h3&gt;

&lt;h5&gt;
  
  
  Form Element Manipulation:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;g_form.setValue(fieldName, value):&lt;/code&gt; Sets the value of a field on the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehvltyzc3ogzzoi4ijjk.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;g_form.getValue(fieldName):&lt;/code&gt; Retrieves the value of a field on the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy87d8738hisv3szx5hpq.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;g_form.setDisplay(fieldName, display):&lt;/code&gt; Sets the display value of a field on the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4axw43cy2np4b55v2ew.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  UI Interaction:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;g_form.hideRelatedList(list-TableName):&lt;/code&gt; Hides a related list on the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qxugd9nlf9jc1ptzh3w.png" alt="Image description"&gt;
-&lt;code&gt;g_form.showRelatedList(list-TableName):&lt;/code&gt; Shows a hidden related list on the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1apsg7ww9p9e7dcsi1t6.png" alt="Image description"&gt;
-&lt;code&gt;g_form.addInfoMessage(message):&lt;/code&gt; Adds an informational message to the form.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faj3wq3ur1b6alkvvrniy.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Set Field Properties:
&lt;/h5&gt;

&lt;p&gt;-&lt;code&gt;g_form.setMandatory(fieldName, isMandatory):&lt;/code&gt; Sets a field as mandatory or optional.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3qc4wscwfrm9oe7sl6x3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3qc4wscwfrm9oe7sl6x3.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
-&lt;code&gt;g_form.setReadOnly(fieldName, isReadOnly):&lt;/code&gt; Sets a field as read-only or editable.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhusae1bjhm14a1kxwew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhusae1bjhm14a1kxwew.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
-&lt;code&gt;g_form.setVisible(fieldName, isVisible):&lt;/code&gt; Sets a field as visible or hidden.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtq7v8l0hkwbt2qys5q9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtq7v8l0hkwbt2qys5q9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Ensuring Data Integrity/Form Validation:
&lt;/h5&gt;

&lt;p&gt;-&lt;code&gt;g_form.validate():&lt;/code&gt; Validates all visible fields on the form and returns true if they are all valid; otherwise, returns false. (ideal for ensuring complete forms before submission).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvzb4p5bteq3c35xi6wq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvzb4p5bteq3c35xi6wq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But that’s just the tip of the iceberg!! &lt;br&gt;
Glide form API encompasses many additional methods, such as returning HTML elements on forms to facilitate specific functions like applying custom CSS styles based on conditions or validating form fields using logic. These methods allow you to:&lt;br&gt;
    -&lt;code&gt;getElement():&lt;/code&gt; Returns HTML element of any elements on the current page/form.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5icjqwhm0v3b3mjgs17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5icjqwhm0v3b3mjgs17.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
    -&lt;code&gt;g_form.getElement():&lt;/code&gt; Returns HTML elements of a specific field name on the form, useful for accessing HTML elements representing a form field.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2ul5pzti3e24atp7lip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2ul5pzti3e24atp7lip.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
    -&lt;code&gt;g_form.getHelpTextControl():&lt;/code&gt; Retrieves the help text control associated with a form field, which is used to display additional information/instructions associated with a field.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32zwhkhqllh6nwkq6c4e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32zwhkhqllh6nwkq6c4e.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are just a few of the many different methods Glide form API has to create dynamic and user-friendly forms. &lt;br&gt;
However, while these methods are incredibly powerful, they must be utilized in line with best practices to ensure maintainability and compatibility within the platform. More of these methods can be found here at:[&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideForm/concept/c_GlideFormAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideForm/concept/c_GlideFormAPI.html&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Real-World Applications&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Glide forms empower you to streamline user interactions within ServiceNow applications. Here are some examples:&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Customizing incident forms: Hide irrelevant fields based on the incident category.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Enhancing user input processes: Make specific fields mandatory based on selections in other fields.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Building dynamic forms: Create forms that adapt to user input and context.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Glide forms offer immense power for crafting user-friendly and dynamic forms in ServiceNow. By mastering these methods and best practices, you can elevate your development skills and create amazing experiences for users. &lt;br&gt;
   Stay tuned for more insights on JavaScript APIs within the ServiceNow platform. We’ve merely scratched the surface, and there’s so much more knowledge waiting for us to explore.&lt;/p&gt;

&lt;p&gt;Until our next “glide” (or should I say “dive”) into the depths of JavaScript APIs,&lt;/p&gt;

&lt;h6&gt;
  
  
  ####Happy coding! 😄
&lt;/h6&gt;




&lt;p&gt;.Learn more about ServiceNow GlideForms Here:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideForm/concept/c_GlideFormAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideForm/concept/c_GlideFormAPI.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.Learn More About ServiceNow APIs:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/build/applications/concept/api-reference.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/build/applications/concept/api-reference.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.Learn More about ServiceNow ClientSide Scripting:&lt;br&gt;
&lt;a href="https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/client-scripts/concept/client-scripts.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/client-scripts/concept/client-scripts.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>api</category>
      <category>cloud</category>
      <category>ui</category>
    </item>
    <item>
      <title>The Glides: Understanding ServiceNow Glide APIs-The Difference between GlideAjax vs GlideRecord</title>
      <dc:creator>Sophia Semga</dc:creator>
      <pubDate>Wed, 20 Mar 2024 16:52:38 +0000</pubDate>
      <link>https://dev.to/sophiasemga/the-glides-understanding-servicenow-glide-apis-the-difference-between-glideajax-vs-gliderecord-179m</link>
      <guid>https://dev.to/sophiasemga/the-glides-understanding-servicenow-glide-apis-the-difference-between-glideajax-vs-gliderecord-179m</guid>
      <description>&lt;h2&gt;
  
  
  In the realm of ServiceNow scripting, terms like Glide Ajax, Glide Record, and Glide Form often appear, but what do they actually mean?? How do they relate to scripting syntax, and why do they sound so similar?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;In this blog, we will glide through the explanation of these API functions, addressing these questions except for the curious resemblance in names.&lt;/strong&gt;😅&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To begin,&lt;/strong&gt; it's crucial to understand that Glide Record and Glide Ajax are &lt;em&gt;distinct&lt;/em&gt; APIs with separate functionalities, catering to different scripting aspects within ServiceNow. &lt;br&gt;
Now that we’ve got that introduction out of the way, let’s dive in.⬇️&lt;/p&gt;

&lt;p&gt;To understand and differentiate between the two sets of APIs, we need to backtrack to the beginning of ServiceNow. In the early stages of ServiceNow development, the term &lt;strong&gt;"Glide"&lt;/strong&gt; originated from the foundational technology framework of the ServiceNow platform. This framework incorporates various APIs, libraries, and technologies that aid developers in building and customizing applications. Given that ServiceNow heavily relies on JavaScript for client-side and server-side scripting, the Glide APIs are JavaScript-based, making it familiar and accessible for developers.&lt;/p&gt;

&lt;p&gt;Glide Record, Glide Ajax, and other Glide APIs were purpose-built by ServiceNow to streamline interactions within the platform, enhancing efficiency and customization capabilities for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Glide Ajax&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Glide Ajax operates as a client-side API, enabling asynchronous calls to server-side scripts (such as script includes and business rules) from client-side scripts (like UI policies and Catalog UI policies). This asynchronous communication ensures that server-side actions, such as querying databases, occur without disturbing website performance, ultimately enhancing the user experience.&lt;/p&gt;

&lt;p&gt;Unlike Glide Record, Glide Ajax &lt;em&gt;does not&lt;/em&gt; have its own set of APIs but rather serves as a channel between client-side JavaScript and server-side scripts, allowing seamless integration of server-side functionality without page refreshes. The core method in Glide Ajax, &lt;code&gt;getXMLWait()&lt;/code&gt;, facilitates sending requests to server-side script includes or scripted REST APIs, and awaiting responses for further client-side processing.&lt;br&gt;
Here's a basic example illustrating Glide Ajax usage:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Define a script include or scripted REST API with the desired logic for asynchronous invocation.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyj5clw7eqbp93he469ul.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;Create a client-side script (e.g., UI policy or UI action) utilizing Glide Ajax to call the server-side script and handle the response.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytcnxnr8a0vtrh5ge0u9.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While Glide Ajax offers a limited range of methods, its specialized role in facilitating asynchronous client-server communication within the ServiceNow platform is invaluable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring Glide Record&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the server side, Glide Record shines as an essential API for database operations, eliminating the need for direct SQL queries. It empowers developers to conduct queries, updates, and deletions of records efficiently within ServiceNow scripts, such as script includes and business rules.&lt;/p&gt;

&lt;p&gt;Glide Record provides a strong set of APIs, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;query()&lt;/code&gt;: Executes query records based on specified conditions.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg300fw0x0zelhpyq524k.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;addQuery()&lt;/code&gt;: Adds additional conditions to the query.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbe82ljaa55afp3qfwge.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get()&lt;/code&gt;: Retrieves a single record based on current query conditions.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1944kdpfblq26g7u9jp.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next()&lt;/code&gt;: Moves the GlideRecord cursor to the next record in the result set.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53bxnq5rv8ntizj14ryd.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;insert()&lt;/code&gt;: Adds a new record to the database.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6mapcci0swt0193thr4.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;update()&lt;/code&gt;: Modifies the current record.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d6p81yvunl71fm6ztml.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deleteRecord()&lt;/code&gt;: Removes the current record.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczs737us7t0bwqhychgm.png" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These APIs, combined with specific conditions and parameters, empower developers to manipulate records and ServiceNow tables effectively, enhancing workflow automation and data management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In conclusion&lt;/strong&gt;, while Glide Record and Glide Ajax fulfill distinct roles within the ServiceNow ecosystem, they are essential components contributing to platform functionality. Glide Record streamlines server-side database interactions, while Glide Ajax facilitates efficient client-server communication, collectively enhancing user experiences and productivity within ServiceNow environments.&lt;/p&gt;




&lt;p&gt;•Learn More About ServiceNow Scripting Here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.servicenow.com/dev.do#!/learn/learning-plans/tokyo/new_to_servicenow/app_store_learnv2_scripting_tokyo_introduction_to_servicenow_scripting" rel="noopener noreferrer"&gt;https://developer.servicenow.com/dev.do#!/learn/learning-plans/tokyo/new_to_servicenow/app_store_learnv2_scripting_tokyo_introduction_to_servicenow_scripting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.servicenow.com/dev.do#!/learn/courses/tokyo/app_store_learnv2_scripting_tokyo_scripting_in_servicenow" rel="noopener noreferrer"&gt;https://developer.servicenow.com/dev.do#!/learn/courses/tokyo/app_store_learnv2_scripting_tokyo_scripting_in_servicenow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Learn More About ServiceNow GlideAjax Here: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideAjax/concept/c_GlideAjaxAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideAjax/concept/c_GlideAjaxAPI.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/ajax/topic/p_AJAX.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-application-development/page/script/ajax/topic/p_AJAX.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Learn More About ServiceNow GlideRecord Here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideRecord/concept/c_GlideRecordAPI.html" rel="noopener noreferrer"&gt;https://docs.servicenow.com/bundle/washingtondc-api-reference/page/app-store/dev_portal/API_reference/GlideRecord/concept/c_GlideRecordAPI.html&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  ##TheWorldWorksWithServiceNow🌏
&lt;/h6&gt;

</description>
      <category>javascript</category>
      <category>cloud</category>
      <category>api</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
