Bausteinsicht
Ebene 0 (Anwendung)
Eine elego-Anwendung hat im Normalfall verschiedene Schnittstellen zu internen und externen Systemen:
- Intern: Kundeneigene Dienste wie z.B. SMTP-Server, Printserver, etc.
- Extern: Third-Party APIs oder andere Schnittstellen wie z.B. PostApi für die Adressrecherche, CrediConnect für die Bonitätsprüfung, eSchKG
architecture-beta
group internGroup(server)[Intern]
group externGroup(internet)[Extern]
service elego(server)[elego]
service email(server)[Email] in internGroup
service printer(server)[Printer] in internGroup
service aemterfinden(internet)[Aemterfinden] in externGroup
service crediconnect(internet)[CrediConnect] in externGroup
service eschkg(internet)[eSchkG] in externGroup
service postapi(internet)[PostApi] in externGroup
elego:L -- R:email
elego:L -- R:printer
elego:R -- L:aemterfinden
elego:R -- L:crediconnect
elego:R -- L:eschkg
elego:R -- L:postapi
Hold "Alt" / "Option" to enable pan & zoom
Ebene 1 (Services)
Eine elego-Anwendung besteht aus mehreren Services:
architecture-beta
group elego(server)[elego]
service frontend(server)[elego Frontend] in elego
service backend(server)[elego Backend] in elego
service db(database)[Database] in elego
service idp(server)[IDP] in elego
service td(server)[TemplateDesigner] in elego
frontend:R --> L:backend
backend:R --> L:db
td:T --> B:backend
idp:T <-- B:frontend
idp:T <-- B:backend
idp:R <-- L:td
Hold "Alt" / "Option" to enable pan & zoom
| Service | Beschreibung |
|---|---|
| elego Frontend-Anwendung | Frontend-Anwendung für den interaktiven Zugriff auf elego-Funktionalität |
| elego Backend | REST-API mit der elego Anwendungslogiks |
| elego Database | Datenbank für Inkasso- und Verfahrensdaten |
| IDP | IdentityProvider als führende Benutzerverwaltung |
| Template-Designer | WPF-Anwendung zur Bearbeitung der Dokument-Templates |
Ebene 2 (Module)
elego Backend
| Modul | Beschreibung |
|---|---|
| API, System | Das REST-API der .NET core Anwendung dient als Schnittstelle gegen aussen. Alle Endpunkte sind nur von autorisierten Benutzern zugänglich. Für die Beschreibung der Endpunkte kann eine Swagger-Seite aufgerufen werden. |
| Core | Im Core sind alle anwendungsübergreifenden Schnittstellen definiert. Das ermöglicht, dass Module kundenindividuell implementiert werden können. |
| DocumentTemplate | Dokumente werden genau nach Ihren Vorgaben und in Ihrem Corporate Design erstellt und ausgegeben: Standard-Schreiben werden mit dem umfangreichen Template-Designer entworfen. Unterstützt werden nebst Diagrammen, Barcodes, Unterschriften, Logos, etc. auch mehrere Auflistungen in einem Dokument. Die Aufbereitung der Dokumente ist in verschiedene Formate möglich (z.B. pdf, tif, docx, …). Designer und Aufbereitung basieren auf ListLabel von Combit. Individuelle Schreiben werden anhand von hinterlegten Word-Dokumenten als .docx-Dokument generiert und können daher mit Ihrer Textverarbeitungsanwendung weiterbearbeitet werden. Unterstützt werden nebst Textbausteinen auch Tabellen. |
| Configuration | Konfigurationen für Oberflächen, Prozesse, Schnittstellen, Such-Definitionen, etc. werden in XML vorgenommen. Die gesamte Konfiguration lässt sich exportieren und in einem anderen System wieder importieren. So ist sichergestellt, dass eine auf einem Testsystem freigegebene Konfiguration vollständig auf ein produktives System übernommen wird. |
| Interfaces | Die Schnittstelle ist für die Verarbeitung von hohen Volumen konzipiert und lässt sich automatisieren. Die Verarbeitung ist in zwei Phasen aufgeteilt: 1. Das Einlesen der Daten: Die Daten werden aus einem File (csv, txt, xlsx, xls) eingelesen und transformiert. Je nach gewünschtem Transaktionsverhalten wird für jeden Record, jede Gruppe von Records oder für das ganze File eine Verarbeitungs-Pendenz erstellt. Erst nach Freigabe wird mit der eigentlichen Verarbeitung gestartet. Wie auf ein mehrfach eingelesenes File reagiert wird, ist parametrierbar. 2. Die Verarbeitung: Aus den eingelesenen Daten werden beliebige Entitäten erstellt oder geändert, Prozesse gestartet oder Trigger auf Prozessen ausgelöst. Im Fehlerfall wird die Verarbeitung der Pendenz zurückgefahren und auf «Pausiert» gesetzt. Sie kann später nochmals verarbeitet werden. |
| Persistence | Die Daten werden in einer relationalen Datenbank persistent gehalten. Die Konsistenz der Daten wird mit Transaktionen sichergestellt. Zugriffe auf Daten erfolgen über ein Persistenz-Framework (NHibernate). Durch diesen Abstraktions-Layer wird ein Austausch des DBMS Systems möglich und die Anwendung ist gegen SQL-Injection-Attacken abgesichert. Als Datenbanktreiber wird ADO.NET verwendet. |
| Process | Die Prozess-Engine ist das Herz einer elego-Anwendung. Mit Prozessen werden Geschäftsprozesse so abgebildet, dass die repetitiven und standardisierten Aufgaben automatisiert sind, und die restlichen Aufgaben so koordiniert und überwacht werden, dass sich die Anwendungsbenutzer auf das Kerngeschäft konzentrieren können. Komplexe, auch über mehrere Jahre laufende Geschäftsprozesse werden von der Prozess-Engine genauso überwacht und rapportiert wie einfache Erfassungs-Wizards. Die Benutzer werden über To Do’s direkt in die Prozesse eingebunden. Aufgaben, die im Hintergrund ausgeführt werden sollen, werden an die Task-Engine übergeben. |
| Search | In elego finden Sie die gesuchten Daten in wenigen Augenblicken. Die mächtige Suche lässt sich je Entität nach Ihren Wünschen parametrieren. Unterstützt werden vollqualifizierte, teilqualifizierte und unscharfe Suchanfragen. Mit «Facets» wird ein Suchresultat weiter eingeschränkt. Die Suche basiert auf dem Framework Lucene.net. |
| Task | Tasks sind Aufgaben, die ohne menschlichen Input, im Hintergrund erledigt werden. Für jeden Task wird eine Pendenz in der Task-Queue erstellt. Dabei werden folgende Trigger unterstützt: Engine: Fällige Tasks werden durch die Engine laufend abgearbeitet. External: Tasks werden durch einen von aussen angestossen Batch-Worker abgearbeitet. Isolated: Task wird sofort mit einem eigenen Worker erledigt. |
| Todo | Die Todo-Verwaltung verwaltet Pendenzen/Aufgaben, die von einem Sachbearbeiter erledigt werden müssen. Pendenzen können direkt (StandaloneTodo) oder über einen Prozess erstellt werden. Todos können einem Benutzer oder einer Benutzergruppe zugewiesen werden. Einer Benutzergruppe zugewiesene Todos können von Mitgliedern der Benutzergruppe über “Mir zuweisen” zur Erledigung übernommen werden. |
| Transmission | Der Versand von Emails oder der Druck eines PDF-Dokuments läuft über den Transmission-Provider. Emails werden an den konfigurierten SMTP-Server verschickt. |
| User, Role, Permission | Benutzer agieren immer im Kontext einer Rolle. Mit dem rollenbasierten Autorisierungsmodell kann der Zugriff für jeden Vorgang (Ausführung einer Funktionalität, öffnen einer Oberfläche) definiert werden. Die Rolle des Benutzers wird aus dem vom IdentityProider übergebenen Autorisierungstoken gelesen. Fach-Entitäten können einem Tenant zugewiesen werden. Dadurch sind sie nur noch für Benutzer zugreifbar, die für den entsprechenden Tenant berechtigt sind. |
elego Frontend
| Modul | Beschreibung |
|---|---|
| App mit System | ASP .NET Core Anwendung als Träger für das ExtJs Frontend |
| Ext.Direct | Bindeglied zwischen der .NET Welt und ExtJS |
| ExtJs | Javascript Frontendframework |