Ir para o conteúdo

Funções de Validação de Texto

Esta função fornece para um script de validação a mesma validação que pode ser definida para um formato de arquivo de documento de texto.

Validate

Declaração

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

Sintaxe

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

Parâmetros Obrigatórios

  • op: O operador de comparação a ser usado para a validação
  • arg: O valor a ser usado com o operador de comparação na validação

Parâmetros Opcionais

  • ignoreCase: Se deve ser ignorado o caso ao realizar a validação; padrão, false

Descrição

Esta função deve ser chamada a partir de um script usado para validação de texto. Ele fornece para esse script de validação a mesma validação que pode ser definida para um formato de arquivo de documento de texto. Normalmente esta função é chamada em um script usado na validação de um formato de arquivo de documento de texto de origem. Consulte as páginas em Definindo formatos de arquivo e Validação de campo de arquivo simples para obter informações adicionais. Observe que a validação funciona apenas para origens, não para destinos.

O Validate() a função assume que o script de chamada possui estes três argumentos de entrada fornecidos, pois os utiliza para obter o valor que irá validar:

  • _1: O valor de entrada, como uma string
  • _2: Uma string com o tipo de dados do valor de entrada (o campo "Tipo" usado no formato de arquivo)
  • _3: Uma string de formato do valor de entrada (o campo "Formato" conforme usado no Formato de Arquivo)

Veja o ArgumentList função para obter mais informações sobre como os valores são passados usando o __n_sintaxe.

Operadores e Valores de Comparação

Dependendo do tipo de dados passados para o script chamado, diferentes operadores e valores de comparação podem ser usados. Em todos os casos, pode ser usada uma expressão regular que siga a biblioteca de expressões regulares Boost sintaxe. É uma variação da expressão regular Perl sintaxe.

Valores de Comparação de Datas

Para Datas, esses valores de comparação podem ser usados, além das próprias datas. Observe que algumas variações usam um parâmetro inteiro para indicar uma quantidade.

Valor de comparação Descrição
YESTERDAY Começa às 12h00 do dia anterior e continua por 24 horas.
TODAY Começa às 12h00 do dia atual e continua por 24 horas.
TOMORROW Começa às 12h00 após o dia atual e continua por 24 horas.
LAST_WEEK Começa às 12h00 do primeiro dia da semana anterior ao primeiro dia da semana mais recente e continua por sete dias inteiros. O primeiro dia da semana é determinado pela localidade atual.
THIS_WEEK Começa às 12h00 do primeiro dia da semana mais recente antes do dia atual e continua por sete dias completos. O primeiro dia da semana é determinado pela sua localidade.
NEXT_WEEK Começa às 12h00 do primeiro dia da semana mais recente após o dia atual e continua por sete dias completos. O primeiro dia da semana é determinado pela sua localidade.
LAST_MONTH Começa às 12h00 do primeiro dia do mês anterior ao dia atual e continua por todos os dias desse mês.
THIS_MONTH Começa às 12h00 do primeiro dia do mês em que se encontra o dia atual e continua por todos os dias desse mês.
NEXT_MONTH Começa às 12h00 do primeiro dia do mês após o mês em que o dia atual se encontra e continua por todos os dias desse mês.
LAST_90_DAYS Começa às 12h00 do dia atual e continua pelos últimos 90 dias.
NEXT_90_DAYS Começa às 12h00 do dia atual e continua pelos próximos 90 dias.
LAST_N_DAYS:n Para o número n fornecido, começa às 12h00 do dia atual e continua nos últimos n dias.
NEXT_N_DAYS:n Para o número n fornecido, começa às 12h00 do dia atual e continua pelos próximos n dias.
THIS_QUARTER Começa às 12h00 do trimestre atual e continua até o final do trimestre atual.
LAST_QUARTER Começa às 12h00 do trimestre anterior e continua até o final desse trimestre.
NEXT_QUARTER Começa às 12h00 do próximo trimestre e continua até o final desse trimestre.
NEXT_N_QUARTERS:n Começa às 12h00 do próximo trimestre e continua até o final do nº trimestre.
LAST_N_QUARTERS:n Começa às 12h00 do trimestre anterior e continua até o final do nº trimestre anterior.
THIS_YEAR Começa às 12h do dia 1º de janeiro do ano atual e continua até o final de 31 de dezembro do ano atual.
LAST_YEAR Começa às 12h do dia 1º de janeiro do ano anterior e continua até o final de 31 de dezembro daquele ano.
NEXT_YEAR Começa às 12h do dia 1º de janeiro do ano seguinte e continua até o final de 31 de dezembro daquele ano.
NEXT_N_YEARS:n Começa às 12h do dia 1º de janeiro do ano seguinte e continua até o final de 31 de dezembro do nº ano.
LAST_N_YEARS:n Começa às 12h do dia 1º de janeiro do ano anterior e continua até o final de 31 de dezembro do nº ano anterior.

Exemplos

// 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;

Você também pode usar esta função em um script ou mapeamento onde não há validação de campo disponível ou em uso.

Primeiro, crie um script ("ValidateWrapper") que envolva o Validate função para que as variáveis locais necessárias sejam preenchidas:

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

Em seguida, chame o script wrapper de outro script (ou mapeamento) para usar seu Validate função:

// 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);