Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R8
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:
É 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.
Explicação dos valores para a coluna “Estado”:
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.
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.
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:
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. 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):
O que queremos dizer com "mudar o código por todas partes se for necessário" é, basicamente:
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.
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:
Para outros tipos de recursos:
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||