[gelöst] Kontensalden auslesen

25. Juni 2010 11:40

Hallo alle zusammen,

ich muss mich mal wieder an euch wenden. :)

Im Rahmen eines Projektes will ich in einer Fremdanwendung (MS Sharepoint 2010) ein Dashboard erstellen. Dafür benötige ich die Kontensalden bestimmter Konten (z.B. "SUMME UMSATZERLÖSE 4001..4199"). Meine Grundidee ist nun direkt auf die MS SQL Datenbank unseres Navision zuzugreifen um die entsprechenden Daten auszulesen und grafisch darzustellen.

Aktuell wird die Auswertung über ein Kontenschema im Navision realisiert. Die zugehörige Kontenschemamatrix (Funktion "Schema" - "Matrix") bildet die Salden der Konten ab.

Meine Frage an euch lautet: In welchen SQL-Tabellen sind die Buchungen der einzelnen Konten gespeichert und gibt es evtl. sogar eine "Saldentabelle" für Monats/Quartals/Jahresperioden?

Über jeden Hinweis bin ich dankbar.
Zuletzt geändert von Bakkir am 23. August 2010 16:23, insgesamt 1-mal geändert.

Re: Kontensalden auslesen

23. Juli 2010 13:52

Hallo,

die Buchungen der Sachposten sollten in der SQL-Tabelle a la dbo.[Navision-Mandantenname]}$G_L Entry sein.
Meines Wissens gibt es in Navison generell nur Einzelposten in Tabellen, also keine Salden, Summen etc.

Re: Kontensalden auslesen

26. Juli 2010 14:21

Bakkir hat geschrieben:Hallo alle zusammen,

ich muss mich mal wieder an euch wenden. :)

Im Rahmen eines Projektes will ich in einer Fremdanwendung (MS Sharepoint 2010) ein Dashboard erstellen. Dafür benötige ich die Kontensalden bestimmter Konten (z.B. "SUMME UMSATZERLÖSE 4001..4199"). Meine Grundidee ist nun direkt auf die MS SQL Datenbank unseres Navision zuzugreifen um die entsprechenden Daten auszulesen und grafisch darzustellen.



Ich bin kein Experte darin, aber man könnte doch auf die jeweiligen VSIFT-Sichten im SQL-Server zugreifen.

Beispiel:
Code:
dbo.<Mandant>$G_L Entry$VSIFT$1


Dann eine Abfrage wie z.B.:
Code:
SELECT SUM("SUM$Amount") FROM "dbo.<Mandant>$G_L Entry$VSIFT$1" WHERE
"G_L Account No_">="4001" AND "G_L Account No_"<="4199" AND "Posting Date">="<Datum>" AND "Posting Date"<="<Datum>"


mfg,
winfy

Re: Kontensalden auslesen

26. Juli 2010 15:39

Naja, ich sehe nicht wirklich ein, warum man auf VSift gehen sollte, auch wenn es den jetzt theoretisch geben würde

ein ganz normaler select könnte so aussehen, je nachdem, was du benötigst...

Code:
SELECT     [G_L Account No_], SUM(Amount) AS Amount
FROM         dbo.[xy$G_L Entry]
WHERE     ([Posting Date] BETWEEN CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-10 00:00:00', 102))
GROUP BY [G_L Account No_]

Re: Kontensalden auslesen

26. Juli 2010 16:28

Bender hat geschrieben:Naja, ich sehe nicht wirklich ein, warum man auf VSift gehen sollte, auch wenn es den jetzt theoretisch geben würde


Ich dachte es wäre vielleicht performanter nicht mit einem SELECT FROM WHERE durch alle Sachposten zu gehen, sondern lieber die indizierten Sichten zu verwenden. Er möchte ja eigentlich nur aggregierte Werte haben.

Ich sehe aber gerade, dass es sich hier um NAV 4.xx handelt und da gab es glaube ich noch gar kein VSIFT. :roll:
Da müsste man dann SIFT nehmen. :wink:

mfg,
winfy

Re: Kontensalden auslesen

23. August 2010 16:22

Danke für eure Antworten.
Ich habe mittlerweile ein Java-Servlet geschrieben, mit dem ich auf die Daten der $G_L Entry per "Mega-Select/Insert-Anweisungen" zugreife. :-D

Von 2004 an geh ich die aktuell ~300000 Datensätze monatlich bis heute durch und speichere die Summe von ca. 50 verschiedenen Kontenbereichen als ne Art "Data Warehouse Light" in einer SQL Tabelle. Das ganze dauert ca. 15 min, was noch im Rahmen des erträglichen liegt...