API de table : ServiceNow Fluent

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 12 minutes de lecture
  • L’API Table inclut des objets qui définissent les tables [sys_db_object] dans une application incluse dans le périmètre.

    Objet de table

    Créer une table [sys_db_object] dans une application incluse dans le périmètre.

    Tableau 1. Propriétés
    Nom Type Description
    nom Chaîne Requis. Nom de la table commençant par le périmètre de l’application et toutes en minuscules au format suivant : <scope>_<name>. Le nom doit correspondre à l’identificateur de variable de l’objet Table .
    Remarque :
    Pour ajouter des colonnes à une table existante dans un périmètre d’application différent, vous pouvez fournir le nom de la table sans le périmètre de l’application suivi de « Quelconque ». Les noms de colonnes doivent commencer par le périmètre de l’application à la place.

    Longueur maximale : 80

    Schéma Tableau Liste d’objets Column . Pour plus d'informations, consultez Objet colonne.
    étend Chaîne Nom de toute autre table sur laquelle la table est basée.

    L'extension d'une table de base intègre tous les champs de la table d'origine et crée des champs système pour la nouvelle table. Si elles sont dans le même périmètre ou si elles peuvent être configurées à partir d’autres périmètres, vous pouvez étendre les tables marquées comme extensibles.

    étiquette Chaîne Une étiquette unique pour la table dans les vues de listes et de formulaires.

    Longueur maximale : 80

    Par défaut : la valeur de la propriété name

    affichage Chaîne Colonne d’affichage par défaut. Utilisez un nom de colonne à partir de la propriété de schéma .
    extensible Booléen Marqueur indiquant si d’autres tables peuvent étendre la table.
    Valeurs valides :
    • true : d’autres tables peuvent étendre la table.
    • false : les autres tables ne peuvent pas étendre la table.

    Changer cette propriété de vrai à faux empêche la création de tables enfants supplémentaires, mais les tables enfants existantes restent inchangées.

    Valeur par défaut : false

    live_feed Booléen Marqueur indiquant si des flux en direct sont disponibles pour les enregistrements de la table.
    Valeurs valides :
    • vrai : des flux en direct sont fournis pour les enregistrements de la table. Cette option ajoute l’option Afficher le flux en direct ( icône Afficher le flux en direct) dans l’en-tête du formulaire.
    • faux : aucun flux en direct n’est fourni pour les enregistrements de la table.

    Valeur par défaut : false

    auto_number Objet La configuration de numérotation automatique [sys_number] pour une table. Pour plus d'informations, consultez auto_number objet.
    accessible_from Chaîne Les périmètres de l’application qui peuvent accéder à la table.

    Valeurs valides : public, package_private

    Par défaut : public

    caller_access Chaîne Niveau d’accès pour les demandes entre périmètres.
    Valeurs valides :
    • restreint : les appels à la ressource doivent être approuvés manuellement. Les demandes d’accès sont suivies dans la table Accès restreint pour l’appelant avec l’état Demandé.
    • suivi : les appels à la ressource sont automatiquement approuvés. Les appels sont suivis dans la table Accès restreint pour l’appelant avec l’état Autorisé.
    • aucun : les appels entre périmètres à la ressource sont approuvés ou refusés en fonction de la valeur de la propriété accessible_from .

    Pour plus d'informations, consultez Paramètres de privilège d’accès restreint pour l’appelant.

    Par défaut : aucun

    actions Tableau Une liste des options d’accès.

    Valeurs valides : lire, créer, mettre à jour, supprimer

    Par défaut : read

    allow_web_service_access Booléen Marqueur indiquant si les services Web peuvent passer des appels à la table.
    Valeurs valides :
    • true : les services Web peuvent passer des appels à la table.
    • false : les services Web ne peuvent pas appeler la table.

    Valeur par défaut : false

    allow_new_fields Booléen Marqueur indiquant s’il faut autoriser la configuration au moment de la conception de nouveaux champs dans la table à partir d’autres périmètres de l’application.
    Valeurs valides :
    • true : autoriser la configuration au moment de la conception de nouveaux champs dans la table à partir d’autres périmètres de l’application.
    • faux : n’autorisez pas la configuration au moment de la conception de nouveaux champs sur la table à partir d’autres périmètres de l’application.

    Valeur par défaut : false

    allow_ui_actions Booléen Marqueur indiquant s’il faut autoriser la configuration au moment de la conception des actions d’interface utilisateur sur la table à partir d’autres périmètres de l’application.
    Valeurs valides :
    • vrai : autoriser la configuration de la durée de conception des actions d’interface utilisateur sur la table à partir d’autres périmètres de l’application.
    • false : n’autorisez pas la configuration au moment de la conception des actions d’interface utilisateur sur la table à partir d’autres périmètres de l’application.

    Valeur par défaut : false

    allow_client_scripts Booléen Marqueur indiquant s’il faut autoriser la configuration au moment de la conception des scripts clients sur la table à partir d’autres périmètres de l’application.
    Valeurs valides :
    • vrai : permet la configuration de la durée de conception des scripts clients sur la table à partir d’autres périmètres de l’application.
    • false : n’autorisez pas la configuration au moment de la conception des scripts clients sur la table à partir d’autres périmètres de l’application.

    Valeur par défaut : false

    audit Booléen Marqueur indiquant s’il faut suivre la création, la mise à jour et la suppression de tous les enregistrements de la table.
    Valeurs valides :
    • vrai : suivre la création, la mise à jour et la suppression de tous les enregistrements de la table
    • false : ne suivez pas la création, la mise à jour et la suppression de tous les enregistrements de la table.

    Valeur par défaut : false

    read_only Booléen Marqueur indiquant si les utilisateurs peuvent modifier des champs dans la table.
    Valeurs valides :
    • Vrai : Les utilisateurs ne peuvent pas modifier les champs de la table.
    • false : Les utilisateurs peuvent modifier les champs de la table.

    Valeur par défaut : false

    text_index Booléen Marqueur indiquant si les moteurs de recherche indexent le texte dans une table.
    Valeurs valides :
    • true : le texte de la table est indexé.
    • false : le texte de la table n’est pas indexé.

    Valeur par défaut : false

    attributs Objet Paires de clés et de valeurs de n’importe quel attribut de dictionnaire pris en charge [sys_schema_attribute].
    attributes: 
       {
          update_sync_custom: true,
          native_recordlock: false
       }
    Pour plus d’informations, consultez Attributs de dictionnaire.
    Index Tableau Liste de références de colonnes pour générer des index dans le XML de métadonnées de la table.

    Un index de base de données augmente la vitesse d’accès aux données à partir de la table avec des frais d’utilisation d’espace de stockage supplémentaire.

    index: [
        {
            name: 'deadline index',
            element: 'deadline',
            unique: true
        },
        {
            name: 'state index',
            element: 'state',
            unique: false
        },{
            name: 'task index',
            element: 'task',
            unique: false
        }
    ]

    Pour la prise en charge de la suggestion automatique pour les colonnes, affectez l’objet Table à une variable exportée portant le même nom que la propriété name .

    import { Table, StringColumn } from "@servicenow/sdk/core";
    import { myFunction } from "../server/myFunction.js"
    
    export const x_snc_example_to_do = Table({
        name: 'x_snc_example_to_do',
        label: 'My To Do Table',
        extends: 'task',
        schema: {
            status: StringColumn({ label: 'status' }),
            deadline: StringColumn({
                label: 'deadline',
                active: true,
                mandatory: false,
                read_only: false,
                maxLength: 40,
                dropdown: 'none',
                attributes: { 
                    update_sync: false,
                },
                default: 'today',
                dynamic_value_definitions: {
                    type: 'calculated_value',
                    calculated_value: '',
                },
                choices: {
                    choice1: {
                        label: 'choice1 Label',
                        sequence: 0,
                        inactive_on_update: false,
                        dependent_value: '5',
                        hint: 'hint',
                        inactive: false,
                        language: 'en',
                    },
                    choice2: { label: 'choice2 Label', sequence: 1 },
                },
            }),
            dynamic1: StringColumn({
                dynamic_value_definitions: {
                    type: 'calculated_value',
                    calculated_value: myFunction,
                },
            }),
            dynamic2: StringColumn({
                dynamic_value_definitions: {
                    type: 'dynamic_default',
                    dynamic_default: `gs.info()`,
                },
            }),
            dynamic3: StringColumn({
                dynamic_value_definitions: {
                    type: 'dependent_field',
                    column_name: 'status',
                },
            }),
            dynamic4: StringColumn({
                dynamic_value_definitions: {
                    type: 'choices_from_other_table',
                    table: 'sc_cat_item',
                    field: 'display',
                },
            }),
        },
        actions: ['create', 'read'],
        display: 'deadline',
        accessible_from: 'package_private',
        allow_client_scripts: true,
        allow_new_fields: true,
        allow_ui_actions: true,
        allow_web_service_access: true,
        extensible: true,
        live_feed: true,
        caller_access: 'none',
        auto_number: {
            number: 10,
            number_of_digits: 2,
            prefix: 'abc',
        },
        audit: true,
        read_only: true,
        text_index: true,
        attributes: {
            update_sync: true,
        },
        index: [
            {
                name: 'idx',
                element: 'status',
                unique: true,
            },
        ],
    })

    Objet colonne

    Ajouter une colonne [sys_dictionary] dans une table.

    Utilisez l’objet Colonne dans la propriété de schéma de l’objet Table .

    Il existe de nombreux types de colonnes en fonction du type de champ. Les objets de colonne utilisent le format <Type>Column<Type> est le type de champ. Pour en savoir plus sur les types de champs, reportez-vous à la section Field types.

    Les types de colonnes suivants sont pris en charge : ListColumn, RadioColumn, StringColumn, ChoiceColumn, ScriptColumn, BooleanColumn, ConditionsColumn, DecimalColumn, IntegerColumn, VersionColumn, DomainIdColumn, FieldNameColumn, ReferenceColumn, TableNameColumn, UserRolesColumn, BasicImageColumn, DocumentIdColumn, DomainPathColumn, TranslatedTextColumn, SystemClassNameColumn, TranslatedFieldColumn, GenericColumn, DateColumn, DateTimeColumn, CalendarDateTime, BasicDateTimeColumn, DueDateColumn, CalendarDateTime, IntegerDateColumn, ScheduleDateTimeColumn et OtherDateColumn.

    Tableau 2. Propriétés
    Nom Type Description
    étiquette Chaîne Étiquette unique pour la colonne qui apparaît dans les en-têtes de liste et les champs de formulaire.

    Lorsque vous mettez à jour l’étiquette, le système met également à jour l’étiquette dans le fichier de langue pour la langue actuelle. Si aucune étiquette n’est fournie, la clé utilisée pour l’objet colonne est l’étiquette.

    maxLength Numéro Longueur maximale des valeurs dans la colonne.

    Une longueur inférieure à 254 apparaît sous la forme d’un champ de texte sur une seule ligne. Tout ce qui compte 255 caractères ou plus apparaît sous la forme d’une zone de texte à plusieurs lignes.

    Remarque :
    Pour éviter la perte de données, ne diminuez la longueur d’un champ de chaîne que lorsque vous développez une nouvelle application et non lorsqu’un champ contient des données.

    Par défaut : 40

    Actif Booléen Marqueur indiquant s’il faut afficher le champ dans les listes et formulaires.
    Valeurs valides :
    • vrai : affiche le champ.
    • faux : masque le champ.

    Valeur par défaut : true

    obligatoire Booléen Marqueur indiquant si le champ doit contenir une valeur pour enregistrer un enregistrement.
    Valeurs valides :
    • true : le champ doit contenir une valeur.
    • faux : le champ n’est pas obligatoire.

    Valeur par défaut : false

    read_only Booléen Marqueur indiquant si vous pouvez modifier la valeur du champ.
    Valeurs valides :
    • true : vous ne pouvez pas modifier la valeur, et le système calcule et affiche les données du champ.
    • false : vous pouvez modifier la valeur du champ.

    Valeur par défaut : false

    Par défaut N'importe lequel Valeur par défaut du champ lors de la création d’un enregistrement. La valeur doit utiliser le type correct en fonction du type de colonne.
    choix Objet Liste de choix [sys_choice] pour une colonne. Pour plus d'informations, consultez Objet des choix.

    Cette propriété s’applique uniquement à ChoiceColumn et aux types de colonnes qui étendent les colonnes de choix. Il peut inclure un tableau de valeurs primitives ou une série d’objets de choix.

    attributs Objet Paires de clés et de valeurs de n’importe quel attribut de dictionnaire pris en charge [sys_schema_attribute].
    attributes: 
       {
          update_sync_custom: true,
          native_recordlock: false
       }
    Pour plus d’informations, consultez Attributs de dictionnaire.
    function_definition Chaîne Définition d’une fonction exécutée par le champ.

    Commence par glidefunction :, suivi de l’opération à effectuer (par exemple, concat), suivi des paramètres de fonction. Les constantes doivent être placées entre guillemets simples.

    Par exemple, la définition de fonction suivante crée un champ qui affiche la description brève, suivie d’un espace, suivie du nom de l’appelant :
    glidefunction:concat(short_description, ' ', caller_id.name)

    Pour plus d’informations sur les définitions de fonctions, reportez-vous à la section Function field.

    dynamic_value_definitions Objet Valeurs par défaut qui sont générées dynamiquement en fonction des filtres dynamiques. Fournissez une combinaison d’un type et d’une clé de comportement connexe pour spécifier des valeurs par défaut dynamiques. Les types suivants sont pris en charge :
    • dynamic_default : fournit une fonction à partir de [sys_filter_option_dynamic].
      dynamic_value_definitions: {
         type: 'dynamic_default',
         dynamic_default: `gs.info()`,
      },
    • dependent_field : fournissez un autre nom de colonne à partir de la même table.
      dynamic_value_definitions: {
         type: 'dependent_field',
         column_name: 'status',
      },
    • calculated_value : fournir une fonction de calcul de la valeur. La fonction peut être importée à partir d’un module JavaScript ou être définie en ligne.
      dynamic_value_definitions: {
         type: 'calculated_value',
         calculated_value: function,
      },
    • choices_from_other_table : permet de choisir à partir d’une colonne d’une autre table.
      dynamic_value_definitions: {
         type: 'choices_from_other_table',
         table: 'sc_cat_item',
         field: 'display',
      },
    liste déroulante Chaîne Comment une liste de choix s’affiche pour les utilisateurs de votre formulaire. Cette propriété s’applique uniquement à ChoiceColumn et aux types de colonnes qui étendent les colonnes de choix.
    Valeurs valides :
    • none : les choix ne sont pas appliqués.
    • liste déroulante sans aucun : menu sans l’option -- Aucun-- . Si vous sélectionnez cette option, vous devez configurer la propriété par défaut de la colonne.
    • liste déroulante avec aucun : menu avec l’option -- Aucun -- . La valeur par défaut est -- Aucun -- .
    • suggestion : les choix sont affichés dans une liste de valeurs suggérées.

    Par défaut : aucun

    Les noms de colonnes sont fournis en tant que clés d’objet associées aux définitions de colonnes.
    schema: {
       deadline: DateColumn({ label: 'deadline' }),
       state: StringColumn({
          label: 'State',
          choices: {
             ready: { label: 'Ready' },
             completed: { label: 'Completed' },
             in_progress: { label: 'In Progress' },
          }   
       }),
       task: StringColumn({ label: 'Task', maxLength: 120 }),
    },
    Si le nom de la table n’inclut pas le périmètre de l’application, les noms de colonnes doivent être précédés du périmètre de l’application à la place.
    schema: {
       x_scope_myColumn: StringColumn({...})
    }

    Objet des choix

    Configurez les choix [sys_choice] pour une colonne dans une table.

    Utilisez l’objet choices avec les types de colonnes pris en charge dans la propriété de schéma d’un objet Table . Seuls certains types de colonnes étendent le type de colonne de choix (ChoiceColumn) et peuvent inclure des choix.

    Tableau 3. Propriétés
    Nom Type Description
    étiquette Chaîne Requis. Le texte à afficher pour le choix dans la liste.
    dependent_value Chaîne Valeur que vous mappez à la dependent_field dans la propriété dynamic_value_definitions de l’objet Column .
    hint Chaîne Brève description du choix qui s’affiche sous forme d’info-bulle lors du survol de celui-ci.
    language Chaîne Le code BCP 47 de la langue pour le choix traduit.

    Par défaut : en

    séquence Entier L’ordre dans lequel un choix se produit dans la liste de choix.
    inactif Booléen Marqueur indiquant s’il faut afficher le choix dans la liste.
    Valeurs valides :
    • true : le choix est masqué dans la liste.
    • false : le choix apparaît dans la liste.

    Valeur par défaut : false

    L’objet choices comprend une série d’objets de choix, dans lesquels les noms des choix sont fournis sous forme de clés d’objet appariées aux définitions de choix.

    choices: {
       choice1: {
          label: 'choice1 Label',
          sequence: 0,
          inactive_on_update: false,
          dependent_value: '5',
          hint: 'hint',
          inactive: false,
          language: 'en',
       },
       choice2: { label: 'choice2 Label', sequence: 1 },
    },

    auto_number objet

    Configurez la numérotation automatique [sys_number] pour une table.

    Utilisez l’objet auto_number à l’intérieur de l’objet Table .

    Tableau 4. Propriétés
    Nom Type Description
    préfixe Chaîne Préfixe pour chaque numéro d’enregistrement dans la table. Par exemple, INC pour Incident.

    Par défaut : pre

    Numéro Entier Numéro de base de cette table. Les numéros d’enregistrement sont automatiquement incrémentés et le numéro suivant est conservé dans la table Compteur [sys_number_counter].

    Si vous définissez le numéro de base sur une valeur supérieure au compteur actuel, le numéro d’enregistrement suivant utilise le nouveau numéro de base. Dans le cas contraire, le numéro d’enregistrement suivant utilise le compteur courant. Le compteur ne se réinitialise pas à un nombre de base inférieur à lui-même.

    Par défaut : 1 000

    number_of_digits Entier Nombre minimal de chiffres à utiliser après le préfixe.

    Des zéros non significatifs sont ajoutés aux numéros automatiques, si nécessaire. Par exemple, INC0001001 contient trois zéros non significatifs. Le nombre de chiffres peut dépasser la longueur minimale. Par exemple, si number_of_digits est 2 et que plus de 99 enregistrements sont créés sur la table, les nombres continuent au-delà de 100 (comme INC101).

    Avertissement :
    La modification de ce champ peut mettre à jour toutes les valeurs numériques des enregistrements existants dans une table. Soyez prudent lorsque vous modifiez ce champ sur une instance de production.

    Par défaut : 7

    auto_number: {
       prefix: 'TODO',
       number: 2000,
       digits: 9,
    }