Are the results different then? e. Open your Base64 encoded certificate downloaded from Azure portal in Notepad. ServiceNow supports automatic user provisioning, which is enabled by default. Using these attributes, you can control the element name, namespace, and XML Schema (XSD) data type as defined in the W3C document titled XML Schema Part 2: Datatypes. If you still can't resolve your problem, contact ServiceNow support, and ask them to turn on SOAP debugging to help troubleshoot. c. Copy the ServiceNow Homepage value, and paste it in Sign-on URL in the ServiceNow Basic SAML Configuration section of the Azure portal. Alternatively, you can also use the Enterprise App Configuration Wizard. Moreover, this is not something that affects any real issues in practice. For all data Im not sure thats what youre looking for though. For more information about the Access Panel, see Introduction to the Access Panel. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. The attributes selected as Matching properties are used to match the user accounts in ServiceNow for update operations. By using a Contains type of search instead of the default Starts with type of search against the display value for a table I can effectively search on multiple terms in the same field since Ive included them in the same display value string. For ServiceNow, an instance or tenant of ServiceNow supports Calgary, Kingston, London, Madrid, New York, Orlando, Paris and San Diego versions or later. In ServiceNow, the Dictionary Entry form was designed to give an Advanced view and with additional fields. b. First story where the hero/MC trains a defenseless village against raiders. Instead of creating a field that returns an array of typed objects, however, you can create a field that returns a single ArrayList. Since 2009, ServiceNow Guru has been THE go-to source of ServiceNow technical content and knowledge for all ServiceNow professionals. They allow them to dynamically filter the options within a reference field available. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. repository [source control]: A collection of application files and metadata that includes changes over Please be sure tobookmark this articleas well asmark it as Helpful if you thought it was helpful. Some questions about display values that I hear very often are How do I show information from more than one field for the display value? or Can I have different display values on 2 reference fields that reference the same table?. Users with the Default Access role are excluded from provisioning and will be marked as not effectively entitled in the provisioning logs. The XmlRootAttribute can be applied to only one class: the class that, when serialized, represents the XML document's opening and closing elementin other words, the root element. This operation starts the initial synchronization cycle of all users and groups defined in Scope in the Settings section. I was confused since when querying initialy what was returned was a mix of filled and empty fields and some fields that I saw in portal were missing, which lead me to think I have the wrong query instead of missing permissions. Enter your credentials. You can also specify the types that can be included in an array. To configure ServiceNow manually, follow these steps: In the left pane, select Identity Providers. If you need additional roles, you can update the application manifest to add new roles. I agree. If you choose to change the matching A user account in ServiceNow with the admin role. Multiple Reference Display Values Per Table, Harnessing the Power of Dynamic Filters in ServiceNow, Forcing a Session Timeout for the Remember me Checkbox, Find all System References to a Specific Record, Delete or Update Activity log and Journal Field Entries, Localization framework fulfillment (LP, LRITM, LFTASK), GlideDialogWindow: Advanced Popups Using UI Pages, Swapping Hardware Assets in ServiceNow with HAM Pro, Thanks! The XmlArrayAttribute and the XmlArrayItemAttribute attributes control the serialization of arrays. To configure automatic user provisioning for ServiceNow in Azure AD: Sign in to the Azure portal. Maybe this helps, ServiceNow API - How to get all users and all their attributes, docs.servicenow.com/en-US/bundle/tokyo-platform-administration/, Microsoft Azure joins Collectives on Stack Overflow. Select single sign-on. This article describes the steps that you'll take in both ServiceNow and Azure Active Directory (Azure AD) to configure automatic user provisioning. The post Diversity, Inclusion, & Belonging Training appeared first on Crossfuze. f. Click on Advanced and give the Single Sign-On Script value as MultiSSOv2_SAML2_custom. Review the user attributes that are synchronized from Azure AD to ServiceNow in the Attribute-Mapping section. Select the " " and save- you can further configure it for particular views as well. Diversity, Inclusion, & Belonging Training. Kairsten Fay. Ive never done 2 separate reference fields referring to the same piece of data. Right click on the grey bar at the top of the screen and click Copy sys_id and use this value to the Sign on URL in Basic SAML Configuration section. Otherwise, to manually configure ServiceNow to use Azure AD as a SAML Identity Provider, select Manually configure single sign-on. For Entity ID / Issuer, enter the URL of your ServiceNow tenant. Select the copy button to copy App Federation Metadata Url, and paste it into Notepad. When asked for your credentials, enter them. You're redirected to the Azure AD page for sign-in. If you need to create a user manually, contact the ServiceNow Client support team. Sign in to the Azure portal by using either a work or school account, or by using a personal Microsoft account. 3. On the Set up single sign-on with SAML page, in the SAML Signing Certificate section, find Certificate (Base64). Also, if you add specific Query Parameters to your request like sysparm_query or sysparm_fields, this will limit what you get. Hi, thanks for the input, this was a few months ago, I ended up realizing there is a permission issue for the user I was using to run the job with. The post Certified Diversity Recruiters appeared first on Crossfuze. Do this by going to the ServiceNow > Attributes > Single sign-on section of the Azure portal, and mapping the desired field to the nameidentifier attribute. For example, you can listen to the podcast "CJ & The Duke" of Robert Fedoruk and Cory Wesley (https://lnkd.in/evUvX7M7). It supports both Android and iOS users. Making statements based on opinion; back them up with references or personal experience. Then select the Send an email notification when a failure occurs check box. In the Add New Identity Provider dialog box, under Configure Identity Provider, perform the following steps: a. Special characters like underscores (_) are removed. Other experts have already discussed the enormous importance of good documentation in detail. Select the Save button to commit any changes. Please provide a current ServiceNow administrative user name and password along with the name of a valid ServiceNow instance. You can also specify the types that can be included in an array. The XmlTypeAttribute, on the other hand, can be applied to any class, including the root class. ServiceNow - What are the security roles user needs to have to add/delete sys_users via the Rest api? This URL will be used later in the tutorial. b. Under Additional Service Provider Properties, perform the following steps: a. What you see is the full name of a user. To configure scoping filters, see the instructions in the Scoping filter tutorial. WebGlideCurrencyFormatter.format()method to format the currency. The following code shows how an attribute enables this functionality by setting the ElementName property of an XmlElementAttribute: For more information about attributes, see Attributes. Ive poured a lot of knowledge and information into this book, and Im delighted to be able to make this information available to everyone who wishes to learn about hardware asset management in ServiceNow. c. In The field on the user table that, enter user_name. For more information on using the tool, see The XML Schema Definition Tool and XML Serialization. Good update on this, although it would be very helpful if there was a dynamic way to define this as a variable in the future. For Protocol Binding for the IDP's SingleLogoutRequest, enter urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect. Sign on to your ServiceNow application as an administrator. Why Occlusion Culling Improves Performance, Why English teachers make good Project Managers, How To Check Many To Many Field is None Or Empty in Django, Rust: Performance and Safety for the Compiled Language Neophyte. To enable this service, go to the Set up ServiceNow section, and select View step-by-step instructions to open the Configure sign-on window. The attributes selected as Matching properties are used to match the groups in ServiceNow for update operations. Define the users and groups that you want to provision to ServiceNow by choosing the desired values in Scope in the Settings section. This has been one of my pet peeves for quite some time. Just be aware that there are plusses and minuses to each solution currently. What are possible explanations for why blue states appear to have higher homeless rates per capita than red states? The location "LA" must be added to the reference table in ServiceNow, or the user attribute in Azure AD must be updated to match the format in ServiceNow. Catalog variables dont support the same attributes that regular reference fields do. On your catalog item, create a new multiple-choice or select box variable (either will work, we are after the Choices related list here), give it a name and some question text, and then submit. For Identifier (Entity ID), enter a URL that uses the following pattern: #training #cisco #aci, ServiceNow HAM Expert | GlideFast | Founder of ITAM Institute | Author, Im excited to announce that today is the launch of my second book Hardware Asset Management in ServiceNow. Ignore the error and select Activate. To remedy this outcome, apply the attribute twice, each time setting the Type property for each acceptable type (base and derived). The list collector variable type in the service catalog is advantageous when it comes to allowing multiple selections on a catalog variable without creating a bank of checkboxes or a bunch of extra variables for users to read through, (but only if you have a table to reference to generate your options). I have seen many catalog items where there are five or more checkboxes with a , please select one or more options help text with an onSubmit client script doing a check to see if the user has checked the required number of checkboxes. The javascript: prefix is the similar one, but the user needs to refer his Script Include function as a substitute of the business rule function. The value stored for the selected attribute in Azure AD (for example, user principal name) must match the value stored in ServiceNow for the entered field (for example, user_name). How dry does a rock/metal vocal have to be during recording? For Name, enter a name for your configuration (for example, Microsoft Azure Federated single sign-on). c. For Reply URL, enter one of the following URL pattern: On the Set up single sign-on with SAML page, in the SAML Signing Certificate section, select Download to download the Certificate (Base64) from the specified options, as per your requirement. Select the automatically generated identity provider. Another useful option for reference fields is to display additional attributes in the autocomplete drop-down. You have to map it manually to your identity provider in ServiceNow. Learn more about Microsoft 365 wizards. Just finished my current **SERVICENOW** assignment. For more information on the Azure AD automatic user provisioning service, see Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory. Save it on your computer. If you try to provision a user whose department is "Sales" and whose location is "Seattle," that user will be provisioned successfully. Manage your accounts in one central location: the Azure portal. Navigate to the table list and open the . Webrepository [ServiceNow application]: See ServiceNow application repository. Link : https://lnkd.in/dkcYv4AS. By default, an XML element name is determined by the class or member name. In this tutorial, you'll learn how to integrate ServiceNow with Azure Active Directory (Azure AD). The XmlTypeAttribute allows you to control the schema of the generated XML. Can I (an EU citizen) live in the US if I marry a US citizen? WebThe first step is to set up your decimal field. Cause if you want to do that from within SN, there is the GlideRecord server API you can use. If youd like to learn even more ServiceNow tips and tricks, connect with the Covestic team atservicenow@covestic.com. The Contains/Calculated field method will, the other one wont. And did you know, that Atlassian offers something similar to the PDIs of ServiceNow? What if you wanted to be able to do auto complete based on User Name or User ID? 2. WebTo configure a field hover over the field, then click the Edit field button on the field. How can citizens assist at an aircraft crash site? An Azure AD subscription. Once this is done (and Ive updated all of the records in the table so that my calculation gets stored on each record) I can make this field my display field for the table and change how searches are performed on references to that table. If you choose to change the ** matching target attribute, you'll need to ensure that the ServiceNow API supports filtering users based on that attribute. With a single, mandatory list collector, the user can select any options they need with the added benefit of being less tedious than creating multiple checkbox variables. That technique will allow traffic flow from the Azure AD provisioning service to your application. You can find the instance name in the URL that you use to access ServiceNow. Looks like the time has come! Learn how to enforce session control with Microsoft Defender for Cloud Apps. In the Single Sign-On dialog box, select the configuration icon on the upper right, and set the following properties: a. Toggle Enable multiple provider SSO to the right. The SSO Logout Test Results error is expected. You can have Azure AD automatically configure ServiceNow for SAML-based authentication. WebHow search works: Punctuation and capital letters are ignored. Pagination Query is a SQL query that runs on the database when a list loads: You can configure the ServiceNow Agent (Mobile) application with Azure AD for enabling SSO. What this means is that EVERY reference field that references a particular table needs to use that tables display value so you cannot mix and match between reference fields. Indefinite article before noun starting with "the". In the Identity Providers dialog box, select SAML. In the Azure portal, on the ServiceNow application integration page, select single sign-on. Also a special thanks to GlideFast Consulting for sponsoring the book. For The field on the user table that, enter email. I use it for organizing code snippets, article drafts, bookmarks, etc. The attributes selected as Matching properties are used to match the user accounts in ServiceNow for update operations. If "/ " is added in the Identifier value, please remove that manually. Configure the properties for the new field. var grp = new GlideRecord(sys_user_grmember); //build a comma separated string of groups if there is more than one group, // return Groups where allocated to is in those groups we use IN for lists. Please find my latest ServiceNow community blog Interesting. If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. For ServiceNow Express, an instance of ServiceNow Express, Helsinki version or later. You can therefore use an ArrayList much as you use an array. For example, by default, serializing the array below will result in an XML element named Employees. The more people that ask for it, the more likely it is that it will be included as a feature in a future release. Here in this topic of Advanced Reference Qualifier, I would like to specifically mention how to leverage a Script Include substitute of a global Business Rule to run the qualifier script. For ServiceNow Homepage, enter the URL of your ServiceNow instance homepage. A ServiceNow single sign-on (SSO) enabled subscription. Marked as answer. In the Select a single sign-on method dialog box, select SAML/WS-Fed mode to enable single sign-on. For Name, enter a name for your configuration (for example: SAML 2.0). In Import Identity Provider Metadata, perform the following steps: Enter the App Federation Metadata Url that you've copied from the Azure portal. I know that this has been asked for before too. how to get ServiceNow records by date in Python API request? It reads the IdP metadata URL, and populates all the fields information. For 2023 I decided to out myself. Then download it. I promise you, the effort will pay off in any case! However, as with arrays, you must inform the XmlSerializer of the types of objects the ArrayList contains. If you don't apply the XmlArrayItemAttribute, the code will fail at run time because the derived class type won't be recognized. c. For Identity Provider's AuthnRequest, paste the value of the authentication request URL that you copied from the Azure portal. At https://lnkd.in/e8E9Jqmz you can request a free Confluence workspace for personal use only. This training provides our recruiters with tools and strategies to improve our diversity and inclusion efforts. Thus, the above words present the dictionary entries and dictionary overrides within ServiceNow. 2023 Covestic - A Milestone Company. These attributes arent searchable and they wont show up as the display value when the field gets populated, but they do make it very simple to display more than just the display value in an autocomplete. More info about Internet Explorer and Microsoft Edge, How to: Specify an Alternate Element Name for an XML Stream, Attributes That Control Encoded SOAP Serialization, Attributes That Control XML Serialization, The XML Schema Definition Tool and XML Serialization. The admin username provided must have the security_admin role assigned in ServiceNow for this to work. Let's say for simplicity you have a table called "Problem" with 3 fields: Number Creation date Created by e. For Identity Provider Certificate, select the certificate you created in the previous step. d. For Create an AuthnContextClass, toggle it to off (unselected). A serialized instance might resemble the following code: By applying a XmlArrayAttribute, you can change the name of the XML element, as follows: The resulting XML might resemble the following code: The XmlArrayItemAttribute, on the other hand, controls how the items contained in the array are serialized. There are several important fields on the Dictionary entry record. ServiceNow reference qualifier JavaScript if. However, we recommend that you create a separate app when you're testing the integration. Out of the box, ServiceNow has an ACL on the question_choice table that locks read functionality to the catalog_admin and admin roles (and others depending on which plugins and applications you have in your instance) so you will need to update that. For automatic configuration, enable the multi-provider plugin for ServiceNow. Connect and share knowledge within a single location that is structured and easy to search. In the Single Sign-On dialog box, select Add New IdP. The display value for a reference field is what the end user actually sees when they search in a reference field to produce an autocomplete drop down and what they can see when a reference field gets populated. On the Select a single sign-on method page, select SAML. Under Additional Identity Provider Properties, perform the following steps: a. The training was structured with more labs than decks. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. To accomplish this, assign multiple instances of the XmlElementAttribute to the field, as shown in the following example. I am querying it using a PowerShell script. I'm assuming you want to access SN API from another application? By applying the XmlRootAttribute, you can control the XML stream generated by the XmlSerializer. ** Select the Save button to commit any changes. Open for any freelancing assignments. Why is a graviton formulated as an exchange between masses, rather than between mass and spacetime? Please message me for further discussion. Control in Azure AD who has access to ServiceNow. More info about Internet Explorer and Microsoft Edge, Configure Azure AD SSO for ServiceNow Express, Learn how to enforce session control with Microsoft Defender for Cloud Apps. The objective of this section is to create a user called B.Simon in ServiceNow. In User Field, enter email. When you're assigning users and groups to ServiceNow, you must select a role other than Default Access. The Employees element will contain a series of elements named after the array type Employee. 1. Also, check your licensing/subscription to make sure you are not opening yourself up to additional licensing fees. Hope you all are doing great. To enable the Azure AD provisioning service for ServiceNow, change Provisioning Status to On in the Settings section. All rights reserved. The admin username provided must have the security-admin role assigned in ServiceNow for this to work. Information about reference fields and reference field display values can be found here. WebPopulating a currency field (through scripting) with a value based on another currency field using getDisplayValue () populates the field with 0.00 - Support and Troubleshooting - Please fill out this form and a member of our team will reach out to connect. This was just what I was looking for, thanks for sharing. , toggle it to off ( unselected ) enable single sign-on ArrayList contains a user affects any issues... And XML serialization ArrayList contains, the Dictionary Entry form was designed to give an Advanced and. New roles that you want to servicenow currency field attributes auto complete based on user name or ID! On opinion ; back them up with references or personal experience AD who Access! On opinion ; back them up with references or personal experience from within SN, there is GlideRecord. Starts the initial synchronization cycle of all users and groups that you create a user wo n't be recognized in. On in the field, as shown in the left pane, select single sign-on method page, add! Know, that Atlassian offers something similar to the Access Panel AuthnContextClass, toggle it to (... Name and password along with the name of a user, as with arrays, you 'll how... Sign on to your application do auto complete based on user name and password along with the name of user! Under configure Identity Provider, select manually configure single sign-on more information about reference fields and reference display. The XmlArrayItemAttribute attributes control the XML stream generated by the XmlSerializer name in the following:... Of the types of objects the ArrayList contains it into Notepad step is to Set ServiceNow... The provisioning configuration seems to be able to do auto complete based on opinion ; back them up with or... User table that, enter a name for your configuration ( for example: SAML 2.0 ) that... Enable this service, go to the Azure portal sysparm_fields, this is not something that affects any real in! Support the same piece of data, can be applied to any class, including the class! In practice in ServiceNow for update operations additional attributes in the add New.. Based on opinion ; back them up with references or personal experience Homepage, enter name... Opinion ; back them up with references or personal experience in Azure AD provisioning service to your application! Can citizens assist at an aircraft crash site as with arrays, you can find the name!, check your licensing/subscription to make sure you are not opening yourself up to additional licensing.... Records by date in Python API request Active Directory ( Azure AD provisioning service for ServiceNow Express, an of... Check your licensing/subscription to make sure you are not opening yourself up to additional fees... A rock/metal vocal have to be in an array to work enter urn: oasis: names::! Ad who has Access to ServiceNow in Azure AD to ServiceNow by choosing the desired values in Scope the. First on Crossfuze one of my pet peeves for quite some time page, select single sign-on SSO! Underscores ( _ ) are removed share knowledge within a single location is! See ServiceNow application integration page, in the single sign-on with SAML page select. Users with the default Access role are excluded from provisioning and will be marked as effectively! Allows you to control the serialization of arrays AD ) step-by-step instructions to Open the configure sign-on.! For update operations elements named after the array below will result in an array there the!, enable the Azure portal in Notepad Microsoft Edge to take advantage of the latest features, security updates and! To Open the configure sign-on window any changes that reference the same table?, the Dictionary form... Want to Access ServiceNow via the Rest API yourself up to additional licensing fees fields information on! The attributes selected as Matching properties are used to match the groups ServiceNow. Can be included in an XML element name is determined by the XmlSerializer of the types that can included. What if you want to Access SN API from another application the instance name the... Add New IdP paste it into Notepad technical content and knowledge for data. That Atlassian offers something similar to the Set up single sign-on ( SSO ) enabled subscription red! Do n't apply the XmlArrayItemAttribute, the above words present the Dictionary and! Groups in ServiceNow give the single sign-on default Access ArrayList contains pay off in any case webthe first step to! The XmlArrayItemAttribute attributes control the Schema of the Azure portal the XmlRootAttribute, you must the! Drafts, bookmarks, etc names: tc: SAML:2.0: bindings: HTTP-Redirect seems be... Entry record provides our Recruiters with tools and strategies to improve our Diversity and Inclusion efforts Base64.. Offers something similar to the Azure portal, on the user accounts in ServiceNow for update operations the request... That technique will allow traffic flow from the Azure portal password along with the admin username must... Accomplish this, assign multiple instances of the generated XML SAML-based authentication can find the instance in! Are several important fields on the ServiceNow application ]: see ServiceNow application page. Alternatively, you must select a role other than default Access role are from!: the Azure portal more information about the Access Panel 's SingleLogoutRequest, enter email, paste the of. Toggle it to off ( unselected ) this, assign multiple instances the... To Set up ServiceNow section, and paste it into Notepad it in sign-on in. Personal use only review the user table that, enter a name for your configuration ( for example SAML... Important fields on the Set up single sign-on have higher homeless rates per than... Within a reference field available and password along with the Covestic team atservicenow @.. Work or school account, or by using a personal Microsoft account issues in practice post Diversity, Inclusion &... To display additional attributes in the ServiceNow Homepage value, and ask them to turn SOAP! Advanced and give the single sign-on with additional fields enable single sign-on Script value MultiSSOv2_SAML2_custom!, paste the value of the Azure AD as a SAML Identity Provider 's AuthnRequest, the. Of good documentation in detail traffic flow from the Azure portal the XML Definition. Service to your request like sysparm_query or sysparm_fields, this will limit what you get and XML serialization the portal! Homeless rates per capita than red states, paste the value of the XmlElementAttribute to the portal... The Rest API `` `` and save- you can control the serialization of arrays easy to search the root.! Name, enter a name for your configuration ( for example: 2.0! Snippets, article drafts, bookmarks, etc ( an EU citizen live... Knowledge within a single sign-on ( SSO ) enabled subscription role assigned in ServiceNow aware there. Which is enabled by default, serializing the array type Employee be marked not... An unhealthy state, the other hand, can be found here my current * select... Defender for Cloud Apps you 're testing the integration IdP Metadata URL, and technical support detail! You 'll learn how to get ServiceNow records by date in Python API request use an ArrayList much as use... This has been one of my pet peeves for quite some time to off ( unselected ) per capita red. Servicenow administrative user name and password along with the name of a user called B.Simon in ServiceNow with Azure Directory... Options within a single location that is structured and easy to search enabled by default, serializing the type!, the effort will pay off in any case bookmarks, etc initial synchronization cycle of all users groups. Are the security roles user needs to have to add/delete sys_users via the Rest API field method will the! Automatic user provisioning for ServiceNow Homepage value, please remove that manually content and knowledge for all ServiceNow professionals code. 2009, ServiceNow Guru has been asked for before too: SAML:2.0: bindings:.! Updates, and populates all the fields information select the `` `` and save- you can also use the App... Appeared first on Crossfuze ]: see ServiceNow application as an exchange between,... Class or member name you copied from the Azure portal add specific Query Parameters to request... Find Certificate ( Base64 ) knowledge within a reference field display values can included! Option for reference fields is to create a user to GlideFast Consulting for the! When you 're redirected to the PDIs of ServiceNow Express, Helsinki version later... That is structured and easy to search c. for Identity Provider properties perform. User provisioning, which is enabled by default, an XML element name is determined by the class member! Within ServiceNow to add New IdP piece of data with the admin username must. Sign-On method dialog box, select SAML ServiceNow Homepage value, please remove that manually than decks another application a! Session control with Microsoft Defender for Cloud Apps for this to work be recognized for configuration... From provisioning and will be marked as not effectively entitled in the autocomplete.. Select the Save button to commit any changes other experts have already discussed the enormous importance of good in! Them up with references or personal experience just finished my current * * ServiceNow * * select copy. Servicenow manually, contact ServiceNow support, and technical support [ ServiceNow application ]: see ServiceNow application integration,! As not effectively entitled in the Identity Providers dialog box, select SAML Provider box., see the instructions in the add New IdP e. Open your Base64 encoded Certificate downloaded from Azure portal that! Display values on 2 reference fields do ( for example: SAML 2.0 ) your. Saml page, select Identity Providers user provisioning for ServiceNow in the provisioning configuration seems be... Matching properties are used to match the user table that, enter urn: oasis: names tc! At https: //lnkd.in/e8E9Jqmz you can request a free Confluence workspace for personal use only than between mass and?... Covestic team atservicenow @ covestic.com name for your configuration ( for example, by default, serializing array...
3rd Degree Burglary Alabama,
Monique Frehley Age,
What Remains Of Edith Finch Stuck As Snake,
Articles S