Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Exibir filhos

Correções

Expandir
titleWebApp - Problema na montagem de mensagens maiores que 100k no websocket.

Ocorrência: problemas no funcionamento do WebApp causados pelo tratamento de Websockets em um componente do Appserver.

Correção: corrigido o tratamento de Websockets para permitir o funcionamento correto do WebApp com protocolo Websocket.

Referente ao chamado: DTAPPSRV-7205

Expandir
titleOcorrência de access violation durante assinatura de fontes via AppServer Command Line.

Ocorrência: access Violation durante assinatura de fonte via AppServer Command Line.

Correção: inicialização e configuração dos parâmetros SSL.

Referente ao chamado: DTAPPSRV-7431

Expandir
titleOcorrência de queda ao chamar função HSMObjList

Ocorrência: ao chamar a função HSMObjList com o parâmetro cPass (segundo parâmetro) igual a string vazia e com o dispositivo HSM inicializado, ocorria queda no Application Server.

Correção: foi feito um tratamento para evitar a queda quando o parâmetro cPass estiver vazio.

Referente ao chamado: DTAPPSRV-7510

...

Expandir
titleTratamento de objetos json "inline"

Incidente: O tratamento de objetos Json "inline" , na linha de código, não está respeitando o padrão correto de objetos Json, não sendo possível criar objetos Json vazios , (ex: { }), e nem corretamente os arrays de Json [ ] , não são criados corretamente e também não permitem que os tipos True, False e Null sejam tratados como tipos Json. 

Solução: O tratamento dos objetos Json foi corrigido para que ele passasse a ser tratado conforme a formatação Json. A principal alteração se dá ocorre com array advpl AdvPL que é representado por "{ }", todavia no padrão Json, isto representa um objeto Json vazio, ou seja, em um código que tenha :
por exemplo "local jJson := { "chave" : {} }
", terá como valor um objeto Json vazio.

Tratamentos para o objeto Json inline:
  - faz a expansão de todos os nós do Json avaliando possíveis expressões, funções, e variáveis AdvPL/TLPP, ou seja, os valores das chaves Json, podem vir de variáveis, funções, expressões AdvPL/TLPP, podendo combinar com os tipos primitivos do Json.
  - quando dentro de objetos Json, faz correção de "{ }", para considerar como um "objeto Json" vazio, e não como um "array de AdvPL" vazio, pois este é o padrão correto de da estrutura Json.
  - também quando dentro de objetos Json, faz tratamento especial para os tipos: true, false e null, para que sejam considerados como elementos Json e não tentem extrair como um identificador/variável em Advpl/TLPP, representando os tipos AdvPL: .T., .F. e Nil, respectivamente.
  - Array AdvPL, com elementos, são tratados como array Json. Ex: "chave":{1, 2, "3"}, será transformado em "chave":[1, 2, "3"], este caso é possível pois as estruturas de Array com conteúdo AdvPL, é diferente de um Objeto Json, então foi mantido este comportamento para dar maior poder ao tratamento do objeto Json.
  - Array Json são tratados naturalmente no Json inline. Ex: "chave":[true, 2, "a"]Removido o tratamento histórico do "clipper", de se trocar [ ] por "" em alguns cenários para fontes TLPP. Ex. ':= []'  ou ', []' ou '+ []', ... isto para permitir que os array Json sejam tratados corretamente quando declarados.Obs. para os casos onde se estivesse usando o "{ }" para determinar um array vazio, a recomendação é trocar por uma variável de array vazio.
Ex:
local jVarJson1 := { "valor_deveria_ser_array" : {} } as json   // Neste caso o valor {} será um Json vazio e não mais um array vazio
para manter o comportamento anterior a sugestão é trocar por:
local aArrayVazio := {}
local jVarJson1 := { "valor_deveria_ser_array" : aArrayVazio } as json // Neste caso será sempre um array em qualquer versão
Referente ao chamado: DTAPPSRV-7210

Expandir
titleTratamento da criação de índices com campos maior que 10 caracteres

Incidente: Falha de criação de índices em tabelas de uso interno do Framework AdvPL, usando RDD TOPCONN com DBAccess e/ou SQLITE, quando o campo possui nome com mais de 10 caracteres.

Solução: Criação de índice suportada adequadamente após ajuste na lista de campos do índice no AppServer.

...