Notas de lançamento
4D 21
Leia O que há de novo no 4D 21, o post do blog que lista todos os novos recursos e aprimoramentos em 4D 21.
Destaques
- Support of AI Vector Searches in the
query()function and in the$filterREST API. - Support of TLS encryption for the 4D.TCPConnection class.
- Servidor Web:
- new HTTP rules to customize HTTP response headers,
- ability to set HTTP request handlers using a
handlersproperty in the settings parameter of the Web serverstart()function, - the Web server object contains new
rulesandhandlersproperties.
- New ORDA events on data: validateSave, saving, afterSave, validateDrop, dropping, afterDrop.
- New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in
HTTPRequestandHTTPAgentclasses. - Client/server:
- You can display Qodly pages in Web areas and share the remote client session.
- The QUIC network layer has been enhanced to handle network interface changes transparently, for example when you travel with your laptop. See this blog post.
- You can now create components directly from the host project and edit their code from a dedicated tab in the 4D Explorer without leaving or restarting the project.
- The 4D product activation step has been simplified and automated during sign-in.
- 4D AIKit component: new features to invoke a specific tool automatically and specify a response format.
- Línguagem 4D:
- New "trim" commands to remove leading and trailing spaces from a string:
Trim,Trim start, andTrim end. NumandStringcommands have been updated to support conversions in different bases (radix).
- New "trim" commands to remove leading and trailing spaces from a string:
- Fixed bug list: list of all bugs that have been fixed in 4D 21.
Prévia do desenvolvedor
Fluent UI rendering for 4D forms is proposed in Developer Preview during the beta test program.
Mudanças de comportamento
4D 21 includes an ICU library update (see below) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada.
- Web services (SOAP): when scalable sessions are enabled, web services now run in preemptive processes in compiled mode. Make sure your SOAP code is thread-safe.
- Web server: the support of deprecated
4DSYNC/and4DCGI/URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by
Process activity. - The
HIGHLIGHT TEXTcommand is now supported in the context of subforms. - Components no longer embedded: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see this list) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:

- Import: import automatically 4D components as dependencies to the project
- Ignore: do not import components and let you manage components manually
- Ask later: do not import components and display the dialog at the next project opening.
In binary databases, you need to select the required components in the 4D installer or download them from the 4D Product Download portal.
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 PROPERTYeLISTBOX Get propertysuporta três novas constantes:lk current item,lk current item positionelk 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.
.hasPrivilege()returns True for promoted privileges in the web process.- 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 para 4D 20.x LTS.
Tabela da biblioteca
| Biblioteca | Versão atual | Atualizado em 4D | Comentário |
|---|---|---|---|
| BoringSSL | fa47b1d | 21 | Usado para QUIC |
| CEF | 7258 | 21 | Chromium 139 |
| Hunspell | 7.3.27 | 20 | Usado para verificação ortográfica em formulários 4D e 4D Write Pro |
| ICU | 77.1 | 21 | This upgrade forces an automatic rebuild of alphanumeric, text and object indexes. |
| libldap | 2.6.10 | 21 | |
| libsasl | 2.1.28 | 20 | |
| Liblsquic | 4.2.0 | 20 R10 | Usado para QUIC |
| Libuv | 1.51.0 | 21 | Usado para QUIC |
| libZip | 1.11.4 | 21 | Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet |
| LZMA | 5.8.1 | 21 | |
| ngtcp2 | 1.16.0 | 21 | Usado para QUIC |
| OpenSSL | 3.5.2 | 21 | |
| PDFWriter | 4.7.0 | 21 | Used for WP Export document and WP Export variable |
| 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 | |
| Xerces | 3.3.0 | 21 | Used for XML commands |
| Zlib | 1.3.1 | 21 |