Aller au contenu principal
Version: Next

METHOD GET PATHS

METHOD GET PATHS ( {nomDossier ;} typeMéthode ; tabChemins {; marqueur}{; *} )

ParamètreTypeDescription
nomDossierTextNom de dossier de la page Démarrage
typeMéthodeIntegerSélecteur de type de méthode à récupérer
tabCheminsText arrayTableau des chemins et noms des méthodes
marqueurRealValeur minimum de marqueur
Nouvelle valeur courante
*OpérateurSi passé = la commande s’applique à la base hôte lorsqu’elle est exécutée depuis un composant (paramètre ignoré hors de ce contexte)

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande METHOD GET PATHS remplit le tableau tabChemins avec les chemins d’accès internes et les noms des méthodes de l’application du type défini par le paramètre typeMéthode.

Si votre code est organisé en "dossiers" dans l’Explorateur de 4D (page Démarrage), vous pouvez passer dans le paramètre optionnel nomDossier un nom de dossier. Dans ce cas, le tableau tabChemins ne contient que les chemins des méthodes situées à cet emplacement.

Note : Il n’est pas possible d’utiliser le caractère "@" dans nomDossier.

Passez dans typeMéthode le type de méthode dont vous souhaitez obtenir les chemins dans le tableau tabChemins. Vous pouvez utiliser les constantes suivantes, placées dans le thème Accès objets développement (vous pouvez utiliser une constante ou une combinaison de constantes) :

ConstanteTypeValeurComment
Path all objectsEntier long-1Chemins de toutes les méthodes de la base
Path classEntier long32Chemin de la définition de classe. Exemple :
[class]/Individu
[class]/Etudiant
Path database methodEntier long2Chemin des méthodes base définies (nom anglais). Liste de ces méthodes :
[databaseMethod]/onStartup
[databaseMethod]/onExit
[databaseMethod]/onDrop
[databaseMethod]/onBackupStartup
[databaseMethod]/onBackupShutdown
[databaseMethod]/onWebConnection
[databaseMethod]/onWebAuthentication
[databaseMethod]/onWebSessionSuspend
[databaseMethod]/onServerStartup
[databaseMethod]/onServerShutdown
[databaseMethod]/onServerOpenConnection
[databaseMethod]/onServerCloseConnection
[databaseMethod]/onSystemEvent
[databaseMethod]/onSqlAuthentication
[databaseMethod]/ onHostDatabaseEvent
[databaseMethod]/ onRESTAuthentication
[databaseMethod]/ onMobileAppAuthentication
[databaseMethod]/ onMobileAppAction
Path project formEntier long4Chemin des méthodes formulaire projet et de toutes leurs méthodes objet. Exemples :
[projectForm]/monForm/{formMethod}
[projectForm]/monForm/bouton1
[projectForm]/monForm/maliste
[projectForm]/monForm2/bouton1
Path project methodEntier long1Nom de la méthode.
Exemple : MaMethodeProjet
Path table formEntier long16Chemin des méthodes formulaire table et de toutes leurs méthodes objet. Exemples :
[tableForm]/table_1/Form1/{formMethod}
[tableForm]/table_1/Form1/bouton1
[tableForm]/table_1/Form1/maliste
[tableForm]/table_2/Form1/maliste
Path triggerEntier long8Chemin des triggers de la base. Exemples :
[trigger]/table_1
[trigger]/table_2

Le paramètre marqueur vous permet de ne récupérer que les chemins des méthodes modifiées à compter d’un instant spécifique. Dans le cadre d’un système de contrôle de version, ce principe permet de mettre à jour uniquement les méthodes modifiées depuis la dernière sauvegarde.

Le fonctionnement est le suivant : 4D maintient un compteur de modification des méthodes. A chaque fois qu’une méthode est créée ou réenregistrée, ce compteur est incrémenté et sa valeur courante est stockée dans le marqueur interne de la méthode. Si vous passez marqueur, la commande ne retourne que les méthodes dont le marqueur est supérieur ou égal à la valeur passée dans ce paramètre. De plus, la commande retourne dans marqueur la nouvelle valeur courante du compteur de modification, c’est-à-dire la valeur la plus élevée. Si vous stockez cette valeur, il vous suffira de la passer lors de l’appel suivant à la commande afin de ne récupérer que les méthodes nouvelles ou modifiées.

Si la commande est exécutée depuis un composant, elle retourne par défaut les chemins des méthodes du composant. Si vous passez le paramètre *, le tableau contiendra les chemins des méthodes de la base hôte.

Si la commande détecte un nom de méthode dupliqué, l'erreur -9802 est générée ("Chemin d'objet non unique"). Il est recommandé dans ce cas d'utiliser le CSM afin de vérifier la structure de la base de données.

Exemple 1

Récupération des méthodes projet placée dans un dossier "web" :

 METHOD GET PATHS("web";Path project method;tabChemins)

Exemple 2

Récupération des méthodes base et des triggers :

 METHOD GET PATHS(Path trigger+Path database method;tabChemins)

Exemple 3

Récupération des méthodes projet modifiées depuis le dernier backup :

  // On charge la dernière valeur stockée
 $stamp:=Max([Backups]cur_stamp)
 METHOD GET PATHS(Path project method;tabChemins;$stamp)
  // On stocke la nouvelle valeur
 CREATE RECORD([Backups])
 [Backups]cur_stamp:=$stamp
 SAVE RECORD([Backups])

Exemple 4

Reportez-vous à l'exemple de la commande METHOD SET CODE.

Voir aussi

Current method path
METHOD GET FOLDERS