Abacus Debitoren Schnittstelle

Die Vertec Abacus Schnittstelle ermöglicht die Kopplung der Vertec Leistungssoftware an die Abacus Debitorenbuchhaltung. Die Schnittstelle erlaubt es, Kundendaten und Debitorbuchungen von Vertec in Abacus zu übertragen. In der Vertec Software lassen sich die notwendigen Stammdaten aus Abacus (Kunden, Konti, Kostenstellen) auswählen. Die Datenübertragung erfolgt in beiden Richtungen über einfache Textfiles (ASCII Schnittstelle).

Bitte beachten Sie, dass Abacus filebasierte Schnittstellen ab Abacus 2015 nicht mehr unterstützt. Diese Schnittstelle kann deshalb nur mit früheren Versionen von Abacus eingesetzt werden.

Einstellungen in Vertec

Installieren der Schnittstelle

Öffnen Sie in der Vertec Software im Menü Einstellungen die Extensions. Sie müssen dazu als Administrator in Vertec angemeldet sein. Aus der Liste Gefundene Extensions wählen Sie Abacus Debitoren Schnittstelle und drücken zum Installieren den '>>'-Button.

Systemeinstellungen in Vertec

Einige Systemeinstellungen werden für alle Debitoren installiert. Diese sind im Artikel Systemeinstellungen Buchhaltung aufgelistet.

Die speziellen Systemeinstellungen für die Abacus Debitoren Schnittstelle sind:

Abacus ANSI-Encoding für Import verwenden: Ab Vertec Version 5.7: Abacus hat bisher Files (Kontenplan etc.) immer in DOS Format (cp850) geschrieben. Neu sind diese Windows-1252 encoded. Für das Importieren der Buchungsfiles gibt es diese Systemeinstellung. Ist sie auf JA, werden die Daten-Import Files (Konti, KST, Kunden) mit Windows-1252 ANSI-Encoding geöffnet, sonst mit DOS cp850. Ausserdem wird bei den Importfiles neu neben .txt auch die Abacus Default-Endung .asc unterstützt (Kontenplan.asc, KSTplan.asc, Kunden.asc).

PropertyName: AbacusEncodingANSI. BooleanProperty.

Abacus Debitoradressen mit mehreren Währungen unterstützen: Ist im Abacus Mehrwährungsfähigkeit lizenziert, muss diese Systemeinstellung auf Ja (Standard) gesetzt werden, sonst führt das zu einem Fehler beim Import der Schnittstellendaten in Abacus. Haben Sie im Abacus keine Mehrwährungsfähigkeit lizenziert, müssen Sie diese Systemeinstellung auf Nein stellen.

PropertyName: AbacusUseMultipleCurrencies. BooleanProperty.

Abacus Identifikationsnummer für Adressdaten: Diese Systemeinstellung ist ab Version 151 der Abacus-Extension verfügbar. Wenn man die Abacus Debitorenschnittstelle im mandantenfähigen Modus (Einstellung Abacus Identifikationsnummer zur Mandantenauswahl verwenden auf Ja) verwendet, kann hier zusätzlich eine Identifikationsnummer angegeben werden, welche für das Schreiben von Adressdaten verwendet wird.

Wird diese Systemeinstellung leergelassen, ist also keine Identifikationsnummer für Adressen vorhanden, dann wird auch bei Adressdaten die Identifikation aus dem Vertec Projekt (Feld Datenbankfibu) verwendet.

Die Einstellung ermöglich es, bei Verwendung von mehreren Mandanten in Abacus die Adressdaten immer in alle Mandanten zu schreiben. Dazu muss die Adressdaten-Identifikationsnummer in Abacus allen Mandanten zugeordnet werden.

PropertyName: AbacusAdressenIdentifikationsnummer. StringProperty.

Abacus Identifikationsnummer zur Mandantenauswahl verwenden: Diese Einstellung wird benötigt, wenn eine Abacus Installation mit mehreren Mandanten verwendet wird. Damit Vertec in verschiedene Mandanten buchen kann, müssen im Abacus den Mandanten sog. Identifikationsnummern zugeordnet werden.

In Vertec müssen diese Identifikationsnummern in den "Datenbank Fibu" Einstellungen für die Buchhaltung angegeben werden. Damit Vertec beim Schreiben des Buchungsfiles diese Mandanteninformation einschliesst, muss die Einstellung auf Ja sein.

PropertyName: AbacusUseIdentifikationsnummer. BooleanProperty

Abacus Kundennummer als Adressnummer verwenden: Ab Vertec Version 5.7. Ist diese Einstellung auf JA, wird beim Erstellen oder Schreiben von Adressen die Kundennummer (Debitornummer) zusätzlich als Parameter 920.18 (Adressnummer) übergeben. Beim Buchen ändert sich nichts, dort wird weiterhin nur die Kundennummer übergeben.

PropertyName: AbacusUseKundenAdressnummer. BooleanProperty

Abacus Projektnummer Expression: Ab Vertec Version 5.7. Wird hier eine OCL Expression gesetzt wird, wird beim Buchen das Ergebnis der Expression, ausgewertet auf dem Projekt der gebuchten Rechnung, bei jeder Position als Haben-KST 2 (TA102.26) übergeben. Die Expression wird direkt als OCL Expression interpretiert, sie muss also nicht in %-Zeichen eingefasst werden.

PropertyName: AbacusProjektnummerExpression. StringProperty.

Pfad für Abacus Debitoren Datenfiles: Beim ersten Buchen wird das Verzeichnis AbacusData unter Extensions im Vertec Installationsverzeichnis angelegt und ein Standard-Nummernfile namens DebiBelegnummer.txt erzeugt, das dort abgelegt wird. Möchte man nicht dieses Standardverzeichnis verwenden, kann hier ein anderer Pfad angegeben werden.

PropertyName: AbacusDebiExportPath. StringProperty.

Sperrdatum Buchhaltung: Gibt an, ab welchem Datum Buchungen zulässig sind. Buchungen mit älterem Datum werden mit Fehlermeldung zurückgewiesen. Wird nichts angegeben, sind alle Buchungen zulässig.

PropertyName: SperrdatumBuchhaltung. StringProperty.

Rechnungsnummer als Abacus Belegnummer verwenden: Ist dieses Property auf Ja, wird die Belegnummer nicht auf Basis des DebiBelegnummer.txt-Files berechnet, sondern aufgrund der Rechnungsnummer.

Falls ESR aus Vertec verwendet werden, muss diese Einstellung auf Ja gesetzt werden. Die Rechnungsnummer wird in der ESR Kodierzeile übergeben. Damit Abacus beim Einlesen der Zahlungen von Post/Bank die Rechnungen zuordnen kann, muss die Belegnummer in Abacus die Rechnungsnummer in Vertec sein.

PropertyName: AbacusUseRechnungBelegnummer. BooleanProperty.

Anpassung des Abacus Datenverzeichnisses

Standardmässig liegen die Datenfiles für Konti, Kostenstellen und Kundendaten im Unterverzeichnis Extensions\AbacusData der Vertec Installation. Bei Netzwerkinstallationen von Vertec, die sich auf einem Fileserver befinden, ermöglicht dies die Benutzung der Schnittstelle von allen Clients aus.

Falls jedoch lokale Vertec Installationen vorliegen und mehrere Personen die Schnittstelle verwenden sollen, muss das AbacusData Verzeichnis auf einen Fileserver verlegt werden. Die Lage dieses Verzeichnisses muss dann in den Vertec Systemeinstellungen unter Buchhaltung > Pfad für Abacus Debitoren Datenfiles eingestellt werden. Ein leerer Wert in dieser Einstellung führt zur Verwendung des Standardwertes Extensions\AbacusData.

Anpassen von Steuercodes in Vertec

Beim Installieren der Abacus Schnittstelle werden die MWST Typen in Vertec automatisch auf die Abacus Standardwerte (Normal=311, Export=401, Keine=400) gesetzt. Sollen andere Codes verwendet werden, müssen diese in Vertec manuell eingetragen werden:

Bestimmen des Belegnummern Bereiches

Aufgrund der Datei Belegnummern.txt

Die Schnittstelle vergibt für die Debitorbelege in Abacus fortlaufende Belegnummern. Der Start des zu verwendenden Nummernbereiches muss der Schnittstelle mitgeteilt werden. Dies geschieht durch Angabe einer Nummer im File DebiBelegnummer.txt.

Das File ist ein reines Textfile mit 1 Zeile und enthält die zuletzt verwendete Belegnummer. Beim ersten Buchen wird dieses File erzeugt und als Standard-Einstellung die Nummer 50'000 eingesetzt.

Für dieses Vorgehen muss die Systemeinstellung Rechnungsnummer als Abacus Belegnummer verwenden auf Nein sein.

Aufgrund der Rechnungsnummer

Sie können die Belegnummer auch aufgrund der Rechnungsnummer berechnen. Stellen Sie dafür die Systemeinstellung Rechnungsnummer als Abacus Belegnummer verwenden auf Ja.

Bei dieser Variante gibt es eine Neuerung ab der Vertec Version 5.5.0.78: In früheren Versionen bedeutete das, dass das Stornieren einer Buchung nicht möglich war und zu einer Fehlermeldung führte, da die Schnittstelle für die Stornobuchung nicht nochmals dieselbe Belegnummer verwenden kann und daher Stornieren mit der Rechnungsnummer als Belegnummer nicht möglich ist.

Ab Version 5.5.0.78 wird beim Stornieren eine automatische Belegnummer vergeben. Nun kann neu eine Rechnung auch gebucht und storniert werden, wenn die Rechnungsnummer als Belegnummer verwendet wird.

Es ist allerdings in diesem Fall so, dass eine Rechnung nur ein Mal gebucht und storniert werden kann. Wenn eine Rechnung storniert wird, muss anschliessend eine neue Rechnung in Vertec erstellt oder die Rechnungsnummer geändert werden. Das kann in Vertec leider nicht überprüft werden und liegt somit in der Verantwortung des Anwenders.

Behandlung von mehreren Mandanten

Wird eine Abacus Installation mit mehreren Mandanten verwendet, müssen einige Voreinstellungen gemacht werden.

Damit Vertec in verschiedene Mandanten buchen kann, müssen im Abacus den Mandanten sog. Identifikationsnummern zugeordnet werden. Diese Identifikationsnummern müssen beim Import im Programm 551 ASCII-Schnittstelle einlesen unter Optionen angegeben werden (siehe Abschnitt über den Import des Buchungsfiles in Abacus).

In Vertec müssen diese Identifikationsnummern im Feld Datenbank Fibu bei den Einstellungen für die Buchhaltung angegeben werden. Dies geschieht am Wahrscheinlichsten auf der Ebene Projekttyp. Die Projekte, die den Projekttypen zugeordnet werden, übernehmen dann diese Information.

Damit Vertec beim Schreiben des Buchungsfiles diese Mandanteninformation einschliesst, muss die Systemeinstellung Abacus Identifikationsnummer zur Mandantenauswahl verwenden auf Ja sein.

Einstellungen in Abacus

Abacus Lizenzierung

Von Abacus werden die Schnittstellen 1 (documents / Belege) und 2 (base clients / Kundenstamm) benötigt. Falls Sie Rechnungen in Fremdwährung buchen möchten, brauchen Sie im Abacus zusätzlich das Fremdwährungsmodul, welches separat kostet.

Stammdaten aus Abacus exportieren

Die Schnittstelle benötigt gewisse Stammdaten aus Abacus, damit in der Vertec Software Auswahldialoge angezeigt werden können. Diese Daten können einmalig oder, falls sich Änderungen ergeben, wiederholt aus Abacus exportiert werden. Die Exportfiles werden im Unterordner Extensions\AbacusData der Vertec Installation abgelegt. Der Export erfolgt in den neueren Abacus Version standardmässig im ANSI (Windows) Encoding, dies kann bei Bedarf in den jeweiligen Einstellungen auf OEM (Dos) umgestellt werden.

Export von Abacus Konten- und Kostenstellen

Damit Konti und Kostenstellen in der Vertec Software ausgewählt werden können, müssen die entsprechenden Datenfiles aus Abacus exportiert werden.

Der Export von Konten- und Kostenstellenplan erfolgt über das Abacus Finanzbuchhaltungs Programm 554 Kontenplan importieren/exportieren.

Geben Sie hier den Pfad zur Exportdatei an. Speichern Sie den Kontenplan als Kontenplan.txt. Wählen Sie dann in den Export Parametern den Kontenplan und entfernen Sie alle Checkboxen ausser Konten.

Ein Klick auf den Ausführen Button (der mit dem gelben Blitz in der Symbolleiste) startet den Export.

Dann wiederholen Sie den Vorgang für den Kostenstellenplan. Das Exportfile für Kostenstellen muss KSTplan.txt heissen. Beide Exportfiles müssen anschliessend in das Extensions\AbacusData Verzeichnis der Vertec Installation kopiert werden.

Export von Abacus Kundendaten

Falls bestehende Kundendaten aus Abacus in Vertec ausgewählt werden sollen, dann ist der Export von Kundendaten von Abacus nach Vertec notwendig. Sie können diesen Schritt auch weglassen, haben dann aber nur die von Vertec nach Abacus exportierten Kundendaten zur Auswahl.

Der Export der Kundendaten erfolgt über das Abacus Programm 554, Adressen Standardschnittstelle. Zu finden ist dies unter Adressverwaltung > Hilfsprogramme > Schnittstellen > 554 Standard-Schnittstelle.

Das Dateiformat für Export sollte ASCII - Benutzerdefiniert (1 Datei) sein (Standard).

Wechseln Sie dann auf den Reiter Felder und geben Sie den Pfad zur Datei an. Wählen Sie als Dateiname Kunden.txt .

Folgende Felder müssen angekreuzt sein:

ADR.DEBIJN, ADR.NAME, ADR.VORNAME, ADR.ZEILE1, ADR.DEBINR

Durch Drücken des Export Symbols wird der Export gestartet.

Kopieren Sie das resultierende File Kunden.txt in den Extensions\AbacusData Ordner Ihrer Vertec Installation.

Mahnbereich

Die Vertec Schnittstelle übergibt beim Buchen keinen Mahnbereich. Deshalb muss Abacus so konfiguriert werden, dass dies akzeptiert wird. Öffnen Sie das Programm 4 Definitionen > 43 Belegarten > 431 Belegarten definieren und wählen Sie die Belegart R, Rechnung aus. Wechseln Sie auf den Reiter Vorschläge 1. Dort muss die Option für Mahnbereich auf Vorschlag von Kunde, Eingabe möglich eingestellt sein (Standard)

Einstellen der Default Belegart

Damit der Import des Buchungsfiles in Abacus korrekt funktioniert, muss die Belegart für Rechnungs Transaktionen in Abacus korrekt eingestellt sein. Diese Einstellung muss im Programm Debitoren > 411 Firmenstamm > Schnittstellen vorgenommen werden. Der Belegtyp für Rechnung 100,119 muss auf R gesetzt sein (Standard).

Falls der Belegtyp falsch eingestellt ist, liefert Abacus beim Import des Buchungsfiles eine Fehlermeldung der Art "Den Transaktionen sind noch keine Belegarten zugeordnet worden".

Betrieb der Debitoren Schnittstelle

Vertec Kundendaten exportieren

Wenn die Abacus Schnittstelle in Vertec installiert ist, erscheint auf Projekten und Adressen der Menüpunkt Aktionen > Buchhaltung mit 2 Unteroptionen Neues Adresse in Debitorbuchhaltung erstellen und Adressdaten in Debitorbuchhaltung aktualisieren. Das Menü kann sowohl über das Menü Aktionen als auch durch Rechtsklick auf ein Projekt oder eine Adresse im Baum aufgerufen werden.

Neue Adresse in Debitorbuchhaltung erstellen schreibt die Daten der Rechnungsadresse des Projektes ins Abacus Buchungsfile. Gleichzeitig wird eine neue Kundennummer vergeben, diese Nummer als Personenkonto des Projekts eingetragen und die Daten für diesen Kunden auch ins Kunden.txt File geschrieben, damit der neue Kunde als Personenkonto auswählbar wird.

Adressdaten in Debitorbuchhaltung aktualisieren bewirkt ebenfalls, dass die Adressdaten ins Buchungsfile geschrieben werden. Allerdings wird dadurch nicht ein neuer Kunde in Abacus erzeugt, sondern die Daten eines bestehenden auf den neuesten Stand gebracht.

Rechnungen buchen

Damit eine Rechnung in die Debitoren Buchhaltung geschrieben werden kann, muss das Projekt eine Personenkonto Nummer besitzen. Die Zuordnung eines Personenkontos (=Kunde in Abacus) kann durch Auswahl eines bestehenden Kunden oder durch Erzeugen eines Neuen (siehe oben) erfolgen. Ausserdem müssen die Angaben für Debitorkonto, Ertragskonti, Steuercodes und gegebenenfalls Kostenstellen vorhanden sein.

Bevor die Rechnung gebucht werden kann, muss sie ausserdem auf Verrechnet gesetzt werden. Auf der Seite Buchhaltung ist die Liste der vorgesehenen Buchungen zu sehen.

Ein Druck auf den Buchen Button schreibt die Daten ins Buchungsfile und setzt eine Belegnummer ein.

Nach dem Buchen heisst der Button neu Stornieren. Ein erneuter Druck darauf storniert die Rechnung durch Einstetzen einer internen Gutschrift in Abacus.

Einige Abacus Schnittstellen akzeptieren keine erneute Buchungen mit gleicher VESR Nummer. Hier gibt es einen einfachen Work-around: stornierte Rechnung löschen und eine neue erstellen, dann ist alles anders (Achtung: die Rechnungsnummer ändert sich).

Buchungsfile abschliessen und Rekapfile schreiben

Buchungsfile abschliessen

Alle Aktionen der Schnittstelle werden laufend in ein temporäres Buchungsfile (Buchungen.dat) geschrieben. Periodisch sollten die Buchungsdaten in Abacus importiert werden. Vor dem Import muss das Buchungsfile abgeschlossen werden.

Dies geschieht in Vertec durch Aufruf der Schnittstellenmethode BuchungenAbschliessen(). Wählen Sie dafür im Menü Aktionen den Menüpunkt Abacus Buchungsfile abschliessen.

Das Abschliessen des Buchungsfiles ergibt ein abgeschlossenes Buchungfile, dessen Name mit dem aktuellen Datum beginnt, z.B. 090816_Buchungen.txt. Bei mehreren Buchungsfiles pro Tag wird noch ein fortlaufender Index eingesetzt z.B. 090816_01_Buchungen.txt. Dieses File kann nun in Abacus importiert werden.

Rekapfile schreiben

Das Rekap File wird beim "Buchungsfile abschliessen" geschrieben, sein Name wird analog dem des Buchungsfiles bestimmt: z.B. 090118_Buchungen.txt und 090118_Rekap.txt.

Das Rekap File listet Rechnungsbuchungen und Stornobuchungen auf mit Angabe von Buchungsdatum, Rechnungsdatum, Belegtyp (Rechnung, Storno), Belegnummer, Rechnungsnummer, Kundennummer und Betrag.

Stornobuchungen werden in Abacus als interne Gutschriften durchgeführt. Im Rekapfile wird anstelle der Rechnungsnummer die Belegnummer des stornierten Belegs aufgelistet.

Das Format des Rekapfiles ist tab delimited, die erste Zeile enthält die Spaltenüberschriften. Je nach Länge der Nummern sind Spalten in einer reinen Textansicht nicht untereinander. Nach Import z.B. in Excel wird aber alles korrekt formatiert.

Import des Buchungsfiles in Abacus

Der Import des Buchungsfiles in Abacus geschieht über die Funktion 551 ASCII-Daten einlesen des Abacus Debitoren-Moduls (Debitorenbuchhaltung > 5 Hilfsprogramme > 55 Schnittstellen > 551 ASCII-Daten einlesen).

Vor dem ersten Import muss im Importdialog die Identifikationsnummer des Mandanten hinterlegt werden, wenn in Abacus mehrere Mandanten erfasst sind und die Vertec Systmeinstellung Abacus Identifikationsnummer zur Mandantenauswahl verwenden auf Ja eingestellt ist:

Werden mehrere Manden im Buchungsfile behandelt (siehe Abschnitt Behandlung von mehreren Mandanten), müssen hier alle Buchhaltungsmandanten hinzugefügt werden, für welche Daten angeliefert werden, damit diese akzeptiert werden. Dies muss bei jedem Menupunkt Import in einem Mandaten einmalig für den Import hinzufügt werden, damit der Import für alle Mandanten auch überall funktioniert. Etwas verwirrend dabei ist, dass der Import innerhalb der Menustruktur eines Mandaten stattfindet, aber trotzdem Debitoren ALLER Mandaten importiert werden. Dies ist so, weil es keine übergeordnete Ebene für den Import gibt.

Im Feld Pfad (Directory) muss nun Pfad und Name des Buchungsfiles eingetragen werden. Anschliessend wird der Import durch Drücken der Ausführen Taste gestartet.

Nach der Verarbeitung des Buchungsfiles erscheint ein Protokollfenster, welches allfällige Fehler beim Datenimport auflistet.

Stornobuchungen / Buchungsfile kann Rechnungen nicht einlesen

Wenn das Buchungsfile Rechnungen nicht einlesen kann, weil eine Rechnungsnummer im Abacus bereits vergeben wurde, hat das höchst wahrscheinlich folgenden Grund:

Die Rechnungen wurden schon mal gebucht, inzwischen im Vertec aber storniert und erneut gebucht. Ins Abacus können aber keine Rechnungen mit gleichem ESR gebucht werden.

Deshalb gilt: Nach dem Stornieren muss die Rechnung in Vertec gelöscht und neu erzeugt werden, dann bekommt sie eine neue Nummer und damit auch eine neue ESR Nummer.

Zahlungsimport

Für Debitoren, welche im Vertec erfasst und ins Abacus exportiert wurden, können im Abacus die Belege gebucht werden. Damit Vertec dies mitbekommt und die Rechnungen als bezahlt markiert werden, können die Zahlungen aus Abacus importiert werden.

  1. Damit Vertec die Zahlungen importieren kann, muss aus Abacus zuerst ein Zahlungsjournal exportiert werden. Exportieren Sie das Zahlungsjournal (26) aus Abacus: Ausgabe -> Exportieren.
  2. Kopieren Sie diese Datei ins Abacus Verzeichnis (Standardmässig liegt dieses im Vertec Installationsverzeichnis/Extensions/AbacusData, falls in den Systemeinstellungen Buchhaltung > Pfad für Abacus Datenfiles nichts anderes angegeben ist).
  3. Klicken Sie im Vertec mit der rechten Maustaste auf die Rechnungen und wählen Sie Alle Zahlungen importieren (Abacus).
  4. Im daraufhin erscheinenden Dialog zur Dateiauswahl wählen sie die oben erstellte Zahlungsdatei.
    Anmerkung: Das erste Starten des Zahlungsimports in Vertec lädt die Liste der Zahlungsdateien. Falls eine weitere Zahlungsdatei aus Abacus exportiert wird, nachdem der Zahlungsimport bereits einmal gestartet wurde, muss Vertec neu gestartet werden, damit die neue Datei in der Dateiauswahl erscheint.

Anmerkung

Abacus exportiert das Zahlungsjournal ab der Version 2010.2 standardmässig im CSV Format. Die Vertec Abacus Schnittstelle unterstützt nun sowohl das Format .txt als auch das neue .csv Format. Wenn die Endung des Importfiles .csv ist, wird es als CSV interpretiert, sonst als bisheriges Zahlungsfile mit festen Feldlängen (TXT).

Deinstallieren der Schnittstelle

Öffnen Sie in der Vertec Software im Menü Einstellungen die Extensions. Sie müssen dazu als Administrator in Vertec angemeldet sein.

Aus der Liste Installierte Extensions wählen Sie die Abacus Debitoren Schnittstelle und drücken zum Deinstallieren den '<<'-Button.

Zusätzlich müssen Sie das Script Abacus Debitoren Buchungsfile abschliessen manuell löschen. Öffnen Sie dafür im Ordner Einstellungen > Scripts das Script und klicken Sie Aktionen > Löschen.

Abacus Fehlermeldungen

Z 2/TA920: (200) „TA9x4 zwingend erforderlich (ABEA vorhanden)“

Wenn folgende Fehlermeldung erscheint:

Z 2/TA920: (200) „TA9x4 zwingend erforderlich (ABEA vorhanden)“

wurde der Mandant in Abacus mit Auftragsbearbeitung eröffnet. Dadurch werden von Abacus weitere Informationen im Buchungsfile erwartet, was zurzeit von der Vertec Schnittstelle nicht unterstützt wird.

Abhilfe schafft das Erzeugen des Mandanten ohne Auftragsbearbeitung.


02.11.2004 | 29.01.2016: Hinweis auf Abacus: Filebasierte Schnittstelle wird ab 2015 nicht mehr unterstützt.
Produktlinien: Diverse
Module: Leistung & CRM