Aller au contenu principal
Version: 20 R9 BETA

Call chain

Call chain : Collection

ParamètresTypeDescription
RésultatCollectionCollection d'objets décrivant la chaîne d'appels au sein d'un process
Historique
ReleaseModifications
20 R9Prise en charge de la propriété formula

Description

La commande Call chain renvoie une collection d'objets décrivant chaque maillon de la chaîne d'appels des méthodes dans le process courant. Elle fournit les mêmes informations que la fenêtre du débogueur. Elle présente l'avantage supplémentaire de pouvoir être exécutée à partir de n'importe quel environnement 4D, y compris en mode compilé.

Cette commande facilite le débogage en permettant d'identifier la méthode ou la formule appelée, le composant qui l'a appelée et le numéro de ligne d'où l'appel a été effectué. Chaque objet de la collection retournée contient les propriétés suivantes :

PropriétéTypeDescriptionExample
databaseTextNom de la base de données appelant la méthode (pour distinguer les méthodes de l'hôte et les méthodes des composants)"database":"contactInfo"
formulaTexte (le cas échéant)Contenu de la ligne de code courante au niveau courant de la chaîne d'appel (texte brut). Correspond au contenu de la ligne référencée par la propriété line dans le fichier source indiqué par la méthode. Si le code source n'est pas disponible, la propriété formula est omise (Undefined)."var $stack:=Call chain"
lineIntegerNuméro de ligne de l'appel à la méthode"line":6
nameTextNom de la méthode appelée"name":"On Load"
typeTextType de la méthode :
  • "projectMethod"
  • "formObjectMethod"
  • "formmethod"
  • "databaseMethod"
  • "triggerMethod"
  • "executeOnServer" (lors de l'appel d'une méthode projet avec l'attribut Exécuter sur serveur)
  • "executeFormula" (lors de l'exécution d'une formule via PROCESS 4D TAGS ou de l'évaluation d'une formule dans un document 4D Write Pro)
  • "classFunction"
  • "formMethod"
  • "type":"formMethod"
    note

    Pour que cette commande puisse fonctionner en mode compilé, le [Range checking] (../Project/compiler.md#range-checking) ne doit pas être désactivé.

    Exemple

    Le code suivant renvoie une collection d'objets contenant des informations sur la chaîne d'appels de méthodes :

    var $currentCallChain : Collection
    $currentCallChain:=Call chain

    Si une méthode projet est exécutée, la chaîne d'appels peut contenir (par exemple) :

    [
    {
    "type":"projectMethod",
    "name":"detailForm",
    "line":1,
    "database":"myDatabase"
    }
    ]

    Si une méthode objet de formulaire est exécutée, la chaîne d'appels peut contenir (par exemple) :

    [
    {
    "type":"formObjectMethod",
    "name":"detailForm.Button",
    "line":1,
    "database":"myDatabase"
    },
    {
    "type":"formMethod",
    "name":"detailForm",
    "line":2,
    "database":"myDatabase"
    },
    {
    "type":"projectMethod",
    "name":"showDetailForm",
    "line":2,
    "database":"myDatabase"
    }
    ]

    Propriétés

    Numéro de commande1662
    Thread safe