Installation
l'ATL est un module du composant BSPK, qui comme tous les composants, s'installe dans le dossier Components de la base de données 4D ou de l'application 4D ou 4D Server.
1.1 Pré-requis
- la version du composant doit absolument correspondre à celle de 4D faute de quoi des erreurs seront générées (impossible de charger le composant). Par exemple pour ouvrir une application avec 4D v20 LTS il faut utiliser la version v20 LTS du composant, et si l'on désire ensuite ouvrir la même application avec 4D v20 R, il faudra remplacer le composant par une version v20 R. Les numéros de version secondaires (v20.1, v20.2 etc.) ne sont pas concernés par cette limitation.
- le composant doit être installé et lancé une première fois en mode interprété, car certaines méthodes utilitaires seront générées dans la base hôte (voir la section Goodies pour plus de détails). On compilera ensuite l'application avec ces méthodes intégrées.
- Le composant est utilisable aussi bien en mode Projet qu'en mode Binaire.
- Les tables/data classes doivent contenir des clés primaires pour être utilisables dans l'ATL. Cependant les tables sans clé primaire apparaîtront quand même dans la liste des tables sans pouvoir être ouvertes.
- En mode projet, l'ATL est prévu pour fonctionner avec les classes standard de 4D. Les data classes, entités et sélections doivent étendre les classes "DataClass", "Entity" et "EntitySelection" proposées par défaut.
1.2 Note sur la sécurité
- l'ATL ne nécessite pas de cocher la case "Exécuter la méthode 'Sur événement base hôte' des composants". Il n'y a donc aucun risque qu'une altération de votre code ou de vos données soit faite de la part du composant, qui est totalement neutre.
- les données sont le bien le plus précieux d'une application, aucun type de communication vers l'extérieur ou d'analyse de vos données n'est réalisée par l'ATL.
- l'exécution de l'ATL n'est pas autorisée sur 4D Server, afin d'empêcher toute utilisation abusive et cachée. S'agissant d'un outil d'interface il ne peut que s'exécuter sur 4D, 4D Volume Desktop ou 4D Client.
- Tout comme le mode Utilisation ou le Data Explorer, l'ATL est potentiellement très dangereux puisqu'il permet de modifier et détruire des données en production. Il est donc de la responsabilité du développeur d'en autoriser l'usage à d'autres utilisateurs.
1.3 Appel de l'ATL
Pour lancer l'ATL il suffit d'exécuter la méthode BSPK_ATL depuis le menu Exécution / Méthode, ou bien en l'appelant depuis un menu, une méthode ou un objet de formulaire. L'ATL sera lancé dans un nouveau process, sans barre de menus.
Sans paramètre, l'ATL s'ouvrira avec tous les droits.
Il est possible d'en modifier certaines caractéristiques en lui rajoutant un paramètre de type objet, contenant une ou plusieurs des propriétés ci-dessous. Dans ce cas il vous faudra exécuter une méthode intermédiaire qui contiendra l'appel à l'ATL.
1.3.1 Masquage de certaines tables
$vo_Param:=New object $vo_Param.vc_DisableTableList:=New collection $vo_Param.vc_DisableTableList.push("Country") $vo_Param.vc_DisableTableList.push("Line") BSPK_ATL($vo_Param)
Pour masquer des tables dont le nom est très proche (même racine par exemple) il n'est pas possible d'utiliser l'@ dans les chaînes de nom de table. Tous les noms de table doivent être ajoutés individuellement dans la collection.
Attention ! l'ATL, étant basé sur ORDA, est sensible à la casse. Il faut donc respecter les majuscules et les minuscules des noms de table de la structure.
1.3.2 ATL en lecture seule
$vo_Param:=New object $vo_Param.vb_AllReadOnly:=True BSPK_ATL($vo_Param)
Aucune des tables ne sera éditable. La suppression et la création d'enregistrement sera impossible.
1.3.3 Certaines tables en lecture seule
$vo_Param:=New object $vo_Param.vc_ReadOnlyTableList:=New collection $vo_Param.vc_ReadOnlyTableList.push("Country") $vo_Param.vc_ReadOnlyTableList.push("Line") BSPK_ATL($vo_Param)
Seules les tables de la collection seront en lecture seule. En cas d'utilisation conjointes des deux propriétés vc_ReadOnlyTableList et vb_AllReadOnly, cette dernière sera prioritaire et aucune table ne sera éditable.
1.3.4 Association d'un menu
$vo_Param:=New object $vo_Param.vl_MenuBar:=1 BSPK_ATL($vo_Param)
Par défaut l'ATL s'exécute sans barre de menu associée, il est possible de conserver la barre de menu courante en lui passant son numéro en paramètre.
Ce paramètre déclenchera l'exécution sur la base hôte de la méthode BSPH_SET_MENU_BAR qui elle même installera la barre de menu désignée.
Si vous n'utilisez pas les barres de menu traditionnelles de 4D, mais plutôt les menus références, vous pouvez néanmoins appliquer la même procédure en vous servant de BSPH_SET_MENU_BAR comme "gare de triage" afin de lancer vos barres de menu.
Important ! Vous devez partager entre base hôte et composant les méthodes lancées par vos menus afin qu'elles puissent être exécutées par le composant (option disponible dans les propriétés de la méthode)
#DECLARE($vl_MenuBar : Integer) Case of : ($vl_MenuBar=1) SET MENU BAR(<>MyBar) : ($vl_MenuBar=2) SET MENU BAR(<>MySecondBar) End case
1.3.5 Fréquence de rafraîchissement
$vo_Param:=New object $vo_Param.vl_SecondWaitForAutoRefresh:=30 BSPK_ATL($vo_Param)
Par défaut les données de l'ATL ne sont rafraîchies que sur l'activation de la fenêtre de la table. Ceci est en général suffisant pour obtenir une fidélité correcte des données par rapport à la base, du moins pendant un certain temps. Mais si l'on souhaite garder une table visible pendant une certaine durée il peut être utile de choisir l'option de rafraîchissement Sur Minuteur (voir 3.6.2). Dans ce cas le minuteur est réglé sur 10 secondes par défaut. On peut modifier cette valeur en changeant le paramètre vl_SecondWaitForAutoRefresh au lancement de l'ATL.
1.4 Premier lancement
Lors du premier lancement de l'ATL, plusieurs méthodes préfixées BSPH seront créées dans la base hôte. La plupart ne vous seront pas directement utiles. Elles sont appelées par des méthodes du composant qui sont décrites dans la section 4.
L'une entre elles est destinée à transmettre par mail au développeur les erreurs éventuelles survenant dans l'ATL (par exemple lorsqu'on saisit une instruction ORDA incorrecte dans l'éditeur de recherche ou de formule). Il est proposé de saisir immédiatement les paramètres d'envoi de ces emails.
Il n'est pas obligatoire de renseigner ces valeurs sur le champ.
En cliquant sur Maintenant vous devrez saisir ou coller successivement :
- l'url ou l'IP du serveur SMTP.
A noter que pour coller une chaîne vous devrez utiliser le clic-droit.
- le N° de port (en principe 587).
- le nom d'utilisateur (login) du compte mail.
- le mot de passe correspondant.
- le destinataire des erreurs (on peut concaténer plusieurs adresses avec une virgule ou point-virgule).
- l'adresse de l'émetteur apparaissant dans le message reçu (en général le même que l'utilisateur)
En cliquant sur Paramétrer plus tard dans la méthode, vous aurez le loisir de le faire plus tard. Dans l'intervalle aucune erreur ne sera envoyée.
Vous pourrez saisir les valeurs requises dans la méthode BSPH_GET_MAIL_INFO.