GetEntityDefOfName

Descripción

Proporciona funcionalidad de tipo Buscar registro. Devuelve el objeto EntityDef para el nombre de visualización de registro proporcionado. El método requiere que especifique el tipo de EntityDef y, de manera opcional, los nombres de EntityDef en los que buscar el nombre de visualización.

El tipo de EntityDef devuelto se debe comprobar para determinar qué tipo de registro ha coincidido, ya que la matriz de entDefNames permite búsquedas en varios tipos de registro. Asimismo, si se ha utilizado ANY_ENTITY como argumento de entityDeftype, debe determinar si se ha devuelto un registro con estado (REQ_ENTITY) o sin estado (AUX_ENTITY).

Puede llamar a GetEntityDefOfName o GetEntityDefOfDbId para averiguar si existe una entidad con el nombre de visualización o el DBID especificado en la base de datos de usuario. Una vez conocido el EntityDef, la entidad se puede obtener llamando al método GetEntity del objeto Session.

Para solicitar el tipo de registro utilizando su ID de base de datos en lugar del nombre de visualización, utilice GetEntityDefOfDbId.

Nota: Cuando utilice el valor de retorno del método GetEntityDefNames, clasifique el orden de la lista de los elementos devueltos antes de utilizar la lista como argumento para los métodos GetEntityDefOfDbId y GetEntityDefOfName. La clasificación del orden de la lista garantiza resultados coherentes en todos los proveedores de base de datos.

Para obtener más información sobre los nombres de visualización y las claves exclusivas, consulte Tipos de registro.

Nota: Este método estuvo disponible en la versión de 7.0.1.

Sintaxis

VBScript

session.GetEntityDefOfName(display_name,
entitydef_names,entitydef_type ) 

Perl

$session->GetEntityDefOfName(display_name,
entitydef_names,entitydef_type); 
Identificador
Descripción
session
El objeto Session que representa la sesión de acceso a la base de datos actual.
display_name
Para los tipos de registro con estado (REQ), el nombre de visualización debe ser el ID visible del registro (por ejemplo, "DEF00013323"). Para los tipos de registro sin estado (AUX), el nombre de visualización está formado por los campos de clave exclusiva.
entitydef_names
Identifica los nombres de los tipos de registro que se utilizan para buscar el registro deseado.

Para Visual Basic, un valor Variant que contiene una matriz de series. Cada serie contiene el nombre de un EntityDef.

Para Perl, una referencia a una matriz de series. Cada serie contiene el nombre de un EntityDef.

Los nombres de los EntityDef se utilizan para buscar la entidad identificada por el nombre de visualización o el DbId. Esta lista de nombres de EntityDef se itera y se procesa en el orden proporcionado. Si alguno de los nombres de EntityDef proporcionados en el argumento entDefNames no es válido, se lanza una excepción que identifica el nombre no válido. Si se proporciona un valor de matriz vacío, se utilizan todos los tipos de EntityDef definidos en el esquema, y el orden de búsqueda es que se busca primero el EntityDef encontrado con más frecuencia y se busca el último el EntityDef menos encontrado.

entitydef_type
Valor Long que identifica una constante enumerada de EntityType (REQ_ENTITY, AUX_ENTITY o ANY_ENTITY). Cuando se utiliza ANY_ENTITY, primero se comprueban los tipos REQ y, si no hay ninguna coincidencia, se comprueban los tipos AUX.
Valor de retorno
Devuelve el objeto EntitiyDef correspondiente al registro solicitado si se encuentra la entidad, o NULL si no se encuentra la entidad. Lanza una excepción si se incluye un nombre de EntityDef no válido en el argumento entDefNames.

Ejemplo

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

Comentarios