| 4D v15.4METHODE FIXER CODE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v15.4
 METHODE FIXER CODE 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| METHODE FIXER CODE ( chemin ; code {; *} ) | ||||||||
| Paramètre | Type | Description | ||||||
| chemin | Texte, Tableau texte |   | Texte ou Tableau texte contenant un ou plusieurs chemin(s) de méthode(s) | |||||
| code | Texte, Tableau texte |   | Code de la ou des méthode(s) désignée(s) | |||||
| * | Opérateur |   | Si 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) | |||||
La commande METHODE FIXER CODE modifie le code de la ou des méthode(s) désignée(s) par le paramètre chemin avec le contenu passé dans le paramètre code. La commande peut accéder au code de tous les types de méthodes : méthodes base, triggers, méthodes projet, méthodes formulaire et méthodes objet.
Dans le cas d’une méthode projet, si la méthode existe déjà dans la base, son contenu est remplacé ; si elle n’existe pas déjà, elle est créée avec son contenu.
Vous pouvez utiliser deux types de syntaxes, basées soit sur des tableaux texte, soit sur des variables texte :
 C_TEXTE(vTchemin) // variables texte
 C_TEXTE(vTcode)
 METHODE FIXER CODE(vTchemin;vTcode) // code d’une seule méthode TABLEAU TEXTE(tabChemins;0) // tableaux texte
 TABLEAU TEXTE(tabCodes;0)
 METHODE FIXER CODE(tabChemins;tabCodes) // codes de plusieurs méthodesIl n’est pas possible de mixer les deux syntaxes.
Si un chemin d’accès passé est invalide, la commande ne fait rien.
Lors de l'appel de METHODE FIXER CODE, par défaut les attributs des méthodes sont réinitialisés. Cependant, si la première ligne du code d’une méthode contient des métadonnées valides (exprimées en JSON), elles sont utilisées pour définir les attributs de la méthode et la première ligne n’est pas insérée. Exemple de métadonnées :
  // %attributes = {"invisible":true,"lang":"fr","folder":"Security"}Note : Ces métadonnées sont générées automatiquement par la commande METHODE LIRE CODE. Pour plus d'informations sur les attributs pris en charge, reportez-vous à la description de la commande METHODE FIXER ATTRIBUTS.
Concernant la propriété "folder" des métadonnées :
Vous pouvez exécuter cette commande depuis un composant, mais dans ce cas vous devez passer le paramètre * car l’accès en écriture au code du composant n’est pas possible. Si vous omettez le paramètre * dans ce contexte, l’erreur -9763 est générée. 
 
Cet exemple permet d’exporter et d’importer la totalité des méthodes projet d’une application :
 $root_t:=Dossier 4D(Dossier base)+"methods"+Séparateur dossier
 TABLEAU TEXTE($fileNames_at;0)
 CONFIRMER("Import ou export des méthodes ?";"Import";"Export")
 
 Si(OK=1)
    LISTE DES DOCUMENTS($root_t;$fileNames_at)
    Boucle($loop_l;1;Taille tableau($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       DOCUMENT VERS BLOB($root_t+$filename_t;$blob_x)
       METHODE FIXER CODE($filename_t;BLOB vers texte($blob_x;UTF8 texte sans longueur))
    Fin de boucle
 Sinon
    Si(Tester chemin acces($root_t)#Est un dossier)
       CREER DOSSIER($root_t;*)
    Fin de si
    METHODE LIRE CHEMINS(Chemin Méthode projet;$fileNames_at)
    METHODE LIRE CODE($fileNames_at;$code_at)
    Boucle($loop_l;1;Taille tableau($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       FIXER TAILLE BLOB($blob_x;0)
       TEXTE VERS BLOB($code_at{$loop_l};$blob_x;UTF8 texte sans longueur)
       BLOB VERS DOCUMENT($root_t+$filename_t;$blob_x)
    Fin de boucle
 Fin de si
 MONTRER SUR DISQUE($root_t)
	Produit :  4D
	Thème :  Accès objets développement
	Numéro :  
        1194
        
        
        
	Nom intl. :  METHOD SET CODE

	Créé :  4D v13
	Modifié :  4D v14
	Modifié :  4D v15
	4D - Langage ( 4D v15.4)
	4D - Langage ( 4D v15)
	
	
	
	
	
	
	4D - Langage ( 4D v15.3)
	
	
 Ajouter un commentaire
Ajouter un commentaire