Casos de uso de script do lado do cliente
Os casos de uso para scripts do lado do cliente incluem a exibição de mensagens de campo, a mudança de cores do formulário, a adição de campos e a criação de ações de roteamento de IU.
Adicione um campo à finalização da compra do catálogo de serviços
Este é um exemplo de adição de um Empresa campo para o check-out abaixo de Solicitado para campo que usa macros de layout que não sejam do carrinho, ou seja, glide.sc.use_cart_layouts. falso .
Antes de Iniciar
Função necessária: administrador
Por Que e Quando Desempenhar Esta Tarefa
Este campo passa um valor fornecido para Empresa Campo da solicitação do Catálogo de serviços.
Este exemplo faz as seguintes suposições:
- A instância que usa o check-out em duas etapas. Se o check-out em duas etapas não estiver habilitado, habilite-o antes de começar. Para obter mais informações, consulte Service Catalog checkout models.
- Este exemplo preenche o. Empresa Campo no formulário Solicitação do Catálogo de serviços. Se o campo não aparecer no formulário, configure o formulário antes de começar. Para obter instruções, consulte Personalize a form.
Procedimento
Resultado
Adicionar funcionalidade de preenchimento automático
A funcionalidade Adicionar preenchimento automático também é chamada de modelo de incidente, atribuições automáticas, chamadas rápidas, script de chamada ou preenchimento automático.
- Crie uma tabela de pesquisa.
- Preencher o campo chave, Subcategoria .
- Preencher o campo preenchido automaticamente, Descrição resumida .
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading) { return; }
var newrec = gel('sys_row');
//Check if new record
if (newrec.value == -1) {
var lookup = new GlideRecord('u_short_desc_lookup');
lookup.addQuery('u_subcategory', g_form.getValue('subcategory'));
lookup.query();
var temp; //temp var - reusable
if (lookup.next()) {
temp = lookup.u_short_description;
if (null != temp) { //Set the form value from lookup if there is a lookup value
g_form.setValue('short_description', temp); }
else {
g_form.setValue('short_description', "" ); } }
else {
//If a lookup record does not exist based on lookup.addQuery
//Then set to UNDEFINED or NULL depending on type
g_form.setValue('short_description', ""); } }
}Você pode preencher muitos campos ou extrair perguntas de script de chamada para Comentários para que a equipe do call center colete boas informações para passar a um técnico.
- Definir um campo para redefinição de senha
-
A tabela de pesquisa tem um registro com as seguintes configurações de chave e preenchimento automático:
- Subcategoria . Senha
- Descrição resumida . Redefinição de senha
Mude a cor do formulário na mudança de estado
Muda a cor de um campo de formulário do formulário na mudança de estado. O script pode ser facilmente alterado para ajustar qualquer propriedade de qualquer objeto na página acessível por meio do DOM HTML.
Nome Mudar cor do formulário na mudança de estado
Tipo Script do cliente
Descrição : Muda a cor de um campo de formulário do formulário na mudança de estado. O script pode ser facilmente alterado para ajustar qualquer propriedade de qualquer objeto na página acessível por meio do DOM HTML.
function onChange(control, oldValue, newValue, isLoading) {
var elementID = gel("incident.priority");
switch(newValue) {
case "1": elementID.style.backgroundColor = "red"; break;
case "2": elementID.style.backgroundColor = "tomato"; break;
case "3": elementID.style.backgroundColor = "orange"; break;
case "4": elementID.style.backgroundColor = "yellow"; break;
case "5": elementID.style.backgroundColor = "green"; break;
default: elementID.style.backgroundColor = "white"; break; } }Crie uma ação de roteamento de IU
Esta solução permite que você crie um registro com a central de serviços sem saber se é um incidente ou item de solicitação; a central de serviços pode rotear o registro para a tabela apropriada.
Antes de Iniciar
Função necessária: Administrador
Procedimento
Exibir mensagens de campo
Em vez de usar JavaScript alerta() , para uma aparência mais limpa, você pode exibir um erro no próprio formulário. Os métodos ShowFieldMsg() e. HideFieldMsg() pode ser usado para exibir uma mensagem logo abaixo do próprio campo.
ShowFieldMsg e. Msg campocampo são métodos que podem ser usados com g_form objeto.
Esses métodos são usados para mudar a exibição do formulário de registros (formulários Incidente, Problema e Mudança). Esses métodos também podem estar disponíveis em outros scripts de cliente, mas devem ser testados para determinar se funcionam conforme o esperado.
Quando uma mensagem de campo é exibida em um formulário no carregamento, o formulário rola para garantir que a mensagem do campo esteja visível. Garantir que os usuários não percam uma mensagem de campo porque ela estava fora da tela.
A propriedade global glide.ui.scroll_to_message_field controla a rolagem automática da mensagem quando o campo do formulário está fora da tela (rola o formulário para o controle ou campo).
| Detalhe do método | Parâmetros | Exemplo |
|---|---|---|
| ShowFieldMsg(entrada, mensagem, tipo, [scrollform]) |
|
Mensagens de erro Mensagem Informativa |
| HideFieldMsg(entrada) |
|
Removendo uma mensagem
|
Suporte legado
. ShowErrorBox() e. HideErrorBox() métodos não são recomendados.
Usando código de cliente e servidor em uma ação de IU
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. . código executado sem onclick a declaração 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-sucedida, 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 depois de verificar os campos obrigatórios e executar OnSubmit() scripts de cliente. Permite chamar código do lado do cliente e código do lado do servidor e em uma única ação de IU.
| 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. Usar nulo caso contrário. |
| formulário | Objeto | Opcional. O elemento de formulário que contém a entrada enviada. Você pode recuperar este valor chamando G_form.getFormElement() método. |
| 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, |