Os seguintes operadores estão disponíveis: createday, createtimeofday, createtimestamp, addtimespan, addfactorytimespan e weekday
Conversão de formato (data)
Marca XML: |
createday |
|
Operandos: |
exatamente um valor |
|
Resumo: |
<createday> |
|
Operandos: |
TIME (TIMESTAMP, DATE) |
|
Resultado: |
Valor (data no formato dd.MM.aaaa) |
|
Tipo de resultado: |
DAY |
|
Descrição: |
Extrai uma data de um carimbo de data/hora do PPM. |
|
Cálculo (PPM3) |
Resultado |
Data retornada pelo operando |
Erro |
Se o operando for de um tipo de dados inválido ou igual a NULL |
|
Cálculo (PPM4) |
Resultado |
Data retornada pelo operando NULL se o operando for igual a NULL |
Erro |
Se o operando for de um tipo de dados inválido |
|
Exemplo: |
<calcattr name="AT_DAY" type="PROCESS"> |
Conversão de formato (hora)
Marca XML: |
createtimeofday |
|
Operandos: |
exatamente um valor |
|
Resumo: |
<createtimeofday> |
|
Operandos: |
TIME (TIMESTAMP, DATE) |
|
Resultado: |
Valor (hora do dia no formato hh:mm:ss) |
|
Tipo de resultado: |
TIMEOFDAY |
|
Descrição: |
Extrai a hora do dia de um carimbo de data/hora do PPM. |
|
Cálculo (PPM3) |
Resultado |
Hora do dia definida pelo operando |
Erro |
Se o operando for de um tipo de dados inválido ou igual a NULL |
|
Cálculo (PPM4) |
Resultado |
Hora do dia definida pelo operando NULL se o operando retornar NULL |
Erro |
Se o operando for de um tipo de dados inválido |
|
Exemplo: |
<calcattr name="AT_DAY" type="PROCESS"> nodetype="OT_FUNC" |
Conversão de formato (carimbo de data/hora)
Marca XML: |
createtimestamp |
|
Operandos: |
um ou dois valores (Data ou Data e hora) |
|
Resumo: |
<createtimestamp> |
|
Operandos: |
DAY, TIMEOFDAY |
|
Resultado: |
Valor (carimbo de data/hora no formato dd.MM.aaaa hh:mm:ss) |
|
Tipo de resultado: |
TIME (TIMESTAMP, DATE) |
|
Descrição: |
Cria um carimbo de data/hora PPM a partir de uma data ou de uma data e de uma hora. |
|
Cálculo (PPM3) |
Resultado |
Carimbo de data/hora definido pelos operandos |
Erro |
Se pelo menos um operando for de um tipo de dados inválido ou igual a NULL |
|
Cálculo (PPM4) |
Resultado |
Carimbo de data/hora definido pelos operandos. NULL se operando do tipo DAY retornar NULL ou se o primeiro operando do tipo de dados TIMEOFDAY e o segundo operando retornarem NULL. |
Erro |
Se pelo menos um operando for de um tipo de dados inválido |
|
Exemplo: |
<createtimestamp> Cria o carimbo de data/hora 25.01.2004 00:00:00. |
Adição de um intervalo de tempo
Marca XML: |
addtimespan |
|
Operandos: |
exatamente dois valores (carimbo de data/hora e intervalo de tempo, data e intervalo de tempo ou hora e intervalo de tempo) |
|
Resumo: |
<addtimespan> |
|
Operandos: |
Operando 1: TIME (TIMESTAMP, DATE) ou DAY ou TIMEOFDAY |
|
Resultado: |
Valor (carimbo de data/hora no formato dd.MM.aaaa hh:mm:ss) |
|
Tipo de resultado: |
Ponto no tempo: TIME (TIMESTAMP, DATE) ou DAY ou TIMEOFDAY |
|
Descrição: |
Adiciona um intervalo de tempo na escala de base (SECOND) a um carimbo de data/hora do PPM. O resultado é um carimbo de data/hora. |
|
Cálculo (PPM3) |
Resultado |
Ponto no tempo resultante da adição do intervalo de tempo especificado (operando 2) ao ponto especificado no tempo (operando 1) |
Erro |
Se pelo menos um operando for igual a NULL ou de um tipo de dados inválido |
|
Cálculo (PPM4) |
Resultado |
NULL se pelo menos um operando for NULL Ponto no tempo resultante da adição do intervalo de tempo especificado (operando 2) ao ponto especificado no tempo (operando 1) |
Erro |
Se o tipo de dados for inválido |
|
Exemplo: |
<calcattr name="AT_NTOFD" type="PROCESS"> <calculation> <addtimespan> <constant> <dataitem> <datatype name="TIMEOFDAY"> </dataitem> </constant> </addtimespan> </calculation> </calcattr> No tempo especificado, é adicionado um período de tempo negativo de trinta minutos. O valor do resultado 08:05:41 é salvo no atributo de destino AT_NTOFD. |
Adição de um intervalo de tempo, incluindo um calendário de fábrica
Adiciona um intervalo de tempo do calendário de fábrica a um carimbo de data/hora do PPM. O resultado é um carimbo de data/hora. A configuração e uso do operador addfactorytimespan é semelhante à que é usada para addtimespan. Para este cálculo, o intervalo de tempo do calendário de fábrica especificado é adicionado a partir de uma hora de início. Por padrão, o operador suporta apenas a adição de intervalos de tempo do calendário de fábrica positivos. Se também quiser calcular pontos no passado, poderá adicionar intervalos de tempo negativos especificando o atributo XML opcional negfactorytimespan="TRUE" (valor padrão: FALSE). Se o ponto no tempo calculado estiver exatamente em um limite de tempo de trabalho, o operador retornará o mais antigo ponto no tempo possível.
Exemplos
Tomando a condição simplificada de um horário de trabalho diário das 9h às 17h:
Se quiser usar um calendário de fábrica diferente do calendário de fábrica padrão (factorycalendar.xml) pode especificar um arquivo XML contendo o calendário de fábrica a ser usado. Especifique em o atributo XML attributename, a função ou atributo da instância de processo que determina o nome do arquivo do calendário de fábrica XML a ser usado. O atributo tem de ser especificado na função ou instância de processo onde o cálculo é executado. No atributo XML directory, especifique o diretório onde procurar o arquivo do calendário de fábrica especificado. Os dois atributos XML attributename e directory têm sempre de ser especificados em conjunto.
Especifique o diretório correspondente contendo o arquivo de calendário de fábrica a ser usado relacionado com o diretório de dados do PPM. O diretório de dados PPM data_ppm está localizado em <PPM installation directory>\ppm\server\bin\work\.
Exemplo
...
<addfactorytimespan directory="calc\fc" attributename="AT_FC_NAME">
...
Se o atributo AT_FC_NAME contiver o valor myFactoryCalendar.xml, o calendário de fábrica definido em o arquivo myFactoryCalendar.xml é usado para cálculo. O arquivo está localizado em <PPM installation directory>\ppm\server\bin\work\data_ppm\calc\fc\.
A adição de intervalos de tempo do calendário de fábrica é feita sempre na unidade base Person-second. Os fatores de conversão usados são independentes do calendário de fábrica e definidos no arquivo de configuração específico do cliente transformationfactors.xml. Se não quiser usá-los, poderá usar apenas intervalos de tempo do calendário de fábrica com as unidades segundos de pessoa, minuto ou hora para adicionar um intervalo de tempo com base em um calendário de fábrica.
Determinar o dia de semana (a partir de uma data)
Marca XML: |
weekday |
|
Operandos: |
exatamente um valor |
|
Resumo: |
<weekday> |
|
Operandos: |
Exatamente um operando: TIME ou DAY |
|
Resultado: |
Cadeia de caracteres no formato MO, TU, WE, TH, FR, SA ou SU |
|
Tipo de resultado: |
TEXT |
|
Descrição: |
Determina o dia de semana para um tipo de data do PPM e retorna o valor como uma cadeia de caracteres. |
|
Cálculo (PPM4) |
Resultado |
Uma das constantes MO, TU, WE, TH, FR, SA ou SU, dependendo do dia de semana da data transferida. |
Erro |
Se o operando for de um tipo de dados inválido ou um número inválido de operandos. |
|
Exemplo: |
<calcattr name="AT_WEEKDAY" type="PROCESS"> Determina o dia de semana para a data especificada ('Sábado') e retorna o valor como a cadeia de caracteres TEXT SA. Os valores das dimensões de texto que usam resultados do operador weekday não podem ser classificados. |