AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fakturierungsserver

Ein Thema von psycodad · begonnen am 4. Feb 2020 · letzter Beitrag vom 19. Feb 2020
 
psycodad

Registriert seit: 8. Feb 2005
Ort: Embrach (CH)
40 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Fakturierungsserver

  Alt 5. Feb 2020, 15:29
Was ist so kompliziert an den Rechnungen?
Iterative Preisberechnung? Oder vielfältige Rabattmodelle und Rechnungsvorschriften?

Noch zu Indizes:
Das Anlegen von Rechnungen dürfte ja zu großen Teilen mit dem Anlegen von Datensätzen verbunden sein, da hilft viel nicht unbedingt viel, eher umgekehrt.
Erstmal vielen Dank für die Anregungen/Tips.

Es ist so dass im Extremfall eine Rechnung basierend auf 100'000 Records berechnet werden muss. Dazu werden alle Records durchlaufen und die Felder mit diversen Checks auf Gültigkeit geprüft. Dann wird für jeden Record ein Preis berechnet. Du bringst es auf den Punkt, wir haben hier ein fantasievolles Rabattsystem und ziemlich komplizierte Rechnungsvorschriften. Danach werden die Records gruppiert und dann werden Rechnungspositionen basierend auf diesen Gruppen geschrieben. Jeder Record ist genau einer Rechnungsposition zugeordnet. Wie gesagt, für eine einfache Rechnung bewegen wir uns da inkl. Reporterstellung im Sekundenbereich.

Es gäbe noch einiges zu optimieren in den verschiedenen STP's betreff der Granularität von Transaktionen etc. Da aber bald viele neue Vorschriften dazukommen (z.B: Splitten von Rechnungen auf verschiedene Debitoren etc.) werden haben wir uns für ein Refactoring entschieden.

Es geht nicht darum, das letzte Quentchen Perfomance herauszukitzeln. Es geht mir darum, dass der Job vom User angestossen werden kann ohne dass er auf dessen Ende warten muss. Er soll normal in der Destop-MDI weiter arbeiten können. Er wird informiert, wenn der Job fertig ist. Er kann jederzeit den Status eines Jobs einsehen und das Log des Jobs verfolgen.

Technisch geht es darum, die ebenfalls langsam etwas monströsen STP's in logische Einheiten aufzubrechen. Der Fakturaserver sorgt sich nur um die Job-Verwaltung, Gibt den Status eines Jobs auf Anfrage zurück und führt den Job aus. Dabei soll er einem Prozessplan folgen. Die einzelnen Prozessschritte starten dann z.B. eine STP oder schreiben wieder um einen Job an den Reportserver. Wenn der Prozessschritt ausgeführt ist gehts bei Erfolg zum nächsten Schritt. Ich könnte mir auch vorstellen, dass je nach Resultat/Zustand eines Prozessschrittes ein anderer Prozessbaum abgearbeitet werden kann. Da bin ich jetzt eben am Informationen beschaffen, ob es da Design Patterns oder sogar irgendwelche Frameworks/Libraries gibt wie man so etwas aufbaut.
Ich könnte einfach loslegen und mit ein paar verschachtelten Ifs usw. das ganze niedernageln. Ich suche aber einen mehr generellen Ansatz so etwas zu machen. Ich kann mir gut vorstellen in Zukunft weitere andere Prozesse über den Fakturaserver laufen zu lassen.

Ich habe diese Infos gefunden:
https://www.delphipraxis.net/186504-...er-delphi.html
http://melander.dk/delphi/statemachine/

Ich bin mir nicht sicher, ob das "the way to go" ist. Wie löst man sowas? Gibt es da andere Lösungsansätze soetwas zu machen?

Geändert von psycodad ( 5. Feb 2020 um 15:33 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz