Em uma primeira postagem de blog sobre conversões na Fundação SAP Gateway, discutimos sua relevância no contexto das diferenças entre o sistema de tipos ABAP e o sistema de tipos OData. Embora não diretamente relacionado às conversões, o manuseio de datas e horários se encaixa perfeitamente nesse tópico.
O ABAP conhece datas, horários e diferentes representações de carimbos de tempo. E, fornece funções de reutilização para executar cálculos de datas e horários. O OData possui suas próprias definições de datas e horários com funções que podem ser usadas em expressões
$filter
, por exemplo.
Muitas vezes, surgem perguntas sobre como as diferentes representações se mapeiam e como um provedor de dados precisa ser implementado para criar uma melhor correspondência entre ambos os mundos. Certamente não é possível mergulhar em todos os detalhes. Mas, vamos começar com alguns aspectos.
Data e Hora no OData
Para representar informações de data e hora, a especificação do OData na versão 2.0 conhece os três tipos primitivos
Edm.DateTime,
Edm.Time e
Edm.DateTimeOffset.
Como isso não é realmente suficiente para aplicações comerciais, a especificação da versão 4.0 muda para
Edm.Date,
Edm.TimeOfDay,
Edm.DateTimeOffset e
Edm.Duration.
Nos concentramos na especificação da versão 2.0 e restringimos a discussão a Edm.DateTime e Edm.DateTimeOffset. Detalhes sobre as representações podem ser encontrados na
especificação do OData
, no
padrão ISO 8601
e em
http://www.w3.org/TR/xmlschema-2
. Aqui, listamos rapidamente os diferentes formatos. Os literais são usados na URI, ou seja, em
$filter
, por exemplo. ATOM e JSON se referem ao tipo de conteúdo da carga da solicitação ou resposta. O número de casas decimais disponíveis para sub-segundos é definido pela faceta de precisão.
Edm.DateTime representa uma data e uma hora em
UTC
(anteriormente, Hora Média de Greenwich):
Representação
Exemplo
Literal
datetime'yyyy-mm-ddThh:mm[:ss[.fffffff]]'
datetime'2016-07-08T12:34:56'
ATOM
yyyy-mm-ddThh:mm[:ss[.fffffff]]
2016-07-08T12:34:56
JSON
"\/Date(<ticks>)\/"<ticks> = número de milissegundos desde a meia-noite de 1º de janeiro de 1970
"\/Date(1467981296000)\/"
Os ticks na representação JSON também podem ser negativos para descrever datas e horários anteriores a 1º de janeiro de 1970. "\/Date(-6847804800000)\/" é meia-noite de 1º de janeiro de 1753, por exemplo.
Edm.DateTimeOffset adiciona informações de fuso horário em relação ao UTC. As informações de data e hora são complementadas pela diferença padrão de tempo (offset) com o sinal
v
: +01:00 para Horário da Europa Central (CET) ou -05:00 para Horário Padrão do Leste (EST), por exemplo.
Buenas tardes como andan? consulta respecto al examen final, saben si es online, si mandan el material para hacer actividades y luego cargarlas, si es teorico/practico? cualquier informacion al respec...
OpenSAP y sus cursos sobre SAP
OpenSAP y sus cursos sobre SAP
OpenSAP es una plataforma en línea creada por SAP, una empresa líder en software empresarial a nivel mundial. Ofrece una amplia gam...
Estoy intentando acceder a swagger-ui.html y obtengo lo siguiente
<errorList>
<errors>
<message>El sitio base swagger-ui.html no existe</message>...
Hola chicos, una duda en SAP, quiero realizar una MIGO, pero no aparece mi Orden de Pago y en otra me aparece que es por falta de posición. Saben cómo podría hacerle para saber el estado de mi orden d...