Árvore de páginas

Versões comparadas

Chave

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

...

Correções

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.

Referente ao chamado: DTAPPSRV-7245

Expandir
titleError in encode FindBase64Val returning -1: Serviço fica indisponível

Incidente: Ao apresentar Error in encode FindBase64Val returning -1, em algumas ocasiões o serviço ficava indisponível.

Solução:  Correção no tratamento da mensagem.

Referente ao chamado: DTAPPSRV-7253

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 [ ], 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á com array advpl que é representado por "{ }", todavia no padrão Json, isto representa um objeto Json vazio, ou seja, em um código que tenha:
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

...