Saltar para o conteúdo principal
Versão: v20 R4 BETA

Notas de Lançamento

4D v20 R4

Read What’s new in 4D v20 R4, the blog post that lists all new features and enhancements in 4D v20 R4.


Mudanças de comportamento

  • Using a legacy syntax for declaring parameters (e.g. C_TEXT($1) or var $1 : Text) is now deprecated and generates warnings at code typing, syntax checking, and compilation steps.
  • In the updated OpenSSL library, the default SSL/TLS security level has been changed from 1 to 2. RSA, DSA and DH keys of 1024 bits and above and less than 2048 bits as well as ECC keys of 160 bits and above and less than 224 bits are now no longer allowed. By default, TLS compression was already disabled in previous OpenSSL versions. At security level 2 it cannot be enabled.

4D v20 R3

Read What’s new in 4D v20 R3, the blog post that lists all new features and enhancements in 4D v20 R3.


Mudanças de comportamento

  • Some errors were catchable by your error handling method in interpreted mode only. 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. However, for such errors on Intel processors, the procedure is still interrupted as before, whereas on Apple Silicon processors the procedure is only interrupted if you call the ABORT command.
  • 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 v20 R2

Read What’s new in 4D v20 R2, the blog post that lists all new features and enhancements in 4D v20 R2.

Nota de segurança

If your 4D applications use TLS connections, it is recommended that you upgrade to 4D v20 R2 HF1 build 100440 or higher. For more information, refer to this Security bulletin.


Mudanças de comportamento

  • Warning: The starting offset value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0.

4D v20.x

Leia O que há de novo no 4D v20, o post do blog que lista todos os novos recursos e aprimoramentos em 4D v20.

Versão mínima do cliente para 4D Server v20.2 e posterior

For internal reasons, the version of remote clients connecting to 4D Server v20.2 and later must be at least 4D v20.2.

Nota de segurança

If your 4D applications use TLS connections, it is recommended that you upgrade to 4D v20.2 LTS build 100956 or higher. For more information, refer to this Security bulletin.

Aviso de reconstrução do índice

4D v20 inclui uma atualização da biblioteca da UCI (ver abaixo) que forçará uma reconstrução automática de índices do tipo alfa, texto e objeto. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada.

4D v20.1 index rebuild and client/server versions

4D v20.1 também inclui uma atualização da biblioteca ICU, que tem as seguintes consequências:

  • Isso forçará uma reconstrução automática dos índices do tipo alfa, texto e objeto.
  • Por causa da consistência de ordenação, é necessário que os clientes remotos 4D e o 4D Server usem a mesma versão: somente o 4D v20.1 remoto pode se conectar ao 4D Server v20.1 e vice-versa.


Mudanças de comportamento

  • As of v20.2, 4D v20 LTS is no longer compatible with Windows Server 2012 R2.
  • Warning: The starting offset value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0.
  • For HTTP RFC compliance, HTTPRequestClass.response.headers property now returns all header names in lowercase. If you want your code to continue working as before, use the new HTTPRequestClass.response.rawHeaders property.
  • TLS certificates are now automatically validated by 4D when sending HTTP requests with, and rejected with an error if they are invalid. A new option property allows you to control this validation.
  • TLS v1.0 and TLS v1.1 are deprecated, they are no longer supported as Min TLS version on 4D Server. Version 1.3 is now selected by default and is automatically used if _o_TLSv1_0 or _o_TLSv1_1 constants are set with SET DATABASE PARAMETER.
  • For consistency, all buttons, checkboxes, and radio buttons are now rendered with a "3D" type at runtime: respectively Object type 3D button, Object type 3D checkbox, and Object type 3D radio button are returned by OBJECT Get type for these objects.
  • A partir do 4D v20, o [4D for Mobile] (https\:// não é mais instalado por padrão no ambiente 4D. To benefit from the 4D for Mobile development features in 4D, you need to install the 4D Mobile App component in the "Components" folder of your projects. If a converted project uses features from the 4D Mobile App Server component, make sure you also install it in the "Components" folder of the project.

4D v19 R8

Read What’s new in 4D v19 R8, the blog post that lists all new features and enhancements in 4D v19 R8.


Mudanças de comportamento

4D v19 R7

Read What’s new in 4D v19 R7, the blog post that lists all new features and enhancements in 4D v19 R7.


Mudanças de comportamento

  • Para manter a consistência com as interfaces padrão (por exemplo, exploradores de arquivos do sistema operacional), as regras da caixa de listagem para seleção de linhas/arrastar e soltar foram modificadas. A continuous or discontinuous selection of rows can be dragged by simply clicking on and moving a selected row; the Alt key is not longer necessary (but can still be used like in previous previous). When the Shift or Ctrl/Command key is pressed, a mouse click is taken into account when the click is down. Para obter mais informações sobre arrastar e soltar em list boxes, consulte [esta postagem do blog] (https\:/ e faça download [deste projeto HDI 4D] (https\://
  • A numeração de compilação interna do 4D foi modificada a partir do 4D v19 R7:
    • as versões até 4D v19 R6 (inclusive) são numeradas como 282xxx,
    • releases from 4D v19 R7 will be numbered 100xxx.\ Note that a specific 4D version is still uniquely identified by a branch name and a build number. O número de build aumenta cronologicamente.
  • A capacidade de usar o protocolo REST do Wakanda/4D Mobile para chamar um método de projeto foi removida. You can use ORDA data model class functions or /4DACTION urls instead.

4D v19 R6

4D v19 R5

  • The project directory.json file can now be embedded in the server at build time, allowing you to deploy a client/server application with a basic security user and group configuration.
  • You can now deselect useless modules in your built applications.
  • The MeCab library is included by default in all 4D applications on macOS. Em versões anteriores, essa biblioteca, especificamente projetada para gerenciar texto em japonês, estava disponível apenas na versão japonesa do 4D no macOS. If you do not need this library in your final applications, you can now deselect it.
  • Client/Server optimization: New class functions allow you to handle the ORDA cache and the contents of an optimization context. See Preconfiguring contexts and ORDA Cache for more information.

    Essas funções são destinadas a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, você não precisará usá-los.

  • DataClass class: The new .getCount() function returns the number of entities in a dataclass.
  • The 4DDiagnosticLog.txt file only records high-level information by default (INFO level. You can now select the information level to record (for example DEBUG level information) using the Diagnostic log level selector of the SET DATABASE PARAMETER command or the log configuration file.
  • Calling Use() on a non-shared object or a non-shared collection does nothing (it no longer generates an error). Portanto, agora é inútil testar se o objeto ou coleção passado para Use() é realmente compartilhado.
  • For clarification purposes, two SQL commands have been prefixed: GET DATA SOURCE LIST has been renamed to SQL GET DATA SOURCE LIST, Get current data source has been renamed to SQL Get current data source.
  • 4D View Pro:
  • Áreas Web:
    • New Windows system rendering engine: Web Areas using the Windows system rendering engine are now based upon Microsoft Edge WebView2. Isto afeta as seguintes funcionalidades:
      • The WA Create URL history menu and WA GET URL HISTORY commands only return the current URL.
      • The Progression variable is no longer updated.
      • Os recursos de arrastar e soltar são gerenciados por uma API do Windows que é classificada como "experimental" pela Microsoft. Consequently, web areas may not work as expected when this API is not installed: Drag and drop may seem allowed even when the WA enable URL drop preference has been set to False. However, the drop action is blocked by default, and you can control the allowed URLs using the On Window Opening Denied event (see below).
    • (Windows only) When the user selects Print... from a web area using the embedded web rendering engine, a new print settings window is now displayed.
    • To reflect their actual effect in web areas (increase or decrease page zoom level), two commands have been renamed: WA SET PAGE TEXT LARGER has been renamed WA ZOOM IN, WA SET PAGE TEXT SMALLER has been renamed WA ZOOM OUT.
    • Enhanced security in web areas that use the embedded web rendering engine or the Windows system rendering engine (based on Microsoft Edge WebView2):
      • As políticas CORS agora se aplicam ao acesso a arquivos em disco em áreas da Web. For example, when opening a .html file with WA OPEN URL, that .html file cannot contain links that point to files outside its folder
      • Dropping external contents in web areas is now always blocked and triggers the On Window Opening Denied event when the WA enable URL drop preference is set to True (when set to False, the WA enable URL drop preference only modifies the drop cursor icon and filters the On Window Opening Denied event). Para permitir uma ação de soltar, você precisa executar um código adicional no método de objeto da área da Web:
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))

4D v19 R4

  • Alias attributes are available in ORDA classes.
  • Support for break and continue statements in loops.
  • Support for return statement and return expression to return values.
  • Support for compound assignment operators, short-circuit operators, and ternary operator
  • The Code Editor now includes an dropdown tool and supports markers for better code navigation.
  • New Preferences: Include tokens in project source files and Show clipboards option on the Methods page.
  • New REST request to lock/unlock entities.
  • 4D View Pro chapter added with new commands: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
  • New SystemWorker class.
  • The Alias selection constant has been renamed Allow alias files to resolve a conflict resulting from the support of alias attributes in ORDA.
  • For better compliance with ORDA specifications, the Map NULL values to blank values field property is now unchecked by default in databases created with 4D v19 R4 and higher. Você também pode ativar esse comportamento padrão em seus bancos de dados convertidos de versões anteriores selecionando a configuração de compatibilidade Mapear valores NULOS para valores em branco desmarcada por padrão na criação do campo. Agora é recomendável trabalhar com valores nulos, pois eles são totalmente compatíveis com o ORDA.
  • Because of the support of the ternary operator, the colon ":" is no longer allowed in variable, field, constant, function, plugin and project method names. Se o seu banco de dados/projeto contiver identificadores com dois-pontos, você deverá substituí-los antes de convertê-lo para a v19 R4 ou superior; caso contrário, poderão ocorrer erros no seu código. For example, if you have a variable named a:b, it could be interpreted as ternary operator syntax:
$value:=($size>1000)? a:b // Here 'a:b' is viewed as a ternary operator.

4D v19 R3

// "concate" function of myClass Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+" "+$param2)
// Calling method
$class.concate("Hello";" world") // Displays "Hello world"
$class.concate("Hello") // Displays "Hello "
$class.concate() // Displays " "

For detailed information, please refer to this blog post. Para beneficiar desta simplificação global, é necessário recompilar tanto os métodos chamados como os que são chamados; assim, os componentes devem ser recompilados.

  • Debugging web server sessions is easier on 4D Server.

  • The new 4D NetKit component allows you to connect to third-party APIs such as Microsoft Graph.

  • 4D v19 R3 usa um algoritmo de hashing mais forte para senhas de usuário 4D: Bcrypt. This new algorithm is automatically used when a password is changed using the Tool Box, the CHANGE PASSWORD command, or the Set user properties command. Depois que a senha for modificada, a abertura do banco de dados com uma versão anterior ao 4D v19 R3 causará uma recusa de autenticação para essa conta. Se você usa senhas 4D, é altamente recomendável fazer backup do arquivo .4db (bancos de dados binários) ou do arquivo directory.json (projetos) antes de atualizar para o 4D v19 R3 ou posterior.

  • For accuracy, the 4D digest constant has been renamed 4D REST digest.

  • Gerenciamento de fim de linha e BOM para comandos XML: Quando abertos no 4D v19 R3, os projetos ou bancos de dados criados com versões anteriores se comportam de forma diferente em relação aos caracteres de fim de linha padrão e ao gerenciamento de BOM em documentos XML: os caracteres de avanço de linha (LF) são usados em vez de CR (no macOS) e as marcas de ordem de byte (BOM) não são incluídas. Isso permite uma melhor compatibilidade com as ferramentas VCS. If necessary, you can restore the v19 R2 behavior using the XML SET OPTIONS command. Em projetos ou bancos de dados convertidos de versões anteriores ao 19 R2, essas opções são gerenciadas por duas configurações de compatibilidade.

  • Runtime Explorer shortcut removed in built projects: The Cmd/Ctrl+Shift+F9 shortcut does no longer display the Runtime Explorer window in single-user merged project applications. Esse atalho agora pode ser um atalho de aplicativo do usuário. You can call the Runtime Explorer window using the new OPEN RUNTIME EXPLORER command.

  • Recursos de depuração ampliados com o 4D Server: No modo interpretado, o 4D Server agora pode depurar todos os tipos de processos, incluindo sessões da Web escalonáveis. This is available when the debugger is attached to the server or to a remote client.\ Warning: In interpreted mode, in order to make extented debugging available on the server machine, all server processes are now automatically executed in cooperative mode when the debugger is attached to the server (default setting). Isso pode ter um impacto significativo no desempenho de seus aplicativos convertidos quando eles são executados com o 4D Server v19 R3 e superior. To restore preemptive execution on the server in this case, all you need to do is detach the debugger from the server (and attach it to a remote client if necessary).

  • On Windows, 4D projects and databases created with 4D v19 R3 and higher use the DirectWrite API in forms. Essa API melhora a renderização de texto, especialmente em configurações de DPI alto. O DirectWrite é usado para renderização de texto com texto estático e de entrada, caixas de seleção, botões e botões de rádio. Observe que as caixas de listagem já usam DirectWrite. Uma opção de compatibilidade permite que você ative o DirectWrite em projetos e bancos de dados criados com versões anteriores do 4D.

  • If you use components compiled with 4D v19.0 for Silicon (Apple ARM CPUs) which call the Count parameters command, we recommend to recompile them with 4D v19 R3 to provide compatibility with 4D v19 R3 and future releases. Se um componente não for compilado para o Silicon, não será necessário recompilar.

4D v19 R2

Lançamentos anteriores

Clique para ver as notas de versão das versões anteriores

4D v19

Nota de segurança

If your 4D applications use TLS connections, it is recommended that you upgrade to 4D v19.7 LTS build 288986 or higher. For more information, refer to this Security bulletin.

18 R6

Tabela da biblioteca

BibliotecaVersão atualAtualizado em 4DComentário
ICU73.220.1Essa grande atualização força uma reconstrução automática dos índices alfanuméricos, de texto e de objetos.
CEF11820 R3Chromium 5993
Hunspell7.3.2720Usado para verificação ortográfica em formulários 4D e 4D Write Pro
PDFWriter4.320Dependência FreeType na 12.2.1
SpreadJS16.2.620 R4Motor 4D View Pro
OpenSSL3.2.020 R4Default TLS/SSL security level has been upgraded. See Behavior changes for release 20 R4
libZip19.520Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet
libldap2.6.420 R3