Saltar al contenido

Funciones de Validación de Texto

Esta función proporciona para un secuencia de comandos de validación la misma validación que se puede definir para un formato de archivo de documento de texto.

Validate

Declaración

bool Validate(string op, string arg[, boolean ignoreCase])

Sintaxis

Validate(<op>, <arg>[, <ignoreCase>])

Parámetros Requeridos

  • op: El operador de comparación que se utilizará para la validación.
  • arg: El valor que se utilizará con el operador de comparación en la validación.

Parámetros Opcionales

  • ignoreCase: Si se ignoran las mayúsculas y minúsculas al realizar la validación; por defecto, false

Descripción

Esta función está diseñada para ser llamada desde un secuencia de comandos utilizado para la validación de texto. Proporciona a ese secuencia de comandos de validación la misma validación que se puede definir para un formato de archivo de documento de texto. Normalmente, esta función se llama en un secuencia de comandos utilizado en la validación de un formato de archivo de documento de texto fuente. Consulte las páginas sobre Definición de formatos de archivo y Validación de campo de archivo plano para informacion adicional. Tenga en cuenta que la validación funciona solo para fuentes, no para destinos.

El Validate() La función supone que el secuencia de comandos que realiza la llamada tiene estos tres argumentos de entrada proporcionados, ya que los utiliza para obtener el valor que va a validar:

  • _1: El valor de entrada, como una cadena
  • _2: Una cadena con el tipo de datos del valor de entrada (el campo "Tipo" tal como se usa en el formato de archivo)
  • _3: Una cadena de formato del valor de entrada (el campo "Formato" tal como se usa en el formato de archivo)

Ver el ArgumentList función para obtener más información sobre cómo se pasan los valores usando _n sintaxis.

Operadores y Valores de Comparación

Dependiendo del tipo de datos pasados al secuencia de comandos llamado, se pueden utilizar diferentes operadores y valores de comparación. En todos los casos, se puede utilizar una expresión regular que siga a la Biblioteca de expresiones regulares Boost sintaxis. Es una variación de la expresión regular de Perl sintaxis.

Valores de Comparación de Fechas

Para las fechas, se pueden utilizar estos valores de comparación, además de las fechas mismas. Tenga en cuenta que algunas variaciones utilizan un parámetro entero para indicar una cantidad.

Valor de comparación Descripción
YESTERDAY Comienza a las 12:00:00 del día anterior y continúa durante 24 horas.
TODAY Comienza a las 12:00:00 del día actual y continúa durante 24 horas.
TOMORROW Comienza a las 12:00:00 después del día actual y continúa durante 24 horas.
LAST_WEEK Comienza a las 12:00:00 del primer día de la semana anterior al primer día de la semana más reciente y continúa durante siete días completos. El primer día de la semana lo determina la ubicación actual.
THIS_WEEK Comienza a las 12:00:00 del primer día más reciente de la semana anterior al día actual y continúa durante siete días completos. El primer día de la semana lo determina su localidad.
NEXT_WEEK Comienza a las 12:00:00 del primer día de la semana más reciente después del día actual y continúa durante siete días completos. El primer día de la semana lo determina su localidad.
LAST_MONTH Comienza a las 12:00:00 del primer día del mes anterior al día actual y continúa durante todos los días de ese mes.
THIS_MONTH Comienza a las 12:00:00 del primer día del mes en el que se encuentra el día actual y continúa durante todos los días de ese mes.
NEXT_MONTH Comienza a las 12:00:00 del primer día del mes posterior al mes en el que se encuentra el día actual y continúa durante todos los días de ese mes.
LAST_90_DAYS Comienza a las 12:00:00 del día actual y continúa durante los últimos 90 días.
NEXT_90_DAYS Comienza a las 12:00:00 del día actual y continúa durante los próximos 90 días.
LAST_N_DAYS:n Para el número n proporcionado, comienza a las 12:00:00 del día actual y continúa durante los últimos n días.
NEXT_N_DAYS:n Para el número n proporcionado, comienza a las 12:00:00 del día actual y continúa durante los siguientes n días.
THIS_QUARTER Comienza a las 12:00:00 del trimestre actual y continúa hasta el final del trimestre actual.
LAST_QUARTER Comienza a las 12:00:00 del trimestre anterior y continúa hasta el final de ese trimestre.
NEXT_QUARTER Comienza a las 12:00:00 del siguiente trimestre y continúa hasta el final de ese trimestre.
NEXT_N_QUARTERS:n Comienza a las 12:00:00 del siguiente trimestre y continúa hasta el final del nésimo trimestre.
LAST_N_QUARTERS:n Comienza a las 12:00:00 del trimestre anterior y continúa hasta el final del nésimo trimestre anterior.
THIS_YEAR Comienza a las 12:00:00 del 1 de enero del año en curso y continúa hasta el final del 31 de diciembre del año en curso.
LAST_YEAR Comienza a las 12:00:00 del 1 de enero del año anterior y continúa hasta el final del 31 de diciembre de ese año.
NEXT_YEAR Comienza a las 12:00:00 del 1 de enero del año siguiente y continúa hasta el final del 31 de diciembre de ese año.
NEXT_N_YEARS:n Comienza a las 12:00:00 del 1 de enero del año siguiente y continúa hasta el final del 31 de diciembre del nésimo año.
LAST_N_YEARS:n Comienza a las 12:00:00 del 1 de enero del año anterior y continúa hasta el final del 31 de diciembre del nésimo año anterior.

Ejemplos

// This code could be in a script called "FieldValidate"
// It could be called from the Field Validation
// dialog of a date field in a text document file format.

// It would validate that a date is in the current quarter
// but does not occur on a weekend.

// When the script is called, these variables are populated:
// _1(input_string_value), _2(data_type), _3(format)
// and are used by the Validate() function.
d = Date(CVTDate(_1, _3, "yyyy-mm-dd HH:MM:SS"));
dow = DayOfWeek(d);
v = Validate("=", "THIS_QUARTER", false);

// The last line of the script must resolve to a boolean result:
dow!=0 && dow!=6 && v;

También puede utilizar esta función en un secuencia de comandos o mapeo donde no hay ninguna validación de campo disponible o en uso.

Primero, cree un secuencia de comandos ("ValidateWrapper") que envuelva el Validate función para que se completen las variables locales que requiere:

<trans>
// This code could be a script called "ValidateWrapper".
// It would be called from another script or mapping.

// Argument List:
// _1 (input_string_value), _2 (data_type), _3 (format)
// _4 (comparison operator), _5 (comparison value), _6 (ignore case)
Validate(_4, _5, _6);
</trans>

Luego, llame al secuencia de comandos contenedor desde otro secuencia de comandos (o un mapeo) para usar su Validate función:

// This code calls a wrapper script to access the Validate function.
// Wrapper Argument List:
// _1 (input_string_value), _2 (data_type), _3 (format)
// _4 (comparison operator), _5 (comparison value), _6 (ignore case)

// Validation of a Date
a1 = Date(CVTDate("02192018", "mmddyyyy", "yyyy-mm-dd HH:MM:SS"));
a2 = "Date";
a3 = ""; // Format not required if a Date passed
a4 = "=";
a5 = "THIS_QUARTER";
a6 = "true";
resultA = RunScript("<TAG>Scripts/ValidateWrapper</TAG>",
    a1, a2, a3, a4, a5, a6);

// Validation of a String Date
b1 = "02192018";
b2 = "Date";
b3 = "mmddyyyy";
b4 = "=";
b5 = "THIS_QUARTER";
b6 = "true";
resultB = RunScript("<TAG>Scripts/ValidateWrapper</TAG>",
    b1, b2, b3, b4, b5, b6);

// Validation of an Integer
c1 = 100;
c2 = "Integer";
c3 = "";
c4 = ">";
c5 = 1000;
c6 = "true";
resultC = RunScript("<TAG>Scripts/ValidateWrapper</TAG>",
    c1, c2, c3, c4, c5, c6);