MoneyMoney

Umsatzexport

Die Umsätze eines Kontos oder einer Kontengruppe können exportiert werden. Das Dateiformat und der Exportzeitraum sind konfigurierbar. Wenn kein Konto angegeben wird, werden alle Umsätze exportiert. Nach erfolgreichen Umsatzexport wird der Dateiname einer temporären Datei zurückgegeben, die zur Weiterverarbeitung geöffnet werden kann.

Beispiel:

tell application "MoneyMoney"
    set result to export transactions from account "DE67900900424711951500" from date "2017-01-01" to date "2017-12-31" as "csv"
end tell
tell application "Finder"
    open result as POSIX file
end tell

Mit dem zusätzlichen Parameter from category kann zusätzlich oder alternativ zum Konto eine Kategorie angeben werden.

Anwendungsprogramme, die MoneyMoney zum Abgleich von Buchungen verwenden, können als Dateiformat auch den Wert »plist« angeben. Dann wird als Rückgabewert anstelle eines Dateinamens eine XML-Property-List ausgegeben.

Mit dem bei macOS mitgelieferten Kommandozeilentool osascript kann AppleScript auch aus anderen Programmiersprachen heraus ausgeführt werden. Am Ende dieser Seite befindet sich dazu ein Beispiel für die Programmiersprache Python.


Kontenliste

Anwendungsprogramme, die MoneyMoney zum Abgleich von Buchungen verwenden, können sich eine Liste der verfügbaren Konten als XML-Property-List ausgeben lassen.

Beispiel:

tell application "MoneyMoney"
    export accounts
end tell


Kategorienliste

Anwendungsprogramme, die MoneyMoney zum Abgleich von Buchungen verwenden, können sich eine Liste der verfügbaren Kategorien als XML-Property-List ausgeben lassen.

Beispiel:

tell application "MoneyMoney"
    export categories
end tell


Depotexport

Der Wertpapierbestand eines Kontos oder einer Kontengruppe lässt sich als XML-Property-List exportieren. Wenn kein Konto angegeben wird, wird der gesamte Wertpapierbestand exportiert.

Beispiel:

tell application "MoneyMoney"
    export portfolio from account "4711951502" as "plist"
end tell


Überweisungen

Ein vorausgefülltes Überweisungsfenster kann geöffnet werden. Alle Parameter sind optional.

Beispiel:

tell application "MoneyMoney"
    create bank transfer from account "DE67900900424711951500" to "Empfänger" iban "DE40900900424711951501" amount 100.00 purpose "Verwendungszweck"
end tell

Mit dem zusätzlichen Parameter into "outbox" kann die Überweisung im Ausgangskorb gespeichert werden, ohne dass sich ein Überweisungsfenster öffnet.


Sammelüberweisungen

Eine Sammelüberweisung kann aus einer SEPA-XML-Datei erstellt werden.

Beispiel:

tell application "MoneyMoney"
    create batch transfer from POSIX file "Sammelüberweisung.xml"
end tell


Lastschriften

Ein vorausgefülltes Lastschriftfenster kann geöffnet werden. Alle Parameter sind optional.

Beispiel:

tell application "MoneyMoney"
    create direct debit from account "DE67900900424711951500" for "Zahlungspflichtiger" iban "DE40900900424711951501" amount 100.00 purpose "Verwendungszweck" mandate reference "Mandatsreferenz" mandate date "2017-02-01" scheduled date "2017-03-01"
end tell

Mit dem zusätzlichen Parameter into "outbox" kann die Lastschrift im Ausgangskorb gespeichert werden, ohne dass sich ein Lastschriftfenster öffnet.


Sammellastschriften

Eine Sammellastschrift kann aus einer SEPA-XML-Datei erstellt werden.

Beispiel:

tell application "MoneyMoney"
    create batch direct debit from POSIX file "Sammellastschrift.xml"
end tell


Offline-Konten

Umsätze können zu einem offline verwalteten Konto hinzugefügt werden.

Beispiel:

tell application "MoneyMoney"
    add transaction to account "Portemonnaie" on date "2017-03-01" to "Empfänger" amount -100.00 purpose "Verwendungszweck" category "Privatkonten\\Persönliche Ausgaben"
end tell


Notizen

Zu einem Umsatz können Notizen hinzufügt werden. Die Transaktions-ID muss vorab aus einem in eine XML-Property-List durchgeführten Umsatzexport (export transactions ... as "plist") ausgelesen werden.

Beispiel:

tell application "MoneyMoney"
    set transaction id 8534 comment to "Dies ist eine Notiz."
end tell


Erledigt-Markierungen

Umsätze können als erledigt oder unerledigt markiert werden. Die Transaktions-ID muss vorab aus einem in eine XML-Property-List durchgeführten Umsatzexport (export transactions ... as "plist") ausgelesen werden.

Beispiel:

tell application "MoneyMoney"
    set transaction id 8534 checkmark to "on"
end tell


Dokumentation

Die vollständige Schnittstellen-Beschreibung ist in der bei macOS mitgelieferten »Script Editor.app« verfügbar:

Hierfür muss im AppleScript-Editor zuerst das Bibliotheks-Fenster aufgerufen und dort mit dem Plus-Knopf die MoneyMoney.app hinzugefügt werden.


Andere Programmiersprachen

AppleScript und XML Property Lists können relativ leicht in andere Programmiersprachen integriert werden, z.B. Python:

import datetime
import plistlib
import subprocess

# Export transactions from MoneyMoney.
from_date = datetime.date.today() + datetime.timedelta(days=-30)
script = 'tell application "MoneyMoney" to export transactions from date "%s" as "plist"' % from_date.strftime('%Y-%m-%d')
command = ['osascript', '-e', script]
with subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as pipe:
    result = pipe.communicate()
    if result[1] or pipe.returncode != 0:
        print('Could not export transactions from MoneyMoney. %s' % result[1].decode().strip())
        exit(1)

# Parse XML property list.
try:
    plist = plistlib.loads(result[0])
except plistlib.InvalidFileException as exception:
    print('Could not parse XML property list. %s' % repr(exception))
    exit(1)

# Do something with transactions.
for transaction in plist['transactions']:
    if transaction['booked']:
        bookingDate = transaction['bookingDate']
        name = transaction['name']
        amount = transaction['amount']
        currency = transaction['currency']
        print('%s, %s, %.02f %s' % (bookingDate.strftime('%Y-%m-%d'), name, amount, currency))