Bouw7 datum bepaling door tijdzonde verkeerde datum; 2 uur verschil

Datum lijkt niet goed binnen te komen in Power BI vanuit Bouw7. Waarschijnlijk door tijdzone wordt de boeking 1 dag teruggezet in de tijd.

Onder andere in:

#"Bouw7.Resource.EquipmentBookings@bow_table" = Bron{[Name="Bouw7.Resource.EquipmentBookings@bow",Signature="table"]}[Data],

Kunnen jullie dit oplossen?

Om invloed Power BI en OData uit te sluiten, is dit het bijbehorende UniversalSQL-statement:

select to_char(date, 'YYYYMMDD HH24MISS') date_c
,      to_char(createdAt, 'YYYYMMDD HH24MISS') created_at_c
,      to_char(updatedAt, 'YYYYMMDD HH24MISS') updated_at_c
,      id
from   Bouw7.Resource.EquipmentBookings@bow
where  id = 18460

met als resultaat:

date_c created_at_c updated_at_c
06/25/2020 22:00:00 06/26/2020 12:27:14 06/26/2020 12:27:14

Dit is eigenaardig, want het teken ‘/’ komt niet voor in de to_char. De onderliggende JSON vanuit Bouw7 is:

{ "id":18460
,  "equipment":
  { ...
  }
, "quantity":"123.45"
, "more":"values"
, "date":"2020-06-26T00:00:00+02:00"
, "more":"values"
, "createdBy":
  { "id":12345
  , "username":"john.doe@acme.com"
  }
, "createdAt":"2020-06-26T12:27:14+00:00"
, "updatedBy":
  { "id":12345
  , "username":"john.doe@acme.com"
  }
, "updatedAt":"2020-06-26T12:27:14+00:00"
}

De vanuit Bouw7 API-server aangeleverede waarde veld date is dus 26 juni 2020 00:00 in de tijdzone +02:00 zoals CET (Europe/Amsterdam).

Bij nadere controle blijkt dat de drie datumvelden varchar2 zijn:

select name
,      database_data_type
from   systemtablecolumns@datadictionary
where  table_name='EquipmentBookings'
and    name in ('date', 'createdAt', 'updatedAt')

Dit is niet totaal ongebruikelijk; Simplicate heeft ook een dergelijke anamolie, maar de conversie naar datum/tijd formaat met het teken ‘/’ is dat wel. Waarschijnlijk converteert Power BI het automatisch terug omdat Power BI en Invantive UniversalSQL beiden op dezelfde technologie gebaseerd zijn.

Na verdere analyse is een systematische fout in de metadata van Bouw7 gevonden. Een workaround is opgenomen in de Bouw7-driver hiervoor en een bug report is ingediend bij Bouw7.

De wijziging zal opgenomen worden in een volgende zodra de regressietests succesvol doorlopen zijn. Het betreft een “breaking change”: het datatype van datumvelden zal wijzigen van tekst in datum/tijd.

Dit kan correcties vereisen in de verwerking van Bouw7-data via Power BI of andere platformen waarbij het datatype niet automatisch geconverteerd wordt. De correctie zal naar verwachting uitsluitend nodig zijn op tabellen die een veld bevatten met datuminformatie.

Deze vraag is automatisch gesloten na 2 weken inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.

Dit topic is 7 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.