2011.1

UNUMwebFramework Versão 2011.1

Navegadores suportados

    • Firefox 4 ou superior;

    • Google Chrome 12 ou superior;

    • Safari 5.0.5 ou superior;

    • Internet Explorer 8 ou superior.

Novidades

Rótulos sobre campos

Passa a ser possível definir o posicionamento do "label" dos campos em grades detalhe através da propriedade Field.labelPosition. Por padrão o label é alinhado à esquerda do campo, mas a propriedade permite configurar para que o label seja exibido sobre o campo. Documentação disponivel em: http://l.unum.com.br/jsdoc/symbols/field.html#labelPosition

Nova biblioteca de gráficos

Foi disponibilizada uma nova biblioteca de gráficos que utiliza tecnologias de padrões abertos suportadas pela maiores dos navegadores Web, incluindo os dos dispositivos móveis, como iPhone, Android e iPad. Documentação disponível em http://www.unum.com.br/o-que-fazemos/modulos/web-framework/artigos/criando-graficos-com-o-highcharts.

Audio HTML5

Passa a ser possível reproduzir arquivos de áudio no Sistema UNUM. Para a execução de alertas sonoros em processos, disponibilizamos uma funcionalidade de 'beep' padrão do sistema, mas é possível criar seu próprio componente de áudio com os sons importados nos formatos mp3 e wav, por exemplo. Está sendo utilizada a tag >audio< do HTML5, portanto deve ser verificada a compatibilidade com o navegador utilizado. É possível encontrar a documentação completa da funcionalidade em http://l.unum.com.br/jsdoc/symbols/Audio.html.

Contração de grupos

Passa a ser possível contrair e expandir os grupos de campos no modo formulário da grade do Sistema UNUM. Também foi disponibilizada uma API para que os desenvolvedores possam configurar se querem trazer um determinando agrupamento já contraído na escrita da grade.

Novos manuais técnicos

O manual Boas práticas de desenvolvimento na Plataforma UNUM foi atualizado com novas convenções de códigos JavaScript. Passaram a ser adotadas convenções com maior aceitação na comunidade de desenvolvedores JavaScript. As principais alterações são: indentação de 4 caracteres e uso do ";" no final das expressões.

Também foi criado o Guia de estudo na Plataforma UNUM com o objetivo de orientar o estudo dos desenvolvedores novatos na Plataforma UNUM. Nele são sugeridos manuais, artigos e livros sobre as tecnologias desenvolvidas pela UNUM, além de sugestões de leitura sobre conhecimentos pré-requisitos, como JavaScript e SQL.

Outras melhorias

    • Foi aplicado o conceito de animação na barra de progresso, está mais suave, fazendo o passo a passo até chegar no novo valor definido.

    • Foram criadas as funções de manipulação de array uwl.array.map, uwl.array.reduce, uwl.array.forEach e uwl.array.filter. A documentação da nova API encontra-se em http://l.unum.com.br/jsdoc/symbols/uwl.array.html.

    • Foram criadas as funções de manipulação de arquivos uwl.file.list e uwl.file.listFiles. A documentação da nova API encontra-se em http://l.unum.com.br/jsdoc/symbols/uwl.file.html.

    • Foram criadas funções de compressão e descompressão de arquivos ZIP. A documentação da nova API encontra-se em http://l.unum.com.br/jsdoc/symbols/uwl.zip.html.

    • Foi criado o método Environment.exit(), permitindo o desenvolvedor finalizar o Web Framework. Maiores detalhes na documentação JSDoc: http://l.unum.com.br/jsdoc/symbols/Environment.html#exit.

    • Ao criarmos um relatório que não usará o SimpleLayout, será possível fazer a exportação dos dados dele usando o evento onGetDataExporter. Documentação disponível em http://www.unum.com.br/o-que-fazemos/modulos/web-framework/artigos/como-exportar-os-dados-de-um-relatorio-que-nao-usa-simplelayout

    • Ao inserir ou apagar classes através do processo "Classes Explorer", os eventos da Grade definidos no x-class da "Classe" passam a ser executados. Eventos suportados: onBeforeInsert, onAfterInsert, onBeforeDelete, onAfterDelete, onBeforePost e onAfterPost.

    • Agora os campos do tipo grade também ser organizados em colunas, semelhante aos demais tipos de campo. Para isto, basta utilizar a propriedade column de acordo com a documentação disponível em l.unum.com.br/jsdoc/symbols/field.html#column.

    • Criado artigo explicando como o Explorer pode ser estendido para demandas específicas de alguns cadastros. Documentação disponível em: http://www.unum.com.br/o-que-fazemos/modulos/web-framework/artigos/estendendo-o-explorer.

    • O Web Framework passa a indicar para o navegador Internet Explorer que o sistema não necessita do modo de compatibilidade. Ao receber esta informação, o navegador deixa de exibir o botão que permite habilitar o modo de compatibilidade, eliminando o risco do usuário selecionar um modo que quebre o funcionamento do sistema.

    • O sistema deixa de exigir a permissão de visualização do processo Admin > Explorer na abertura dos campos com lista de opções.

    • Não serão mais exibidos no processo de Permissões os relatórios ou processos com os atributos display e permissionControlEnabled preenchidos com false. Estes atributos podem ser modificados através do método fileAttributes no x-class do diretório dos arquivos. Esta melhoria permite que processos puramente auxiliares de outros processos não sejam exibidos sem necessidade nas interfaces de permissões.

    • Alguns servidores proxy HTTP estavam causando o descarte antecipado da biblioteca Web Framework enviada para o navegador Web. Este problema gerava um baixo desempenho no login do sistema, pois o processo de recriação e compressão da biblioteca poderia ser superior a 5 segundos. Para contornar este problema, foi criado no servidor um cache da biblioteca pronta para ser enviada para o navegador, reduzindo significativamente o tempo de login neste cenário. Esta melhoria também beneficia usuários que desligam o cache do navegador Web e o uso do sistema em dispositivos móveis, onde as restrições de memória causam o descarte antecipado do cache.

    • Foi disponibilizado o evento Field.onLookupMultipleInsert. Ele permite que seja customizado o comportamento do botão "Incluir como Novos" existente na grade Lookup para campos que permitem inserção múltipla (Field.allowMultipleInsert = true). É possível encontrar a documentação completa da funcionalidade em http://l.unum.com.br/jsdoc//symbols/Field.html#onLookupMultipleInsert.

    • Os campos do tipo 'Date' do Forumário de Dados passam a suportar as expressões do tipo: 'h', 'a', '-3', etc.

Alterações

    • A interface de login e de autenticação de usuário passa a desativar a auto-correção do valor informado em navegadores de dispositivos móveis (iPhone, iPad e Android).

    • O alerta de documentação incompleta deixa de ser executado em processos positivos, evitando o alerta desnecessário em processos de testes.

    • Os atalhos para os processos de atualização foram excluídos do módulo Admin, permanecendo apenas no módulo Desenvolvimento. Foram criadas as propriedades Process.visibleButtons, Process.enabledButtons, Grid.visibleButtons, Grid.enabledButtons e os métodos Process.button e Grid.button. Com esta alteração, os termos ação e action deixam de existir na nomenclatura do Web Framework, sendo substituídos por botão e button. As propriedades e métodos com o termo "action" foram mantidos como deprecated.

    • O diretório "Processos Iniciais" foi movido do diretório "products" para "UNUMwebFramework/modules". A URI para iniciar o sistema o Sistema UNUM foi alterada de "/inteq" para "/unum". A URI anterior foi mantida para preservar o funcionamento dos atalhos existentes.

Defeitos corrigidos

    • Em determinadas situações, a grade perdia a posição do registro corrente ao mudar a visão de um registro em inserção.

    • Carga de interações de processos que demoravam mais 10 minutos em execução poderiam gerar um erro do tipo 500, apesar de não impedir a sua conclusão.

    • Relatórios enviados por e-mail não eram exibidos corretamente em alguns clientes de email.

    • Grades com campos do tipo memo geravam erro no Firefox 5.

    • Corrigida falha na verificação do onCreateDataset para DetailGrids. Essa falha ocorria quando uma DetailGrid declarada em xclass não definia o evento.

    • Relatórios que tinham um atalho na primeira coluna, exibiam o conteúdo desalinhado.

    • Havia uma falha na identificação da quebra de agrupamentos, fazendo com que fossem criados vários agrupamentos diferentes para um conteúdo que deveria estar em um único agrupamento.

    • O botão "Incluir como novos" das grades lookup falhava se existisse algum campo somente para leitura com preenchimento no momento da abertura da grade lookup.

    • O botão "Incluir como novos" das grades lookup poderia não ser exibido quando o usuário pesquisava um valor que não retornava ocorrências.

    • Era possível editar campos da grade antes que fosse finalizada a sua preparação.

    • O uso de salto de linha no resultado do evento onLookupDisplay poderia causar uma execução indevida do x-finder com o valor de visualização, alterando em alguns casos o valor do campo.

    • Alterar um campo lookup preenchido para um valor semelhante poderia deixar o campo lookup e a navegação de campos inconsistente.

    • O duplo clique em campos lookup que apontavam para a tabela Virtual File System gerava um erro indicando que o campo "CLASSE" não existia.

    • Em determinadas situações, o Web Framework apresentava a mensagem "Processando" sem que houvesse de fato um processamento ocorrendo no servidor.

    • O Relatório Permissoes do grupo (-1898146166 /products/UNUMadmin/modules/Admin/Seguranca/Permissoes/Permissoes do grupo.il) não exibia as imagens, agora as imagens são enviadas nos emails. O relatório também não exibia os grupos dos usuários corretamente e o erro foi corrigido.

    • O método Process.closeTab() não estava retornando para a aba indicada pelo desenvolvedor. Em determinadas situações a finalização de digitação em um campo lookup gerava o erro "Erro não especificado" no IE7 e IE8.

    • Logo após uma atualização do Web Framework, as imagens dos botões poderiam ficar quebradas até 2 horas após a atualização ou até o usuário descartar o cache do navegador.

    • Em uma base não licenciada, o Web Framework poderia solicitar a alteração da senha do usuário "administrator". Como ela não pode ser alterada, era impedida a utilização do sistema.

    • Após o login, era alertado indevidamente que o Firefox 4 não era um navegador suportado pelo sistema. Ao abrir o Explorer clicando duas vezes em um campo lookup, o evento onLookupAddResult era executado para registros que não existiam na tabela associada ao campo.

    • O diretório "Atalhos" do menu "Ir Para" estava erroneamente dependendo da permissão de visão do módulo UNUMWebFramework.

    • O uso do método Process.write() na interação "writeLayout" de um relatório gerava um erro logo após o envio do relatório por email.

    • Em determinadas situações a navegação através do mouse poderia deixar um campo inconsistente. O valor era exibido para o usuário, mas para o sistema o campo continuava com o valor anterior. Alguns tipos de falhas de comunicação poderiam deixar o Web Framework em um estado inconsistente, bloqueando qualquer interação do usuário.

    • A execução do método SimpleLayout.end() em um relatório vazio poderia gerar o erro "SimpleLayout already started". Em determinadas situações, a mudança de visão de uma grade gerava o erro "previousCell is null".

    • Alterar o modo de visão da grade no evento onAfterCancel gerava o erro "Cannot read property 'value' of null'" nos navegadores Safari e Chrome.

    • O uso dos caracteres especiais #28, #29, #30 e #31 em campos do tipo texto ou em rótulos causava o erro "Invalid XML Document", impedindo a visualização da informação. Alguns destes caracteres são utilizados pelo Word para representar enumerações, criando um problema quando o usuário copiava um texto do Word para o sistema.

    • Chaves escritas em relatórios eram confundidas com números telefônicos em navegadores de dispositivos móveis (iPhone, iPad e Android).

    • A janela de escolha das opções dos atalhos não era posicionada corretamente no iPhone e no iPad.

    • As janelas de seleção de opções, confirmação e autenticação do usuário não estava sendo posicionadas no centro da tela do iPhone e do iPad.

    • O menu "Ir Para" não exibia todas as opções no iPhone e no iPad.

    • O acesso ao campo de uma grade detalhe no evento de onAfterScroll da master causava o erro "Stack overflow" caso a grade detalhe fosse definida através da propriedade classKey.

    • A primeira coluna de um relatório que fazia uso do groupExpansionLevel e possuía a propriedade totalContent preenchida ficava desalinhadas com os totais.

    • O método Field.focus() não funcionava quando era executado no evento Field.onAfterChange. Em determinadas situações o foco de edição estava em um campo, mas a alteração era gravada em outro.

    • O evento Field.onDefineGrid declarado em um processo através do evento Grid.onDefineFields não era executado na primeira escrita da grade.