Best Practices für das Entwerfen von Geschäftsregeln

Schlecht formulierte Regeln haben erhebliche Auswirkungen auf alle Aspekte einer Anwendung. Nachfolgend finden Sie einige Best Practices zum Entwerfen Ihrer Geschäftsregeln. Durch das Befolgen empfohlener Best Practices können deutliche Performancevorteile erzielt werden.

Befolgen Sie diese grundlegenden Richtlinien zum Entwerfen von Geschäftsregeln.

Top 10 der Best Practices für Regeln

Befolgen Sie diese empfohlenen Best Practices beim Entwerfen Ihrer Geschäftsregeln. Diese Richtlinien können zu deutlichen Performancevorteilen führen, da schlecht geschriebene Regeln erhebliche Auswirkungen auf alle Aspekte einer Anwendung haben.

  1. Befolgen Sie diese Richtlinien für SET-Befehle:

    • SET CREATEBLOCKONEQ ON und SET CREATENONMISSINGBLK ON nicht am Anfang der Regel verwenden.
    • Keine administrativen Befehl wie diese in Endbenutzerregeln verwenden, da sie eine Neustrukturierung erfordern.
      SET CLEARBLOCK
                        EMPTY 
    • Regeln mit SET CALCTASKDIMS vermeiden oder vorab testen. (Dies erfolgt in Oracle Essbase in der Regel automatisch.)
    • Die Regel zum Kopieren von Daten muss Folgendes enthalten, um das Kopieren leerer Blöcke in der FIX-Anweisung zu vermeiden.
      SET COPYMISSINGBLOCK
                        OFF 
  2. Die Blockerstellung muss entweder mit dem DataCopy-Befehl oder durch die Zuweisung einer Sparse-Dimension erfolgen. Die Funktionen @createblockoneq und @createblock sollten in einer begrenzten FIX-Anweisung nur als letzter Ausweg verwendet werden.

  3. Vermeiden Sie fehlende Dimensionsreferenzen in einer FIX-Anweisung (z.B. in einer Regel zum Kopieren von Daten). Dies kann die Verarbeitungszeit verlängern, die Anzahl der Konflikte erhöhen und unnötige Blöcke auf allen Ebenen der fehlenden Dimensionen erzeugen.

  4. Entfernen Sie parallele Berechnungen aus Geschäftsregeln, denen Formulare zugeordnet sind. CALC PARALLEL oder FIX PARALLEL darf nur in administrativen Regeln oder Batchregeln verwendet werden.

  5. Erstellen Sie keine unnötigen Nullen, da sie zu Block- und Datenexplosion führen. Überprüfen Sie Geschäftslogik sorgfältig, und fügen Sie erforderliche IF-Bedingungen zum Prüfen auf Nullen hinzu. Konvertieren Sie Nullen in #missing.

  6. Eliminieren Sie mehrere Durchgänge durch dieselben Blöcke. Legen Sie stattdessen eine geeignete OUTER FIX-Anweisung fest, die Sie nach Bedarf hinzufügen oder entfernen. Kombinieren Sie IF-Anweisungen, anstatt IF-Anweisungen in denselben Schnittmengen mehrmals zu verwenden.

  7. Vermeiden Sie dimensionsübergreifende Referenzen auf der linken Seite einer Gleichung. Dies wirkt sich auf die Performance aus.

  8. Aggregieren Sie Dimensionen im Skript absteigend von der größten bis zur kleinsten Anzahl erstellter Blöcke. Beispiel: Agg (Dimension mit den meisten Blöcken, Dimension mit den zweitmeisten Blöcken, Dimension mit den drittmeisten Blöcken). "Agg" ist ein bevorzugter Aggregationsmechanismus und schneller als "Calc Dim". Die Aggregation mit @ancestors in Endbenutzerregeln bis zur obersten Ebene der Dimension kann zu Blockkonflikten führen.

  9. Verwenden Sie Laufzeitprompts, anstatt mehrere Regeln mit der gleichen zugrunde liegenden Logik zu erstellen. Mehr Regeln erfordern mehr Wartungsaufwand.

  10. Verwenden Sie Vorlagen, um die Geschäftslogik zu untergliedern und wiederverwendbar zu machen. Vorlagen dürfen jedoch keine voll funktionsfähigen Regeln mit FIX und ENDFIX sein. Die Regel, die verschiedene Vorlagen kombiniert, muss eine gültige OUTER FIX-Anweisung aufweisen und nach Bedarf zu kleineren Teilen hinzugefügt oder daraus entfernt werden.

Geschäftslogik mit Berechnungen hinzufügen

Um Ihre Geschäftslogik in Ihre Anwendung zu integrieren, können Sie mit Calculation Manager Berechnungen erstellen. Auf diese Weise können Sie anspruchsvolle Berechnungen erstellen, validieren, bereitstellen und verwalten, mit denen Geschäftsprobleme gelöst werden können.

Normalerweise erstellen Sie Geschäftsregeln und -regelsets, um folgende Aktionen auszuführen:

  • Ertragsmodellierung ausführen

  • Aufwandsmodellierung ausführen

  • KPIs berechnen

  • Umlagen durchführen

Calculation Manager enthält die folgenden Objekte:

  • Regeln: Enthalten Komponenten und Vorlagen

  • Komponenten: Unterstützen Sie beim Erstellen von Regeln

  • Regelsets: Enthalten Regeln, die gleichzeitig oder nacheinander berechnet werden können

  • Vorlagen: Enthalten Systemvorlagen zum Ausführen von Berechnungen und angepasste Vorlagen, die von Administratoren erstellt werden können

  • Komponenten: Unterstützen Sie beim Erstellen von Regeln

Weitere Informationen zum Erstellen von Berechnungen enthalten die Richtlinien in der Dokumentation Mit Calculation Manager für Oracle Enterprise Performance Management Cloud entwerfen.

Aggregationen erstellen

Aggregationen fassen Ihre Anwendung in Übersichtselementen in der Dimension zusammen, z.B. in Entity oder einer anderen Sparse-Dimension.

Calculation Manager enthält Vorlagen, die Sie beim Erstellen von Aggregationen unterstützen. Hier finden Sie einige Vorschläge dazu, wie Sie Vorlagen verwenden können.

Point of View einrichten

Wenn der Point of View festgelegt ist, wird die Regel nur für die ausgewählten Elemente ausgeführt. Die Verwendung von Runtime Prompts für die Dimensionen ermöglicht es Benutzern, Elementwerte für diese Dimensionen anzugeben, wenn sie die Regel starten. Auf diese Weise können Benutzer die Regel mehrmals für unterschiedliche Jahre, Szenarios und Versionen starten, ohne die Regel in Calculation Manager ändern zu müssen.

Standardeinstellungen:

  • Vollständige Aggregation von Dense-Dimensionen: Füllen Sie diesen Abschnitt aus, wenn übergeordnete Werte in Ihren Dense-Dimensionen nicht auf "Dynamische Berechnung" gesetzt sind. Diese Registerkarte bleibt in der Regel leer.

  • Vollständige Aggregation von Sparse-Dimensionen: Wählen Sie die zu aggregierende Sparse-Dimension aus. Die Reihenfolge der ausgewählten Dimensionen ist nicht relevant.

  • Teilweise Aggregation von Dense-Dimensionen: Füllen Sie diesen Abschnitt aus, wenn übergeordnete Werte in Ihren Dense-Dimensionen nicht auf "Dynamische Berechnung" gesetzt sind. Diese Registerkarte bleibt in der Regel leer.

  • Daten bis zur lokalen Währung aggregieren: Nein

  • Fehlende Werte in der Datenbank aggregieren: Ja

  • Berechnung für Sparse-Dimension optimieren: Aus

  • Wert für Berechnungscache auswählen: Standard

  • Möchten Sie den Debugging-Modus für diesen Assistenten aktivieren?: Debugging-Assistent AKTIVIERT oder Debugging-Assistent DEAKTIVIERT. Wählen Sie "Debugging-Assistent AKTIVIERT" aus, um ein Script generieren zu lassen, das Auswahlmöglichkeiten für einige der Design Time Prompts in dieser Vorlage enthält.

Best Practices:

  • Verwenden Sie Runtime Prompts für Elemente wie Entity, Scenario und Version. Dadurch wird Ihre Regel dynamisch und kann basierend auf Benutzereingaben ausgeführt werden.

  • In der Regel müssen Dense-Dimensionen wie "Account" und "Period" nicht aggregiert werden. Wenn dies der Fall ist, können Sie übergeordnete Elemente auf "Dynamische Berechnung" setzen. Wenn Sie jedoch Elementformulare auf Dense-Dimensionen haben und diese nicht auf "Dynamische Berechnung" gesetzt sind, ist eine CALC DIM-Regel erforderlich.

Detaillierte Berechnungen erstellen

Verwenden Sie Calculation Manager, um Berechnungen zu erstellen, zu validieren, bereitzustellen und zu verwalten, mit denen Geschäftsprobleme gelöst werden können.

Es gibt drei Arten von Objekten, die in Calculation Manager berechnet werden können:

  • Regelsets: Enthalten Regeln, die gleichzeitig oder nacheinander berechnet werden können

  • Regeln: Enthalten Komponenten und Vorlagen

  • Komponenten: Enthält Formelkomponenten, Skriptkomponenten, Bedingungskomponenten und Komponenten vom Typ "Feste Schleife"

Best Practices:

  • Stellen Sie beim Erstellen Ihrer Regeln zunächst sicher, dass Sie die Geschäftslogik verstehen und wissen, für welche Entitys oder Abteilungen die Regel gilt. Sie sollten z.B. wissen, welche Konten zur Regel gehören.

  • Vergewissern Sie sich, dass Sie die Quell- und die Zielkonten kennen.

  • Wenn Sie die Treiber der Berechnung vollständig verstanden haben, verwenden Sie die entsprechende Objektkomponente oder Vorlage, um die Regel zu erstellen. Die Komponenten und Vorlagen vereinfachen die Elementauswahl und unterstützen so die Implementierung der Regeln.

  • Durch die Verwendung von Runtime Prompts für Elemente, wie z.B. Elemente der Entity-, Scenario- und Version-Dimension, können Ihre Regeln dynamisch und basierend auf Benutzereingaben ausgeführt werden.

Calculation Manager-Diagnose

Ausführungsfehler und Warnungen vor dem Bereitstellen von Regeln. Die bereitgestellten Informationen beinhalten Folgendes:

  • Die Anzahl der Durchgänge durch die Datenbank
  • Alle erforderlichen Warnungen
  • Informationen zur Anzahl der Blöcke und gegebenenfalls zu fehlenden Dimensionen
  • Alle Regeln, die optimiert werden müssen
  • Wenn mindestens eine Komponente auf der rechten Seite der Gleichung eine Null enthält, ist das abgeleitete Element 0. Nach der Aggregation sind viele Nullen vorhanden.
  • Um dieses Problem zu beheben, muss die Regel die IF-Anweisung if (<q>Earned Premium</q><>0) enthalten. Dadurch haben Nullen in der Anwendung keine große Bedeutung.

Beispielregeln für Probleme bei Regeln und Lösungen

Beispiel 1: Regel mit mehreren Durchgängen durch die Datenbank

Die folgende Regel führt 10 Durchgänge durch die Datenbank für Jahre, Periode, Währung und Konten aus.

Beispielregel - Mehrere Durchgänge durch die Datenbank

Beispiel 2: Regel mit nur einem Durchgang durch die Datenbank

Die folgende Regel führt nur einen Durchgang durch die Datenbank aus. Dadurch sind wesentlich weniger Zellen betroffen.

Geänderte Regel - Nur ein Durchgang durch die Datenbank

Beispiel 3: Regel, die Nullen kopiert und erstellt

Wenn in dieser Regel mindestens eine Komponente auf der rechten Seiten der Gleichung eine Null enthält, ist das abgeleitete Element 0. Nach der Aggregation sind viele Nullen vorhanden. Um dieses Problem zu beheben, muss die Regel die IF-Anweisung if ("Earned Premium"<>0) enthalten. Dadurch haben Nullen in der Anwendung keine große Bedeutung.

Beispiel für eine Regel, die Nullen kopiert und erstellt.

Beispiel 4: Nullen aus BSO-Cubes entfernen

Die folgende Formel ergibt den ursprünglichen Wert. Bei 0 wird der Wert in "#missing" geändert.

"DenseMbr" = "DenseMbr" * "DenseMbr"/"DenseMbr";

"SparseMbr" = "SparseMbr" * "SparseMbr"/"SparseMbr";

Um dieses Problem zu beheben, erstellen Sie eine Regel, die die Formel nutzt. Verwenden Sie eine Sparse-Dimension mit möglichst wenig Elementen (z.B. eine Year-, Scenario- oder Version-Dimension), da die Berechnung für jedes Element durchgeführt werden muss.

Fix(idescendants(Entity),@levmbrs(Accounts,0),@levmbrs(Period,0),@idescendants(Custom dimensions),
@levmbrs(Years,0),@levmbrs(Versions))
Actual=Actual*Actual/Actual;
   Fix("Actual")
      CLEARBLOCK EMPTY:
   Endfix
Endfix

Denken Sie daran, anschließend neu zu strukturieren. Andernfalls werden die leeren Blöcke nicht gelöscht.