# Solution2 ERP Cheat Sheet ## Klassen-Praefixe - Was ist was? ``` w = Window (UI-Formular) wOrders, wLogin, wCustomerInvoicesWithList o = Object (Business-Logik) oOrders, oLogin, oCreateInvoice T_ = Table (Daten-Cursor) T_Orders, T_Parts, T_Super sc = Schema (Datenstruktur) scOrderItems, scStaffWorkTimeLog Q = Query QMOResourcesProcessingQuantity r = Report (Druckbericht) rInvoice, rDeliveryNote, rCompanyList js = JS Remote Form (Web) jsMainForm, jsSubForm, jsMainMenu b = Base-Objekt (Submodul) bobjs ``` ## Superklassen-Hierarchie ``` wMainWindow -----> Haupt-Dateneingabe-Fenster wBaseWindow -----> Modale/Hilfs-Fenster wSubWindow -----> Eingebettete Sub-Panels oSuperData -----> Basis fuer Business-Logik-Objekte T_Super -----> Basis fuer alle Table-Klassen T_SuperVersion --> Versionierte Table-Klasse ``` ## Die 22 Libraries | Library | Bereich | |---------|---------| | `solution2` | Kern: Login, Navigation, Enterprise, Mitarbeiter, Kalender | | `solution2Services` | Hintergrund-Services, Push, Callbacks | | `BasicTools` | HTML, Import, Edit-Utilities | | `DBAccess` | Datenbank-Zugriff, Berechtigungen | | `Sales` | Auftraege, Lieferscheine, Rechnungen | | `Purchase` | Einkauf, Lieferanten, E-Rechnungen | | `Customer` | Kundenstamm, Berichte, Aktivitaeten | | `Manufacturing` | Fertigungsauftraege, Stuecklisten, Kalkulation | | `QualityInspection` | Qualitaetsprotokolle, Labor | | `AdminAccounting` | Buchhaltung, Export, ZUGFeRD | | `PPS` | Produktionsplanung (MRP) | | `StaffWorkTime` | Arbeitszeit, Urlaub | | `MobileWork` | Mobile/Web-Client (Remote Forms) | | `_Analysis_SIM` | Analyse/Simulation | ## Datenbank-Pattern ``` DB: masterdemo Schema: soluser Engine: PostgreSQL JEDE Tabelle hat: - created (TIMESTAMP) Erstellungszeitpunkt - modtime (TIMESTAMP) Letzte Aenderung - revisor (INTEGER) Wer hat geaendert (Employee-ID) - valid (BOOLEAN) Soft-Delete Flag VIELE Tabellen haben Dual-Signature: - firstsigned (BOOLEAN) - needsecondsignature (BOOLEAN) - secondrevisor (INTEGER) - secondsigned (BOOLEAN) ``` ## Die wichtigsten Tabellen ``` STAMMDATEN: contact Kontakte/Ansprechpartner warehouse Lager dunninglevels Mahnstufen VERKAUF: orders Auftraege (103 Spalten!) orderitems Auftragspositionen deliverynoteitems Lieferscheinpositionen customerinvoices Ausgangsrechnungen (90 Spalten) customerinvoiceitems Rechnungspositionen EINKAUF: purchaseorder Bestellungen (72 Spalten) supplierinvoices Eingangsrechnungen stockreceipt Wareneingaenge stockreceiptitems Wareneingangs-Positionen LAGER: stockrotationlog Lagerbewegungen inventoryquantities Bestandsmengen inventoryvalues Bestandswerte FERTIGUNG: qualityprotocolpending Qualitaetspruefungen ``` ## Typischer Geschaeftsprozess-Flow ``` Auftrag (orders) | v Lieferschein (deliverynoteitems) | v Rechnung-Freigabe (customerinvoicerequirement) | v Rechnung (customerinvoices) | v Buchhaltung-Export (transfertoadminaccounting) ``` ## RBAC-System ``` Berechtigungen = Form-Path-basiert -> Berechtigungsgruppen werden Form-Pfaden zugewiesen -> Nicht pro Screen, sondern pro Modul/Navigation -> T_ModuleAccess2Methods steuert Methoden-Zugriff ```