Transformações do carimbo de data/hora

O PPM fornece várias transformações de atributos do tipo Transformação de carimbo de data/hora.

As transformações do carimbo de data/hora disponíveis no sistema PPM convertem valores do carimbo de data/hora do sistema de origem, em qualquer formato, para o formato interno válido do PPM, com o tipo de dados de destino adequado para o PPM. A tabela seguinte fornece uma visão geral das transformações do carimbo de data/hora disponíveis:

Transformação

Tipo de dados de destino do PPM

timestamp

TIME

timestamp_epoch

TIME

timeofday

TIMEOFDAY

timeofday_epoch

TIMEOFDAY

day

DAY

day_epoch

DAY

SAGDateTime

TIME

Transformações do carimbo de data/hora timestamp, timeofday, day

Os padrões para a configuração das transformações do carimbo de data/hora são especificados na definição do tipo de documento eventmapping.dtd:

...

<!ELEMENT transformation EMPTY>

<!ATTLIST transformation

type NMTOKEN "timestamp"

format CDATA #REQUIRED

>

...

No atributo XML type pode especificar quais das transformações do carimbo de data/hora disponíveis devem ser usadas. A transformação de atributos timestamp é padrão. O atributo XML format especifica o formato do carimbo de data/hora no atributo do sistema de origem.

Os dados no atributo format correspondem ao formato do carimbo de data/hora Java:

Símbolo

Descrição

Tipo de dados

Exemplo

G

Identificador Epoch

Texto

AD

y

Ano

Figura

2003

MM

Mês do calendário

Figura

09

MMM

Mês do calendário

Texto

Set

MMMM

Mês do calendário

Texto

Setembro

d

Dia do calendário

Figura

26

h

Hora, notação americana (1-12)

Figura

12

H

Hora (0-23)

Figura

14

m

Minuto

Figura

42

s

Segundo

Figura

57

S

Milissegundo

Figura

978

E

Dia de semana

Texto

Quinta-feira

F

Recorrência de weekday no mês

Figura

2

D

Dia do ano

Figura

189

w

Semana do calendário

Figura

27

W

Semana do mês

Figura

2 (2. semana do mês)

a

Identificador da hora do dia

Texto

PM

k

Hora (1-24)

Figura

24

K

Hora, notação americana (0-11)

Figura

7

M

Fuso horário

Texto

GMT

´

Caractere de escape para texto

Caracteres

'Example text'

´´

Apóstrofo simples

Caracteres

'Example' 'Text'

Exemplo 1

O valor 2002-12-24 (<Year>-<Month>-<Day>) para um atributo do sistema de origem é transformado no formato PPM usando a cadeia de caracteres de formato aaaa-MM-dd:

...

<transformation type="timestamp" format="yyyy-MM-dd"/>

...

Exemplo 2

Valores de atributo do sistema de origem consolidado:

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>ERF_DAT</eventattributetype>

<eventattributetype>ERF_ZEIT</eventattributetype>

<transformation format="yyyyMMddHHmmss"/>

</attribute>

...

No atributo do sistema de origem ERF_DAT, a data de criação está presente no formato aaaaMMdd e no atributo do sistema de origemERF_ZEIT, a hora de criação está presente no formato HHmmss. Extrato do arquivo de saída XML:

<event>

...

<attribute type='ERF_DAT'>20011230</attribute>

...

</event>

<event>

...

<attribute type='ERF_ZEIT'>120730</attribute>

<attribute type='ERF_DAT'>20011101</attribute>

...

</event>

No primeiro evento de sistema, o atributo AT_END_TIME não é criado porque o atributo ERF_ZEIT não está presente.

No segundo evento de sistema, ambos os atributos estão presentes. Os valores de atributo são unidos na sequência especificada para obter 20011101120730 e em seguida avaliados usando o formato especificado aaaaMMddHHmmss e transformados no carimbo de data/hora compatível com o PPM 01.11.2001 12:07:30.

Exemplo 3

No atributo ERF_STD apenas é registrada a hora na qual o evento de sistema foi criado. A hora de criação é sempre trinta minutos depois da hora.

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>ERF_DAT</eventattributetype>

<value>::</value>

<eventattributetype>ERF_STD</eventattributetype>

<value>30</value>

<transformation format="yyyyMMdd::HHmm"/>

</attribute>

...

Evento de sistema associado do arquivo de saída:

...

<event>

...

<attribute type='ERF_STD'>12</attribute>

<attribute type='ERF_DAT'>20011001</attribute>

...

</event>

...

Os valores de atributo e as cadeias de caracteres de constantes são combinados na cadeia de caracteres 20011001::1230 e transformados usando o formato aaaaMMdd::hhmm para obter o carimbo de data/hora compatível com o PPM 01.10.2001 12:30:00, o qual é gravado no atributo do PPM AT_END_TIME.

Transformações do carimbo de data/hora timestamp_epoch, timeofday_epoch e day_epoch

A transformação do carimbo de data/hora timestamp_epoch transforma um valor inteiro indicando os segundos ou milissegundos que passaram desde 1 de janeiro de 1970 no formato interno do PPM. No atributo XML format, é especificado se o valor inteiro indica o número de segundos (SECOND) ou milissegundos (MILLISECOND) que passaram desde 01.01.1970 0:00:00 GMT. O fuso horário atual do sistema é considerado no cálculo.

Use as transformações de atributos timeofday_epoch e day_epoch da mesma forma.

Exemplo (timestamp_epoch)

No atributo do sistema de origem WORK_ITEM-END_TIME, é indicado o número de segundos desde 1 de Janeiro de 1970.

...

<attribute type="WORK_ITEM-END_TIME">1221482578</attribute>

...

Use a seguinte regra de mapeamento para associar este valor do atributo ao valor do atributo AT_END_TIME do PPM:

...

<attribute ppmattributetype="AT_END_TIME">

<eventattributetype>
WORK_ITEM-END_TIME

</eventattributetype>

<transformation type="timestamp_epoch"

format="SECOND"/>

</attribute>

...

Transformação de atributos SAGDateTime

O formato de hora SAGDateTime é usado nos chamados eventos EDA. Até agora, os atributos de evento da hora SAGDateTime foram importados como atributos de texto porque as transformações de carimbo de data/hora existentes não conseguem processar facilmente o formato da data.

Classe do transformador

A transformação SAGDateTime contém uma função para transformar as horas no formato SAGDateTime em formatos de hora específicos do PPM.

A classe pode ser usada no mapeamento de atributo durante a importação de XML e de processos do PPM. Tem de ser definido um mapeamento, que poderá ter a seguinte aparência.

<attribute ppmattributetype="AT_TIMESTAMP_PPM">

<eventattributetype>TIMESTAMP_SAGDATETIME</eventattributetype>

<transformation type="SAGDateTime" format="yyyy-MM-dd'T'HH:mm:ss.SSSZ"/>

</attribute>

A aplicação desta regra leva a que o conteúdo do atributo de evento TIMESTAMP_SAGDATETIME seja gravado no atributo do PPM AT_TIMESTAMP_PPM em formato compatível com o PPM. Os milissegundos serão ignorados.

A aplicação da regra acima ao atributo de evento

<attribute type="TIMESTAMP_SAGDATETIME">2013-07-15T06:02:33.650Z</attribute>

resultaria no seguinte atributo do PPM quando usado no fuso horário UTC:

<attribute type="AT_TIMESTAMP_PPM">15.07.2013 06:02:33</attribute>

Tem duas possibilidades para especificar a regra de mapeamento.

  1. Especifique o formato esperado do atributo de evento

    Se for sabido que o tempo no atributo do evento é exato ao milissegundo, pode especificar o formato esperado no atributo de formato da transformação (aaaa-MM-dd'T'HH: mm:ss.SSSZ para horas até ao milissegundo , aaaa-MM-dd'T'HH: mm:ssZ para horas até ao segundo). Usar uma transformação para uma hora até ao milissegundo em uma hora até ao segundo, e vice-versa, resultará em um erro.

  2. Sem informações de formato

    Se não especificar um formato, ambos os formatos de hora (dd'T'HH:mm:ss.SSSZ e aaaa-MM-dd'T'HH:mm:ssZ) são aplicados consecutivamente durante a transformação. Se um dos formatos for reconhecido, o valor correspondente será gravado no atributo do PPM.