Use Cases

Reiseversicherungsantrag Muster erklärt

Wir haben kürzlich unsere erste Beispielanwendung eingeführt, die ein einfacher Reiseversicherungsrechner ist. Heute werden wir uns im Detail ansehen, wie sie funktioniert.

Reiseversicherungsantrag Muster erklärt hero image

1. Einführung

In diesem Artikel werden wir eine detaillierte Erklärung darüber geben, wie unsere Beispielanwendung für Reiseversicherungen funktioniert. Wir beginnen mit einem Überblick über die gesamte Webanwendung und ihre Komponenten und gehen dann zu einer detaillierten Beschreibung des Regelablaufs über, der den Berechnungsprozess steuert. Am Ende dieses Artikels werden Sie ein klares Verständnis dafür haben, wie die Anwendung funktioniert und wie der Regelablauf den gesamten Berechnungsprozess steuert.

Wenn Sie nicht wissen, was eine Demo-App ist, sollten Sie sich unseren vorherigen Artikel ansehen: decisionrules.io/articles/decisionrules-in-action.

Alle verfügbaren Beispielanwendungen finden Sie unter samples.decisionrules.io.

2. Wie funktioniert die Anwendung?

Bevor wir in die Beschreibung der Webanwendung, des Regelablaufs und der einzelnen Regeln in DecisionRules eintauchen, ist es wichtig, den Prozess zu klären, der während der Laufzeit der Anwendung stattfindet, sowie die Daten, mit denen sie arbeitet.

2.1. Allgemeiner Überblick über die Laufzeit der Anwendung

  1. In der Webanwendung füllt der Benutzer alle Eingabedaten in ein einfaches Formular ein.
  2. Sobald alle Eingabedaten ausgefüllt und validiert sind, beginnt die Echtzeitkommunikation mit DecisionRules über HTTPS.
  3. DecisionRules verarbeitet diese Eingabedaten mithilfe des Regelablaufs und der darin enthaltenen einzelnen Regeln und sendet dann die berechneten Ausgabedaten zurück an die Webanwendung.
  4. Die Webanwendung empfängt diese Ausgabedaten und gibt sie dann an den Benutzer aus.

2.2. Eingabe- und Ausgabemodell

Um vollständig zu verstehen, wie die gesamte Anwendung funktioniert, ist es wichtig zu wissen, welche Daten verarbeitet werden.

2.2.1. Beispiel für Eingabedaten

2.2.2. Beispiel für Ausgabedaten

Die Ausgabedaten werden auf der Website des Kunden als Ergebnis der Berechnung verwendet.

3. Beschreibung der Webanwendung

Die Webanwendung besteht aus zwei Hauptseiten:

  1. Auf der ersten Seite gibt es ein einfaches Formular, in dem der Kunde die Zeit, das Ziel, die Art der Reise, Sportaktivitäten und die Anzahl der Personen mit dem entsprechenden Alter (Eingaben) auswählen kann. Diese Daten werden dann verwendet, um die Preise der einzelnen Versicherungspakete zu berechnen. Zusätzlich gibt es einen Footer am unteren Bildschirmrand, der den Basispreis der Pakete (Ausgabe) anzeigt, der in Echtzeit berechnet wird, jedes Mal, wenn sich die Eingabewerte ändern. Dies ermöglicht es den Kunden zu sehen, wie sich ihre Entscheidungen auf die Gesamtkosten des Versicherungspakets auswirken.
  2. Auf der zweiten Seite gibt es eine Tabelle mit einzelnen Versicherungspaketen (Ausgabe-Array). Nach der Berechnung der Preise dieser Pakete basierend auf den auf der ersten Seite bereitgestellten Eingabedaten werden die Preise in der Tabelle angezeigt. Dies ermöglicht es den Kunden, die spezifischen Kosten jedes Versicherungspakets zu sehen und sie zu vergleichen, um eine informierte Entscheidung zu treffen. Die Tabelle enthält auch andere relevante Informationen zu den Paketen, wie z. B. deren Deckung für medizinische Ausgaben oder Unfälle.

4. Beschreibung des Regelablaufs und seiner einzelnen Regeln

4.1. Beschreibung des Regelablaufs

Der gesamte Berechnungsprozess in DecisionRules wird durch diesen Regelablauf gesteuert, der Regeln verschiedener Typen (Entscheidungstabellen und Skriptregeln) enthält. Im obigen Bild sehen Sie das Diagramm des Regelablaufs.

Beschreibung des Regelablaufdiagramms:

  1. Der Regelablauf erhält Eingabedaten von der Webanwendung. (Eingabe)
  2. Im ersten Abschnitt berechnet jede Regel ihren eigenen Risikofaktor, mit Ausnahme der Regel „Daten“, die die Anzahl der Tage berechnet, die auf der Reise verbracht wurden. Die Regelberechnungen basieren auf den Eingabedaten der Webanwendung.
  3. Im zweiten Abschnitt berechnet die Regel „Gesamtrisikofaktor“ das Gesamtrisiko für die Reise aus den zuvor berechneten Werten (Risikofaktoren und Anzahl der Tage, die auf der Reise verbracht wurden).
  4. Im dritten Abschnitt werden die Preise der einzelnen Pakete berechnet. Die Preisberechnung hängt vom Wert des „totalRiskFactor“ ab, der im vorherigen Schritt berechnet wurde.
  5. Schließlich gibt der Regelablauf die berechneten Pakete an die Webanwendung zurück, wo sie dem Benutzer präsentiert werden. (Ausgabe)

4.2. Beschreibung der einzelnen Regeln

Jede Regel hat eine spezifische Rolle bei der Berechnung des endgültigen Versicherungspreises. Ob es sich um die Schätzung des Risikofaktors oder die Berechnung der endgültigen Preise der Reisepakete handelt. Die Berechnung basiert hauptsächlich auf den sogenannten Risikofaktoren, die Zahlen zwischen 0 und 1 sind und den Grad des Risikos der einzelnen Eingabedaten bestimmen. Es gibt mehrere Risikofaktoren wie den regionalen Risikofaktor, den Altersrisikofaktor usw. Nachdem alle einzelnen Faktoren geschätzt und die Anzahl der Tage, die auf der Reise verbracht wurden, berechnet wurde, werden die Werte in eine vorgegebene Formel eingefügt, die den Wert des „totalRiskFactor“ berechnet, der zur Berechnung der endgültigen Paketpreise verwendet wird. Risikofaktoren werden häufig von den Geschäftsinhabern verwendet, die die Risikofaktoren einfach schätzen und die Regeln mit ihren Werten aktualisieren können; die Änderungen sind reibungslos, ohne Implementierung und werden mit einem Klick angewendet.

Sie haben vielleicht auch bemerkt, dass unser Regelablauf einige Skriptregeln verwendet. Bei der Gestaltung dieser Regeln fanden wir es geeigneter und effizienter, einige Operationen in Skriptregeln zu verlagern. Alle Skriptregeln werden für die erweiterte Arbeit mit Daten oder deren Modifikation verwendet, aber es ist wichtig zu beachten, dass Skriptregeln nicht der einzige verfügbare Ansatz sind. Alle in diesem Beispiel verwendeten Skriptregeln können durch Entscheidungstabellen oder andere Alternativen ersetzt werden.

4.2.1. Daten (Entscheidungstabelle)

Diese Regel wird verwendet, um die Tage zu berechnen, die auf der Reise verbracht wurden. Sie nimmt die Werte „departureDate“ und „arrivalDate“ als Eingabe und gibt die Anzahl der Tage aus, die auf der Reise verbracht wurden. Für diese Berechnung haben wir die Funktion DATEDIFF() verwendet, die, wie der Name schon sagt, die Differenz zwischen zwei Daten berechnet. Wenn Sie mehr Informationen zur DATEDIFF()-Funktion erfahren möchten, schauen Sie sich unbedingt unsere Dokumentation an.

4.2.2. Kontinentregeln

Dieses Regelset ist darauf ausgelegt, den Wert des continentsRiskFactor für ein gegebenes Array von Kontinenten zu schätzen. Die Eingabe für die Regeln ist ein Array von Kontinenten, und die Ausgabe ist ein einzelner Wert, der den Gesamtrisikofaktor für alle Kontinente im Eingabearray darstellt.

Um den Wert des continentsRiskFactor zu berechnen, ruft die „Continents Script“-Skriptregel die „Continents“-Entscheidungstabelle auf, um den Risikofaktor für jeden Kontinent im Eingabearray zu bestimmen. Die Ergebnisse aus der Entscheidungstabelle werden dann an die Skriptregel zurückgegeben, die sie zu einem einzigen Gesamtrisikofaktor addiert.

Als Beispiel betrachten Sie das folgende Array als Eingabe: ["europe","america"]. In diesem Fall wird die „Continents Script“-Skriptregel die „Continents“-Entscheidungstabelle aufrufen, um die individuellen Risikofaktoren für den ersten Kontinent („europe“) und den zweiten Kontinent („america“) zu bestimmen. Die Skriptregel wird dann diese Risikofaktoren zusammenaddieren, um einen Gesamtrisikofaktor namens continentsRiskFactor zu erzeugen. In diesem Beispiel wäre der resultierende Wert des continentsRiskFactor „0.45“.

4.2.2.1. Continents Script (Skriptregel)

Diese Skriptregel berechnet den gesamten Risikofaktor für eine Menge (ein Array) von Kontinenten, indem sie eine Entscheidungstabelle namens "Kontinente" mit den Eingabedaten (Array der ausgewählten Kontinente) als Datenpayload aufruft. Die Entscheidungstabelle gibt den Risikofaktor für jeden Kontinent zurück. Diese Werte werden dann zugeordnet und in einem Array namens "continentsRiskFactorMapped" gespeichert. Die Skriptregel verwendet dann die Methode reduce(), um alle Werte aus "continentsRiskFactorMapped" zusammenzuzufügen, um eine einzelne Zahl zu erhalten, die den gesamten Risikofaktor für die ausgewählten Kontinente darstellt, "totalContinentsRiskFactor". Diese Zahl wird dann auf zwei Dezimalstellen gerundet, um die Dezimalrundung in den binären Fließkommazahlen von JavaScript zu berücksichtigen. Dieser gerundete Gesamtrisikofaktor wird dann als Ausgabe festgelegt und zurückgegeben.

Es ist wichtig zu beachten, dass Geschäftsanwender das Skript nicht aktualisieren müssen, da es als Boxlösung vorbereitet ist, die die Entscheidungstabelle mit dem gesamten Setup der Risikofaktoren verwaltet.

4.2.2.2. Kontinente (Entscheidungstabelle)

Diese Regel wird verwendet, um die Werte der Risikofaktoren für eine gegebene Menge von Kontinenten basierend auf den vorgegebenen Bedingungen zuzuweisen. Sie nimmt das "continents"-Array als Eingabe und gibt ein Array von "continentRiskFactor"-Werten aus. Zum Beispiel, wenn das Eingabearray ["europa", "amerika"] ist, wäre die Ausgabe [{"continentRiskFactor": 0.35}, {"continentRiskFactor": 0.1}].

4.2.3. Reisearten (Entscheidungstabelle)

Diese Regel wird verwendet, um den Risikofaktor für eine bestimmte Reiseart basierend auf den vorgegebenen Bedingungen zuzuweisen. Sie nimmt den Wert "travelType" als Eingabe und gibt den entsprechenden Wert "travelTypeRiskFactor" aus. Beispielsweise, wenn der Eingabewert "studienbesuch" ist, wird der Wert "travelTypeRiskFactor" “0.4” sein.

4.2.4. Sportaktivitäten (Entscheidungstabelle)

Diese Regel wird verwendet, um den Risikofaktor für eine bestimmte Sportaktivität basierend auf den vorgegebenen Bedingungen zuzuweisen. Sie nimmt den Wert "sportActivities" als Eingabe und gibt den entsprechenden Wert "sportRiskFactor" aus. Beispielsweise, wenn der Eingabewert "risikosportarten" ist, wird der Wert "sportRiskFactor" “0.9” sein.

4.2.5. Alter der Personen

Diese Regelgruppe ist darauf ausgelegt, den Wert des peopleRiskFactor für ein gegebenes Array von Personen und deren Alter zu schätzen. Die Eingabe für die Regeln ist ein Array von Objekten, wobei die einzelnen Alter die Eigenschaften der Objekte sind, und die Ausgabe ist ein einzelner Wert, der den gesamten Risikofaktor für alle Personen im Array darstellt.

Um den Wert des peopleRiskFactor zu berechnen, ruft die Skriptregel "People's Age Script" die Entscheidungstabelle "People's Age" auf, um den Risikofaktor für jede Person im Eingabearray zu bestimmen. Die Ergebnisse aus der Entscheidungstabelle werden dann an die Skriptregel zurückgegeben, die sie zu einem einzelnen Gesamtrisikofaktor addiert.

Als Beispiel betrachten Sie das folgende Array als Eingabe: [{"age": 18}, {"age": 26}]. In diesem Fall wird die Skriptregel "People's Age Script" die Entscheidungstabelle "People's Age" aufrufen, um die individuellen Risikofaktoren für die erste Person (Alter: 18) und die zweite Person (Alter: 26) zu bestimmen. Die Skriptregel wird dann diese Risikofaktorenwerte zusammenaddieren, um einen Gesamtrisikofaktor namens peopleRiskFactor zu erzeugen. In diesem Beispiel wäre der resultierende Wert des peopleRiskFactor "0.75".

4.2.5.1. Skriptregel Alter der Personen (Skriptregel)

Diese Skriptregel berechnet den gesamten Risikofaktor für ein gegebenes Array von Personen basierend auf deren Alter. Sie ruft eine Entscheidungstabelle namens "Alter der Personen" mit den Eingabedaten (d.h. dem Array von Objekten, wobei das Alter jeder Person eine Eigenschaft des entsprechenden Objekts ist) als Datenpayload auf. Aufgrund der Struktur der Entscheidungstabelle "Alter der Personen" verwendet der Aufruf die FIRST_MATCH-Lösungsstrategie, um wie beabsichtigt zu funktionieren. Die Entscheidungstabelle gibt den Risikofaktor für jede Person zurück. Diese Werte werden dann abgebildet und in einem Array namens "peopleRiskFactorsMapped" gespeichert. Die Skriptregel verwendet dann die reduce()-Methode, um alle Werte aus "peopleRiskFactorsMapped" zusammenzuzufügen, um eine einzelne Zahl zu erhalten, die den gesamten Risikofaktor für die ausgewählten Personen darstellt (totalAgeRiskFactor). Diese Zahl wird dann auf zwei Dezimalstellen gerundet, um die Dezimalrundung in den binären Gleitkommazahlen von JavaScript zu berücksichtigen. Dieser gerundete gesamte Risikofaktor wird dann als Ausgabe festgelegt und zurückgegeben.

Es ist erneut wichtig zu beachten, dass Geschäftsanwender das Skript nicht aktualisieren müssen, da es als Boxlösung vorbereitet ist, da die Berechnung durch die Parameter in der Entscheidungstabelle gesteuert wird.

4.2.5.2. Alter der Personen (Entscheidungstabelle)

Diese Regel wird verwendet, um den Risikofaktor für eine Altersgruppe basierend auf den vorgegebenen Bedingungen zuzuweisen. Sie nimmt den "Alter"-Wert als Eingabe und gibt den entsprechenden "ageRiskFactor"-Wert aus. Zum Beispiel, wenn der Eingabewert "23" ist, wird der "ageRiskFactor"-Wert "0,4" sein. Es ist wichtig zu beachten, dass wir aufgrund der Struktur dieser Entscheidungstabelle die FIRST_MATCH-Lösungsstrategie verwenden müssen, andernfalls gibt die Regel alle aus, die die Bedingungen erfüllen.

4.2.6. Gesamter Risikofaktor (Entscheidungstabelle)

Diese Regel wird verwendet, um den gesamten Risikofaktor zu berechnen. Sie nimmt alle berechneten Risikofaktoren und die Anzahl der Tage, die auf der Reise verbracht wurden, als Eingabewerte und gibt den totalRiskFactor-Wert aus. Der totalRiskFactor wird mit einer Platzhalterformel im obigen Bild berechnet, die jederzeit durch eine genauere ersetzt werden kann.

Es ist erwähnenswert, dass wir in diesem Beispiel keine Bedingungen für diese Regel verwenden müssen. Entscheidungstabellen erfordern jedoch im Allgemeinen mindestens eine Bedingung. Daher müssen wir eine Platzhalterbedingung wie "peopleRiskFactor == anything" verwenden, da sie immer als wahr ausgewertet wird.

4.2.7. Pakete

Dieses Regelset berechnet die endgültigen Paketpreise basierend auf dem totalRiskFactor. Die Eingabe für diese Regeln ist der totalRiskFactor-Wert, und die Ausgabe ist ein Array von individuell berechneten Paketobjekten, die in der Entscheidungstabelle leicht modifiziert werden können.

Diese Skriptregel wird nur zur Formatierung der Rückgabewerte verwendet. Sie ruft eine Entscheidungstabelle namens "Pakete" mit dem Wert totalRiskFactor als Datenpayload auf und gibt die berechneten Pakete als Ausgabe zurück.

4.2.7.2. Pakete (Entscheidungstabelle)

Diese Regel wird für die Erstellung, Löschung, Verwaltung und Preisberechnung von Paketen verwendet. Sie nimmt den totalRiskFactor als Eingabe und gibt die berechneten Pakete aus. Die Paketpreise werden mit einer Platzhalterformel im obigen Bild berechnet, die jederzeit durch eine genauere ersetzt werden kann. Die Preisberechnung verwendet eine ROUND()-Funktion, die, wie der Name schon sagt, die Zahl auf zwei Dezimalstellen rundet.

Sie können ganz einfach weitere Pakete hinzufügen, indem Sie eines der vorhandenen Pakete duplizieren und dessen Daten bearbeiten. Alternativ können Sie die Preisberechnung schnell ändern, indem Sie die Berechnungsformel anpassen. Die Änderungsoptionen sind nahezu unbegrenzt.

Es ist erwähnenswert, dass wir in diesem Beispiel keine Bedingungen für diese Regel verwenden müssen. Entscheidungstabellen erfordern jedoch im Allgemeinen mindestens eine Bedingung. Daher müssen wir eine Platzhalterbedingung wie "peopleRiskFactor == anything" verwenden, da diese immer als wahr ausgewertet wird.

5. Fazit

In diesem Artikel haben wir einen umfassenden Überblick über unsere Musteranwendung gegeben. Wir haben mit der Erkundung der Webanwendung begonnen und uns dann mit dem Regelablauf und seinen einzelnen Regeln beschäftigt. Wir hoffen, dass diese Informationen hilfreich waren und dass Sie nun ein besseres Verständnis dafür haben, wie unsere Musteranwendung funktioniert.

Wenn Sie mehr darüber erfahren möchten, wie DecisionRules Ihrem Unternehmen helfen und nützen können, besuchen Sie bitte unsere Website oder LinkedIn-Seite. Sie können auch mit unseren Experten über Ihren spezifischen Anwendungsfall oder die Möglichkeiten von DecisionRules sprechen. Unser Vertriebsteam steht Ihnen ebenfalls zur Verfügung, um Ihre Fragen zu beantworten, und würde sich freuen, eine Demo für Sie zu planen, um DecisionRules in Aktion zu sehen.

Vielen Dank für Ihre Lektüre!

Jaroslav Spac

Jaroslav Spac

Frontend-Entwickler