Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Fonctionnalités obsolètes ou supprimées
|
Fonctionnalité | Remplacée par | Statut dans la version courante de 4D |
Commandes de déclaration C_XXX | var, #DECLARE et prototypes de fonctions | Obsolète |
On REST Authentication database method | Force login et fonction authentify() | Obsolète |
Interpréteur PHP intégré | Interpréteur PHP externe | Supprimé |
Réplication via le SQL | Global stamp ORDA | Obsolète |
PDFCreator Driver | PDF driver natif de Windows | Obsolète |
Non-conformité avec la notation objet | Vérifier la conformité et activer l'option de comptabilité Utiliser la notation d'objet | Supprimée |
Variables interprocess | Collections et objets partagés, Storage | Obsolète |
4D ODBC Pro | ODBC/SQL Pass through intégré ou API 4D REST | Supprimée |
4D for OCI sur macOS | ODBC/SQL Pass through intégré ou API 4D REST | Supprimée |
Pilote ODBC de 4D sur macOS | API 4D REST | Supprimée |
Commandes Internet 4D - Mail | Transporteurs (IMAP, SMTP, POP3), Objets Email | Obsolète |
Commandes Internet 4D - Transfert de fichiers | System workers | Obsolète |
Formulaires utilisateurs | Formulaires 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 GET VARIABLES (pour restaurer les variables). Commandes WEB GET BODY PART/WEB Get body part count (pour restaurer les fichiers postés) | Obsolète |
Sous-tables converties | Utiliser tables N->1 | Obsolète |
APIs fichiers et dossiers sur Mac | Path to object, Object to path | Obsolète |
Actions standard basées sur des codes | Modè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 Open resource file. |
Gestion de la priorité CPU | N/A | Obsolète |
Ancienne couche réseau | Utiliser ServerNet | Obsolète |
4D Mobile | ORDA et serveur REST | Obsolète |
Explications sur les valeurs de la colonne "Statut" :
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.
Commande | Remplacée par | Obsolète depuis |
Thème Environnement 4D : | ||
_o_DATA SEGMENT LIST | - | v11 |
Thème Sauvegarde : | ||
_o_INTEGRATE LOG FILE | INTEGRATE MIRROR LOG FILE | v16 |
Thème Compilateur : | ||
_o_ARRAY STRING | ARRAY TEXT | v12 |
_o_C_GRAPH | (utilisez du SVG avec la commande GRAPH) | v12 |
_o_C_INTEGER | C_LONGINT | v12 |
_o_C_STRING | C_TEXT (dès que la base de données est en Unicode) | v12 |
Thème Saisie : | ||
_o_ADD SUBRECORD | ADD RECORD dans la table N d'une relation N->1 | v12 |
_o_MODIFY SUBRECORD | MODIFY RECORD dans la table N d'une relation N->1 | v12 |
Thème Glisser-Déposer : | ||
_o_DRAG AND DROP PROPERTIES | Commandes du thème Conteneur de données | v17 R4 |
Thème Evénements formulaire : | ||
_o_During | Remplacé par Form event code et l'événement approprié | v12 |
Thème Formulaires : | ||
_o_FORM GET PARAMETER | - | v17 R4 |
Thème Graphes : | ||
GRAPH (en utilisant la zone 4D Graphe) | Utilisez une image SVG à la place | v12 |
Thème Listes hiérarchiques : | ||
_o_REDRAW LIST | A supprimer du code (ne fait rien depuis la v11) | v11 |
Thème List Box : | ||
LISTBOX Get property (constantes) : | ||
_o_lk display hor scrollbar/_o_lk display ver scrollbar | OBJECT GET SCROLLBAR | v16 R3 |
_o_lk hor scrollbar position/_o_lk ver scrollbar position | OBJECT GET SCROLL POSITION | v16 R3 |
_o_lk footer height | LISTBOX Get footers height | v16 R3 |
_o_lk header height | LISTBOX Get headers height | v16 R3 |
Thème Objets (Formulaires) : | ||
/ | OBJECT SET ENABLED | v12 |
_o_OBJECT Get action | OBJECT Get action | v16 R3 |
Thème Images : | ||
_o_PICTURE TO GIF | PICTURE TO BLOB | v16 R5 |
Thème SQL : | ||
_o_USE EXTERNAL DATABASE | SQL LOGIN | v12 |
_o_USE INTERNAL DATABASE | SQL LOGOUT | v12 |
Thème Chaînes de Caractères : | ||
_o_Mac to Win | v11 | |
_o_Win to Mac | v11 | |
Thème Sous-enregistrements : toutes les commandes | Remplacez “nnn SOUS ENREGISTREMENTS” et “nnn SOUS SELECTION” avec une action sur l'enregistrement N ou la sélection N de la Table N dans une relation N ->1 | v12 |
Thème Documents Système : | ||
_o_Document type | Path to object | v12 |
_o_Document creator | Path to object | v16 R6 |
_o_SET DOCUMENT TYPE | Object to path | v16 R6 |
_o_SET DOCUMENT CREATOR | Object to path | v16 R6 |
_o_MAP FILE TYPES | Utiliser UTIs et Info.plist | v16 R6 |
Thème Environnement système : | ||
_o_Font name | Utilisez les identifiants des polices | v14 |
La commande OBJECT SET FONT n'accepte plus de paramètre entier long pour la police : ce paramètre est maintenant une chaîne et vous devez spécifier le nom de la police. | ||
_o_Gestalt | Get system info / Is macOS / Is Windows | v17 |
_o_PLATFORM PROPERTIES | Get system info / Is macOS / Is Windows | v17 |
Thème Formulaires utilisateur : toutes les commandes | ||
_o_CREATE USER FORM | v17 R4 | |
_o_DELETE USER FORM | v17 R4 | |
_o_EDIT FORM | v17 R4 | |
_o_LIST USER FORMS | v17 R4 | |
4D Internet Commands : | ||
Retourne une erreur si appelée | v16 R2 | |
Note : Le paramètre progression n'est plus pris en charge par les commandes FTP_Append, FTP_Receive, FTP_Send |
Une liste alphabétique de ces commandes peut être consultée dans l'annexe Commandes obsolètes de 4D - Langage.
Pour des raisons de cohérence, plusieurs commandes ont été renommées dans 4D 20 R7.
Nom précédent | Nouveau nom (4D 20 R7 et au-delà) |
Get action info | Action info |
GET ACTIVITY SNAPSHOT | ACTIVITY SNAPSHOT |
Get application info | Application info |
GET BACKUP INFORMATION | BACKUP INFO |
Get call chain | Call chain |
Get database measures | Database measures |
Get last field number | Last field number |
Get last query path | Last query path |
Get last query plan | Last query plan |
Get last table number | Last table number |
Get license info | License info |
Get license usage | License usage |
Get localized document path | Localized document path |
Get localized string | Localized string |
Get locked records info | Locked records info |
GET MEMORY STATISTICS | MEMORY STATISTICS |
Get Monitored Activity | Monitored activity |
GET MOUSE | MOUSE POSITION |
GET RESTORE INFORMATION | RESTORE INFO |
Get process activity | Process activity |
Get system info | System info |
Get table fragmentation | Table fragmentation |
Session storage by id | Session storage |
La Méthode base Sur authentification REST est obsolète dans les projets à partir de 4D 20 R6. L'authentification Force login est désormais fortement recommandée pour gérer la connexion des utilisateurs REST.
Dans les projets convertis, vous pouvez mettre à jour votre configuration en cliquant sur le bouton Activer l'authentification REST via la fonction ds.authentify() dans les paramètres de la base. Consultez également cet article de blog pour savoir comment migrer votre code si nécessaire.
Depuis 4D v20 R5, le plug-in Commandes Internet 4D n'est plus fourni avec l'installateur 4D. Si nécessaire, vous devez télécharger le fichier 4DInternetCommands.bundle depuis le portail de téléchargement des produits 4D et installer les fichiers du plug-in dans le dossier Plugins de votre projet ou de votre base de données.
Les fonctionnalités suivantes des commandes Internet 4D sont obsolètes :
Fonctionnalité | Remplacée par | Statut |
IC Downloaded Mail | Email objects | Obsolète, documentation supprimée |
IC IMAP Review Mail | IMAP Transporter | Obsolète, documentation supprimée |
IC POP3 Review Mail | POP3 Transporter | Obsolète, documentation supprimée |
IC Send Mail | SMTP Transporter | Obsolète, documentation supprimée |
IC File Transfert | System workers | Obsolète, documentation supprimée |
4D v20 R3 et les versions suivantes n'incluent plus d'interpréteur PHP intégré. La plupart des fonctionnalités offertes par PHP sont désormais implémentées dans 4D et nous avons décidé de supprimer l'interpréteur PHP intégré. PHP Execute et d'autres commandes PHP continueront à fonctionner mais uniquement avec un interpréteur PHP externe. Voir la page Exécuter des scripts PHP dans 4D, ainsi que ce billet de blog pour plus d'informations.
Les mécanismes de réplication et de synchronisation SQL (décrits dans Réplication via le SQL) sont obsolètes depuis 4D v20 R3. Ils sont toujours supportés, mais il est désormais recommandé d'utiliser la fonctionnalité Global stamp basée sur ORDA, qui fournit une solution flexible et robuste pour mettre en œuvre la réplication et la synchronisation dans 4D.
À 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 Printer name.
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 a commande Storage et/ou les singletons.
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 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".
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 GET VARIABLES. Les fichiers postés devront, eux, être récupérés à l'aide des commandes WEB GET BODY PART et WEB Get body part count.
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 SEND RECORD ou DUPLICATE RECORD.
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) :
"Changer le code partout où c'est nécessaire" signifie essentiellement :
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_CREATE SUBRECORD 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_Document type, _o_Document creator, _o_SET DOCUMENT TYPE, _o_SET DOCUMENT CREATOR et _o_MAP FILE TYPES. 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 : Path to object et Object to path.
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é :
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 :
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 :
Pour les autres types de ressources :
Produit : 4D
Fonctionnalités obsolètes ou supprimées ( 4D v20 R7)