Modifier les propriétés de plusieurs méthodes à la fois par code

Traduit automatiquement de Deepl

Nous savons que vous souhaitez parfois modifier les propriétés de plusieurs méthodes sans avoir à ouvrir la boîte de dialogue des propriétés de chaque méthode.

Par exemple, vous voulez donner à toutes les méthodes le statut« Peut être exécuté en mode préemptif« , puis compiler votre base de données. Ainsi, avec les erreurs de compilation, vous obtenez un aperçu des méthodes à modifier pour être préemptif.

En utilisant la commande METHOD GET NAMES pour récupérer la liste des méthodes dans votre base de données, puis la commande METHOD SET ATTRIBUTES pour modifier les attributs, vous pouvez les modifier toutes en même temps !

Voici un exemple mettant toutes les méthodes du projet en mode préemptif :

ARRAY TEXT($arrName;0 )
C_OBJECT ($attributes)

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

// Create object with the "preemptive" attribute set to "capable"
OB SET ($attributes; "préemptif" ; "capable")

// Change the "preemptive" attribute value for all methods
For ($i;1 ;Size of array($arrName)

METHOD SET ATTRIBUTES ($arrName{$i} ;$attributes)
End for

Utiliser une collection pour manipuler des propriétés

4D dispose désormais d’un nouveau type, les collections, et de nombreuses méthodes prêtes à l’emploi pour manipuler les collections.

Comment utiliser ce nouveau type ? Vous insérez des noms de méthodes et des propriétés dans une collection pour les rechercher, les modifier ou simplement les afficher dans une boîte de liste de type collection.

Voici un exemple pour stocker toutes les propriétés des méthodes dans une collection :

C_OBJECT$i$attributes($attributes)
C_COLLECTION (colMethod)
ARRAY TEXT ($arrName;0)
colMethod :=New collection()

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

For ($i;1 ;Size of array($arrName)
$attributes :=New object()
// Retrieve the attributes for each method
METHOD GET ATTRIBUTES ($arrName{$i} ;$attributes)

// Add item in the collection
colMethod .push(New object("nom" ;$arrName{ xml

End for

Après avoir modifié les attributs, vous pouvez enregistrer le résultat avec une simple boucle sur la collection :

C_OBJECT($item;$tmp)
// Loop for each item in the collection
For each ($item;colMethod)
// Save attributes
$tmp :=$item.attributes
METHOD SET ATTRIBUTES ($item.name;$tmp)
End for each

Démonstration : Modifier les propriétés d’une méthode par le code

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.