Grâce à 4D v17 R3, vous pouvez exporter votre fichier de structure dans plusieurs fichiers texte. Par exemple, avec seulement quelques lignes de code, vous pouvez créer une copie de votre base de données chaque matin. Vous pouvez l’utiliser pour garder une trace de l’historique ou pour envoyer votre base de données à un collègue et voir les changements lorsqu’il a fini de travailler dessus.
Nous vous fournissons un composant prêt à l’emploi avec seulement deux méthodes : une pour configurer les données à exporter, et l’autre pour exporter votre base de données.
Configurer les données
Dans ce composant, la méthode « OpenDialConfigExport » affiche une interface pour configurer votre exportation. Le résultat est enregistré dans un fichier JSON à côté de la structure de la base de données hôte.
Par exemple, vous exécutez :
// Display the configuration dialog
OpenDialConfigExport
Puis vous sélectionnez les éléments à exporter :
Lorsque vous cliquez sur le bouton « Save », le fichier « configExport.json » suivant est créé.
{ "withLog": "ifNotEmpty", "filter": { "projectMethods": true, "databaseMethods": true, "triggerMethods": false, "forms": true, "catalog": true, "folders": false, "settings": false, "menus": false, "tips": false, "lists": false, "filters": false, "pictures": false, "resources": false, "trash": false, "windowPositions": false, "methodPreferences": false } }
Vous n’avez pas besoin d’exécuter cette commande. Si le fichier de configuration n’existe pas, l’ensemble du fichier de structure est exporté.
Exportation de la structure
Pour exporter le fichier de structure, utilisez la méthode du composant ExportStructure. Passez le dossier où le contenu est exporté comme paramètre.
Par exemple, vous voulez exporter une copie de votre code dans un dossier nommé « YY-MM-DD hh-mm-ss ».
Il suffit d’écrire le code suivant :
C_TEXT($path)
$path :=System folder(Documents folder)+"Export "+Folder separator\
+Path to object(Structure file).name+Folder separator\
+Replace string(Replace string(String(Current date;ISO date;Current time) ;":" ;"-") ; "T" ;" ")+Folder separator
If (Test path name($path)#Is a folder)
CREATE FOLDER ($path;*)
End if
ExportStructure ($path)