Verwenden von Client- und Servercode in einer UI-Aktion

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Sie können ein Skript verwenden, um Eingaben beim Klicken auf eine UI-Aktion auf der Clientseite zu validieren, bevor Sie den Datensatz auf der Serverseite aktualisieren. Der Benutzer muss nicht zweimal auf die Schaltfläche klicken, um die erforderlichen Felder zu validieren und den Datensatz zu aktualisieren.

    Das Skript ruft die Clientfunktion zur clientseitigen Validierung auf, und die UI-Aktion schließt die Aufgabe ab, wenn sie erfolgreich ist. Der Code, der ohne die Anweisung onclick ausgeführt wird, stellt sicher, dass die serverseitige Funktion erst ausgeführt wird, wenn die Clientfunktion nicht mehr ausgeführt wird. Bei Erfolg wird die serverseitige Funktion ausgeführt und aktualisiert den Datensatz.

    // 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 (Zeichenfolgensteuerung, Objektformular, Zeichenfolge action_name)

    Sendet ein Formular, als ob der Benutzer auf eine UI-Aktion geklickt hätte, nachdem er die erforderlichen Felder überprüft und Client-Skripts des Typs „onSubmit()“ ausgeführt hat. Ermöglicht den Aufruf von clientseitigem Code und serverseitigem Code in einer einzigen UI-Aktion.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Kontrolle Zeichenfolge Name einer Formularschaltfläche, auf der Sie einen Benutzerklick simulieren möchten. Verwenden Sie andernfalls NULL.
    Formular Objekt Optional. Das Formularelement, das die übermittelte Eingabe enthält. Sie können diesen Wert abrufen, indem Sie die Methode g_form.getFormElement() aufrufen.
    action_name Zeichenfolge Aktionsname. Dieser Wert wird im Datensatz bereitgestellt, der in der Tabelle „UI-Aktionen“ [sys_ui_action] aufgeführt ist.

    Beispiel: „resolve_incident“ ist der Aktionsname der Schaltfläche „Lösen“ in der Incident-Tabelle [incident].