Das neue Regel­modul

et rechnungsbetrag 01

LF-ET ge­ne­riert aus der Ent­schei­dungs­tabelle ein Regel­modul mit den folgenden Anpassungen:

  • Das Regel­modul arbeitet jetzt state­less und generisch, d.h. zu­stands­los und typisiert, der Typ ist ein zu­sätz­licher Parameter in allen Methoden

  • Die Methoden-Namen bei den Enums sind sprechender

    • nicht mehr isEnum oder doEnum

    • sondern z.B. isBestellwert

  • Die Namen der Enum-Werte werden aus den Symbolen abgeleitet

    • nicht mehr $001, $002, $003, …​

    • sondern z.B. $KLEINER2000, $20007500, …​

  • Ein zusätzlicher Trace-Code wird NACH jeder Regelausführung aufgerufen

// *** WARNING: DO NOT MODIFY *** This is a generated Java source code!
//
// Generated by LF-ET 2.4.1 (260219a), https://www.lohrfink.de/lfet
// From decision table
// "/src/main/resources/lfet/demo/Rechnungsbetrag.lfet"
// 24.02.2026 14:44
//

// Prolog Standard ---->
// profile LFET.Java.Prolog.Standard.Interface.Dt.ini not found
// used LF-ET 2.4.1 (260219a) build in default

package lfet.demo;

import javax.annotation.processing.Generated;

@Generated("LF-ET")
public class Rechnungsbetrag_rulesEngine
{
    public <T> void execute(Rechnungsbetrag_iFace<T> iface, T model)
    {

        // Prolog Standard <----

        if (iface.isBestellwert(Rechnungsbetrag_iFace.Bestellwert.$KLEINER2000, model) /* < 20,00 - gering */)
        {
            // Rule R01 ---->

            iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 1, model);

            iface.doPortoBerechnen(model);
            iface.doRechnungsbetrag_Akt(model);

            iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 1, model);

            // Rule R01 <----
        }
        else if (iface.isBestellwert(Rechnungsbetrag_iFace.Bestellwert.$20007500, model) /* 20,00 - 75,00 - normal */)
        {
            if (iface.isRabatt_Groesser0(model))
            {
                if (iface.isRabattvariante_ProzentualerNachlassAufDenBestellwert(model))
                {
                    // Rule R02 ---->

                    iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 2, model);

                    iface.doRabattBeruecksichtigen(model);
                    iface.doPortoBerechnen(model);
                    iface.doRechnungsbetrag_Akt(model);

                    iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 2, model);

                    // Rule R02 <----
                }
                else // Rabattvariante EUR - fester Betrag, wird von Bestellwert abgezogen
                {
                    if (iface.isRabattKleinerBestellwert(model))
                    {
                        // Rule R03 ---->

                        iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 3, model);

                        iface.doRabattBeruecksichtigen(model);
                        iface.doPortoBerechnen(model);
                        iface.doRechnungsbetrag_Akt(model);

                        iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 3, model);

                        // Rule R03 <----
                    }
                    else // Rabatt < Bestellwert N - Nein
                    {
                        // Rule R04 ---->

                        iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 4, model);

                        iface.doPortoBerechnen(model);
                        iface.doRechnungsbetrag_Akt(model);

                        iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 4, model);

                        // Rule R04 <----
                    }
                }
            }
            else // Rabatt ohne - es wurde kein Rabatt erfasst
            {
                // Rule R05 ---->

                iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 5, model);

                iface.doPortoBerechnen(model);
                iface.doRechnungsbetrag_Akt(model);

                iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 5, model);

                // Rule R05 <----
            }
        }
        else // Bestellwert > 75,00 - hoch
        {
            if (iface.isRabatt_Groesser0(model))
            {
                // Rule R06 ---->

                iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 6, model);

                iface.doRabattBeruecksichtigen(model);
                iface.doRechnungsbetrag_Akt(model);

                iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 6, model);

                // Rule R06 <----
            }
            else // Rabatt ohne - es wurde kein Rabatt erfasst
            {
                // Rule R07 ---->

                iface.doTrace("Rechnungsbetrag", "20260224.144415", 7, 7, model);

                iface.doRechnungsbetrag_Uebern(model);

                iface.doTraceAfterRule("Rechnungsbetrag", "20260224.144415", 7, 7, model);

                // Rule R07 <----
            }
        }

        // Epilog Standard ---->
        // profile LFET.Java.Epilog.Standard.Interface.Dt.ini not found
        // used LF-ET 2.4.1 (260219a) build in default

    }
}

// Epilog Standard <----

// End of generated Java source code
// Generated by LF-ET 2.4.1 (260219a), https://www.lohrfink.de/lfet