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 R7
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
On 4D Mobile Authentication database methodFunção force login and authentify() Obsoleto
Interprete PHP integradoExternal PHP interpreterEliminado
Replicação via SQLORDA Global StampObsoleto
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 / 4D REST APIEliminado
4D for OCI em macOSBuilt-in ODBC/SQL Pass through / 4D REST APIEliminado
4D ODBC Driver em macOS4D REST APIEliminado
4D Internet Commands - MailTransporters (IMAPSMTPPOP3), 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
Wakanda connection (4D Mobile)ORDA 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.

Os comandos obsoletos não serão removidos do código existente e continuarão funcionando normalmente enquanto houver suporte para eles. Quando um comando obsoleto é prefixado com "_o_", ele não está mais disponível nas listas 4D (editor de código, função de digitação preditiva, etc.), mas ainda é possível (embora não seja recomendado) adicioná-lo em um método simplesmente digitando seu nome com o prefixo "_o_"; ele será interpretado 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 do tema Área de Transferência (Pasteboard)v17 R4
 
Tema Eventos formulário:
_o_DuringSubstituir com Form event codee o evento apropriadov12
Tema Formulários:
_o_FORM GET PARAMETER-v17 R4
Tema Gráficos:
GRAPH (utilizando 4D Graph Area)Utilize SVG picture em seu lugarv12
Tema listas hierárquicas:
_o_REDRAW LISTEliminar em código (não faz nada desde v11)v11
Tema Interrupções:
GET LAST ERROR STACKLast errors20 R7
Tema Licenças:
_O_GET SERIAL INFORMATIONLicense info20 R7
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

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

 

Por motivos de consistência, vários comandos foram renomeados no 4D 20 R7.

 

Nome anteriorNovo nome (4D 20 R7 e superior)
Get action infoAction info
GET ACTIVITY SNAPSHOTACTIVITY SNAPSHOT
Get application infoApplication info
GET BACKUP INFORMATIONBACKUP INFO
Get call chainCall chain
Get database measuresDatabase measures
Get last field numberLast field number
Get last query pathLast query path
Get last query planLast query plan
Get last table numberLast table number
Get license infoLicense info
Get license usageLicense usage
Get localized document pathLocalized document path
Get localized stringLocalized string
Get locked records infoLocked records info
GET MEMORY STATISTICSMEMORY STATISTICS
Get Monitored ActivityMonitored activity
GET MOUSEMOUSE POSITION
GET RESTORE INFORMATIONRESTORE INFO
Get process activityProcess activity
Get system infoSystem info
Get table fragmentationTable fragmentation
Session storage by idSession storage

O método base On REST Authentication ficou obsoleto a partir de 4D 20 R6. A autenticação Force login agora é altamente recomendada para manejar o registro de usuarios REST.

Nos projetos convertidos, pode atualizar sua configuração clicando no botão  Ativar autenticação REST através da configuração da função ds.authentify(). Consulte esta entrada de blog para saber como migrar seu código se for necessário.

A partir de 4D v20 R5, o plug-in 4D Internet Commands já não é oferecido com o instalador 4D. Se precisar dele, tem que baixar o arquivo 4DInternetCommands.bundle do portal de download de produtos 4D e instalar os arquivos de plug-in na pasta Plugins de seu projeto ou base de dados.

As  funcionalidades de 4D Internet Commands abaixo são obsoletas:

FuncionalidadeSubstitutoEstado
IC Downloaded MailEmail objectsObsoleto, documentação eliminada
IC IMAP Review MailIMAP TransporterObsoleto, documentação eliminada
IC POP3 Review MailPOP3 TransporterObsoleto, documentação eliminada
IC Send MailSMTP TransporterObsoleto, documentação eliminada
IC File TransfertSystem workersObsoleto, documentação eliminada

4D v20 R3 e outros lançamentos não incluem mais interprete integrado 4D PHP. A maioria das funcionalidades PHP estão implementadas em 4D e decidimos remover o interprete PHP integrado. PHP Execute e outros comandos PHP vão continuar funcionando mas só com um intérprete PHP externo. Veja a página Executar scripts PHP em 4D , e também este artigo para saber mais. 

REplicação SQL e mecanismos de sincronização ( descritos em Replicação via SQL) estão obsoletos desde 4D v20 R3. Ainda são aceitos mas agora é recomendado usar uma funcionalidade baseada em ORDA Global Stamp (carimbo global), oferecendo uma solução flexível e robusta para implementar a replicação e sincronização em 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.

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 ou ainda os singletons.

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 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". 

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 R7)