---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Utilisation du code client et serveur dans une action d'interface utilisateur

# Utilisation du code client et serveur dans une action d'interface utilisateur {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute de lecture

Vous pouvez utiliser un script pour valider l'entrée lors d'un clic d'action d'interface utilisateur côté client avant de mettre à jour l'enregistrement côté serveur. L'utilisateur n'aura pas à cliquer deux fois sur le bouton pour valider les champs requis et mettre à jour l'enregistrement.
Le script appelle la fonction client pour la validation côté client, et l'action d'interface utilisateur termine la tâche si elle réussit. Le `code qui s'exécute sans instruction onclick` garantit que la fonction côté serveur ne s'exécute pas tant que la fonction client n'est plus en cours d'exécution. En cas de réussite, la fonction côté serveur s'exécute et met à jour l'enregistrement.

    // Client-side onclick function
    function resolveIncident() {
      // Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
      g_form.setValue('incident_state', 6);
      g_form.setValue('state', 6);
      g_form.setValue('resolved_by', g_user.userID);

      // Call the UI action and skip the 'onclick' function
      gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
    }

    // Code that runs without 'onclick'
    // Ensure call to server-side function with no browser errors
    if (typeof window == 'undefined')
      serverResolve();

    // Server-side function
    function serverResolve() {
      current.incident_state = IncidentState.RESOLVED;
      current.state = IncidentState.RESOLVED;
      current.resolved_by = gs.getUserID();
      current.update();
    }

## gsftSubmit(Contrôle de chaîne, Formulaire d'objet, Chaîne action_name) {#using-client-server-code-ui-action__section_rkc_v3f_lwb}

Soumet un formulaire comme si l'utilisateur avait cliqué sur une action d'interface utilisateur après avoir vérifié les champs requis et exécuté des scripts clients onSubmit(). Permet d'appeler du code côté client et du code côté serveur et dans une seule action d'interface utilisateur.
{#using-client-server-code-ui-action__table_lmr_qwr_fz__entry__3}

| Nom | Type | Description |
|-|-|-|
| control | Chaîne | Nom d'un bouton de formulaire sur lequel vous souhaitez simuler un clic de l'utilisateur. Utiliser `null` dans le cas contraire. |
| formulaire | Objet | Facultatif. Élément de formulaire qui contient l'entrée soumise. Vous pouvez récupérer cette valeur en appelant la méthode g_form.getFormElement(). |
| action_name | Chaîne | Nom de l'action. Cette valeur est fournie dans l'enregistrement répertorié dans la table Actions d'interface utilisateur \[sys_ui_action\]. Par exemple, `<< resolve_incident >>` est le nom de l'action du bouton Résoudre dans la table Incident \[incident\]. |
[Tableau 1. Paramètres]

{#using-client-server-code-ui-action__table_lmr_qwr_fz}
**Concepts associés**   

* [GlideUser : client](https://servicenow-prod.fluidtopics.net/n9uxkuxgJrJMhEQhHPQ4jA#c_GlideUserAPI "L’API GlideUser fournit des méthodes qui permettent d’accéder aux informations relatives à l’utilisateur actuel et aux rôles d’utilisateur actuels. L’utilisation de cette API évite d’avoir à utiliser les requêtes GlideRecord plus lentes pour obtenir des informations sur l’utilisateur.")  
**Référence associée**   

* [GlideForm : getFormElement()](https://servicenow-prod.fluidtopics.net/FV1LOFCrzjZpjKOQxBQJ5Q#r_GlideFormGetFormElement "Renvoie l’élément HTML du formulaire.")
* [GlideSystem inclus dans le champ d'application : eventQueue(nom de chaîne, instance d'objet, chaîne parm1, chaîne parm2, file d'attente de chaînes)](https://servicenow-prod.fluidtopics.net/A9ibtNhVelWqCyEqK_A4Tw#r_ScopedGlideSystemEventQueue_String_Object_String_String_String "Met un événement en file d’attente pour le gestionnaire d’événements.")  
**Information associée**   

* [UI actions](https://www.servicenow.com/docs/access?context=c_UIActions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)

