2017-04-04 1 views
0

Die Business-Objekt GeneralJournalEntryLines enthält die GL Transaktion Linien Exact Online. Aus Performancetuninggründen ändern wir unsere Skripts, die Daten von Exact Online in unsere On-Premise-Datenbank kopieren, um nur die Änderungen zu berücksichtigen, die statt einer vollständigen Kopie möglich sind.Fehlende Inhalt des Feldes CreatorFullName und ModifierFullName in GeneralJournalEntryLines

jedoch eine Abfrage auf GeneralJournalEntries mit GeneralJournalEntryLines verbunden gibt manchmal einen Nullwert in CreatorFullName und ModifiedFullName.

Ich habe versucht, neue Zeilen mit diesem Problem zu reproduzieren, sondern diejenigen funktionieren.

Ist dies eine Beschädigung der Datenbank? Oder ein Mitschuld an meiner Seite?

Die Exact Online-Abfrage ist:

use <DIVISION CODE> 

select GE.Created GE_Created 
     ,GE.Division GE_Division 
     ,GE.EntryID GE_EntryID 
     ,GE.EntryNumber GE_EntryNumber 
     ,GE.FinancialPeriod GE_FinancialPeriod 
     ,GE.FinancialYear GE_FinancialYear 
     ,GE.JournalCode GE_JournalCode 
     ,GE.Modified GE_Modified 
     ,GE.Reversal GE_Reversal 
     ,GE.Status GE_Status 
     ,GE.Type GE_Type 
     ,GL.AccountCode GL_AccountCode 
     ,GL.AmountDC GL_AmountDC 
     ,GL.AmountVATDC GL_AmountVATDC 
     ,GL.AssetCode GL_AssetCode 
     ,GL.CostCenter GL_CostCenter 
     ,GL.CostUnit GL_CostUnit 
     ,GL.CreatorFullName GL_CreatorFullName 
     ,GL.Date GL_Date 
     ,GL.Description GL_Description 
     ,GL.GLAccountCode GL_GLAccountCode 
     ,GL.LineNumber GL_LineNumber 
     ,GL.ModifierFullName GL_ModifierFullName 
     ,GL.OurRef GL_OurRef 
     ,GL.ProjectCode GL_ProjectCode 
     ,GL.Quantity GL_Quantity 
     ,GL.VATBaseAmountDC GL_VATBaseAmountDC 
     ,GL.VATCode GL_VATCode 
     ,GL.VATPercentage GL_VATPercentage 
     ,GL.VATType GL_VATType 
from  ExactOnlineREST..GeneralJournalEntries GE 
inner join ExactOnlineREST..GeneralJournalEntryLines GL 
on GE.EntryID=GL.EntryID 
where GE.Status <> 50 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201501 and GE.Modified > '09/01/2017 14:03:09')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201502 and GE.Modified > '09/01/2017 14:03:09')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201503 and GE.Modified > '09/01/2017 14:03:09')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201504 and GE.Modified > '09/01/2017 14:03:09')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201505 and GE.Modified > '09/01/2017 14:03:08')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201506 and GE.Modified > '09/01/2017 14:03:08')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201507 and GE.Modified > '09/01/2017 14:27:27')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201508 and GE.Modified > '09/01/2017 14:27:27')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201509 and GE.Modified > '09/01/2017 14:27:27')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201510 and GE.Modified > '09/01/2017 14:27:26')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201511 and GE.Modified > '09/01/2017 14:27:27')) 
or (GE.Status = 50 and ((GE.FinancialYear*100) + GE.FinancialPeriod = 201512 and GE.Modified > '09/01/2017 14:27:26')) 

local export results as "D:\Invantive\data\uit_EOL\40570GeneralJournals.csv" format csv 

local exit 

Antwort

1

Wenn die Abfrage mit:

select * 
from ExactOnlineREST..GeneralJournalEntryLines GL 
where gl.modifierfullname is null or gl.creatorfullname is null 

es scheint, dass alle Zeilen, in denen die modifiedfullname oder creatorfullname fehlt haben ein zugehöriges Benutzer aus einer kurzen Liste GUID . Es sind auch (basierend auf dem Erstellungsdatum) alle Datensätze, die von beträchtlichem Alter sind.

Es scheint, dass Exact Online-APIs intern einen linken äußeren machen verbindet mit der Benutzer-Tabelle, für die nicht mehr aktive Benutzer keine Information zurück.

+0

So verschwindet Ihre Audit-Geschichte? –

+0

@PatrickHofman ja, es scheint so. Es sei denn, Sie registrieren die Beziehungs-GUID mit dem Namen in einer anderen Tabelle, indem Sie alle neuen Datensätze in der Benutzertabelle von Exact Online registrieren. Seltsam, würde erwarten, dass Benutzer deaktiviert statt gelöscht werden, aber vielleicht deutsche Gesetzgebung oder so. –

Verwandte Themen