Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20
Fonctionnalités obsolètes ou supprimées

Fonctionnalités obsolètes ou supprimées    


 

 

Depuis plus de 30 ans, notre objectif principal consiste à améliorer notre produit (à l'aide de nouveaux concepts et technologies) tout en assurant la compatibilité des applications 4D. Les nouveaux utilisateurs de 4D le savent, nous nous sommes toujours efforcés d'assurer la compatibilité, permettant à des applications 4D du monde entier créées il y a plusieurs années, avec d'anciennes versions de 4D et d'anciens OS, de rester toujours fonctionnelles dans les dernières versions du produit.

Malheureusement, il est parfois difficile de combiner anciennes technologies et technologies nouvelles :

  • 4D doit introduire de nouvelles technologies, de nouveaux IPA et paradigmes pour les développeurs
  • Les OS changent continuellement et voient leurs propres anciens IPA devenir parfois obsolètes

C'est pourquoi il arrive que 4D définisse comme obsolètes certaines commandes et fonctionnalités, c'est-à-dire qu'elles sont retirées du langage dans une version majeure future.

Ainsi, en notifiant les développeurs des obsolescences et des remplacements utilisés, il leur est plus facile d'accompagner les changements dans leur code : ces modifications ne se font ni dans l'urgence ni la pression, afin que les développeurs prennent le temps de s'adapter.

FonctionnalitéRemplacée parStatut dans la version courante de 4D
PDFCreator DriverPDF driver natif de WindowsObsolète
Non-conformité avec la notation objetVérifier la conformité et activer l'option de comptabilité Utiliser la notation objetSupprimée
Variables interprocess Collections et objets partagés, StorageObsolète
4D ODBC ProODBC/SQL Pass through intégré ou API 4D RESTSupprimée
4D for OCI sur macOSODBC/SQL Pass through intégré ou API 4D RESTSupprimée
Pilote ODBC de 4D sur macOSAPI 4D RESTSupprimée
Commandes Internet 4D - Mail Transporteurs (IMAPSMTPPOP3), Objets EmailObsolète
Commandes Internet 4D - Transfert de fichiers System workersObsolète
Formulaires utilisateursFormulaires dynamiques Obsolète
Affectation dynamique des variables reçues via HTTP (option de compatibilité pour les bases créées dans une version antérieure à v13.4)Commande WEB LIRE VARIABLES (pour restaurer les variables). Commandes WEB LIRE PARTIE CORPS/WEB Lire nombre parties corps (pour restaurer les fichiers postés)Obsolète
Sous-tables convertiesUtiliser tables N->1Obsolète
APIs fichiers et dossiers sur MacChemin vers objet, Objet vers cheminObsolète
Actions standard basées sur des codesModèles de chaînes (constantes "ak" du thème Action standard)Obsolète
Ressources Mac Utilisez le dossier "Resources". A des fins de compatibilité, vous pouvez toujours l'utiliser  dans les bases converties. Nous ne prenons plus en charge les commandes d'accès en écriture.Base de données OS (icônes cicn: supprimées.). Les fichiers RSR ne s'ouvrent plus automatiquement. Vous devez utiliser Ouvrir fichier ressources.
Gestion de la priorité CPUN/AObsolète
Ancienne couche réseauUtiliser ServerNetObsolète
4D MobileORDA et serveur RESTObsolète

Explications sur les valeurs de la colonne "Statut" :

  • Supprimé : N'est plus disponible dans la version courante (ou la version indiquée).
  • Obsolète : Ne doit plus être utlisé et sera supprimé dans une future version majeure.
  • OS : Dépend de technologies rendues officiellement obsolètes par un OS (par exemple le format PICT). Ce statut est identique au statut Obsolète, mais un OS peut en supprimer la prise en charge avant que nous le fassions.
 
 

Chaque commande obsolète est préfixée par "_o_" et ne figure plus dans la liste 4D (éditeur de code, fonctionnalité d'auto-complétion, etc.). Les commandes obsolètes (ou dépréciées) ne seront pas supprimées du code existant et continueront de fonctionner normalement, tant qu'elles sont prises en charge. Il est possible (mais non recommandé) d'ajouter une commande obsolète dans une méthode en saisissant simplement son nom préfixé de "_o_" ; elle sera interprétée correctement.

 

CommandeRemplacée parObsolète depuis
Thème Environnement 4D :
_o_LISTE SEGMENTS DE DONNÉES-v11
Thème Sauvegarde :
_o_INTEGRER FICHIER HISTORIQUEINTEGRER FICHIER HISTORIQUE MIROIRv16
Thème Compilateur :
_o_TABLEAU ALPHATABLEAU TEXTEv12
_o_C_GRAPHE(utiliser SVG avec la commande GRAPHE)v12
_o_C_ENTIERC_ENTIER LONGv12
_o_C_ALPHAC_TEXTE (si la base est en Unicode)v12
Thème Saisie des données :
_o_AJOUTER SOUS ENREGISTREMENTAJOUTER ENREGISTREMENT dans la table n d'une relation N->1 v12
_o_MODIFIER SOUS ENREGISTREMENTMODIFIER ENREGISTREMENT dans la table n d'une relation N->1 v12
Thème Glisser-Déposer :
_o_PROPRIETES GLISSER DEPOSERLes commande du thème Conteneur de donnéesv17 R4
Thème Evénements formulaire :
_o_PendantRemplacer par Evenement formulaire code et l'événement appropriév12
Thème Formulaires :
_o_FORM LIRE PARAMETREDésactivéev17 R4
Thème Graphiques :
GRAPHE (à l'aide de 4D Graph Area)Utiliser une image SVGv12
Thème Listes hiérarchiques :
_o_REDESSINER LISTESupprimer dans le code (ne fait rien depuis la v11)v11
Thème List Box :
Constantes LISTBOX Lire propriete :
_o_lk affichage barre déf hor/_o_lk affichage barre déf verOBJET LIRE BARRES DEFILEMENTv16 R3
_o_lk hauteur piedLISTBOX Lire hauteur piedsv16 R3
_o_lk hauteur entêteLISTBOX Lire hauteur entetesv16 R3
_o_lk position barre déf hor/_o_lk position barre déf verOBJET LIRE DEFILEMENTv16 R3
Thème Objets (Formulaires) :
_o_OBJET Lire actionOBJET Lire actionv16 R3
_o_OBJET FIXER COULEUROBJET FIXER COULEURS RVBv18
Thème Images :
_o_IMAGE VERS GIFIMAGE VERS BLOBv16 R5
Thème Impression :
_o_UTILISER PARAMETRES IMPRESSIONFIXER OPTION IMPRESSION, LIRE OPTION IMPRESSIONParamètres impression vers BLOBBLOB vers paramètres impressionv18
Thème Sélection :
_o_MOBILE Renvoyer sélectionORDAv18
Thème SQL :
_o_UTILISER BASE EXTERNESQL LOGINv12
_o_UTILISER BASE INTERNESQL LOGOUTv12
Thème Chaîne :
_o_Mac vers Windowsv11
_o_Windows vers Macv11
Thème Sous-enregistrements : toutes les commandesRemplacer “nnn SUBRECORD” et “nnn SUBSELECTION” par une action sur l'enregistrement N ou la sélection N de la table N dans une relation N->1v12
Thème Documents Systeme :
_o_Type documentChemin vers objetv12
_o_Createur documentChemin vers objetv16 R6
_o_CHANGER TYPE DOCUMENTObjet vers cheminv16 R6
_o_CHANGER CREATEUR DOCUMENTObjet vers cheminv16 R6
_o_ASSOCIER TYPES FICHIERUtiliser des UTIs et Info.plistv16 R6
Thème Environnement Système :
_o_Nom de policeUtiliser des identificateurs de policev14
La commande OBJET FIXER POLICE n'accepte plus le paramètre Entier Long pour la police : ce paramètre est désormais une Chaîne et vous devez indiquer le nom de la police.
_o_GestaltLire information systeme / Sur macOS / Sur Windowsv17
_o_PROPRIETES PLATE FORMELire information systeme / Sur macOS / Sur Windowsv17
Thème Formulaires Utilisateur :
_o_CREER FORMULAIRE UTILISATEURFormulaires dynamiquesv17 R4
_o_SUPPRIMER FORMULAIRE UTILISATEURFormulaires dynamiquesv17 R4
_o_MODIFIER FORMULAIREFormulaires dynamiquesv17 R4 
_o_LISTE FORMULAIRES UTILISATEURSFormulaires dynamiquesv17 R4
Thème Web Server :
_O_WEB Lire nombre process sessionUtiliser les sessions évolutivesv18 R6
Commandes Internet 4D :
Commandes POP3 Review MaiClasse POP3Transporterv18
Commandes SMTP Send MailClasse SMTPTransporterv18 R6
Commandes IMAP Review MailClasse IMAPTransporterv19
Commandes Downloaded MailClasse IMAPTransporterClasse POP3Transporterv19
Commandes File TransferClasse SystemWorkerv20

Une liste alphabétique de ces commandes peut être consultée dans l'annexe Commandes obsolètes de 4D - Langage.

À partir de 4D v20, la conformité du code de votre base de données avec la notation objet est obligatoire. Si vous essayez de convertir une base de données dans laquelle l'option Utiliser la notation objet pour accéder aux propriétés de l'objet est encore décochée (mode de compatibilité, voir Page Compatibilité), 4D affichera une boîte de dialogue qui vous permet d'activer temporairement l'option pour pouvoir ouvrir la base de données. Vous devez quand même cocher l'option explicitement pour l'activer de manière permanente -- il est toutefois recommandé de vérifier la compatibilité de l'application au préalable à l'aide du MSC.

Si vous cliquez sur Annuler ou si la base de données ne permet pas l'accès au mode développement (base de données compilée, pas d'accès en conception...), l'erreur -10537 est générée et la base de données ne s'ouvre pas.

Note : Le mode de compatibilité n'était disponible que dans les bases de données binaires.

Le PDFCreator driver est obsolète à partir de 4D v20. Les versions de Windows 10 et supérieures incluent un PDF driver natif. La constante du nom de l'imprimante PDFCreator a été renommée _o_PDFCreator Nom imprimante.

Plusieurs modules PHP ont été supprimés de l'interpréteur PHP inclus dans 4D v20, la plupart d'entre eux parce qu'ils ne sont plus nécessaires ou obsolètes : 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. Si votre application utilise un module retiré, vous devrez peut-être utiliser les commandes 4D appropriées ou un interpréteur FastCGI-php externe. Pour plus d'informations, veuillez consulter la section Prise en charge des modules PHP.

Depuis 4Dv 19 R4, en raison de la prise en charge de l'opérateur ternaire, le caractère "deux-points" ou " :" n'est plus autorisé dans les noms de variables, de champs, constantes, fonctions, plugins et méthodes projet.

 

A partir de 4D v19, le plug-in 4D ODBC Pro n'est plus disponible sur l'ensemble des plateformes. Nous recommandons d'utiliser le pass-through intégré ODBC/SQL (voir SQL LOGIN et Présentation des commandes du thème SQL) ou l'API REST 4D  pour gérer les fonctionnalités de connectivité ODBC/SQL.

À partir de 4D v19, le plug-in 4D for OCI n'est plus disponible sur macOS. Nous recommandons d'utiliser le pass-through intégré ODBC/SQL (voir SQL LOGIN et Présentation des commandes du thème SQL) ou l'API REST 4D  pour gérer les fonctionnalités de connectivité sur cette plateforme.

À partir de 4D v19, le pilote ODBC de 4D  n'est plus disponible sur macOS. Nous recommandons d'utiliser l'API 4D REST pour l'accès aux données externes sur cette plateforme.

L'option de stockage dans un fichier de données externes n'est plus prise en charge pour les champs de type objet (voir Stocké dans l'enregistrement, dans le fichier de données, en dehors du fichier de données). Si cette option a été sélectionnée pour un champ objet, elle est automatiquement convertie en Dans le fichier de données et utilisé pour les nouveaux enregistrements. Les données existantes dans les champs objet sont réécrites de manière transparente au nouvel emplacement lorsque l'enregistrement parent est enregistré. Si vous souhaitez étendre ce mode aux enregistrements existants, vous devez compacter les données avec l'option "Forcer la mise à jour des enregistrements". 

Les variables interprocess tirent leur révérence et deviennent désormais obsolètes. L'utilisation de variables interprocess est déconseillée dans les projets 4D car elles ne sont pas utilisables dans les process préemptifs et ne sont pas adaptées à la manipulation de valeurs complexes telles que les tableaux, les objets ou les collections (non partagés) provenant de plusieurs process simultanés. De plus, elles ont tendance à rendre le code moins facile à maintenir. Pour partager les valeurs des objets et des collections entre les process, nous vous recommandons d'utiliser les collections et objets partagés et/ou la commande Storage.

A partir de 4D Write Pro v19 R4, vous pouvez gérer les sauts de ligne. Pour éviter toute confusion avec les sauts de paragraphe et les sauts de page dans un tableau, tous les sauts sont désormais gérés par des constantes et des actions standard dédiées (voir Attributs 4D Write Pro et Utiliser les actions standard 4D Write Pro). La précédente constante générique (_o_wk page break inside) et la précédente action standard (avoidPageBreakInsideEnabled) sont obsolètes et prises en charge uniquement pour des raisons de compatibilité.

 

A partir de 4D v17 R4, les formulaires utilisateurs sont obsolètes. Pour proposer des interfaces utilisateurs personnalisables, il est désormais recommandé d'utiliser des formulaires dynamiques (voir Formulaires dynamiques dans 4D - Mode Développement). Toutes les commandes du thème "Formulaires utilisateurs" sont obsolètes.

Les formulaires utilisateurs sont encore pris en charge pour des raisons de compatibilité, mais ils ne doivent plus être utilisés. Ils seront retirés des futures versions.

Dans les versions précédentes de 4D, le serveur Web recopiait automatiquement la valeur des variables envoyées via un formulaire Web ou une URL dans des variables 4D lorsqu'elles avaient le même nom.

Pour des raisons d'optimisation et de contrôle, ce principe n'est plus maintenu à compter de 4Dv14 : la valeur des variables Web n'est plus automatiquement affectée aux variables 4D. La récupération des variables envoyées via un POST ou un GET doit s'effectuer exclusivement à l'aide de la commande WEB LIRE VARIABLES. Les fichiers postés devront, eux, être récupérés à l'aide des commandes WEB LIRE PARTIE CORPS et WEB Lire nombre parties corps.

Note : L'affectation dynamique est également désactivée par défaut dans les bases 4D créées à compter de la version 13.4.

Par compatibilité, ce mécanisme est toutefois maintenu par défaut dans les bases de données créées avec une version de 4D antérieure à la 13.4. Dans ce cas, l'option de compatibilité Affectation automatique de variables sur la page Compatibilité des Propriétés de la Base, permet de le désactiver.

Ce mécanisme étant obsolète, il est fortement recommandé de désélectionner cette option dans vos bases converties (et d'adapter votre code si nécessaire) afin de faciliter leurs évolutions futures.

Depuis plusieurs versions, 4D déconseille fortement aux développeurs d'utiliser des sous-tables, et depuis 4D v11, il n'est plus possible de créer un champ de type sous-table. Les sous-enregistrements ont de nombreuses limitations. Par exemple, ils sont toujours chargés en mémoire et ils ne sont pas gérés par la commande ENVOYER ENREGISTREMENT ou DUPLIQUER ENREGISTREMENT.

Nous n'envisageons pas de supprimer définitivement les sous-tables dans un futur proche (notez cependant qu'elles ne sont pas prises en charge dans les projets 4D), mais il est vraiment temps pour les développeurs de convertir leurs sous-tables en tables standard avec une relation N<->1, car cette suppression sera effective dans une future version majeure de 4D. Les développeurs qui utilisaient les sous-tables pour des raisons de performances (comme dans certaines situations spécifiques où le chargement des enregistrements liés était lent) peuvent être rassurés : depuis 4D v12 notamment, l'utilisation des relations classiques N<->1 est très rapide.

Fondamentalement, il y a deux façons principales de supprimer des sous-tables (note : les explications suivantes sont juste un rapide aperçu ; consultez la documentation ou les notes techniques pour plus d'informations) :

  • Avant la conversion d'une structure antérieure à 4D v11 : en 4D 2004, créez les Tables N appropriées et le champ ID dans la Table 1 (s'il n'existe pas déjà). Puis changez le code partout où c'est nécessaire (voir-ci-dessous).
  • Après la conversion : dans cette situation, 4D a remplacé automatiquement chaque sous-table par une Table N en utilisant une relation spéciale. Ceci permet au langage de fonctionner avec les sous-sélections et les sous-enregistrements. Le développeur 4D doit supprimer cette relation spéciale, la remplacer par une relation standard et changer le code partout où c'est nécessaire (voir ci-dessous).

"Changer le code partout où c'est nécessaire" signifie essentiellement :

  • Créer de nouveaux formulaires, mettre à jour les formulaires inclus
  • Dans les méthodes (projet, formulaire, objet, etc.) :
    • remplacer toutes les commandes du thème "Sous-enregistrements" par les commandes correspondantes sur les sélections ou les enregistrements (par exemple, remplacer la commande _o_CRÉER SOUS ENREGISTREMENT par la commande CREER ENREGISTREMENT, en renseignant les champs ID)
    • charger explicitement les enregistrements N lorsque c'est nécessaire.

Note : Depuis 4D v14 R3, vous pouvez affecter la valeur du champ spécial "id_added_by_converter" automatiquement ajouté par 4D lors de la conversion d'une base de données depuis une version antérieure à la v11. Jusqu'alors, cette valeur pouvait uniquement être affectée par 4D, ce qui obligeait les développeurs à utiliser des commandes obsolètes comme _o_CRÉER SOUS ENREGISTREMENT pour pouvoir ajouter des enregistrements dans les sous-tables converties. Avec cette nouvelle possibilité, vous pouvez convertir vos anciennes bases comportant des sous-tables d'une manière progressive : vous pouvez conserver le lien spécial "Lien sous-table", tout en ajoutant ou en modifiant des enregistrements liés comme s'ils étaient standard. Une fois que toutes vos méthodes auront été mises à jour, vous pourrez remplacer le lien spécial par un lien normal sans changer votre code.  

A compter de 4D v16 R6, les APIs de gestion des fichiers et des dossiers basées sur Mac OS 9 sont obsolètes dans 4D. Ces APIs sont déclarées obsolètes par Apple depuis plusieurs années. 

Les commandes 4D s'appuyant sur ces anciennes APIs ont été renommées : _o_Type document, _o_Createur document, _o_CHANGER TYPE DOCUMENT, _o_CHANGER CREATEUR DOCUMENT et _o_ASSOCIER TYPES FICHIER. Ces commandes sont maintenues par compatibilité, mais sont obsolètes et ne doivent plus être utilisées. 

4D inclut deux nouvelles commandes de gestion des chemins d'accès et des extensions de fichiers : Chemin vers objet et Objet vers chemin.

L'architecture interne des actions standard a été entièrement revue dans 4D v16 R3. Ces actions sont désormais basées sur des chaînes de caractères et prennent en charge des paramètres (pour plus d'informations, veuillez vous reporter à la section Actions standard).

Dans les applications converties, les actions standard sont redirigées de façon transparente vers la nouvelle architecture. Cependant, dans le langage de 4D, les actions standard étaient auparavant basées sur des valeurs numériques (codes). Ce fonctionnement est désormais obsolète et ne doit plus être utilisé :

  • Les actions standard texte utilisant des codes du thème de constantes Action standard (précédemment nommé "Valeurs Texte pour Action standard associée") sont préfixées "_o_" et ne doivent plus être utilisées.
  • L'ensemble du thème de constantes Valeurs pour Actions standard associée est déclaré obsolète.
  • La commande _o_OBJET Lire action (qui retourne un code) est obsolète et a été remplacée par la commande mise à jour OBJET Lire action (qui retourne un nom d'action).

Il s'agit d'une autre ancienne technologie Mac OS, obsolète depuis Mac OS X 10.4 (Tiger, 2005). Les ressources sont utilisées pour stockées des données structurées comme du texte ou des chaînes (pour la localisation), des icônes, etc. En fait, il faut dire que ce ne sont pas les ressources en elles-mêmes qui sont obsolètes, mais leur support sur disque, connues en tant que ResourceFork. La ResourceFork est une partie d'un fichier système Mac OS, et depuis la sortie de Mac OS X, Apple cherche à supprimer ce support car il n'est pas compatible avec les autres systèmes (Unix, Windows) et il est source de beaucoup de problèmes lorsque des fichiers sont transférés par réseau.

Sous Windows, ce mécanisme est émulé et les ressources Mac résident dans le fichier .RSR.

Mais même s'il existe encore des APIs pour gérer les ressources (et Mac OS gère de façon transparente les ressources stockées dans la DataFork), il n'est plus recommandé d'utiliser cet ancien mécanisme pour plusieurs raisons :

  • les textes et les chaînes sont en Mac-Roman. Vous ne pouvez pas stocker de l'Unicode dans des ressources de type TEXT ou STR#.
  • les ressources PICT stockent des PICTs : format non moderne, obsolète, qui ne gère pas la transparence, etc. (voir le point "Images au format PICT" ci-dessus).
  • le nombre de ressources et leur taille sont limités (environ 2 700 ressources ou 16 Mo). 

Nous avons supprimé le support des commandes qui permettent d'écrire/créer des ressources.

La grande majorité des applications 4D utilisant des ressources utilisent en fait des ressources de type "Listes de chaînes", des STR#. 4D fournit les outils pour déplacer aisément les STR# vers du XLIFF :

  • Le composant 4D Pop peut créer automatiquement les fichiers XLIFF par la lecture et le transfert des STR#.
  • Toutes les commandes et expressions qui font référence à des STR# fonctionnent sans modifications avec le XLIFF. Par exemple, si le libellé d'un bouton ou d'un menu était ":15000,3" (ce qui signifie "récupérer le 3e item de la STR# 15000), 4D chargera le XLIFF approprié (s'il existe).

Pour les autres types de ressources :

  • Placez les ressources dans des fichiers séparés dans le dossier "Resources" à côté de la structure (créez des sous-dossiers si nécessaire) :
    • Sauvegardez les ressources 'TEXT' en XLIFF ou en fichiers .txt.
    • Sauvegardez les ressources 'PICT' en tant que fichiers jpg/.png/etc. séparés.
    • Sauvegardez les ressources 'PICT' + MASK’ en tant que fichiers png.
    • Stockez vos ressources privées de la façon la plus appropriée (par exemple, transférez des données binaires dans un document sur disque).
  • Utilisez le dossier "Resources" pour stocker vos ressources. Pour récupérer dynamiquement le chemin d'accès à vos ressources, utilisez Dossier 4D (Dossier Resources courant).

 
 

 
PROPRIÉTÉS 

Produit : 4D
Nom intl. : Deprecated or Removed Features

 
UTILISATION DE L'ARTICLE

Fonctionnalités obsolètes ou supprimées ( 4D v20)

 
DOWNLOAD