ecspand Vertragsmanagement – Leasingverträge: Barwertberechnung

Aufbauend auf meinem letzten Post möchte ich heute die Barwertberechnung für Leasingverträge im Rahmen des #ecspand Vertragsmanagements näher beschreiben.

Die Berechnung des Barwertes für Leasingverträge ist in Excel über die Formel BW möglich:

= BW(Zins;Zzr;RMZ;Zw;F)

Hierbei ist

  • Zins = der Zinssatz pro Periode
  • Zzr = die Anzahl der Zahlungszeiträume
  • RMZ = der Betrag (die Annuität), der in jeder Periode gezahlt wird
  • Zw = der zukünftige Wert/Zielwert der nach der letzten Zahlung erreicht sein soll
  • F = die Fälligkeit der Rate

Leider werden finanzmathematische Formeln in SharePoint 2010 nicht unterstützt.

Die Barwertberechnung kann dennoch realisiert werden. Wir benötigen dazu folgende Metadaten aus einem Leasingvertrag:

  • Leasingrate / Datentyp Zahl
  • Verrechnung p.a. / Datentyp Zahl
  • Vorschüssig / Nachschüssig / Datentyp Boolean
  • Laufzeit in Jahren / Datentyp Zahl
  • Zins100 / Berechnetes Feld, Ausgabe Datentyp Zahl

Die Felder ecs_Laufzeit (in Jahren) und ecs_Zins100 werden für die Formel über Hilfsfelder realisiert.

ecs_Laufzeit =([Laufzeit in Monaten]/12)

ecs_Zins100 =(Zinssatz/100)

Der Bearbeiter gibt die Laufzeit in Monaten und den Zinssatz als nummerischen Wert an.


Als Formel der Barwertberechnung wird folgende Formel zugrunde gelegt:

=(1+ecs_Zins100/[Verrechnungen p.a.])^([Verrechnungen p.a.]/360)*WENN(UND([Vorschüssig / Nachschüssig]=1);(ecs_Zins100+[Verrechnungen p.a.])/[Verrechnungen p.a.];1)*Leasingrate*[Verrechnungen p.a.]*(1-([Verrechnungen p.a.]/([Verrechnungen p.a.]+ecs_Zins100))^([Verrechnungen p.a.]*[Laufzeit in Jahren]))/ecs_Zins100

In Excel gestaltet sich die Formel wie folgt:


Der Barwert wird in der ecspand Vertragsmanagement Oberfläche wie folgt angezeigt:


Neben dem Barwert werden weiterhin noch die Mindestleasingzahlung, der Barwert in % und der Restwert benötigt. Da der Barwert in % auf Basis des Zeitwertes berechnet wird, muss dieser als einfache Dreisatzrechnung berechnet werden.


Die Mindestleasingzahlung wird wie folgt berechnet:

ecs_Mindestleasingzahlung =(Leasingrate*([Laufzeit in Jahren]*12)) / Ausgabe Zahl

ecs_BerechnungBarwertinProzent =((Barwert*100)/Zeitwert)

Interessant ist die Restwertberechnung:

ecs_Restwert =(Investitionssumme-(([Laufzeit in Jahren]*12)*(Leasingrate+[Leasingrate / Service]+[Leasingrate / Sonstiges])))*-1

Für Leasingverträge sind weiterhin noch die Entscheidungen nach der Betrachtung der Wirtschaftlichkeit und aufgrund von IFRS Grundsätzen interessant. Beide Felder werden wieder über berechnete Spalten auf Basis von Ja/Nein Auswahlfeldern realisiert:

Entscheidung nach Betrachtung der Wirtschaftlichkeit =WENN([Entscheidung nach Betrachtung der Wirtschaftlichkeit (Ja/Nein)];“Ja“;“Nein“)

Entscheidung aufgrund IFRS-Grundsätzen =WENN([Entscheidung aufgrund IFRS-Grundsätzen (Ja/Nein)];“Ja“;“Nein“)


Die Berechnung der Bewertung Operate/Finance Lease wird im Blogbeitrag ecspand Vertragsmanagement – Leasingverträge: Berechnung der Unterscheidung nach IFRS Operate/Finance Lease behandelt.

ecspand Vertragsmanagement – Leasingverträge: Berechnung der Unterscheidung nach IFRS Operate/Finance Lease

Im einem meiner Vertragsmanagement Projekte muss für Leasingverträge die Unterscheidung nach IFRS in Operate/Finance Lease mit berechneten Spalten als Ergebnis einer WENN/ODER Funktion mit SharePoint Mitteln umgesetzt werden.

Zum Verständnis der Thematik: Laut Wiki –>

IFRS definiert in der Bestimmung IAS 17 eine Unterscheidung in Finance Lease und Operate Lease. Beispielsweise qualifiziert IFRS einen Vertrag als Finance Lease, wobei das Objekt analog dem Mietkauf dem Anlagevermögen des Leasingnehmers zugeordnet wird, wenn der Barwert aller vom Leasingnehmer garantierter Zahlungen aus dem Vertrag 95 % des Objektwertes übersteigt. Eine analoge Bedingung kennt US GAAP für die Klassifikation als Capital Lease, definiert jedoch die Grenze des Barwerts aller garantierter Zahlungen als 90 % des Verkehrswertes des Objektes bei Leasingbeginn.

Finance Leases (Capital Leases) sind wirtschaftlich als Finanzierungskäufe zu werten, während Operate Leases reine Mietverhältnisse darstellen.

Die Rechnungslegung von Verträgen mit Klassifizierung Finance Leases erfolgt wie bei Capital Lease nach US GAAP mit gleichen Nachteilen für den Leasingnehmer.

Ein Leasingvertrag wird nach IFRS als Finance Lease qualifiziert, wenn eine der folgenden fünf Bedingungen zutrifft, ansonsten handelt es sich um Operate Lease:

  • Es erfolgt ein Eigentumsübertrag am Ende der Vertragslaufzeit.
  • Es gibt eine für den Leasingnehmer vorteilhafte Kaufoption am Ende der Vertragslaufzeit. (bargain option)
  • Die Vertragslaufzeit ist 75 % oder mehr der wirtschaftlichen Nutzungszeit des Objektes. (Die Regel spricht nur von major part, was unterschiedlich ausgelegt wird.)
  • Der Barwert aller vom Leasingnehmer zu leistenden Zahlungen (minimum lease payments), berechnet mit dem Effektivzins des Vertrages, beträgt nahezu den Verkehrswert des Objekts bei Vertragsbeginn. (substantially all of fair market value) (meist mit 90 % angesetzt)
  • Es handelt sich um Spezialleasing, das Objekt ist ohne größere Modifikationen für Dritte nicht nutzbar.

Soweit zum Verständnis. In SP2010 beruht somit die Berechnung der Entscheidungsgrundlage auf 5 Spalten:

  • Rechtlicher Eigentümer bei Vertragsende –> JA/NEIN Feld: Rückgabewert Boolean
  • Kauf-/ Übernahmeoption –> JA/NEIN Feld: Rückgabewert Boolean
  • Gegenstand auf Unternehmen zugeschnitten –> JA/NEIN Feld: Rückgabewert Boolean
  • Berechnete Spalte: Beträgt der Barwert der Mindestleasingzahlung mind.90% des Zeitwertes? mit der Excelformel =WENN(Barwert>0,9;1;0) Rückgabewert Boolean
  • Berechnete Spalte: Beträgt die Leasinglaufzeit mehr als 75% der wirtschaftl.Lebensdauer? mit der Excelformel =WENN([Berechnung wirtschaftliche Lebensdauer in %]>75;1;0) Rückgabewert Boolean

Nun möchte man annehmen, dass es ohne Probleme möglich ist aus den gegebenen Variablen mittels berechneter Spalte und der Formel

=WENN(ODER([Rechtlicher Eigentümer bei Vertragsende];[Kauf-/ Übernahmeoption];[Beträgt der Barwert der Mindestleasingzahlung mind.90% des Zeitwertes?];[Beträgt die Leasinglaufzeit mehr als 75% der wirtschaftl.Lebensdauer?];[Gegenstand auf Unternehmen zugeschnitten]);“ Finance Lease“;“Operate Lease“)

die gewünschte Entscheidungsgrundlage zu errechnen. Wer dies ohne Hilfsfelder versucht, wird sehr schnell feststellen, dass SharePoint bei der Berechnung etwas falsch macht.

Die oben angezeigte Formel verlangt gleiche Datentypen – in Excel funktioniert die Formel mit den Werten 0 = Nein und 1 = Ja. Der Rückgabewert der beiden berechneten Spalten ist Boolean, ABER: lassen wir uns den Rückgabewert anzeigen, sehen wir, dass das Ergebnis der berechneten Spalten als Ja/Nein konfiguriert ist und auch Ja und Nein ausgegeben wird.

Schauen wir uns nun die Rückgabewerte der Boolean Felder an, sehen wir das ebenfalls Ja/Nein als Rückgabewert konfiguriert ist, und ebenfalls Ja/Nein ausgegeben wird. Obige Formel funzt trotzdem nicht.

Ok. Um dem Fehler auf die Schliche zu kommen konfiguriere ich Hilfsfelder, welche noch einmal expliziert alle Ausgaben anzeigen:

ecs_HelpBarwertMindest =([Beträgt der Barwert der Mindestleasingzahlung mind.90% des Zeitwertes ORIG?])

ecs_HelpBarwertMindest =([Beträgt die Leasinglaufzeit mehr als 75% der wirtschaftl.Lebensdauer ORIG?])

ecs_HelpGegenstandUnt =([Gegenstand auf Unternehmen zugeschnitten])

ecs_HelpGuenstKauf =([Kauf-/ Übernahmeoption])

ecs_HelpRechtlEigent =([Rechtlicher Eigentümer bei Vertragsende])

Der von der Formel zurückgegebene Datentyp ist jeweils Ja/Nein.


In der Tat ist die Anzeige der beiden Hilfsfelder für die Berechnung des Barwerts der Mindestleasingzahlung und die Berechnung der Leasinglaufzeit als 75% der wirtschaftl.Lebensdauer sehr interessant.

Für die als Boolean ist der Rückgabewert und die Anzeige: Ja/Nein

Für die beiden Berechnungen ist der Rückgabewert ebenfalls Ja/Nein – angezeigt wird 0/1.

Die Formel baue ich nun mit den Hilfsfeldern zusammen:

=WENN(ODER(ecs_HelpRechtlEigent;ecs_HelpGuenstKauf;ecs_HelpBerechWirtLeben;ecs_HelpBarwertMindest;ecs_HelpGegenstandUnt);“Finance Lease“;“Operate Lease“)

Auf Basis dieser Formel stimmt das Ergebnis und die Formel funktioniert wie in Excel:



Der Kunde möchte natürlich für die berechneten Felder eine Ja/Nein Anzeige. Daher wird in der Formel auch ein Feld mit dem Anzeigename + ORIG verwendet.

Für die korrekte Berechnung nach IFRS wird offensichtlich die Ausgabe 0/1 benötigt . Also verwenden wir wieder 2 Hilfsfelder:

Beträgt der Barwert der Mindestleasingzahlung mind.90% des Zeitwertes? =WENN(ecs_HelpBarwertMindest=1;“Ja“;“Nein“)

Beträgt die Leasinglaufzeit mehr als 75% der wirtschaftl.Lebensdauer? =WENN(ecs_HelpBerechWirtLeben=1;“Ja“;“Nein“)

Als Ausgabeformat wähle ich „Eine Textzeile“.

Problem gelöst – alle glücklich …

Microsoft.Office.Server.Search.Administration.CrawlReportJobDefinition / Error ID 6398 in SharePoint 2010

Im Moment habe ich bei einem Kunden das Problem, das alle 5 Minuten zwei Mal der SharePoint Fehler mit der ErrorID 6398 in Kombination im Eventlog geloggt wird:

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.Office.Server.Search.Administration.CrawlReportJobDefinition‘ (ID a8d83209-8412-45de-ab62-6cd3da895695). Weitere Informationen finden Sie unten.

 

Der Suchdienst kann keine Verbindung mit dem Computer herstellen, der die Verwaltungskomponente ausführt. Vergewissern Sie sich, dass die Verwaltungskomponente ‚b63a990d-e8a9-4cd6-92d0-ea4924a33e43‘ in der Suchanwendung ‚Search Service App‘ einen ordnungsgemäßen Status aufweist, und versuchen Sie es dann erneut.

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.Office.Server.Search.Administration.CrawlReportJobDefinition‘ (ID 512afabe-b34c-4051-9f01-6f199550f5f8). Weitere Informationen finden Sie unten.

 

Die COM-Klassenfactory für die Komponente mit CLSID {0FF1CE14-0005-0000-0000-000000000000} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80070422.

Um mich dem Problem zu nähern führe ich verschiedene Prüfungen durch und suche im Netz nach der betreffenden FehlerID.

Zuerst werde ich im TechNet fündig.

Prüfung Step 1: Deaktivieren/Aktivieren des fehlerhaften Zeitauftraggebers (http://technet.microsoft.com/de-de/library/ee513069.aspx)

  • In Überwachung/Auftragsdefinitionen prüfen
  • Prüfung Step 1Die Zeitgeberauftragsdefinition suchen: deutsch: „Durchforstungsprotokollbericht für die Suchanwendung ‚Suchdienstanwendung'“ / englisch: „Crawl Log Report for Search Application Search Service Application.'“

Damit sollte der Fehler im Evenlog erst einmal nicht mehr auftreten. Das Problem ist damit aber nicht behoben.

Danach sind weitere Prüfungen durchzuführen, wobei mir folgende Diskussionen im Microsoft Developer Network bzw. SharePoint Network geholfen haben: http://social.msdn.microsoft.com/Forums/da-DK/sharepoint2010general/thread/4396d5a2-b930-4a75-813e-8b5815887805 und http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/d0eb9d50-1a6e-4e8a-b00a-17800930c90a/ -> in diesem Thread werden noch weitere Lösungsmöglichkeiten (z.B. MS Chart Control) bzw. Prüfungen sowie ein PS Skript für die Initialisierung beschrieben. (Wer das Skript für die Initialisierung verwendet, sollte in der Zeile 2 $searchApp = Get-SPEnterpriseSearchServiceApplication –name statt des Parameters –name –identity „Name der Suchanwendung“ verwenden. Der Parameter –name ist falsch.) Besonderer Dank geht an Firaz Samet im SharePoint Forum für die Cmd Befehle ;).

Prüfung Step 2: über welchen Account laufen die Dienste eigentlich? (siehe SERVICE_START_NAME) -> über die GUI der CA oder durch einen Blick in die Services kann ich ebenfalls prüfen ob welche Accounts verwendet werden.

Ich korrigiere ggf. die Accounteinstellungen für die Dienste auf der Service Account Seite der CA: http://<IhrServer>/_admin/FarmCredentialManagement.aspx

Danach prüfe ich Account Einstellungen.

Fehlt der Suchaccount in der Gruppen fügen Sie diesen mindestens in der WSS_WPG dort hinzu. Wird der Suchaccount in die Gruppe Administratoren hinzugefügt, wird dies in der SharePoint Integritätsanalyse als Warnmeldung angezeigt: „Konten, die von Anwendungspools oder Dienstidentitäten verwendet werden, befinden sich in der lokalen Gruppe ‚Computeradministratoren'“.

Anschließend prüfe ich ob der Suchdienst initialisiert ist (Feld Initialized=true) (thx to Firaz Samet @ http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/d0eb9d50-1a6e-4e8a-b00a-17800930c90a/) :

Prüfung Step 3: SharePoint Powershell öffnen und folgenden Befehl absetzen „Get-SPEnterpriseSearchServiceApplication | Get-SPEnterpriseSearchAdministrationComponent“ und lasse ggf. das Skript für die Initialisierung laufen.

Prüfung Step 4: Danach prüfe ich im IIS die Webservices (insbesondere SearchAdmin) auf Fehler und Onlinestatus:

Prüfung Step 5: Hat der Suchaccount Zugriffsrechte auf der Indexlocation?

In meinem Fall muss der Suchaccounts in die Gruppe WSS_WPG hinzugefügt werden. Darüber hinaus scheint die Abfragekomponente (‚fe5071e0-a07a-4be0-baca-2ecaefe1b2e0-query-0‘) Fehlerhaft zu sein. Dies entnehme ich zumindest dem Eventlog, wo die Meldung entsprechend angezeigt wird.

Ich befinde mich nach wie vor noch im Bereich der Such Topologie Konfiguration. Hier kann ich alle Suchkomponenten prüfen, vorhandene löschen, Komponenten neu erstellen oder noch einmal initialisieren.

Zuletzt lasse ich den Konfigurationsassistent noch einmal durchlaufen. Danach aktiviere ich den vorab deaktivierten Zeitauftraggeber des JobReports. Die Suche läuft wieder ohne Probleme, im Eventlog finden sich keine Fehler.