Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20
Funcionalidades obsoletas ou removidas

Funcionalidades obsoletas ou removidas    


 

 

Durante mais de 30 anos, nosso objetivo principal é melhorar nosso produto (usando novos conceitos e tecnologias) ao mesmo tempo que garantimos a compatibilidade das aplicações 4D. Como sabem bem os primeiros usuários de 4D, sempre colocamos muito esforço na compatibilidade e podemos encontrar aplicações 4D no mundo todo que foram criadas anos e anos atrás, com versões antigas de 4D e de  sistema operativo, e que ainda funcionam com as últimas revisões do produto.

Infelizmente, às vezes é dificil mesclar tecnologias antigas e novas:

  • 4D deve oferecer novas tecnologias, APIs e novos paradigmas aos desenvolvedores
  • Os sistemas operativos mudam todos os dias e, às vezes, deixam de utilizar suas próprias APIs antigas

É por isso que 4D às vezes  necessita etiquetar alguns comandos e funcionalidades como obsoletos, o que significa que algum dia serão eliminados da linguagem em uma versão principal futura

Deixar que os desenvolvedores saibam o que está em desuso e que tipo de substituto pode ser usado em seu lugar toran muito mais cômodo implementar a mudança em seu código: não há urgência, não há pressão, e o desenvolvedor tem tempo de sobra para realizar as mudanças necessárias.

 
FuncionalidadeSubstituir comEstado na versão atual de 4D
PDFCreator DriverNative Windows PDF driverObsoleto
Não conformidade com notação de objetosVerifique a conformidade e ative a opção de compatibilidade Utilizar de notação de objetosEliminado
Variáveis interprocessoObjetos compartilhados e coleções, StorageObsoleto
4D ODBC ProBuilt-in ODBC/SQL Pass through or 4D REST APIRemovido
4D for OCI em macOSBuilt-in ODBC/SQL Pass through ou 4D REST APIRemovido
4D ODBC Driver em macOS4D REST APIRemovido
4D Internet Commands - MailTransporters (IMAP, SMTP, POP3), Email objectsObsoleto
4D Internet Commands - File TransfertSystem workersObsoleto
Formulários de UsuárioFormulários Dinâmicos  Obsoleto
Atribuição dinâmica de variáveis recebidas por meio de HTTP (opção compatibilidade para bancos criadas antes de v13.4)[#/note]
Comando WEB GET VARIABLES (para recuperar variáveis). Comandos WEB GET BODY PART/WEB Get body part count (para recuperar arquivos enviados)Obsoleto
Comando WEB GET VARIABLES (para recuperar variáveis). Comandos WEB GET BODY PART/WEB Get body part count (para recuperar arquivos enviados)Obsoleto
convertidasUtilize as tabelas N->1Obsoleto
Arquivo e pastas APIs em MacPath to object , Object to pathObsoleto
Ações padrões baseadas em CódigoModelos de strings (constantes "ak" do tema Ação estandarte)Obsoleto
Recursos Mac Utilize a pasta "Resources". Por compatibilidade, ainda pode ser usada em bancos convertidos. Já não é compatível com comandos de acesso a escritura.OS (iconos cicn: eliminado.) Os archivos Database.RSR não são abertos automaticamente. Necessita utilizar Open resource file.
Gerenciamento de prioridade de CPUnenhumObsoleto
Antiga capa de redeUse ServerNetObsoleto
4D MobileORDA e REST ServerObsoleto

Explicação dos valores para a coluna “Estado”:

  • Eliminado: já não está disponível na versão atual (ou a versão indicada).
  • Obsoleto: já não deve ser usada e se eliminará em uma futura versão principal.
  • OS: depende de tecnologias OS oficialmente obsoletas (por exemplo: formato PICT). Este estado é idêntico ao estado Obsoleto, mas um sistema operativo poderia retirar a compatibilidade antes que nós.

Cada comando obsoleto tem o prefixo "_o_" e não está disponível em listas 4D (editor de código, funcionalidade de autocompletar, etc.). Os comandos obsoletos (ou desaprovados) não são eliminados do código existente e continuarão funcionando normalmente enquanto sejam compatíveis. Ainda é possível (mas não recomendado) agregar um comando obsoleto em um método simplesmente ingressando seu nome com o prefixo "_o_"; Se interpretará corretamente.

ComandoSubstituído porObsoleto desde
Tema Entorno 4D:
_o_DATA SEGMENT LIST-v11
Tema Backup:
_o_INTEGRATE LOG FILEINTEGRATE MIRROR LOG FILEv16
Tema Compilador:
_o_ARRAY STRINGARRAY TEXTv12
_o_C_GRAPH(uso de SVG con el comando GRAPH)v12
_o_C_INTEGERC_LONGINTv12
_o_C_STRINGC_TEXT(siempre que la base esté en Unicode)v12
Tema Entrada:
_o_ADD SUBRECORDADD RECORD en la tabla n de una relación N->1v12
_o_MODIFY SUBRECORDMODIFY RECORD en la tabla n de una relación N->1v12
Drag and Drop theme:
_o_DRAG AND DROP PROPERTIESComandos del tema Área de Transferência (Pasteboard)v17 R4
 
Tema Eventos formulário:
_o_DuringRemplazar con Form event codey el evento apropiadov12
Tema Formulários:
_o_FORM GET PARAMETER-v17 R4
Tema Gráficos:
GRAPH (utilizando 4D Graph Area)Utilice SVG picture en su lugarv12
Tema listas hierárquicas:
_o_REDRAW LISTEliminar en código (no hace nada desde v11)v11
Tema List Box:
LISTBOX Get property constantes:
_o_lk display hor scrollbar/_o_lk display ver scrollbarOBJECT GET SCROLLBARv16 R3
_o_lk footer heightLISTBOX Get footers heightv16 R3
_o_lk header heightLISTBOX Get headers heightv16 R3
_o_lk hor scrollbar position/_o_lk ver scrollbar positionOBJECT GET SCROLL POSITIONv16 R3
 
Tema Objetos (Formularios):
_o_OBJECT Get actionOBJECT Get actionv16 R3
_o_OBJECT SET COLOROBJECT SET RGB COLORSv18
Tema Imagens:
_o_PICTURE TO GIFPICTURE TO BLOBv16 R5
Tema Impressão:
_o_PAGE SETUPSET PRINT OPTION, GET PRINT OPTION, Print settings to BLOB, BLOB to print settingsv18
Tema Seleção:
_o_MOBILE Return selectionORDAv18
Tema SQL:
_o_USE EXTERNAL DATABASESQL LOGINv12
_o_USE INTERNAL DATABASESQL LOGOUTv12
Tema String de caracteres:
_o_Mac to Winv11
_o_Win to Macv11
Tema Subregistros: todos os comandosSubstituir “nnn SUBRECORD” e “nnnSUBSELECTION” com uma ação no registro N ou N-selection de N-table em uma relação N->1 v12
Tema Documentos de sistema:
_o_Document typePath to object v12
_o_Document creatorPath to object v16 R6
_o_SET DOCUMENT TYPEObject to pathv16 R6
_o_SET DOCUMENT CREATORObject to pathv16 R6
_o_MAP FILE TYPESUtiliza UTIs e Info.plistv16 R6
Tema Ambiente sistema:
_o_Font nameUtilize os identificadores de fontev14
El comando OBJECT SET FONT já não aceita um parâmetro LongInt para a fonte: este parâmetro agora é uma string e deve especificar o nome de fonte.
_o_GestaltGet system info / Is macOS / Is Windowsv17
_o_PLATFORM PROPERTIESGet system info / Is macOS / Is Windowsv17
Tema formulários usuário: todos os comandos
_o_CREATE USER FORM-v17 R4
_o_DELETE USER FORM-v17 R4
_o_EDIT FORM-v17 R4
_o_LIST USER FORMS-v17 R4
Web Server theme:
_O_WEB Get session process countUse scalable sessionsv18 R6
4D Internet Commands:
POP3 Review Mail commandsPOP3Transporter classv18
SMTP Send Mail commandsSMTPTransporter classv18 R6
IMAP Review Mail commandsIMAPTransporter classv19
Downloaded Mail commandsIMAPTransporter classPOP3Transporter classv19
File Transfer commandsSystemWorker classv20

Uma lista alfabetica destes comando pode ser consultada no anexo Deprecated Commands de Manual de linguagem 4D.

 

A partir de 4D v20, a conformidade do código de sua base com a notação de objetos é obrigatória. Se quiser converter umb anco no qual a opção Utilizar a notação de objetos para acessar às propiedades dos objetos ainda não estão marcadas (modo de compatibilidade, ver Página Compatibilidade), 4D mostrará uma caixa de diálogo que lpermitirá habilitar temporariamente a opção para poder abrir a base de dados. Ainda necessita marcar a opção explícitamente para habilitá-la permanentemente, entretanto se recomenda verificar a compatibilidade da aplicação de antemão utilizando o CMS.

Se clicar em Cancelar ou se o banco não permitir o acesso ao modo de desenvolvimento (base compilada, sem, acesso em Desenho.), se gera o erro -10537 e o banco de dados não é aberto

Nota: o modo de compatibilidade só estava disponível em bases binarias.

O driver PDFCreator está obsoleto desde 4D v20. Windows 10 e versões superiores incluem um controlador PDF nativo. A constante PDFCreator Printer name foi renomeada _o_PDFCreator Printer name.

Vários módulos PHP foram eliminados do intérprete PHP incluido em 4D v20, a maioria deles porque já não são necessários ou eram obsoletos: DOM (Document Object Model), Iconv, LibXML, LibXSLT, SimpleXML, GD (Graphics Draw) Library, XML (eXtensible Markup Language), XMLreader, XMLwriter, WDDX (Web Distributed Data eXchange), Zlib, Zip. Se sua aplicação usava um módulo eliminado , pode ser que precise usar comandos 4D relevantes ou um intérprete FastCGI-php externo. Para mais informação, consulte Assistência aos módulos PHP.

Desde 4Dv 19 R4, devido à compatibilidade com o operador ternário, o símbolo de dois pontos ":" não é mais permitido nos nomes de variáveis, campos, constantes, funções, plugins e métodos de projeto. 

A partir de 4D v19, os plug-ins 4D ODBC Pro não estão mais disponíveis em todas as plataformas. Recomendamos o uso do passthrough/consulta-passagem integrado ODBC/SQL (ver SQL LOGIN e Introdução aos comandos SQL) ou 4D REST API para manejar as funcionalidades de conexão de ODBC/SQL.  

A partir de 4D v19, o plug-in 4D for OCI já não está disponível em macOS. Recomendamos utilizar a consulta de passagem (passthrough) integrada ODBC/SQL (ver SQL LOGIN and Introdução aos comandos SQL) ou 4D REST API  para manejar as funções de conectividad nesta plataforma.

A partir de 4D v19, o Driver 4D ODBC já não está disponível em macOS. Recomendamos utilizar o API 4D REST para o acesso a dados externos nesta plataforma.

A opção de armazenamento Outside data file não é mais compatível com campos tipo objeto (ver Armazenado no registro). Se esta opção for selecionada para um campo, é automaticamente convertido para  In data file e usado para novos registros. Dados existentes em campos objetos é reescrito de forma transparente no novo local quando o registro pai é salvo. Para forçar que todos os registros sejam reescritos imediatamente, pode compactar o arquivo de dados com a opção  "Update records". 

Depois de anos de serviço, é hora de que se aposentem: as variáveis interprocesso estão obsoletas. O uso de variáveis interprocesso não é recomendado nos projetos 4D proque não estão disponíveis desde os processos preemptivos e não estão adaptadas ao menejo de valores complexos como arrays, objetos ou coleções (quando não são compartilhados) provenientes de múltiplos processos simultâneos. Finalmente tendem a fazer com que o código seja menos fácil de manter. Para compartilhar valores de objetos e coleções entre processos, recomendamos encarecidamente utilizar as coleções e objetos compartidos  ou o  comando Storage.

A partir de 4D Write Pro v19 R4, é possível manejar quebras de linhas. para evitar confusão com parágrafos e quebras de tabela, todas as quebras agora são manejadas através de constantes dedicadas e ação padrão (ver Atributos 4D Write Pro e Usando ações padrão). Constantes genéricas anteriores (_o_wk page break inside) e ações padrão anteriores (avoidPageBreakInsideEnabled) ficaram obsoletas e são mantidas apenas por compatibilidade entre versões.

A partir de 4D v17 R4, os formulários de usuário estão em desuso. Para oferecer interfaces de usuário personalizáveis, agora é recomendado utilizar formulários dinâmicos (ver Formulários Dinâmicos em Manual de Desenho 4D). Todos os comandos dentro do tema "Formulários de usuário" ficaram obsoletos.

Os formulários de usuário ainda são mantidos por compatibilidade, entretanto, já não devem ser usados. Sua compatibilidade será eliminada em versões futuras

Nas versões anteriores de 4D, o servidor web recopiava automaticamente o valor das variáveis enviadas através de um formulário web ou um URL nas variáveis 4D quando tinham o mesmo nome.

Por razões de otimização e controle, este princípio não se mantém a partir de 4D v14: o valor das variáveis Web já não se atribui automaticamente as variáveis 4D. Para recuperar as variáveis enviadas utilizando um POST ou um GET, deve utilizar o comando WEB GET VARIABLES exclusivamente.  Para recuperar as imagens enviadas, deve utilizar os comandos WEB GET BODY PART/WEB Get body part count.

Nota: a atribuição dinâmica também está desativada por padrão nas bases de dados 4D criadas a partir da versão 13.4.

No entanto, por compatibilidade, este mecanismo se mantém por padrão nas bases de dados criadas com uma versão de 4D anterior a 13.4. Neste caso, pode ser desativado o uso da opção de compatibilidade de atribuição de variável automática na página Compatibilidade das Propriedades da base.

Dado que este mecanismo é obsoleto, se recomenda desmarcar esta opção em suas bases de dados convertidas (e adaptar seu código se for necessário) com o propósito de facilitar futuras evoluções.

Em várias versões principais, 4D advertiu aos desenvolvedores em contra do uso das sub tabelas. Desde 4D v11, é impossível criar um campo do tipo sub tabela. Os sub registros têm algumas limitações conhecidas. Por exemplo, sempre se carregam em memória; não se gerenciam pelos comandos SEND RECORD ou DUPLICATE RECORD.

Não temos planos de eliminar o suporte para as sub tabelas em um futuro próximo, mas é realmente o momento de que os desenvolvedores convertam suas sub tabelas a tabelas N-> regulares porque temos a intenção de eliminar em uma futura versão principal de 4D. Os desenvolvedores que utilizam sub tabelas por razões de rendimento (algumas situações específicas nas que a carga dos registros relacionados era lenta) fiquem tranquilos, especialmente com v12: utilizar as relações N <-> 1 clássicas é bem rápido.

Basicamente, há duas formas principais para eliminar sub tabelas (nota: o seguinte não é uma tecnologia completa de ponta; só uma visão geral rápida):

  • Antes da conversão de uma estrutura pre-v11: em 2004, criar a tabela N apropriada e o campo ID na tabela 1 (se não já está ali). Logo, mude o código em todas as partes se for necessário (ver mais a frente).
  • Depois da conversão: nesta situação, 4D substitui a sub tabela com uma tabela N usando uma relação especial, que permite que a linguagem para trabalhar com a sub seleção e os sub registros. O desenvolvedor 4D necessita eliminar esta relação especial, substituir ela por uma relação normal e mudar o código por todas partes se for necessário (ver mais a frente).

O que queremos dizer com "mudar o código por todas partes se for necessário" é, basicamente:

  • Criar os novos formulários, atualizar os formulários incluídos
  • Nos métodos (projeto, formulário, objeto, etc.):
    • Substitua todos os comandos do tema "Sub registros" com o comando Selection ou Record correspondente (por exemplo, substituir CREATE SUBRECORD com CREATE RECORD, enchendo os campos ID)
    • Explicitamente carregar os registros N quando for necessário

Note: a partir de 4D v14 R3, pode atribuir valores aos campos "id_added_by_converter" especiais que se agregam automaticamente por 4D quando converte uma base de dados que contém sub tabelas. Isto lhe permite manter o link "relação sub tabela", e agregar ou modificar registros relacionados, sem necessidade de usar comandos em desuso tais como _o_CREATE SUBRECORD. Uma vez que tenha atualizado seus métodos, estas relações especiais podem ser substituídas por outros estandartes com nenhuma mudança em seu código.

A partir de 4D v16 R6, APIs Mac OS 9-based para gerenciamento de arquivos e pastas ficaram obsoletos em 4D. Essas APIs já estavam obsoletas em Apple a bastante tempo.

Comandos 4D que dependem das antigas API foram renomeados: _o_Document type, _o_Document creator, _o_SET DOCUMENT TYPE, _o_SET DOCUMENT CREATOR e _o_MAP FILE TYPES.  Estes comandos são mantidos por compatibilidade, mas estão em desuso e já não devem ser usados. 4D inclui dois novos comandos para manejar nomes de rotas e extensões de arquivos: Path to object e Object to path.

Ações padrão foram internamente reformuladas em 4D v16 R3. Agora são baseadas em padrões de string e parâmetros de suporte (para saber mais, veja a seção Ações padrões).

Em suas aplicações convertidas, ações padrão são remapeadas de forma transparente ao novo design. Entretanto, na linguagem 4D, ações padrão eram previamente baseadas em valores de código. Este princípio é obsoleto e não deve mais ser usado:

Esta é outra antiga tecnologia Mac OS, em desuso desde Mac OS X 10.4 (Tiger, 2005). Os recursos se utilizam para armazenar dados estruturados, como texto e cadeias (localização), assim como também ícones, etc. Basicamente, podemos dizer que não são os recursos que estão em desuso, é seu suporte em disco, conhecido como o resource fork. O resource fork é parte do sistema de arquivos de Mac OS e desde o início de Mac OS X, Apple tratou de eliminar este suporte, já que não é compatível com outros sistemas de arquivos (Unix, Windows), e é a fonte de uma grande quantidade de problemas quando os arquivos se transferem através da rede.

Em Windows, este mecanismo se emula e os recursos Mac residem em um arquivo .RSR.

Mas ainda assim, inclusive se há ainda APIs para gerenciar os recursos (e Mac OS gerencia de forma transparente os recursos armazenados em um data fork), já não se recomenda utilizar este velho mecanismo por várias razões:

  • Os textos e as cadeias são Mac-roman. Não pode ser armazenado Unicode em recursos de tipo TEXT ou STR #
  • Os recursos PICT armazenam PICTs: não é moderno, obsoleto, sem transparência, etc. (Consulte o tema "PICT" acima.)
  • A contagem dos recursos e o tamanho dos recursos são limitados (uns 2.700 recursos ou 16 MB)

Eliminamos suporte para comandos de escritura/criação de recursos

A grande maioria das aplicações 4D que utilizam recursos estão, de fato, utilizando recursos "Strings List", 'STR#'. 4D oferece as ferramentas para mudar facilmente do STR # a XLIFF:

  • O componente 4D Pop pode criar automaticamente os arquivos XLIFF mediante a leitura e transferir o conteúdo do STR #.
  • Todas as rotinas e as expressões que fazem referência a trabalho STR# sem mudança com XLIFF. Por exemplo, Se a etiqueta de um botão ou um menu era ":15000,3" (que significa "conseguir o terceiro elemento de STR# ID 15000"), 4D carregará o XLIFF apropriado (caso exista).

Para outros tipos de recursos:

  • Colocar os recursos em arquivos separados dentro da pasta Resources (criar sub diretórios se for necessário):
    • Guardar recursos 'TEXT' em arquivos XLIFF ou .txt
    • Guardar recursos 'PICT' como arquivos .jpg/.png/etc. separado
    • Guardar recursos 'PICT' + MASK’ como arquivos png
    • Utilizar (em Mac) icns em lugar de ICON ou ícones de cores
    • Guardar todos os recursos privados como seja apropriado para você (normalmente: guardar como um arquivo binário com uma extensão específica)
  • Utilize a pasta "Recursos" para armazenar seus recursos. Utilize Get 4D folder (pasta de recursos atuais) para obter de forma dinâmica a rota pai para seus recursos.

 
 

 
PROPRIEDADES 

Produto: 4D

 
ARTICLE USAGE

Funcionalidades obsoletas ou removidas ( 4D v20)

 
DOWNLOAD