Script e migração do cliente móvel GlideForm (g form)

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 4 min. de leitura
  • Client scripting para dispositivos móveis é idêntico ao script para a Web, com algumas exceções. Todos os novos scripts devem estar em conformidade com determinadas diretrizes. Os itens a seguir são afetados na plataforma móvel: client scripts, políticas de IU, módulos do navegador e ações de IU.

    Scripts de cliente

    Para que os scripts novos ou existentes sejam válidos para dispositivos móveis, eles devem estar em conformidade com os seguintes requisitos:
    • Use os novos métodos móveis no lugar de g_form.getControl().
    • Não use métodos obsoletos.
    • Não faça referência a objetos de navegador sem suporte.
    • Não faça chamadas síncronas de JavaScript, GlideAjaxe GlideRecord.
    • Não chame métodos que não estejam disponíveis para dispositivos móveis.
    • Habilite a execução de scripts na IU para celular.
    Tabela 1. Requisitos
    Usar os novos métodos móveis Vários novos métodos estão disponíveis para modificar campos de formulário em vez de manipular diretamente o HTML. Esses métodos substituem os usos anteriores de g_form.getControl(), que está obsoleto para a plataforma móvel. Em seus scripts existentes, certifique-se de que os novos métodos sejam usados no lugar de métodos que não são válidos na plataforma móvel. Para obter informações sobre esses novos métodos, consulte API GlideForm() para celular.
    Não use métodos obsoletos

    Os métodos a seguir foram descontinuados na plataforma móvel porque o acesso direto a elementos HTML não é permitido:

    • g_form.getControl()
    • g_form.getFormElement()
    • g_form.getElement()

    Para garantir que os scripts existentes sejam compatíveis, remova todas as chamadas para métodos obsoletos do seu código. Para novos scripts, não use métodos obsoletos se quiser que o script seja válido para dispositivos móveis.

    Para g_form.getControl(), algumas das funcionalidades incluídas anteriormente com este método foram extraídas para métodos individuais. Em vez de g_form.getControl(), use os novos métodos descritos no site do desenvolvedor.

    Não faça referência a objetos de navegador sem suporte

    Os seguintes objetos de navegador não são compatíveis com scripts móveis:

    • Janela
    • jQuery ou Prototype ($, $j ou $$)
    • Documento

    Certifique-se de que novos scripts não usem esses objetos e remova qualquer uso desses objetos de seus scripts existentes. Em vez disso, use GlideForm (g_form), que fornece métodos como setLabel(), addDecoration()e hasField() para realizar as mesmas tarefas.

    Não fazer chamadas JavaScript síncronas

    A plataforma móvel não permite chamadas JavaScript síncronas. O método g_form.getReference() agora deve ter o parâmetro de retorno de chamada definido. Por exemplo:

     g_form.getReference(fieldName, callback)

    Certifique-se de que todas as chamadas g_form.getReference() incluam o parâmetro de retorno de chamada. Por exemplo, o script a seguir não inclui um retorno de chamada e é incompatível com a plataforma móvel:

     var userName = g_form.getReference('assigned_to').user_name;
     g_form.setValue('u_assigned_user_name', userName);

    O script a seguir foi atualizado para incluir o retorno de chamada e é compatível com a plataforma móvel:

     g_form.getReference('assigned_to', function(now_GR) {
         g_form.setValue('u_assigned_user_name', gr.user_name);
     });
    Não fazer chamadas Ajax síncronas A plataforma móvel não permite chamadas GlideAjax síncronas. Qualquer uso de getXMLWait() em uma chamada GlideAjax não funcionará na plataforma móvel. Certifique-se de que todas as chamadas GlideAjax sejam assíncronas. Para obter mais informações sobre chamadas GlideAjax síncronas versus assíncronas e getXMLWait(), consulte AJAX. Para obter informações sobre os métodos GlideAjax disponíveis, consulte a API GlideAjax.
    Não fazer chamadas GlideRecord síncronas

    A plataforma móvel não permite chamadas GlideRecord síncronas. Certifique-se de que todas as chamadas GlideRecord existentes incluam um retorno de chamada. Por exemplo, o script a seguir não inclui um retorno de chamada e é incompatível com a plataforma móvel:

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query();
     gr.next();
     g_form.setValue('u_related_incident_description', gr.short_description);

    O script a seguir foi atualizado para incluir o retorno de chamada e é compatível com a plataforma móvel:

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query(function(now_GR) {
         gr.next();
         g_form.setValue('u_related_incident_description', gr.short_description);
     });
    Não use métodos indisponíveis na plataforma móvel
    Devido às limitações e à funcionalidade reduzida impostas pela plataforma móvel, os métodos a seguir não estão obsoletos, mas não estão disponíveis na plataforma móvel. Se eles forem executados na plataforma móvel, nenhuma ação ocorrerá:
    • mostrarListaRelacionada ()
    • hideRelatedList ()
    • mostrarListasRelacionadas ()
    • ocultarListasRelacionadas()
    • flash()
    • getSections()
    • enableAttachments()
    • disableAttachments()
    • setReadonly() (observe que setReadOnly() está disponível)
    • getParameter()
    Habilitar scripts para dispositivos móveis

    Os scripts devem ser habilitados para a plataforma móvel.

    Nota:
    Não há suporte para o foco de um elemento em um formulário móvel.

    Políticas de IU

    Use o campo Executar scripts no tipo de IU para determinar se os scripts são executados na plataforma móvel, na área de trabalho ou em ambos. Atualize as políticas existentes para que elas se apliquem à plataforma móvel ou a ambas. Para novos scripts, certifique-se também de que a opção móvel ou ambas estejam selecionadas.

    Módulos do navegador

    Para o código existente, os módulos devem ser transferidos para as tabelas sys_ui_application ou sys_ui_module para ficarem disponíveis na plataforma móvel. Ao desenvolver um novo código, certifique-se de que todos os módulos sejam criados nas tabelas sys_ui_application ou sys_ui_module.

    Ações de IU

    As ações de IU devem ser transferidas para a tabela sys_ui_ng_action para aparecer na plataforma móvel. Os scripts de ação de IU que não usam métodos obsoletos não exigem mudanças no próprio script. Para novas ações de IU, certifique-se de que elas sejam criadas na tabela sys_ui_ng_action.