4D v16.3

Propriétés des méthodes projet

Accueil

 
4D v16.3
Propriétés des méthodes projet

Propriétés des méthodes projet  


 

 

Après avoir créé une méthode projet, vous pouvez la renommer et modifier ses propriétés. Les propriétés des méthodes projet définissent principalement leurs conditions d’accès et de sécurité (accès par les utilisateurs, les serveurs intégrés ou les services) ainsi que leur mode d'exécution. 

Les autres types de méthodes ne disposent pas de propriétés spécifiques. Leurs propriétés sont liées à celles des objets auxquelles elles sont attachées.

Pour modifier les propriétés d’une méthode projet :

  1. Dans l’Editeur de méthodes, sélectionnez la commande Propriétés de la méthode... dans le menu Méthode.
    OU
    Dans la Page Méthodes de l’Explorateur, cliquez avec le bouton droit de la souris sur le nom de la méthode projet et sélectionnez Propriétés de la méthode... dans le menu contextuel ou le menu d’options.
    La boîte de dialogue des propriétés de la méthode apparaît.

Note : La fonction de modification globale permet de modifier un attribut pour un ensemble de méthodes (cf. paragraphe Modifier attributs globalement).

Nom  

Vous pouvez changer le nom d’une méthode projet dans la zone "Nom" de la fenêtre des propriétés des méthodes ou depuis l'Explorateur.

Le nouveau nom doit respecter les règles de nommage de 4D (cf. section Identifiants dans le manuel Langage de 4D). Si une méthode du même nom existe déjà, 4D affiche un message vous indiquant que ce nom est déjà utilisé. La liste des méthodes est triée de nouveau par ordre alphabétique si nécessaire. 

Attention : Changer le nom d’une méthode déjà utilisée dans la base nécessite la mise à jour de ce nom dans les méthodes et formules qui font référence à l’ancien nom, sous peine de perturber le fonctionnement de l'application. Cette opération peut être effectuée manuellement, mais il est fortement conseillé d'utiliser la fonction de renommage des méthodes projet, décrite dans la section Renommer. Cette fonction permet de mettre à jour automatiquement les appelants de la méthode dans le mode Développement.

Avec 4D Server, le nom de la méthode est changé sur le serveur lorsque vous avez fini d’éditer le nom. Si plusieurs utilisateurs modifient simultanément le nom de la méthode, le nom final de la méthode sera celui affecté par le dernier utilisateur l’ayant édité. Il est conseillé de définir un propriétaire pour la méthode afin de ne permettre qu’à certains utilisateurs de modifier le nom de la méthode.

Note : Les méthodes base ne peuvent pas être renommées. De même, les triggers, les méthodes formulaire et les méthodes objet, qui sont liées à des objets de la base et tirent leur nom de cet objet, ne peuvent pas être renommées. 

Les attributs permettent de contrôler l'utilisation et les appels de la méthode projet dans différents contextes. A noter que les attributs peuvent être définis globalement pour une sélection de méthodes projet à partir de l'Explorateur (cf. paragraphe suivant).

Si vous ne voulez pas que les utilisateurs puissent provoquer l’exécution de certaines méthodes projet via la commande Méthode... du menu Exécution, vous pouvez les rendre invisibles en cochant cette option. Une méthode invisible n’apparaît plus dans la boîte de dialogue d’exécution de méthodes (cf. paragraphe Depuis la boîte de dialogue d’exécution de méthode). 

Une méthode projet invisible reste toutefois disponible pour les programmeurs de la base. Elle reste référencée dans la Current form table de l’Explorateur et dans la liste des routines de l’éditeur de méthodes.

Cet attribut est utilisé dans le cadre de l’emploi de composants. Lorsqu’il est coché, il indique que la méthode sera accessible aux composants si l’application est utilisée comme base hôte. A l’inverse, si l’application est utilisée comme composant, la méthode sera accessible aux bases hôtes. 

Pour plus d’informations sur les composants, reportez-vous au chapitre Développer et installer des composants 4D.

Cet attribut est pris en compte uniquement dans le cadre d’une application 4D en client/serveur. Lorsque cette option est cochée, la méthode projet est toujours exécutée sur le serveur, quel que soit le mode d’appel de la méthode. 

Pour plus d’informations sur cette option, reportez-vous à la section Attribut Exécuter sur serveur dans le Manuel de référence de 4D Server.

Cette option vous permet de déclarer la méthode éligible à l'exécution en mode préemptif. Par défaut, 4D exécute toutes les méthodes projet de vos applications en mode coopératif. Si vous voulez bénéficier de la fonctionnalité du mode préemptif, vous devez déclarer explicitement toutes les méthodes que vous souhaitez démarrer en mode préemptif. Le compilateur vérifiera par la suite que ces méthodes sont réellement thread-safe.

Note : L'exécution en mode préemptif est disponible uniquement dans 4D version 64 bits et en mode compilé. Pour plus d'informations, reportez-vous à la section Process 4D préemptifs.

 

Les options suivantes sont proposées :

  • Peut être exécutée dans un process préemptif : En sélectionnant cette option, vous déclarez que la méthode est capable d'être exécutée dans un process préemptif et qu'elle doit donc être exécutée en mode préemptif à chaque fois que cela est possible. La propriété "preemptive" de la méthode prend pour valeur "capable".
    Lorsque cette option est sélectionnée, le compilateur de 4D vérifiera que la méthode est effectivement capable et retournera des erreurs si ce n'est pas le cas -- par exemple, si elle appelle directement ou indirectement des commandes ou d'autres méthodes qui, elles, ne peuvent pas être exécutées en mode préemptif (toute la chaîne d'appel est analysée mais les erreurs sont signalées uniquement au premier niveau). Dans ce cas, vous pourrez modifier la méthode afin de la rendre "thread-safe" ou sélectionner une autre option.
    Si l'éligibilité de la méthode au mode préemptif est confirmée par le compilateur, elle est étiquetée "thread-safe" en interne et sera exécutée en mode préemptif à chaque fois que les conditions requises seront réunies. Cette propriété atteste de l'éligibilité de la méthode au mode préemptif mais ne garantit pas que la méthode sera effectivement exécutée en mode préemptif, puisque ce mode d'exécution requiert un contexte spécifique (voir Quand un process est-il démarré en préemptif ?).
  • Ne peut pas être exécutée dans un process préemptif : En sélectionnant cette option, vous déclarez que la méthode ne doit jamais être exécutée en mode préemptif, et doit par conséquent toujours être exécutée en mode coopératif. La propriété "preemptive" de la méthode prend pour valeur "incapable".
    Lorsque cette option est sélectionnée, le compilateur de 4D ne vérifiera pas la compatibilité de la méthode avec le mode préemptif ; elle sera automatiquement étiquetée "thread-unsafe" en interne (même dans le cas où elle est théoriquement compatible). Lorsqu'elle sera appelée en exécution, cette méthode "contaminera" toutes les autres méthodes dans le même thread, les forçant à s'exécuter en mode coopératif, même si elles sont elles-mêmes "thread-safe".
  • Indifférent (défaut) : En sélectionnant cette option, vous déclarez que vous ne souhaitez pas gérer la propriété du mode préemptif pour la méthode. La propriété "preemptive" de la méthode prend pour valeur "indifferent".
    Lorsque cette option est sélectionnée, le compilateur de 4D évaluera la compatibilité de la méthode avec le mode préemptif et lui apposera l'étiquette interne "thread-safe" ou "thread-unsafe". Aucune erreur liée à l'exécution en préemptif ne sera toutefois retournée. Si la méthode est évaluée "thread-safe", à l'exécution elle n'empêchera pas l'utilisation du mode préemptif si elle est appelée dans un contexte préemptif. A l'inverse, si la méthode est évaluée "thread-unsafe", à l'exécution elle empêchera toute utilisation du mode préemptif si elle est appelée.
    A noter qu'avec cette option, quel que soit le résultat de l'évaluation de sa compatibilité avec le mode préemptif, la méthode sera toujours exécutée en mode coopératif lorsqu'elle sera appelée directement par 4D en tant que méthode parente (par exemple via la commande New process). La propriété "thread-safe" interne n'est prise en compte que lorsque la méthode est appelée par d'autres méthodes à l'intérieur de la chaîne d'appel.

Les attributs de disponibilité précisent les services externes autorisés à appeler explicitement la méthode.

Cet attribut permet de publier la méthode courante comme Web Service, accessible via des requêtes SOAP. Pour plus d’informations, reportez-vous au chapitre Publication et utilisation de Services Web. Lorsque cette option est cochée, l’option Publié dans WSDL est active.

Dans l'Explorateur, l'icône indique une méthode projet bénéficiant de cet attribut.

Note : Il n'est pas possible de publier en tant que Web service une méthode dont le nom comporte des caractères non conformes à la nomenclature XML (par exemple des espaces). Si le nom de la méthode n'est pas conforme, 4D refuse l'affectation de la propriété.

Cet attribut est actif uniquement si l'attribut "Web service" est coché. Il permet d’inclure la méthode courante dans le fichier WSDL de l’application 4D. Pour plus d’informations sur ce point, reportez-vous au paragraphe Génération du WSDL

Les méthodes projet offertes comme Web Service et publiées dans le WSDL bénéficient d’une icône spécifique. 

Dans l'Explorateur, l'icône indique une méthode projet bénéficiant de cet attribut. 

Cette option permet de renforcer la sécurité du serveur Web de 4D : lorsqu’elle est désélectionnée, la méthode projet concernée ne peut pas être exécutée via une requête HTTP contenant l'URL spécial 4DACTION d’appel de méthodes (ainsi que l'ancien URL 4DMETHOD) ni les balises spéciales 4DSCRIPT, 4DTEXT et 4DHTML (ainsi que les anciennes balises 4DVAR et 4DHTMLVAR). Pour plus d’informations, reportez-vous aux sections URLs et actions de formulaires et Balises HTML 4D dans le manuel Langage.

Dans l'Explorateur, l'icône indique une méthode projet bénéficiant de cet attribut.

Pour des raisons de sécurité, cette option est désélectionnée par défaut. Vous devez désigner chaque méthode pouvant être exécutée via les URLs et les balises spéciales.

SQL  

Lorsqu’elle est cochée, cette option autorise l’exécution de la méthode projet par le moteur SQL de 4D. Elle désélectionnée par défaut, ce qui signifie que, sauf autorisation explicite, les méthodes projet de 4D sont protégées et peuvent pas être appelées par le moteur SQL de 4D. 

Cette propriété s’applique à toutes les requêtes SQL internes et externes — exécutées via le pilote ODBC, le code SQL inséré dans les balises Begin SQL/End SQL ou la commande QUERY BY SQL

Notes :

  • Même si une méthode dispose de l’attribut “SQL”, les accès définis au niveau des propriétés de la base et des propriétés de la méthode sont pris en compte pour l’exécution de la méthode.
  • La fonction ODBC SQLProcedure retourne uniquement les méthodes projet disposant de l’attribut “SQL”.

Pour plus d’informations, reportez-vous à la section Implémentations du moteur SQL de 4D dans le manuel SQL de 4D .

Cette option permet de configurer la disponibilité et le périmètre d'action de la méthode dans le contexte d'une liaison 4D Mobile avec un serveur Wakanda.

Pour plus d'informations sur cette option, reportez-vous à la section Configuration de la base 4D dans le manuel 4D Mobile.

Vous pouvez contrôler l’accès aux méthodes projet en définissant des privilèges d’accès ou de propriété pour des groupes d’utilisateurs. Pour plus d’informations sur la création d’un système de mots de passe comportant des utilisateurs et des groupes, reportez-vous au chapitre Utilisateurs et groupes.

  • La liste déroulante “Groupe accès” définit le groupe qui peut exécuter la méthode. Si un utilisateur qui n’appartient pas à ce groupe essaie d’exécuter cette méthode, 4D affiche un message lui indiquant que ses privilèges d’accès ne lui permettent pas d’exécuter cette méthode.
  • La liste déroulante “Groupe propriétaire” définit quel groupe peut modifier la méthode dans le mode Développement. Si un utilisateur qui n’appartient pas à ce groupe essaie d’éditer cette méthode, 4D affiche un message lui indiquant que ses privilèges d’accès ne lui permettent pas d’éditer cette méthode.

Les utilisateurs qui appartiennent aux deux groupes peuvent utiliser ou modifier la méthode sans restriction.

La boîte de dialogue “Attributs des méthodes” permet de modifier un attribut de méthode projet (Invisible, Offerte comme Web Service, etc.) pour la totalité ou une partie des méthodes de la base en une seule opération. Cette fonction est très utile pour modifier les attributs d’un grand nombre de méthodes projet. Elle peut également être utilisée en cours de développement pour appliquer rapidement des attributs communs à des groupes homogènes de méthodes.

Pour modifier globalement les attributs des méthodes :

  1. Dans la Page Méthodes de l'Explorateur de 4D, déployez le menu d'options puis choisissez la commande Modifier attributs globalement...

    La boîte de dialogue “Attributs des méthodes” apparaît :
  2. Dans la zone “Méthodes à modifier”, saisissez une chaîne de caractères permettant de désigner les méthodes que vous souhaitez modifier globalement.
    La chaîne de caractères est utilisée comme critère de recherche des noms de méthodes.
    Vous devez utiliser le caractère “joker” @ afin de définir des ensembles de méthodes :
    • pour désigner les méthodes dont le nom débute par..., saisissez @ en fin de chaîne. Par exemple : web@
    • pour désigner les méthodes dont le nom contient..., saisissez @ en milieu de chaîne. Par exemple : web@write
    • pour désigner les méthodes dont le nom se termine par..., saisissez @ en début de chaîne. Par exemple : @write
    • pour désigner toutes les méthodes, saisissez uniquement le caractère @ dans la zone.
      Notes :
      • La recherche ne tient pas compte des majuscules/minuscules.
      • Vous pouvez insérer plusieurs @ dans la chaîne, par exemple dtro_@web@pro@
  3. Dans la zone “Attributs à modifier”, choisissez un attribut dans la liste déroulante puis cliquez sur le bouton radio Vrai ou Faux correspondant à la valeur à appliquer.
    Note : L’attribut “Publié dans WSDL” à Vrai ne sera appliqué qu’aux méthodes projet contenant déjà l’attribut “Offert comme Web Service”.
  4. Cliquez sur le bouton Appliquer.
    La modification est appliquée instantanément à toutes les méthodes projet désignées par la chaîne de caractères définie.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Editer les méthodes

 
HISTORIQUE 

Modifié : 4D v15 R5

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)