GetEntityDefOfName

Descrizione

Fornisce la funzionalità Trova record. Restituisce l'oggetto EntitiyDef per il nome di visualizzazione del record determinato. Il metodo richiede di specificare il tipo EntityDef e facoltativamente i nomi EntityDef in cui ricercare il nome di visualizzazione.

Il tipo EntityDef restituito deve essere verificato per determinare il tipo di record a cui è stata impostata la corrispondenza poiché l'array entDefNames consente le ricerche in più tipi di record. Inoltre, se ANY_ENTITY viene utilizzato come argomento entityDeftype, è necessario determinare se è stato restituito un record stateful (REQ_ENTITY) o stateless (AUX_ENTITY).

È possibile richiamare GetEntityDefOfName o GetEntityDefOfDbId per verificare se un'entità con il nome di visualizzazione o il DBID determinati esiste nel database utente. Una volta noto EntityDef, è possibile ottenere l'entità richiamando il metodo GetEntity dell'oggetto Session.

Per richiedere il tipo di record utilizzando il relativo ID database invece del relativo nome di visualizzazione, utilizzare GetEntityDefOfDbId.

Nota: quando il valore di ritorno viene utilizzato dal metodo GetEntityDefNames, ordinare l'elenco degli elementi restituiti prima di utilizzare l'elenco come argomento per i metodi GetEntityDefOfDbId e GetEntityDefOfName. L'ordinamento dell'elenco assicura risultati coerenti in tutti i fornitori del database.

Per ulteriori informazioni sui nomi di visualizzazione e sulle chiavi univoche, consultare Tipi di record .

Nota: questo metodo è stato reso disponibile nella versione 7.0.1.

Sintassi

VBScript

session.GetEntityDefOfName(display_name, entitydef_names,entitydef_type ) 

Perl

$session->GetEntityDefOfName(display_name, entitydef_names,entitydef_type); 
Identificativo
Descrizione
session
L'oggetto Session che rappresenta la sessione di accesso al database corrente.
display_name
Per i tipi di record stateless (REQ), il nome di visualizzazione dovrebbe essere l'ID visibile del record (ad esempio, "DEF00013323"). Per i tipi di record stateless (AUX), il nome di visualizzazione è rappresentato dai campi della chiave univoca.
entitydef_names
Identifica i nomi dei tipi di record da utilizzare nella ricerca del record desiderato.

Per Visual Basic, un valore Variant che contiene un array di stringhe. Ciascuna stringa contiene il nome di un EntityDef.

Per Perl, un riferimento a un array di stringhe. Ciascuna stringa contiene il nome di un EntityDef.

I nomi di EntityDefs vengono utilizzati per ricercare l'entità identificata dal nome di visualizzazione o da DbId. L'elenco di nomi EntityDef viene ripetuto ed elaborato nel determinato ordine. Se i nomi EntityDef forniti nell'argomento entDefNames non sono validi, viene lanciata un'eccezione che identifica il nome non valido. Se viene fornito un valore array vuoto, vengono utilizzati tutti i tipi EntityDef definiti nello schema, con l'ordine di ricerca che va dall'oggetto EntityDef ricercato trovato più di frequente all'ultimo EntityDef ricercato trovato di meno.

entitydef_type
Un valore Long che identifica una costante enumerata EntityType (REQ_ENTITY, AUX_ENTITY o ANY_ENTITY). Quando viene utilizzato ANY_ENTITY, vengono in primo luogo verificati i tipi REQ e se non vi è alcuna corrispondenza, vengono verificati i tipi AUX.
Valore di ritorno
Restituisce l'oggetto EntitiyDef che corrisponde al record richiesto se viene trovata l'entità oppure NULL se l'entità non viene trovata. Genera un'eccezione se un nome EntityDef non valido viene incluso nell'argomento entDefNames.

Esempio

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...

Feedback