GetEntityDefOfName

Description

Offre la fonctionnalité Rechercher un enregistrement. Renvoie l'objet EntityDef correspondant au nom d'affichage indiqué de l'enregistrement. Cette méthode nécessite l'indication du type d'EntityDef et éventuellement des noms d'EntityDef dans lesquels rechercher le nom d'affichage.

Vous devez consulter le type d'EntityDef renvoyé pour déterminer le type d'enregistrement correspondant, car le tableau entDefNames autorise les recherches dans plusieurs types d'enregistrement. De plus, si vous utilisez ANY_ENTITY dans l'argument entityDeftype (type d'entityDef), vous devez vérifier si l'enregistrement renvoyé est avec état (REQ_ENTITY) ou sans état (AUX_ENTITY).

Vous pouvez appeler les méthodes GetEntityDefOfName ou GetEntityDefOfDbId pour savoir si une entité possédant le nom d'affichage ou l'ID base de données indiqué est disponible dans la base de données utilisateur. Une fois EntityDef connu, vous pouvez obtenir l'entité à l'aide de la méthode GetEntity de l'objet Session.

Pour effectuer une requête sur le type d'enregistrement à l'aide de son ID base de données, plutôt que de son nom d'affichage, utilisez la méthode GetEntityDefOfDbId.

Remarque : Lorsque vous utilisez la valeur renvoyée par la méthode GetEntityDefNames, triez les éléments de la liste avant de l'utiliser comme argument pour les méthodes GetEntityDefOfName et GetEntityDefOfDbId. Le tri permet d'obtenir des résultats cohérents pour tous les fournisseurs de base de données.

Pour plus d'informations sur les noms d'affichage et les clés uniques, voir Types d'enregistrement .

Remarque : Cette méthode est disponible depuis la version 7.0.1.

Syntaxe

VBScript

session.GetEntityDefOfName(display_name, entitydef_names,entitydef_type ) 

Perl

$session->GetEntityDefOfName(display_name, entitydef_names,entitydef_type); 
Identificateur
Description
session
Objet Session représentant la session en cours d'accès à la base de données.
display_name
Pour les types d'enregistrement avec état (REQ), le nom d'affichage doit être l'ID visible de l'enregistrement (par exemple, "DEF00013323"). Pour les types d'enregistrement sans état (AUX), il s'agit des zones de clé unique.
entitydef_names
Identifie les noms des types d'enregistrement à utiliser pour rechercher l'enregistrement souhaité.

Dans Visual Basic, valeur de type Variant contenant un tableau de chaînes. Chaque chaîne contient le nom d'un EntityDef.

Dans Perl, référence à un tableau de chaînes. Chaque chaîne contient le nom d'un EntityDef.

Les noms des EntityDef permettent de rechercher l'entité identifiée par son nom d'affichage ou son ID base de données. Cette liste de noms d'EntityDef est traitée de manière itérative dans l'ordre donné. Si un nom d'EntityDef indiqué dans l'argument entDefNames est incorrect, une exception est émise et identifie ce nom incorrect. Si une valeur de tableau vide est indiquée, tous les types d'EntityDef définis dans le schéma sont utilisés et la recherche s'effectue dans l'ordre de l'EntityDef le plus fréquent à l'EntityDef le moins fréquent.

entitydef_type
Valeur de type Long identifiant une constante enum EntityType (REQ_ENTITY, AUX_ENTITY ou ANY_ENTITY). Si vous utilisez ANY_ENTITY, les types REQ sont vérifiés en premier. Les types AUX sont vérifiés ensuite s'il n'existe aucune correspondance.
Return value
Renvoie l'objet EntityDef correspondant à l'enregistrement souhaité si l'entité a été trouvée, ou la valeur NULL si elle n'a pas été trouvée. Emet une exception si un nom d'EntityDef incorrect est compris dans l'argument entDefNames.

Exemple

Perl

use CQPerlExt; 

 # Build session...
 # Log in...'Session UserLogon method'

 # Determine the array of Entity Def Names for searching...
 eval { $entDefNamesDB = $CQSession->GetEntityDefNames(); };

 # Sort the list of entity def names returned from GetEntityDefNames()
 @entDefNamesDBsorted = sort @$entDefNamesDB;
 $entDefNamesDBsorted = \@entDefNamesDBsorted;
 # EntityDef Names can be supplied by the user. For example:
 # @entDefNamesUser = ($ARG{'EDEF1'},$ARG{'EDEF2'},$ARG{'EDEF3'});
 # $entDefNamesUser = \@entDefNamesUser;
 # if using user supplied EntityDef Names for searching then
 # $entDefNames = $entDefNamesUser;
 # else use all DB EntityDef names for searching:
 $entDefNames = $entDefNamesDBsorted;

 # Call CQSession->GetEntityDefOfName()...
 #my($dName) = substr($ARG{'DATABASE'}.$ARG{'RECORDNAME'}, 5);
 my($dName) = $ARG{'ID'};
 eval { $CQEntityDefOfName = $CQSession->GetEntityDefOfName($dName, $entDefNames, $ARG{'ENTTYPE'}); };
 # exception handling goes here...

 # Get the Entity Def Name of the record...
 eval { $CQEntityDefName =  $CQEntityDefOfName->GetName(); };
 # exception handling goes here...

 # Get entity...

Commentaires