GetEntityDefOfDbId

Description

Offre la fonctionnalité Rechercher un enregistrement. Renvoie l'objet EntityDef correspondant à l'ID base de données indiqué (DBID) de l'enregistrement. Cette méthode nécessite l'indication du type d'EntityDef et éventuellement des noms d'EntityDef dans lesquels rechercher le DBID.

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 l'attribut displayName ou DBID 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 nom d'affichage, et non de son ID base de données, utilisez la méthode GetEntityDefOfName.

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 GetEntityDefOfDbId et GetEntityDefOfName. Le tri permet d'obtenir des résultats cohérents pour tous les fournisseurs de base de données.
Remarque : Cette méthode est disponible depuis la version 7.0.1.

Syntaxe

VBScript

session.GetEntityDefOfDbId(db_id, entitydef_names,entitydef_type)

Perl

$session->GetEntityDefOfDbId(db_identitydef_names, entitydef_type);
Identificateur
Description
session
Objet Session représentant la session en cours d'accès à la base de données.
db_id
Valeur de type Long correspondant au nombre utilisé par la base de données pour identifier l'enregistrement dont l'EntityDef est à rechercher.

ID unique de l'enregistrement (Entity).

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 attribut displayName (nom d'affichage) ou DbId (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.
Valeur renvoyée
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->GetEntityDefOfDbId()...
my($DbId) = $ARG{'DBID'};
eval { $CQEntityDefOfDbId = $CQSession->GetEntityDefOfDbId($DbId, $entDefNames, $ARG{'ENTTYPE'}); };
# exception handling goes here...

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

# Get entity...

Commentaire