Notas de lançamento
4D 20 R10
Leia O que há de novo no 4D 20 R10, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R10.
Destaques
- Handling of ORDA events on data.
- Nova opção connectionTimeoutno parâmetrooptionsda função4D.TCPConnection.new().
- New 4D.Vectorclass to process and compare vectors, usually calculated by AIs.
- New options to generate UUIDs in version 7 for 4D automatic fields and Generate UUIDcommand.
- New UDPSocketandUDPEventclasses to send data using UDP sockets. Support of detailed logging for UDP events in the4DTCPUDPLog.txtlog file (renamed from4DTCPLog.txt).
- New .promote()and.demote()functions in the Session class to dynamically add/remove privileges in a web process.
- Automatic selection of licenses to embed in the Build application dialog box, modified Create deployment licensecommand, newAutomaticLicenseIntegrationBuildApplication xml key.
- Enhanced security for formula copy/paste in 4D Write Pro and styled text areas: formulas copied from outside the current 4D application are now always pasted as values only.
- 4D AIKit component: new OpenAIEmbeddingsAPI class to create embeddings using OpenAI's API.
- You can now associate a class to an object field in the structure editor.
- Automatic handling of recursive dependencies.
- Línguagem 4D:
- For consistency, Create entity selectionandUSE ENTITY SELECTIONcommands have been moved from the "4D Environment" to the "Selection" themes.
- New OBJECT SET DATA SOURCE FORMULAandOBJECT Get data source formulacommands to assign and readFormulaobjects as data sources for form objects.
- LISTBOX SET PROPERTYe- LISTBOX Get propertysuporta três novas constantes:- lk current item,- lk current item positione- lk selected items expression.
 
- For consistency, 
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R10.
Mudanças de comportamento
- On Windows, current printer fonts intended only for printing (i.e. not usable on screen) are no longer loaded by 4D at startup.
- The MeCab library has been removed. This change only affects the processing of Japanese text.
- When an object variable or parameter is declared with a "cs" class type, assigning it with an object instance of a different class now generates a syntax error.
- The Timecommand now returns a negative time expression when the timeValue parameter is negative. For instance,Time("-01:02:03")will return -01:02:03. In previous releases, the negative sign was ignored.
4D 20 R9
Leia O que há de novo no 4D 20 R9, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R9.
Destaques
- The MeCab library is now deprecated and will be removed in the next release.
- Suporte de tokens de sessão manipulado com as novas funções Session.createOTP()eSession.restore().
- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na área de design de etiqueta.
- New TCPListenerclass to create TCP server connections; new properties in related classes:address,listenerandportinTCPConnectionclass,addressandportinTCPEventclass.
- Os comandos e constantes obsoletos agora geram warnings específicos no live checker e no compilador. Você pode saber se um comando está obsoleto usando o comando Command name.
- Novos comandos WA SET CONTEXT e WA Get context para controlar o conteúdo de $4d em áreas da Web.
- Novo parâmetro de banco de dados RDpara otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D.
- Os componentes interpretados agora podem ser editados a partir do projeto host.
- Licencias são agora atualizadas automaticamente na inicialização.
- Nova 4D AIKit component permitindo a interação com APIs de terceiros.
- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: VP IMPORT DOCUMENT, VP IMPORT FORM BLOB, VP IMPORT FROM OBJECT e VP FLUSH COMMANDS.
- Novos recursos 4D Netkit para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0.
- 4D Write Pro Interface: New integrated AI to interact with chatGTP from your 4D Write Pro documents.
- Lista de bugs corrigidos: lista de todos os bugs que foram corrigidos no 4D 20 R9.
4D 20 R8
Leia O que há de novo no 4D 20 R8, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R8.
Destaques
- Implemente seus próprios HTTP request handlers usando a nova classe 4D.IncomingMessage.
- As expressões usadas em form object properties agora se beneficiam da verificação de sintaxe na Property list e no Compiler.
- Você pode associar uma classe a um formulário para ativar a antecipação do tipo de código e a instanciação automática dos dados do formulário ao usar o comando Form.
- Suporte de sessões autônomas para simplificar a codificação local para aplicações cliente/servidor.
- Depurador 4D: novo design e salvamento automático, recursos do modo de exibição.
- Nova arquitetura de componentes construída para um melhor cumprimento das diretrizes da notarização da Apple.
- Agora você pode facilmente criar aplicativos de avaliação na caixa de diálogo Criar aplicativo.
- Dependências: Use o gerenciador de dependências para verificar se há novas versões e atualizar os componentes do GitHub.
- Novas classes TCPConnectioneTCPEventpara gerenciar conexões de clientes TCP, manipular eventos e aprimorar o controle sobre a transmissão de dados. Adicionado4DTCPLog.txtpara registro detalhado de eventos TCP.
- Novas opções em VP EXPORT DOCUMENT e VP IMPORT DOCUMENT para controlar estilos, fórmulas, integridade de dados e proteção por senha.
- 4D Write Pro:
- Os seguintes comandos agora permitem parâmetros, como objetos ou coleções: WP SET ATTRIBUTES, WP Obter atributos, WP REDEFINIR ATTRIBUTES, Tabela WP anexa linha, documento de importação do WP, WP EXPORT DOCUMENT, WP Add picture, e WP Insert picture.
- WP Insert formula, WP Insert document body e WP Insert break, agora são funções que retornam intervalos.
- Novas expressões relacionadas a atributos de documentos: This.sectionIndex, This.sectionName e This.pageIndex.
 
- Línguagem 4D:
- Comandos modificados: FORM EDIT
- .sign()and- .verify()functions of the 4D.CryptoKey class support Blob in the message parameter.
 
- Comandos modificados: 
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R8.
Mudanças de comportamento
- After a log file modification using SELECT LOG FILEor the Backup settings, theNew log filecommand now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised.
- Devido à sua nova arquitetura, os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D.
4D 20 R7
Leia O que há de novo no 4D 20 R7, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R7.
Destaques
- As colunas e cabeçalhos da list box de tipo tempo agora suportam a opção "blankIfNull".
- Novas propriedades em .getBoxInfo()e.getBoxList().
- Agora você pode adicionar e remover componentes usando a interface do gerenciador de componentes.
- Novo modo direct typing mode no qual você declara todas as variáveis e parâmetros em seu código usando as palavras-chave vare#DECLARE/Function(somente o modo suportado em novos projetos). A funcionalidade verificação de sintaxe foi aprimorado de acordo.
- Suporte a Session singletons e à nova propriedade de classe .isSessionSingleton.
- New onHTTPGetfunction keyword to define singleton or ORDA functions that can be called through HTTP REST GET requests.
- Nova classe 4D.OutgoingMessagepara que o servidor REST retorne qualquer conteúdo Web.
- Qodly Studio: agora você pode anexar o depurador Qodly a 4D Server.
- New Build Application keys para aplicativos 4D remotos para validar a autoridade de certificação do servidor signatures e/ou domain.
- Capacidade de criar aplicações independentes sem licenças incorporadas.
- Línguagem 4D:
- Novos comandos: Process info, Session info, SET WINDOW DOCUMENT ICON
- Comandos modificados: Process activity, Process number
- Deprecated commands (replacement): GET LAST ERROR STACK(Last errors),GET SERIAL INFORMATION(License info),PROCESS PROPERTIES(Process info),SET SCREEN DEPTH,C_XXXcommands (var and #DECLARE/Function declarations). Deprecated commands are prefixed with "*O*".
 
- 4D Write Pro:
- Novo comando: WP DELETE SECTION
- Comandos modificados: WP DELETE SUBSECTION e WP RESET ATTRIBUTES
 
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R7.
Mudanças de comportamento
- As documentações para Linguagem 4D e Linguagem 4D Write Pro estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão.
- The Filecommand (as well as4D.File.new()) is stricter when it comes to checking the syntax of the path supplied as a parameter.
- A ação de permission describe foi removida das ações disponíveis. Acesso às urls /rest/$catalognão é mais controlado. Session describe privileges are now ignored.
4D 20 R6
Leia O que há de novo no 4D 20 R6, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R6.
Destaques
- Operadores de comparação nas referências a objetos e nas referências a coleções. collection.query()now supports object and collection references as query values.
- Quando um componente tiver um declared namespace, suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de cs.<namespace>.
- Gerenciador de componentes: suporte de componentes armazenados no GitHub.
- Novo entitySeletion. lean()função e$cleanREST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas.
- Nova função session.getPrivileges()e$info/privilegesAPI REST para inspecionar os privilégios de sessão para uma depuração mais fácil.
- Novo arquivo 4DCEFParameters.json para personalizar áreas web embutidas no 4D.
- Nova classe HTTPAgent e nova propriedade agentpara a classe HTTPRequest.
- Novas funções enableState()edisableState()para monitorar os estados da página Qodly a partir do servidor.
- Nova $singletonAPI para chamar funções singleton expostas do REST e novos privilégios associados.
- Um novo botão de configurações ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados On REST Authenticationagora está obsoleto).
- Uma nova guia de parametros ajuda a definir a geração de avisos globalmente.
- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the SET DATABASE PARAMETER/Get database parametercommands.
- New 4D-QPDF component that provides the PDF Get attachmentscommand to extract attachments from a PDF/A3 document.
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R6.
Mudanças de comportamento
- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados (verticalmente ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling).
- A API REST $catalogagora retorna singletons (se houver).
4D 20 R5
Leia O que há de novo no 4D 20 R5, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R5.
Destaques
- Novo Gerenciador de componentes para lidar com componentes por meio de um arquivo dependencies.json.
- Suporte a estruturas de tratamento de erros Try...Catch...End try.
- QUIC network layer now supports broadcasting, SSO, and IPv6.
- Soporte de selecciones de entidades restringidas.
- Soporte de clases compartidas y de clases singleton. Novas propriedades de classe: isShared,isSingleton,me.
- Suporte à inicializando uma propriedade de classe em sua linha de declaração.
- Novo modo forçar login para solicitações REST com um suporte específico no Qodly Studio para 4D.
- Novo parâmetro REST $format.
- O objeto Sessionagora está disponível em sessões de usuários remotos e sessões de procedimentos armazenados.
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R5.
Mudanças de comportamento
- Os plug-ins 4D Internet Commands e 4D for OCI não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao Portal de descarrega de produtos 4D.
- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado catalog_editor.jsonarmazenado na pastaSourcesdo projeto.
4D 20 R4
Leia O que há de novo no 4D v20 R4, o post do blog que lista todos os novos recursos e aprimoramentos em 4D v20 R4.
Destaques
- Suporte do formato de criptografia ECDSApara os certificados TLS.
- As conexões TLS cliente/servidor e servidor SQL agora são configuradas dinamicamente (não são necessários arquivos de certificado).
- Direct HTML format for structure definition exports.
- Novo Code Live Checker que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução.
- Os parâmetros de métodos declarados nos protótipos #DECLAREnão são mais necessários nos métodos "Compiler_".
- Suporte de formatos personalizados de data e hora
- Nova palavra-chave Try(expression)para tratar casos de erro simples.
- Novo comando HTTP Parse message.
- Nova opção de compatibilidade Impressão sem bloqueio.
- Nuevo modo de edición en el Explorador de datos.
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R4.
Mudanças de comportamento
- Usando uma sintaxe legada para declarar parâmetros (por exemplo, C_TEXT($1)ouvar $1 : Text) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação.
- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver esta entrada de blog).
- Na atualização da biblioteca OpenSSL, o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado.
- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then False) and that Open datastoreencrypts your connection by passing the "tls" option to True in connectionInfo. In order to allow password verification when the 4D user directory uses the bcrypt algorithm, the "password" value in the connectionInfo parameter of theOpen datastorecommand is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comandoOpen datastore).
4D 20 R3
Leia O que há de novo no 4D v20 R3, o post do blog que lista todos os novos recursos e aprimoramentos em 4D v20 R3.
Destaques
- Nova função collection.multiSort.
- Support of context parameter in Formula from string.
- Support of headersproperty in connectionHandler parameter of 4D.WebSocket.new.
- Marcador de modificação global para facilitar a implementação de módulos de sincronização de dados. Novas funções: ds.getGlobalStampeds.setGlobalStamp.
- Atribuindo arquivo de referências a atributos de imagem/blob é suportado no ORDA.
- Support for initializing the variable's value and data type in the declaration line.
- As configurações de arquivos de log agora são salvas com o arquivo de dados atual
- Nova sintaxe para declarar parâmetros variádicos
- 4D View Pro: soporte de la importación y de la exportación de documentos 4D View Pro al formato Blob.
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R3.
Mudanças de comportamento
- Alguns erros foram capturados pelo seu método de tratamento de erros somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: Indice out of range, Type incompatible, and Dereferencing a Null pointer. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando ABORT.
- 4D não inclui mais um interpretador PHP interno. You need to set up and run your own PHP interpreter to use PHP commands.
4D 20 R2
Leia O que há de novo no 4D v20 R2, o post do blog que lista todos os novos recursos e aprimoramentos em 4D v20 R2.
Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a atualização para a versão 4D 20 R2 HF1 build 100440 ou superior. For more information, refer to this Security bulletin.
Destaques
- Nova classe WebSocket para criar e gerenciar conexões WebSocket do cliente a partir de 4D.
- Nova configuração de interface para a camada de rede QUIC.
- 4D View Pro: soporte del formato de archivo .sjs para la importación y la exportación de documentos.
- Interface 4D Write Pro: novo Table Wizard.
- Lista de erros corrigida: lista de todos os bugs corrigidos em 4D 20 R2.
Mudanças de comportamento
- Aviso: o valor inicial dos objetos offsetde 4D.FileHandle era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões 20.1 HF1 e 20 R2 e o valor agora é 0.
4D 20.x LTS
Veja Notas de lançamento 4D 20.x LTS.
Tabela da biblioteca
| Biblioteca | Versão atual | Atualizado em 4D | Comentário | 
|---|---|---|---|
| BoringSSL | 9295969 | 20 R10 | Usado para QUIC | 
| CEF | 6778 | 20 R8 | Chromium 131 | 
| Hunspell | 7.3.27 | 20 | Usado para verificação ortográfica em formulários 4D e 4D Write Pro | 
| ICU | 73.2 | 20 | Essa grande atualização força uma reconstrução automática dos índices alfanuméricos, de texto e de objetos. | 
| libldap | 2.6.7 | 20 R6 | |
| libsasl | 2.1.28 | 20 | |
| Liblsquic | 4.2.0 | 20 R10 | Usado para QUIC | 
| Libuv | 11.51.0 | 20 R10 | Usado para QUIC | 
| libZip | 19.5 | 20 | Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet | 
| LZMA | 5.4.1 | 20 | |
| ngtcp2 | 1.13 | 20 R10 | Usado para QUIC | 
| OpenSSL | 3.3.2 | 20 R7 | O nível de segurança TLS/SSL padrão foi atualizado. Veja mudanças de comportamento para versão 20 R4 | 
| PDFWriter | 4.5.11 | 20 R3 | |
| PHP | 8.2.4 | 20 | |
| SpreadJS | 17.1.0 | 20 R7 | Veja este post de blog para uma visão geral dos novos recursos | 
| webKit | WKWebView | 19 | |
| Zlib | 14.1.6 | 20 |