Como usar o código de cliente e servidor em uma ação de IU

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 1 min. de leitura
  • Você pode usar um script para validar a entrada após um clique de Ação de IU no lado do cliente antes de atualizar o registro no lado do servidor. O usuário não precisará clicar no botão duas vezes para validar os campos obrigatórios e atualizar o registro.

    O script chama a função do cliente para validação do lado do cliente e a ação de IU conclui a tarefa se for aprovada. O código que é executado sem a instrução onclick garante que a função do lado do servidor não seja executada até que a função do cliente não esteja mais em execução. Se for bem-sucedido, a função do lado do servidor será executada e atualizará o registro.

    // 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(controle de cadeia de caracteres, formulário de objeto, cadeia de caracteres action_name)

    Envia um formulário como se o usuário tivesse clicado em uma Ação de IU após verificar os campos obrigatórios e executar client scripts onSubmit(). Habilita a chamada do código do lado do cliente e do código do servidor em uma única ação de IU.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    controle Cadeia de caracteres Nome de um botão de formulário no qual você deseja simular um clique do usuário. Caso contrário, use nulo.
    formulário Objeto Opcional. O elemento de formulário que contém a entrada enviada. Você pode recuperar este valor chamando o método g_form.getFormElement().
    action_name Cadeia de caracteres Nome da ação. Este valor é fornecido no registro listado na tabela Ações de IU [sys_ui_action].

    Por exemplo, "resolve_incident" é o nome da ação do botão Resolver na tabela Incidente [incidente].