Configurez l’instance du composant Liste d’objets afin que votre utilisateur puisse l’intégrer sur son site Web pour afficher des informations à partir de n’importe quelle table ServiceNow. Le composant vous permet de configurer les options de sélection, de filtrage, de tri et de pagination des colonnes.
Avant de commencer
Vous devez disposer de la configuration suivante pour configurer l’instance du composant de liste d’objets :
Rôle requis : sn_embeddable_core.emb_admin
Procédure
-
Accédez à la .
-
Sur la page d’accueil, sélectionnez Créer un module ou utilisez le module existant.
Pour plus d’informations sur la création d’un nouveau module, reportez-vous à la section
Créer un module.
-
Sur la page du module, dans l’onglet Composants, ajoutez une instance de composant de liste d’objets à un groupe existant ou nouveau.
- Facultatif :
Activez l’option Afficher l’aperçu statique pour afficher une représentation visuelle d’un composant lorsqu’un aperçu en direct n’est pas disponible.
Remarque : Lorsque cette option est activée, les changements apportés aux propriétés globales ou aux propriétés de composant n’apparaissent pas dans l’onglet Aperçu en temps réel.
-
Configurez les propriétés d’instance du composant de la liste d’objets.
- L’onglet Aperçu affiche des données en temps réel en fonction des choix définis dans les propriétés du composant.
- Pour obtenir une description des propriétés du composant Object list, reportez-vous à la section Propriétés des composants pour la liste d’objets.
-
Sélectionnez l’onglet Règles CORS pour configurer les règles CORS.
-
Sélectionnez l’onglet Composants .
Si un message s’affiche sur le périmètre de l’application, remplacez le périmètre par Composants Web pour que le Service clientèle puisse modifier l’enregistrement.
-
Sélectionnez Obtenir du code intégré.
Une fenêtre contextuelle apparaît pour afficher à la fois le code global et le code de composant.
-
Dans l’onglet Code global, examinez le code généré et sélectionnez Copier le code global.
Le code global ne doit être ajouté qu’une seule fois à votre page Web tierce.
import { init, login, logout, startGuestSession } from 'https://demo.servicenow.com/uxasset/externals/sn_embeddable_core/index.jsdbx';
await init({
theme: 'fad87d2ca304121029a4d1aed31e610f', /* sys_id of the theme to use for the embeddable components in your website */
baseURL: 'https://demo.servicenow.com', /* Base URL of the instance to be used for the embeddable components in your website */
authCallback: getTokenCallBack, /* Function which returns the auth token for the current user, required for auth setup */
module: '591800ffc1243610f87714367ed47c6a', /* Demo module */
pageName: document.title, /* Uses the browser's document title as the page name in User analytics experience */
guestTokenCallback: getGuestJWTTokenCallBack, /* Function which returns the guest token for the current user, required for guest validation setup */
cacheComponents: [] /* Pre-caches resources for improved performance. Update component list as per your usage */
});
function getTokenCallBack() {
var idToken; /* Get the id token for the current user */
return Promise.resolve(idToken);
}
function getGuestJWTTokenCallBack() {
var guestToken; /* Get the guest token for the current user */
return Promise.resolve(guestToken);
}
/* Uncomment below function to handle guest session */
// await startGuestSession();
/* Uncomment below functions to handle login and logout once the user logs into your website */
// await login();
// await logout();
- Facultatif :
Dans l’onglet Code de composant, faites glisser le commutateur Activer le gestionnaire d’événements pour gérer les événements déclenchés par les interactions de l’utilisateur sur la page Web.
-
Dans l’onglet Code de composant, examinez le code généré et sélectionnez Copier le code de composant.
Ce code généré inclut également des gestionnaires d’événements.
<!--
Module: Demo module
Group: Group 1
Instance: Object list 1
-->
<sn-embedx-object-list
type="default"
table="sn_customerservice_case"
action-config="6316ec1355dd422a8ebfdeb6336b1179"
child-records-per-load="10"
max-cell-characters="500"
records-per-page='[10,20,50]'
visible-page-range="5"
footer-text="View All"
max-top-records="20"
header-size="md">
</sn-embedx-object-list>
<!--
The component also includes the following additional properties:
hide-header
hide-record-count
hide-search
hide-filters
disable-column-selection
hide-actions
max-columns-displayed
hide-record-links
show-reference-record-links
disable-column-highlighting
shade-alternate-rows
hide-child-record-count
disable-quick-edit
disable-cell-wrapping
disable-cell-editing
hide-errors
limit-records-fetched
hide-page-size-control
disable-cell-filtering
disable-column-sorting
disable-column-filtering
disable-column-grouping
show-condition-builder
hide-refresh-button
disable-title-wrap
disable-column-resizing
disable-column-drag-and-drop
disable-row-drag-and-drop
expand-groups-by-default
hide-toggle-all-groups-button
hide-when-empty
edit-query
default-filter
columns
list-view
nest-by
default-group-by
list-title
subtitle
highlighted-value-config
-->
<script type="module">
import { getEmbeddables, setEvents, setProperties } from 'https://demo.servicenow.com/uxasset/externals/sn_embeddable_core/index.jsdbx';
const snEmbedxObjectList = document.querySelector('sn-embedx-object-list');
/* Uncomment this code to set Object list properties using URL parameters.
// Get the table, query, view or nestby from the URL parameters to dynamically set the component properties. For related list, get sysRecordID to use it in filter.
const currentURL = new URL(window.location.href);
const urlParams = new URLSearchParams(currentURL.search);
const tableName = urlParams.get('emb_table');
const filter = urlParams.get('emb_filter');
const view = urlParams.get('emb_view');
const nestby = urlParams.get('emb_nestby');
const sysRecordId = urlParams.get('emb_recordid');
// Update the table, filter, view or nestby properties of the component
setProperties(snEmbedxObjectList, {
table: tableName,
editQuery: filter || '<fieldname>=' + sysRecordId,
listView: view,
nestBy: nestby
});
*/
getEmbeddables(["sn-embedx-object-list"]);
const eventHandlers = {
'SN_EMBEDX_OBJECT_LIST#FOOTER_LINK_SELECTED' : (e) => {
// This event is dispatched when footer link is selected
var {table, view, edit_query, nest_by} = e.detail.payload;
// the logic to construct the URL for the Record View component. Add your portal URL here.
const objectListURL = '/objectlist?emb_table=' + table + '&emb_query=' + edit_query + '&emb_view=' + view + '&emb_nestby=' + nest_by;
// Open the Record List component in the same tab
open(objectListURL, '_self');
},
'SN_EMBEDX_OBJECT_LIST#COMPONENT_ERROR' : (e) => {
// This event is dispatched when a property validation or internal error occurs.
var {errorMessage, errorType} = e.detail.payload;
console.log(errorMessage, errorType);
},
'SN_EMBEDX_OBJECT_LIST#RECORD_SELECTED' : (e) => {
// This event is dispatched when a record is selected.
var {table, record_sys_id} = e.detail.payload;
var RecordViewURL;
if(table == 'sn_customerservice_case'){
RecordViewURL = '/caseview?emb_table=' + table + '&emb_recordid=' + record_sys_id;
} else {
RecordViewURL = '/recordview?emb_table=' + table + '&emb_recordid=' + record_sys_id;
}
open(RecordViewURL, '_self');
},
'SN_EMBEDX_OBJECT_LIST#COMPONENT_READY' : (e) => {
// This event is dispatched when a component is ready and usable.
}
};
setEvents(snEmbedxObjectList, eventHandlers);
</script>
Résultats
Les codes globaux et de composant sont prêts à être partagés avec l’administrateur tiers pour intégrer l’instance du composant de liste d’objets sur son site Web tiers.