Show TOC
Besondere
Berechnungsvorschriften
In diesem Abschnitt können Sie individuelle
Berechnungsvorschriften zu einem oder mehreren Mietspiegeln
definieren,
- anhand mathematischer Formeln (Bedingungen)
und Variablen und
- ohne den ABAP-Programmcode zu
benutzen.
Ausführliche
Dokumentation (mit Beispielen)
Dokumentation
zur individuellen Steuerung der Mietanpassung nach der
Mietspiegel-Steuerungstabelle
-----------------------------------------------------------------------
Gliederung -
Überblick
1.
Motivation
2.
Grundprinzip
3.
Variablenkategorien
4.
Protokollierung
5.
Kommentierung
6. Übersicht
Systemvariablen
7. Definition
eigener Variablen
8.
Makros
9.
Besonderheiten
10.
Mietberechnung
a)
Basismiete
b) Relative
Zu-/Abschläge
c)
Zu-/Abschläge von Ausstattungsmerkmalen
d)
Resultierende Miete
11. Tips &
Tricks
12.
Beispiele
a) Mietspiegel
mit Wohnwertvorzeichen
b) Weitere
Beispiele
------------------------------------------------------------------------
Motivation
Der Mietspiegel, also die von einer Stadt oder
Gemeinde herausgegebene Übersicht der in einer Region gezahlten Mieten, gilt
als die wesentliche Richtschnur bei Neuvermietungen, Mietanpassungen und
Mietstreitigkeiten, so daß ihm innerhalb der
Mietanpassungs-/berechnungskomponente eine zentrale Bedeutung
zukommt.
Das Grundprinzip der Mietspiegel ist stets
gleich: Zunächst wird die Wohnung anhand von maximal vier zentralen Attributen
(Größe, Lage, Baualter, Ausstattung) in eine Kategorie (das sogenannte
Mietspiegelfach) eingeordnet, zu der die ortsübliche Mietspanne statistisch
ermittelt wurde. Diese grobe Mietzinsvorgabe wird nachfolgend anhand diverser
weiterer Kriterien nach unten oder oben korrigiert.
Während die ortsüblichen Vergleichsmieten stets
in Form einer Matrix abgebildet werden können, sind die Vorschriften, wie
diese Verfeinerung auszuführen ist, von Mietspiegel zu Mietspiegel sehr
unterschiedlich. Im allgemeinen käme nun ein User-Exit zum Einsatz, der die
nötigen Eingaben vom System bekommt und in dem die im Mietspiegel textuell
beschriebenen Berechnungsvorschriften in ABAP/4 codiert werden müßten. Der
großen Flexibilität dieser Lösung steht jedoch der hohe Aufwand entgegen, sich
in die Ablauflogik und die Datenstrukturen des Anpassungsprogramms einarbeiten
zu müssen.
Daher wurde ein anderer Weg verfolgt, um diese
Vorschriften ohne Programmkenntnisse im Customizing hinterlegen zu können und
dennoch die Flexibilität nicht wesentlich zu beschränken.
Grundprinzip
Die Berechnungsvorschriften des Mietspiegels
werden im System in Form von Bedingungen und Aktionen abgebildet. Eine
Bedingung beschreibt, wann ein bestimmter Sachverhalt erfüllt ist, und eine
Aktion, was in diesem Fall zu tun ist.
- Eine Bedingung ist eine mathematische Formel,
in der vom System bereitgestellte Variablen mit arithmetischen und logischen
Operatoren verknüpft werden. Sie muß so aufgebaut sein, daß sie immer ein
boolesches Ergegnis liefert (d.h. also Wahr oder Falsch ist).
Sei bspw. die
Baualtersklasse in der Variablen BAKL und die Größenklassein der Variablen
GRKL hinterlegt, so könnte eine Bedingung BAKL = 1 AND GRKL > 3 lauten
(erfüllt, falls die Baualtersklasse der betrachteten Wohnung gleich eins und
die Größenklasse größer drei ist).
- Eine Aktion ist ein Paar aus einer Variablen
und einer Formel, wobei die Formel einen beliebigen Wert (Zahl, Zeichenkette,
Boolean-Wert) haben darf, der bei ihrer Ausführung der Variablen zugewiesen
wird. So würde etwa die Aktion <GRKL, GRKL + 1> die Größenklasse um eins
erhöhen. Der einfachste Fall einer Formel ist die Zuweisung einer Konstanten
an eine Variable. Sei bspw. die Bezeichnung des Mietspiegelfachs in der
Variablen MATT abgelegt, so würde die Aktion <MATT,Grosser Altbau> diese
Variable auf den gegebenen Text setzen.
Eine Bedingung wird mit beliebig vielen
Aktionen zu einem Block zusammengefaßt. Ist die Bedingung des Blocks erfüllt,
werden alle seine Aktionen nacheinander ausgeführt.
Jedem Mietspiegel kann eine beliebige Anzahl
von Blöcken zugeordnet werden, die bei einer Mietanpassung für jede
anzupassende Mieteinheit bzw. jeden anzupassenden Mietvertrag nacheinander
abgearbeitet werden.
Die Reihenfolge der Blöcke wird durch eine frei
vergebbare Blocknummer, die Reihenfolge der Aktionen innerhalb eines Blockes
durch eine ebenfalls frei vergebbare blockinterne Zeilennummer festgelegt.
Unabhängig davon, welche (und ob überhaupt) der Bedingung eine Zeilennummer
zugeordnet wurde, wird sie immer zuerst geprüft.
Variablenkategorien
Die vom System bereitgestellten Variablen
können in drei Kategorien eingeteilt werden:
- Steuervariablen sind Variablen, mit denen der
sonst sequentielle Ablauf geändert werden kann. Indem sie in einer Aktion
geändert werden, können Blöcke übersprungen, Schleifen programmiert oder gar
auf einen anderen Mietspiegel übergegangen werden.
- Hilfsvariablen können vom Benutzer dazu
verwendet werden, Zwischenergebnisse zu speichern. Ihr Wert wird vom System
bei der Berechnung der neuen Miete nicht verwendet. Werden mehr als die vom
System angebotenen Hilfsvariablen benötigt, so können diese nach einer
Reinitialisierung (= Zuweisung eines definierten Startwertes) erneut verwendet
werden.
- Anwendungsvariablen sind alle übrigen
Variablen. Sie fließen direkt oder indirekt in die Ermittlung der neue Miete
ein.
Die Werte eines Teils der Anwendungsvariablen
sind nur abhängig von der Mieteinheit (wie z.B. die Wohnungsgröße) und evtl.
noch vom verwendeten Mietspiegel (wie etwa die aus der Wohnungsgröße
abgeleitete Größenklasse). Der andere Teil der Anwendungsvariablen
repräsentiert die Attribute der Ausstattungsmerkmale, d.h. ihre Werte sind
immer von einem Ausstattungsmerkmal abhängig. Da eine Mieteinheit aber i.a.
mehrere solcher Merkmale besitzt, muß ein Block, in dessen Bedingung und/oder
Aktionen solche Variablen verwendet werden, für alle Ausstattungsmerkmale
nacheinander abgearbeitet werden. Diese Schleife wird vom System automatisch
um den Block gelegt und muß nicht programmiert werden.
Beispiel:
Alle
Ausstattungsmerkmale einer Wohnung, die zwar im Mietspiegel berücksichtigt
sind, aber mit weniger als 0,10 DM/m² bewertet wurden, sollen ignoriert
werden. Die Anzahl dieser Merkmale soll (für spätere Berechnungen) gezählt
werden. Dies wäre durch folgenden Block realisierbar:
BlockNr |
ZeilenNr |
Variable |
Formel |
|
0010 |
010 |
|
MIMS AND MRES < 0.10 |
|
0010 |
020 |
MIGN |
TRUE |
|
0010 |
030 |
XN01 |
XN01 + 1 |
|
Bedeutung der
Variablen (vollständige Übersicht siehe Kapitel Übersicht
Systemvariablen):
- MIMS: Merkmal ist im Mietspiegel
aufgeführt
- MRES: Wert, mit dem das Merkmal bei der
Mietberechnung berücksichtigt wird
- MIGN: Merkmal bei Berechnung
ignorieren
- XN01: Numerische Hilfsvariable
Protokollierung
Jeder Zeile der Steuerungstabelle kann durch
Angabe einer Nachrichtenklasse, -nummer und -typ (Info, Warnung, Fehler etc.)
eine Nachricht zugeordnet werden. Wird eine Zeile ausgewertet, wird ihre
Nachricht auf der Trace-Ebene (= Stufe 6) in das Mietanpassungsprotokoll
geschrieben. Diese Nachrichten erlauben, die in den Formeln mathematisch
codierten Bedingungen und Aktionen natürlichsprachig zu beschreiben. Die vier
Nachrichtenvariablen sind folgenderweise belegt und können in den
Nachrichtentext (falls gewünscht) eingearbeitet werden:
- V1 = Identifikation der Zeile
(Mietspiegel-ID/Blocknummer/Zeilennummer)
- V2 = Bezeichnung der Variablen (leer bei einer
Bedingung)
- V3 = Wert der Formel (Wahr und Falsch werden
als "X" bzw. "o" dargestellt)
- V4 = Bezeichnung des
Ausstattungsmerkmals
V4 ist nur dann belegt, wenn im Block Variablen
verwendet werden, die Attribute von Ausstattungsmerkmalen sind.
Wird in den Stammdaten des Mietspiegels das
Flag .Defaultkommentierung gesetzt, wird bei der Abarbeitung jeder Zeile
temporär eine Standardnachricht zugeordnet. Dies erlaubt, den Rechenweg im
Protokoll nachvollziehen zu können, ohne erst individuelle Nachrichten
hinterlegen zu müssen.
Kommentierung
Während durch Zuordnung von Nachrichten der
Rechenweg im Protokoll aufgezeichnet wird, kann auch die Steuerungstabelle
selbst kommentiert werden. Hierzu ist in die Formel einer Zeile der Kommentar
zu schreiben und ihr Kommentarflag zu setzen. Zeilen mit gesetztem
Kommentarflag werden vom System bei der Abarbeitung als nicht vorhanden
angesehen.
Übersicht
Systemvariablen
Das System stellt die folgenden Variablen
bereit:
Key |
Name Typ |
Beschreibung |
SMSPID |
MSID C |
Mietspiegel(MSP)-Identifikation |
SLINNO |
BLNR N |
Nummer des nächsten abzuarbeitenden Blocks |
BUKRSA |
BUKR C |
Buchungskreis |
CLSAGE |
BAKL N |
Baualtersklasse |
CLSFAF |
AUKL N |
Ausstattungsklasse |
CLSLOC |
LAKL N |
Lageklasse |
CLSIZE |
GRKL N |
Größenklasse |
ADJDAT |
DANP N |
Gültig-Ab-Datum der Anpassung |
MATVLO |
MATU P |
Unterwert des Mietspiegelfachs |
MATVMI |
MATM P |
Mittelwert des Mietspiegelfachs |
MATVHI |
MATO P |
Oberwert des Mietspiegelfachs |
MATBAS |
MATB P |
Basiswert (aus M1/2/3 + Angaben auf ME und MSP) |
MATTXT |
MATT C |
Bezeichnung des Mietspiegelfachs |
AGEREV |
BJHR N |
Baujahr |
SIZERV |
WOFL P |
Wohnfläche |
RELBAS |
RZBS C |
Festlegung der Basis für relativen Zuschlag |
SKOART |
KART |
Angepaßte Konditionsart |
ADDABS |
ZABS P |
Zuschlagsbetrag absolut |
ADDREL |
ZREL P |
Zuschlagsbetrag relativ |
OPCVAL |
BTRK P |
Aktuell gezahlte BK/FE (aus ME- / MV-Konditionen) |
FAFKEY |
MMKL N |
Ausstattungsmerkmals-ID |
FAFCLS |
MMKL N |
Klasse des Ausstattungsmerkmals |
FAFDAT |
MDAT N |
Gültig-Ab-Datum eines Ausstattungsmerkmals |
FAFVMS |
MBMS P |
Merkmalsbetrag aus Mietspiegel |
FAFVME |
MBME P |
Merkmalsbetrag aus Mieteinheit |
FAFNCL |
MKPK N |
Anzahl von Merkmalen in der Klasse |
FAFUSE |
MIMS B |
Merkmal ist im Mietspiegel aufgeführt |
FAFREL |
MREL P |
Merkmalswert proz. aus MSP (Bezug MATB) |
FAFABS |
MRES P |
Merkmalsbetrag absolut/FE (Wert für neue Miete) |
FAFWCL |
MKLW P |
Merkmalsklassengewicht (Berliner Mietspiegel) |
FAFSGN |
WWVZ P |
Wohnwertvorzeichen .+1/0/-1 (Berliner MSP) |
FAFIGN |
MIGN B |
Merkmal bei Mietberechnung ignorieren |
NCOUSR |
NMIE P |
Neue Miete/FE (änderbar, wenn initial -> NCOSYS) |
NCOSYS |
NMSY P |
Neue Miete/FE (abgeleitet restlichen Parametern) |
XBOOLx |
XB0x B |
Hilfsvariablen x = 1..5 |
XNUMCx |
XN0x N |
Hilfsvariablen (Ganze Zahlen), x = 1..5 |
XREALx |
XR0x P |
Hilfsvariablen (Dezimalzahlen), x = 1..9 |
XCHARx |
XC0x C |
Hilfsvariablen, x = 1..5 |
Typangaben:
- N = Numerisch (ganze nicht-negative
Zahlen)
- P = Numerisch (Dezimalzahlen)
Definition
eigener Variablen
Das System berechnet die neue Miete aus einem
Teil der Anwendungsvariablen (s. Kapitel 9), die vorher durch die Aktionen
beliebig verändert werden können. Nun kann es allerdings sein, daß der
Rechenweg abhängig von Daten ist, die in den Variablen defaultmäßig nicht zur
Verfügung gestellt werden
So könnte ein Mietspiegel fordern, die
Merkmalsbeträge geringer zu gewichten, falls die Wohnung höher als im 5. Stock
liegt. Das Stockwerk steht aber defaultmäßig nicht zur Verfügung.
In diesem Fall können kundendefinierte
Variablen angelegt werden, die genauso wie die vom System bereitgestellten
benutzt werden können. Hierzu ist folgenderweise vorzugehen:
1. Variable in
Steuertabelle eintragen: Wählen Sie die Aktion Variablen zur
Steuertabelle
Der technische
(sprachunabhängige) Name der Variable sowie ihr Typ (Bool, Num, Char, etc.)
ist im Kundennamensraum einzutragen (Anfangsbuchstabe Y oder Z).
2. In der
Tabelle ist das (sprachabhängige) Kürzel sowie die Bezeichnung der Variablen
(Kurz- und Langtext) zu pflegen. Da das Kürzel als Schlüssel fungiert, muß es
ebenfalls aus dem Kundennamensraum stammen.
3. Wenn das
System bei der Abarbeitung der Steuerungstabelle eine Formel auswertet, ruft
es für im Kundennamensraum liegende Variablen einen im Customizing
hinterlegten Funktionsbaustein (User-Exit) auf. Diesem Baustein wird der
(technische) Name der Variablen, die Stammdaten der relevanten Objekte
(Mieteinheit, Wirtschaftseinheit, Gebäude), die aktuelle
Systemvariablenbelegung sowie die Daten aller Ausstattungsmerkmale übergeben.
Er kann nun ggf. beliebig weitere Tabellen lesen und muß dann einen Wert
zurückliefern, der als Wert der Kundenvariablen interpretiert wird. Bei diesem
User-Exit handelt es sich um einen BTE (siehe auch:
Business Transaction Event verwenden ) mit der Ereignisnummer
00702501. Ein Beispiel-Funktionsbaustein wird unter dem Namen
SAMPLE_PROCESS_00702501 als Kopiervorlage ausgeliefert.
Da eine Kundenvariable also einen
Funktionsaufruf darstellt, ist es nicht möglich, ihr einen Wert zuzuweisen
(ihr Wert wird immer per User-Exit-Aufruf ermittelt).
Makros
Werden in einer Formel häufig bestimmte
Teilausdrücke verwendet, können hierfür parametrisierbare Funktionen (Makros)
definiert werden. Sie werden entweder in der Tabelle TFKT oder in einer
benutzerangelegten, gleich aufgebauten Tabelle abgelegt.
Beispiel1:
In vielen
Bedingungen und/oder Aktionen wird eine Funktion benötigt, die prüft, ob eine
Variable X in einem bestimmten Intervall U bis O liegt. Anstatt nun
immer
X >= U AND X
<= O
zu schreiben, kann
ein Makro "ZWISCHEN" mit drei Parametern definiert werden:
ZWISCHEN = #1 >=
#2 AND #1 <= #3
In einer Formel stände dann nur noch
TFKT:ZWISCHEN(X,U,O)
Beispiel 2:
Durch Verwendung des
IF-THEN-ELSE-Konstrukts (siehe Kapitel 7) können auch komplexere Makros
definiert werden. So liefert folgendes Makro die größere der zwei übergebenen
Zahlen zurück:
MAX = IF #1 > #2
THEN #1 ELSE #2
Makrodefinitionen
können auch rekursiv sein.
Besonderheiten
Bei der Erstellung der Steuerungstabelle sind
folgende Punkte zu beachten:
- Änderung abhängiger Werte:
Die Änderung des
Mietspiegels führt automatisch zur Neuberechnung aller davon abhängigen Werte
(also insbesondere zur neuen Klassifizierung). Die Abarbeitung startet mit dem
ersten Block des Mietspiegels.
Auch wenn nur die
Wohnungsfläche oder das Wohnungsbaualter geändert wird, wird die Größen- bzw.
die Baualtersklasse sowie das Mietspiegelfach neu bestimmt.
Die Neuermittlung
der abhängigen Variablen findet bei Beendigung des aktuellen Blockes statt,
d.h. die neuen Werte sind im nächsten Block verfügbar.
- Sprünge: Durch Änderung der Blocknummer kann
ein Sprung durchgeführt werden. Existiert die angegebene Blocknummer nicht,
endet die Bearbeitung, es sei denn, es wurde die Blocknummer 0 gesetzt. In
diesem Fall wird die Bearbeitung mit dem ersten vorhandenen Block fortgesetzt.
Wird die Blocknummer innerhalb eines Blocks geändert, um den das System
implizit eine Schleife gelegt hat (weil Attribute von Ausstattungsmerkmalen
verwendet werden), wird der Sprung beim ersten Merkmal ausgeführt, das die
Bedingung erfüllt.
Da die Formel als
Zeichenkette abgelegt wird, können Literale (wie "TEXT", 1.50, 002) nicht
typgerecht gespeichert werden. Daher sind
- Dezimalzahlen unabhängig von den Einstellungen
im Benutzerstammsatz immer mit Punkt zu schreiben
- Währungen und Flächen immer mit zwei Stellen
anzugeben (auch wenn die zugeordnete Einheit weniger vorsieht). So ist etwa 5
Lire als 0.05 zu schreiben.
- Datumsangaben in technischer Darstellung zu
schreiben (z.B. 19980701 für den 1. Juli 1998), da sie als "normale" Zahlen
betrachtet werden. Vergleiche sind mit allen Operatoren erlaubt,
Datumsarithmetik (also etwa die Addition von Datumsangaben) ist jedoch nicht
möglich.
- Zeichenketten sind in einfachen
Anführungszeichen zu schreiben. Sie dürfen nur mit .gleich und .ungleich
verglichen werden. Abfragen mit .kleiner und .größer führen zwar nicht zu
einem Fehler, das Ergebnis ist jedoch undefiniert.
- Hilfsvariablen entsprechend dem Typ des
Formelergebnisses zu wählen.
Die Variablen werden
nicht über ihre technischen Namen, sondern über ein frei vergebbares Kürzel
angesprochen, das sprachabhängig im Customizing hinterlegt wird. Während die
Variablenbezeichnungen also sprachabhängig sind, sind die Formeln selbst
natürlich nicht sprachabhängig. Da eine automatische Umsetzung der in den
Formeln verwendeten Variablenbezeichnungen je nach Anmeldesprache des
Benutzers nicht möglich ist, können die Formeln einer
Mietspiegel-Steuerungstabelle nur bei Kenntnis ihrer Pflegesprache
interpretiert werden. Damit nun auch ein auf Englisch angemeldeter Benutzer
eine mit deutschen Variablennamen erzeugte Steuerungstabelle bei Durchführung
einer Mietanpassung nutzen kann, muß die Pflegesprache auf dem Mietspiegel
hinterlegt werden.
In den Formeln von
Bedingungen und Aktionen kann auch das Sprachkonstrukt IF-THEN-ELSE verwendet
werden. Dabei handelt es sich jedoch um das funktionale, nicht um das aus
ABAP/4 bekannte imperative IF. Dies bedeutet, daß der Gesamtausdruck gleich
dem Ausdruck hinter THEN ist, falls die Bedingung hinter IF erfüllt ist, und
gleich dem Wert hinter ELSE im anderen Fall. Damit der Wert eines
IF-THEN-ELSE-Konstrukts also stets definiert ist, muß immer auch der
ELSE-Zweig angegeben werden. Geschachtelte IF-THEN-ELSE-Ausdrücke werden z.
Zt. nicht unterstützt.
Beispiel:
Die
Aktion
<XN01, IF GRKL
> 2 THEN LAKL +1 ELSE LAKL>
führt dazu, daß die
numerische Hilfsvariable XN01 auf die um eins erhöhte Lageklasse (Variable
LAKL) gesetzt wird, falls die Größenklasse (Variable GRKL) größer als zwei
ist, sonst wird die Lageklasse unverändert übernommen.
Mietberechnung
1.
Basismiete
Nachdem die Wohnung
gemäß ihren Attributen in ein Mietspiegelfach eingeordnet wurde, liegen die
Werte für MATU, MATM und MATO vor. Auf dem Mietspiegel wird hinterlegt,
welcher dieser drei Werte des Mietspiegelfachs (Unter-/Mittel-/Oberwert) als
Basismiete der Mietberechnung verwendet werden soll. Diese Vorgabe kann auf
der Mieteinheit individuell geändert werden. Zusätzlich kann dort eine
prozentuale Abweichung vom gewählten Basiswert hinterlegt werden.
2. Relative
Zu-/Abschläge
Der Wert, auf den
sich der relative Zu-/Abschlag (ZREL) bezieht, wird durch die Variable RZBS
gesteuert. Sie enthält eine dreistellige Zeichenkette bestehend aus "X" und
"o", die angibt, welche Beträge in die Bezugssumme einfließen
sollen:
- 1. Stelle: Basismiete gemäß
Mietspiegelfach
- 2. Stelle: Zu-/Abschlag gemäß der
Ausstattungsmerkmale
- 3. Stelle: Absoluter Zu-/Abschlag
(ZABS)
Wird für ein Merkmal
ein relatives Gewicht angegeben, bezieht sich dieses immer auf die
Basismiete.
3.
Zu-/Abschläge von Ausstattungsmerkmalen
Für jedes Merkmal
kann entweder ein absoluter Zu-/Abschlagsbetrag pro Flächeneinheit oder
alternativ ein prozentualer Gewichtungsfaktor hinterlegt werden. Diese Daten
werden allerdings nicht direkt auf dem Merkmal erfaßt, sondern es wird einer
Merkmalsklasse zugeordnet, für welche dann diese Daten gepflegt werden.
Zusätzlich kann eine maximale Anzahl sowie ein maximaler Betrag bezüglich zu
berücksichtigender Merkmale aus einer Klasse angegeben werden.
Die Variable MBMS
enthält den Betrag für das Merkmal gemäß Mietspiegel, MBME den Betrag, der auf
der Mieteinheit für dieses Merkmal erfaßt wurde. MRES ist gleich MBMS, falls
dieser Wert ungleich Null ist, sonst MBME. MIMS ist Wahr, falls das Merkmal
(mit welchem Betrag auch immer) im Mietspiegel erfaßt wurde, sonst
Falsch.
4.
Resultierende Miete
Die neue Miete
ergibt sich als Summe von
- Beträge aller Ausstattungsmerkmale (Summe
aller MRES)
- Absoluter Zu-/Abschlag (ZABS)
- Relativer Zu-/Abschlag (ZREL)
Diese Summe wird mit
einem prozentualen Faktor gewichtet, der auf der Mieteinheit speziell für
Mietspiegelanpassungen hinterlegt wird. Nach Abarbeitung eines Blocks wird
diese Summe berechnet (falls Änderungen bei den Eingabeparametern aufgetreten
sind) und in die Variable NMSY (neue Miete System) gestellt. Soll ein anderer
Betrag als dieser zum Tragen kommen, darf allerdings nicht diese Variable
verändert werden, da sie eine aus anderen Variablen abgeleitete Größe
darstellt und eine Änderung am Blockende vom System wieder überschrieben
würde. Stattdessen muß die Variable NMIE belegt werden, die defaultmäßig
initial ist. Sie wird vom System anstatt NMSY verwendet, falls ihr ein Wert
ungleich Null zugewiesen wurde.
Den neuen
Gesamtmietbetrag ermittelt das System dann, indem der Wert aus NMSY bzw. NMIE
mit der Wohnfläche multipliziert, mit dem allgemeinen Weitergabefaktor für
alle Mietanpassungen gewichtet (falls dies auf dem Einsteigsbild nicht
abgeschaltet wurde), gemäß den gesetzlichen Vorschriften ggf. gekappt und den
Customizingeinstellungen ggf. gerundet wurde.
Beispiel: Ein Mietspiegel legt fest, daß die Miete für eine Wohnung
unabhängig von ihrer Ausstattung keinesfalls den im Mietspiegel hinterlegten
Oberwert überschreiten darf.
Dies würde durch
folgenden Block sichergestellt, der als letzter in der Steuerungstabelle
stehen müßte:
BlockNr |
ZeilenNr |
Variable |
Formel |
0010 |
010 |
|
NMSY > MATO |
0010 |
020 |
NMIE |
MATO |
Tips &
Tricks
Bei der Erstellung einer Steuerungstabelle sind
folgende Punkte hilfreich:
Sollen im Protokoll
die Werte bestimmter Variablen ausgegeben werden (etwa zum Zweck der besseren
Nachvollziehbarkeit des Rechenwegs), kann einfach eine Dummy-Aktion der Form
<VAR, VAR> definiert und eine entsprechene Nachricht (wie .Wert von
&2 ist &3) zugeordnet werden.
Durch Verwendung von
(parametrisierten) Makros können nicht nur häufig verwendete Ausdrücke
einfacher geschrieben, sondern mittels (unparametrisierten) Makros auch
Alias-Namen für Konstanten definiert werden, was die intuitive
Verständlichkeit verbessern kann.
Beispiel
1: Meist gibt es eine Reihe von Aktionen, die generell zu Beginn der
Abarbeitung der Steuerungstabelle ausgeführt werden sollen. Als Bedingung
dieses ersten Blocks wäre folglich das Schlüsselwort TRUE anzugeben. Dies wäre
intuitiver zu erkennen, wenn man ein Makro anlegt, das in diesem Kontext als
sprechender Alternativ-Name für TRUE fungiert (etwa
INITIALISIERUNG).
Beispiel
2: Die Abarbeitung endet, wenn die Blocknummer (BLNR) auf einen nicht
vorhandenen Wert gesetzt wird. Durch Definition eines Makros ENDE als
Alias-Name für etwa 9999 wäre dies einfacher als <BLNR, ENDE> zu
schreiben.
Bei Angabe von
Bedingungen ist nur darauf zu achten, daß die Formel vom Typ Boolean ist. Es
ist aber nicht notwendig, stets einen Vergleichsoperator zu verwenden. Dies
bedeutet insbesondere, daß in Ausdrücken der Form .Variable = TRUE die Abfrage
auf TRUE überflüssig ist und ersatzlos weggelassen werden kann. Analog können
Formeln der Form .Variable = FALSE eleganter als .NOT Variable geschrieben
werden.
Beispiele
1. Bedingungen
aus dem Mietspiegel und eine exemplarische Abbildung in der
Steuertabelle
a) Es gibt 4
Merkmale in einer Klasse 1; das Vorhandensein von mindestens 2 Merkmalen führt
zu einem Zuschlag von 10%
Abbildung in
der Steuertabelle:
1. Eigenschaft der
Klasse 1: Zu-/Abschläge mit den Werten: Proz/Merk. = 10; MaxAn =
1
2. Programmcode in
der Steuertabelle:
BlockNr |
ZeilenNr |
Variable |
Formel |
0010 |
0010 |
|
MMKL = 1 AND MAPK < 2 |
0010 |
0020 |
MIGN |
TRUE |
|
Ist die Zahl der
Merkmale < 2, dann wird das Merkmal ignoriert. Der Eintrag MaxAn = 1
bewirkt, daß unabhängig von der Zahl der Merkmale (2, 3 oder 4 Merkmale) genau
nur ein Zuschlag von 10% berechnet wird.
b) Es gibt 4
Merkmale in einer Klasse 2; ist mindestens 1 Merkmal der Klasse 2 und
zusätzlich ein weiteres Merkmal (Nummer 813) vorhanden, führt dies zu einem
Zuschlag von 16%
Abbildung in
der Steuertabelle:
1. Eigenschaft der
Klasse 2: Zu-/Abschläge mit den Werten: Proz/Merk. = 16; MaxAn =
1
2. Programmcode in
der Steuertabelle:
BlockNr |
ZeilenNr |
Variable |
Formel |
0020 |
0010 |
|
MKML = 813 |
0020 |
0020 |
XN01 |
XN01 + 1 |
0030 |
0010 |
|
XN01 = 0 AND MMKL = 2 |
0030 |
0020 |
MIGN |
TRUE |
|
Ist das Merkmal 813
nicht vorhanden, dann werden alle Merkmale der Klasse 2 ignoriert. Der Eintrag
MaxAn = 1 bewirkt, daß unabhängig von der Zahl der Merkmale der Klasse 2 genau
ein Zuschlag von 16% erfolgt.
c) Es liegen 2
Abschlagmerkmale vor (Merkmal 811 -> Abschlag -17%, Merkmal 812 ->
Abschlag -18%). Treten beide Merkmale gleichzeitig auf, dann beträgt der
Abschlag nicht -35% sondern -27%.
Abbildung in
der Steuertabelle:
Jedes Merkmal bildet
eine eigene Klasse mit dem entsprechenden Abschlag.
BlockNr |
ZeilenNr |
Variable |
Formel |
0040 |
0010 |
|
MKML = 811 OR MKML = 812 |
0040 |
0020 |
XN01 |
XN01 +1 |
0050 |
0010 |
|
XN01 = 2 AND MKML = 811 |
0050 |
0020 |
MIGN |
TRUE |
0060 |
0010 |
|
XN01 = 2 AND MKML = 812 |
0060 |
0020 |
MREL |
-27 |
|
Zunächst wird
überprüft, ob beide Merkmale vorhanden sind, dann wird der Wert der Merkmals
811 ignoriert und der Wert des Merkmals 812 auf -27% (anstelle von -18%)
gesetzt.
d) Zu der
Klasse 6 gehören genau 6 Merkmale (Nummer 814, 815, 820, 823, 824, 825). Nur
wenn das Merkmal 823 und das Merkmal 824 oder 825 vorhanden ist und genau 1
Merkmal 820 oder 814 oder 815 vorliegt, dann beträgt der Zuschlag 8%. Sind
aber bei den gleichen Vorbedingungen 2 oder 3 Merkmale 820, 814 oder 815
vorhanden, dann beträgt der Zuschlag 17%.
Abbildung in
der Steuertabelle:
1. Eigenschaft der
Klasse 6: Zu-/Abschläge mit den Werten: Proz/Merk. = 8; MaxAn = 1
2. Programmcode in
der Steuertabelle:
BlockNr |
ZeilenNr |
Variable |
Formel |
0070 |
0010 |
|
TRUE |
0070 |
0020 |
XN01 |
0 |
0070 |
0030 |
XN02 |
0 |
0070 |
0040 |
XN03 |
0 |
0080 |
0010 |
|
MKML = 823 |
0080 |
0020 |
XN01 |
XN01 + 1 |
0090 |
0010 |
|
MMKL = 6 AND XN01 = 0 |
0090 |
0020 |
MIGN |
TRUE |
0100 |
0010 |
|
MKML = 824 OR MKML = 825 |
0100 |
0020 |
XN02 |
XN02 + 1 |
0110 |
0010 |
|
MMKL = 6 AND XN02 = 0 |
0110 |
0020 |
MIGN |
TRUE |
0120 |
0010 |
|
MKML = 820 OR MKML = 814 OR MKML = 815 |
0120 |
0020 |
XN03 |
XN03 + 1 |
0130 |
0010 |
|
MMKL = 6 AND XN03 = 0 |
0130 |
0020 |
MIGN |
TRUE |
0140 |
0010 |
|
MMKL = 6 AND XN03 > 1 |
0140 |
0020 |
MREL |
17 |
|
In Block 0070 werden
die Hilfsvariablen auf den Wert 0 zurückgesetzt. Die weiteren Blöcke führen
nur die notwendigen UND/ODER-Verknüpfungen durch. Durch die Zuweisung MaxAn =
1 muß nicht der Fall für XN03 = 1 geprüft werden.
2. Mietspiegel
mit Wohnwertvorzeichen
Es sei folgender
Mietspiegel gegeben: Neben den regulären Ausstattungsmerkmalen (mit
Betragsangabe/qm) sind auch solche vorhanden, bei denen es nur darauf ankommt,
ob sie positiv (wohnwerterhöhend) oder negativ (wohnwertmindernd)
sind.
Diese Merkmale sind
in die vier Gruppen (= Merkmalsklassen) eingeteilt und werden nach diesen
Gruppen getrennt zusammengezählt:
Überwiegen in einer
Gruppe die positiven Merkmale, wird ihr ein Gewicht von +25%, überwiegen die
negativen, ein Gewicht von -25% und im Falle der Gleichheit 0% zugeteilt.
Diese Prozentwerte werden addiert, was einen Gesamtwert aus dem Bereich von
-100% bis +100% liefert.
Dieser Gesamtwert
bestimmt die Einordnung der Wohnung in die Mietspiegelspanne und damit die
Basismiete gemäß dem Schema <100% Fachunterwert, 0% Fachmittelwert, +100%
Fachoberwert>.
Zu dieser Basismiete
werden dann dem üblichen Rechenweg folgend die Zu-/Abschlagsbeträge der
regulären Ausstattungsmerkmale addiert, um die ortsübliche Vergleichsmiete zu
erhalten.
Die
Steuerungstabelle zu diesem Beispiel ist in Mietspiegel Nr.
001000 realisiert, wobei davon ausgegangen wird, das im Customizing
die vier Gruppen als Merkmalsklassen 1 bis 4 angelegt wurden