GetEntityDefOfDbId

Descrizione

Fornisce la funzionalità ‘Trova Record’. Restituisce l'oggetto EntitiyDef per il determinato ID database del record (DBID). Il metodo richiede di specificare il tipo EntityDef e facoltativamente i nomi EntityDef in cui ricercare il DBID.

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 displayName o 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 nome di visualizzazione invece del relativo ID database, utilizzare il metodo GetEntityDefOfName.

Nota: quando si utilizza il valore di ritorno 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.
Nota: questo metodo è stato reso disponibile nella versione 7.0.1.

Sintassi

VBScript

session.GetEntityDefOfDbId(db_id, entitydef_names,entitydef_type)

Perl

$session->GetEntityDefOfDbId(db_identitydef_names, entitydef_type);
Identificativo
Descrizione
session
L'oggetto Session che rappresenta la sessione di accesso al database corrente.
db_id
Un valore Long che rappresenta il numero utilizzato dal database per identificare il record per cui è necessario determinare EntityDef.

L'ID univoco del record (Entity).

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 da displayName o 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 elencata 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. Ad esempio:
# @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...

Feedback