IBM FileNet P8, Version 5.2.1            

Funções de Conversão de Tipo de Dado

Esta seção contém breves descrições das funções que convertem expressões de um tipo de dado para outro.

Tabela 1. Tabela de Funções que Convertem um Tipo de Dado para Outro
Função O que ela faz
convert Converte uma expressão de um tipo de dados suportado para outro.
numbertostring Converte uma expressão de número inteiro ou flutuante em uma expressão de cadeia utilizando uma máscara especificada.
stringtotime Converte uma expressão de cadeia em uma expressão de tempo, utilizando uma máscara especificada.
timetostring Converte uma expressão de tempo em uma expressão de cadeia utilizando uma máscara especificada.
is_valid Determina se a expressão especificada é um valor válido que pode ser convertido em um tipo de dados simples especificado.

convert

Esta função converte uma expressão de um tipo de dados suportado para outro. Use a sintaxe a seguir:
convert (source_expr, type_name)
em que:
Tabela 2. Parâmetros e Descrições da Função convert
Parâmetro Descrição
source_expr Uma expressão de qualquer tipo de dados suportado. Esta expressão é convertida para o tipo de dados especificado em type_name.
type_name

O tipo de dados no qual source_expr é convertido. As entradas válidas são float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time e time[ ].

Observe que se type_name for seguido de colchetes ([ ]), então source_expr também deve ser uma matriz. Cada elemento na matriz é convertido para type_name pelas regras que se aplicam ao tipo de dados simples.

Os resultados da função convert variam dependendo dos tipos de dados de source_exp e type_name.

Nota: Esteja ciente de que utilizar a função de conversão com determinadas combinações de tipos de dados resulta em erros de sintaxe. Por exemplo, é ilógico converter um tipo de dados de horário em um tipo de dados Booleano, assim ocorre um erro de sintaxe. Conforme necessário, utilize a função is_valid para verificar um tipo da expressão antes de utilizar essa expressão em uma função de conversão.

Converter de Booleano

Se source_expr for do tipo Booleano, os resultados da função de conversão são os seguintes.

Tabela 3. Resultados da Função convert Quando o Tipo de Dado é do Tipo Booleano
Converte de Booleano para... Resultados
Booleano Nenhuma mudança.
float Se a expressão Booleana for true, o resultado será 1. Se a expressão Booleana for false, o resultado será 0.
integer Se a expressão Booleana for true, o resultado será 1. Se a expressão Booleana for false, o resultado será 0.
string Se a expressão booleana for true, o resultado será "true"; se a expressão booleana for false, o resultado será "false".
horário Erro de sintaxe.

Converter de flutuante

Se source_expr for do tipo flutuante, os resultados da função de conversão serão os seguintes.

Tabela 4. Resultados da Função convert Quando o Tipo de Dado é do Tipo Flutuante
Converter de flutuante para... Resultados
Booleano

Se source_expr = 0, o resultado será false. Se source_expr = 1, o resultado será true.

Se source_expr <> 0 ou 1, o resultado será um erro de sintaxe.

float Nenhuma mudança.
integer Converte a parte inteira de source_expr (ou seja, trunca todos todos números à direita da casa decimal). Ocorrerá um erro se o resultado não estiver dentro do intervalo para números inteiros.
string Resulta em uma cadeia de caracteres numéricos representando o flutuante.
horário

Utiliza a parte de número inteiro de source_expr como o número de segundos a serem incluídos em 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Retorna o novo horário.

UTC (Coordinated Universal Time) Antigamente conhecido como Horário de Greenwich (GMT), o UTC é o fuso horário de referência de padrão mundial.

Por exemplo, convert (5.3, time) retorna 1/1/1970 00:00:05.

Converter a partir de número inteiro

Se source_expr for do tipo número inteiro, os resultados da função convert serão os seguintes.
Tabela 5. Resultados da Função convert Quando o Tipo de Dado é do Tipo Número Inteiro
Converter de número inteiro para... Resultados
Booleano

Se source_expr = 0, o resultado será false. Se source_expr = 1, o resultado será true.

Se source_expr <> 0 ou 1, o resultado será um erro de sintaxe.

float Resulta no valor flutuante equivalente.
integer Nenhuma mudança.
string Resulta em uma cadeia de caracteres numéricos representando o número inteiro.
horário

Utiliza source_expr como o número de segundos a serem incluídos em 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Retorna o novo horário.

Por exemplo, convert (5, time) retorna 1/1/1970 00:00:05.

Converter de cadeia

Se source_expr for do tipo cadeia, os resultados da função convert são os seguintes.

Tabela 6. Resultados da Função convert Quando o Tipo de Dado é do Tipo Sequência
Converte de cadeia para... Resultados
Booleano Erro de sintaxe, a menos que source_expr = "true" ou source_expr = "false". Qualquer combinação de maiúsculas e minúsculas é aceitável.
float Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor flutuante.
integer Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor de número inteiro.
string Nenhuma mudança.
horário

Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor de tempo e use o formato especificado na máscara data/tempo para o sistema de fluxo de trabalho.

Converter de horário

Se source_expr for do tipo horário, os resultados da função de conversão são os seguintes.

Tabela 7. Resultados da Função convert Quando o Tipo de Dado é do Tipo Tempo
Converter de horário para... Resultados
Booleano Erro de sintaxe.
float

Retorna o número de segundos entre o horário de sistema atual e 1/1/1970 00:00:00 UTC (Coordinated Universal Time).

Por exemplo, se SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) retorna 28.

Se o horário de sistema atual estiver configurado para um fuso horário diferente de UTC, a função convert faz o ajuste necessário. Por exemplo, há uma diferença de 8 horas entre o Horário Padrão do Pacífico (PST) e UTC; se SysTime = 1/1/1970 00:00:28 PST e o fuso horário local for PST, então convert(SysTime, float) retorna 28828.0.

8(horas) * 60(minutos) *60(segundos) + 28(segundos)

integer

Retorna o número de segundos entre o horário de sistema atual e 1/1/1970 00:00:00 UTC (Coordinated Universal Time).

Por exemplo, se SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) retorna 28.

Se o horário de sistema atual estiver configurado para um fuso horário diferente de UTC, a função convert faz o ajuste necessário. Por exemplo, há uma diferença de 8 horas entre PST e UTC; se SysTime = 1/1/1970 00:00:28 PST e o fuso horário local for Horário Padrão do Pacífico, então convert(SysTime, integer) retorna 28828.

8(horas) * 60(minutos) *60(segundos) + 28(segundos)

string

Resulta em uma representação de cadeia da source_expr. Observe que esta sequência usa o formato especificado na máscara data/hora para o sistema de fluxo de trabalho.

horário Nenhuma alteração

numbertostring

Esta função converte uma expressão flutuante ou de números inteiros em uma expressão de cadeia, utilizando o formato que você especifica. Utilize esta função quando desejar exibir um número em um determinado formato (como, por exemplo, $1.000.000). Também é possível usar a função numbertostring para arredondar números.

Use a sintaxe a seguir:
numbertostring (num_exp{, num_mask}opt)
em que:
Parâmetro Descrição
num_exp Um expressão de tipo flutuante ou tipo número inteiro.
num_mask

Uma máscara numérica que determina o formato de saída da função numbertostring.

Apesar de opcional, observe que se você não inserir uma máscara numérica, a função numbertostring será equivalente à função convert.

Máscara numérica

Uma máscara numérica é um modelo utilizado para formatar a saída da função numbertostring. Uma máscara numérica é uma expressão de cadeia contendo qualquer combinação válida dos seguintes componentes.

Componente Significado
+ (mais)

Quando for o primeiro ou último componente na máscara, exibe o sinal do número.

Quando for uma posição diferente da primeira ou da última, o sinal de mais será inserido na cadeia de saída exatamente onde você colocá-lo na máscara. Por exemplo:

numbertostring (12345, "###+##")

gera uma saída de 123+45

- (menos)

Quando for o primeiro ou último componente na máscara, exibe um sinal negativo se o número for negativo ou exibe um espaço se o número for positivo.

Quando for uma posição diferente da primeira ou da última, o sinal de menos será inserido na cadeia de saída exatamente onde você colocá-lo na máscara. Por exemplo:

numbertostring (123456789, "###-##-####")

gera uma saída de 123-45-6789

# (sinal de número) Exibe um dígito se ele for significativo. Quando a máscara contiver mais sinais # do que há de dígitos significativos, os sinais # mais à direita recebem os dígitos primeiro e os sinais # em excesso são preenchidos com brancos.
0 (zero) Exibe se um dígito é ou não significativo. Pode resultar em zeros à esquerda ou direita.
. (decimal) Determina o local do ponto decimal. Se não for especificado, o ponto decimal é assumido como estando à direita da máscara. O número é arredondado para caber na máscara. Apenas uma ponto decimal é permitido em uma máscara.

Amostras de máscara numérica

A seguir é exibida a saída resultante quando a função numbertostring converte os seguintes números: 0, +29, -3344 e 77.88369. A saída é formatada de acordo com as máscaras numéricas mostradas.

Nota: Se a máscara for muito pequena para o número, ocorrerá um erro. A máscara é muito pequena se houver poucos sinais # ou 0s à esquerda do ponto decimal. Por exemplo, a máscara ## é inadequada para o número 300.
Máscara 0 +29 -3344 77.88369
0000 0000 0029 3344 0078
####   29 3344 78
$#,### $ $29 $3,344 $78
+#### + +29 -3344 +78
-####   29 -3344 78
####+ + 29+ 3344- 78+
####- 29 3344- 78
##.## . 29. Erro de tempo de execução 77.88

Arredondando números

Para arredondar um número, utilize a função numbertostring e a máscara numérica adequada. Cada número é arredondado para se encaixar na última casa na máscara. O exemplo a seguir arredonda um número para milhares. No exemplo, Number1 é o nome de um expressão de tipo flutuante.
numbertostring (Number1, "#,###.###")
Se Number1 = 3344.7788, a saída resultante será:
3,344.779

is_valid

Esta função determina se a expressão especificada é um valor válido que pode ser convertido para o tipo de dados simples especificado. Esta função retorna o valor Booleano true se a expressão for válida. Caso contrário, a função retorna um valor false. Pode ser útil verificar um tipo de expressão por meio da função is_valid antes de usar essa expressão em uma função convert. Use a sintaxe a seguir:
is_valid (expr, type)
em que:
Tabela 8. Parâmetros e Descrições da Função is_valid
Parâmetro Descrição
expr Qualquer expressão.
type Um tipo de dados simples (Booleano, flutuante, número inteiro, cadeia, horário).
A seguir há dois exemplos de utilização de expressões de cadeia. O primeiro exemplo retorna true, o segundo retorna false. No primeiro exemplo, str = "true".
is_valid (str, Boolean)
is_valid ("1.2.3", float)
O exemplo a seguir verifica se a expressão flutuante especificada é válida para conversão para o tipo número inteiro. Esse exemplo retorna false porque o valor flutuante está fora do intervalo de valores de números inteiros válidos.
is_valid (1e20,
integer)


Last updated: October 2015
bpfe005.htm

© Copyright IBM Corporation 2015.