Ansicht
Dokumentation

CL_EXM_IM_RECD_CALC_RULE_DIFF - Differenz Konditionsgruppen (z. B. Garantiemiete)

CL_EXM_IM_RECD_CALC_RULE_DIFF - Differenz Konditionsgruppen (z. B. Garantiemiete)

ABAP Short Reference   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Differenzberechnungsmethode

Funktionalität

Die Klasse liefert eine Berechnungsmethode, welche den Differenzbetrag von zwei verschiedenen Konditionsgruppen berechnet. Diese Differenzberechnung findet in der Praxis zum Beispiel bei der Garantiemiete statt.

Hierbei werden die Konditionsbeträge der zweiten Konditionsgruppe von der ersten Konditionsgruppe in der jeweiligen Zeitabhängigkeit der Konditionen voneinander subtrahiert.

Beispiel:

  • Summe Konditionsgruppe 1: 3750,00 (Garantierte Miete)
  • Summe Konditionsgruppe 2: 2568,50 (Buchmiete)
  • Ergebnis der Berechnung: 1181,50 (Vom Garantiegeber zu zahlender Restbetrag)

Sollte die Summe der zweiten Konditionsgruppe größer sein als die Summe der ersten Konditionsgruppe, so wird als Ergebnis der Wert '0' zurückgegeben.

Beispiel:

  • Summe Konditionsgruppe 1: 2325,00 (Garantierte Miete)
  • Summe Konditionsgruppe 2: 3695,00 (Buchmiete)
  • Ergebnis der Berechnung: 0,00(Vom Garantiegeber zu zahlender Restbetrag)

Die Differenz wird zeitabhängig berechnet, d. h. in der Ergebnistabelle gibt es zu jedem Zeitpunkt, zu dem sich eine Kondition aus Konditionsgruppe 1 oder 2 ändert, eine neue Zeile.

Beziehungen

Beispiel

Aufbau des Beispiels: : <Gültig ab> - =

Beispiel 1: Fixe Garantiemiete, wechselnde Grundmiete

  • Konditionsgruppe 1:
  • Kondition 1: 01.01.2001 - 31.12.2006 = 3500,00 (Garantiemiete)

  • Konditionsgruppe 2:
  • Kondition 1: 01.05.2001 - 31.12.2005 = 3000,00 (Grundmiete)

  • Kondition 1: 01.02.2006 - 31.12.2008 = 4000,00 (Grundmiete)

  • Ergebnis:
  • 01.01.2001 - 30.04.2001 = 3500,00 (volle Garantiemiete)

  • 01.05.2001 - 31.12.2005 = 500,00 (Differenz Garantiemiete - Grundmiete)

  • 01.01.2006 - 31.01.2006 = 3500,00 (volle Garantiemiete)

  • 01.02.2006 - Unbefristet = 0,00
    (Grundmiete bis 31.12.2006 größer als Garantiemiete, danach ist Garantiemiete 0,00).

Beispiel 2: Garantiemiete und Buchmiete mit wechselnden Werten

  • Konditionsgruppe 1:
  • Kondition 1: 01.01.2006 - 31.12.2006 = 3500,00

  • Kondition 2: 01.03.2006 - 30.04.2006 = 1000,00

  • Kondition 2: 01.07.2006 - 31.12.2008 = 2000,00

  • Konditionsgruppe 2:
  • Kondition 1: 01.01.2005 - 30.06.2006 = 4000,00

  • Kondition 1: 01.08.2006 - 31.12.2008 = 2500,00

  • Ergebnis:
  • 01.01.2006 - 28.02.2006 = 0,00

  • 01.03.2006 - 30.04.2006 = 500,00

  • 01.05.2006 - 30.06.2006 = 0,00

  • 01.07.2006 - 31.07.2006 = 5500,00

  • 01.08.2006 - 31.12.2006 = 3000,00

  • 01.01.2007 - 31.12.2008 = 0,00

Hinweise

Wie das zweite Beispiel zeigt, beginnt die Berechnung der Werte immer beim Gültig-Ab-Datum der 1. Konditionsgruppe (also ab dem Tag, zu dem die Garantiemiete vereinbart ist).

Einrichten der Berechnungsvorschrift

  • Definieren Sie im Customizing eine externe Berechnungsvorschrift, die die interne Vorschrift 1000 - BAdI-Berechnung verwendet. Je nachdem, ob die Konditionsgruppen im Vertrag geändert werden sollen oder nicht, verwenden Sie die externe Methode ZDF (Differenz ohne Parameter, Wert der Konstante ist MC_CUST_CALC_RULE_DIFF_FIX) oder ZDFP (MC_CUST_CALC_RULE_DIFF_PARA). Sie können die Methode anders benennen
    und müssen dann lediglich den Wert der Konstante in der implementierenden Klasse Ihrer BAdI-Implementierung austauschen.
  • Kopieren Sie diese Beispielimplementierung (Klasse CL_EXM_IM_RECD_CALC_RULE_DIFF) in eine eigene Klasse im Kundennamensraum, passen Sie ggf. die Konstanten an (s. u.) und aktivieren Sie diese Beispielimplementierung im BAdI
    BADI_RECD_CALC_RULE.
    I. d. R. werden Sie nur eine der beiden Berechnungsvorschriften implementieren - die andere dient nur zur Demonstration der Möglichkeiten des BAdIs.

Technische Informationen

Implementierte Berechnungsvorschriften:

Zur Demonstration der BAdI-Methoden wurden zwei Berechnungsvorschriften mit der gleichen Funktionsweise implementiert.
Die erste Methode 'ZDFP' erlaubt die Eingabe der Konditionsgruppen, deren Differenz ermittelt werden soll. Dies kann entweder bei der Definition der externen Berechnungsmethode oder direkt bei der Bearbeitung des Vertrages auf dem Konditionsbild geschehen.
Bei der zweiten Methode 'ZDF' sind die Schlüssel der Konditionsgruppen hart codiert. Zur Verwendung dieser Methode müssen Sie die Konstanten in Ihrer Beispielklasse entsprechend umbenennen (s. u.).

Anpassung der Implementierung an das eigene Customizing:

Die Attribute der Klasse haben folgende Bedeutung:

MC_CUST_CALC_RULE_DIFF_PARA: Wert für die externe Berechnungsvorschrift mit Parametern auf dem Dynpro.
MC_CUST_CALC_RULE_DIFF_FIX: Wert für die externe Berechnungsvorschrift ohne Parameter. Hierfür müssen die beiden nachfolgenden Attribute gefüllt sein.
MC_CUST_COND_GROUP1 Wert für die erste Konditionsgruppe (Minuend)
MC_CUST_COND_GROUP2 Wert für die zweite Konditionsgruppe (Subtrahend)

Info: Gerechnet wird Minuend (Gruppe 1) minus Subtrahend (Gruppe 2). Im Anwendungsbeispiel ist Gruppe 1 also die Garantiemiete (statistisch) und Gruppe 2 die Buchmiete.

Anpassen an andere Bedürfnisse:
Das Grundgerüst der Berechnungsmethode bietet sich immer dann an, wenn der Wert der resultierenden Kondition von ein oder zwei anderen Werten, die als Summe von Werten in Konditionsgruppen darstellbar sind, abhängt.
In der Beispielimplementierung wird davon ausgegangen, dass die erste Konditionsgruppe statistische Konditionen enthält und die zweite Konditionsgruppe periodische Buchkonditionen. Nur diese werden berücksichtigt.
Für die Anpassung an andere Belange kann der Aufruf des APIs API_RE_CD_GET_TOTALS_BY_GROUP entsprechend angepasst werden.

Weiterführende Informationen






Addresses (Business Address Services)   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8150 Date: 20240427 Time: 012539     sap01-206 ( 90 ms )