# Makros

Mit Makros lassen sich Daten **vor oder nach** einer Übertragung noch verändern — ohne
Anpassung der Schnittstelle. Geschrieben werden sie in der SelectLine, eingetragen in
FINN.ghost.

<p class="callout success">Das ist der vorgesehene Weg für Sonderfälle: Ein Feld soll anders gefüllt, ein Text ergänzt, eine Auswahl anders getroffen werden. Was sich mit einem Makro lösen lässt, braucht keine Programmierung.</p>

## Wo die Felder stehen

In den Einstellungen der Module gibt es den Punkt **Makro**. Welche Makros ein Modul
anbietet, steht im Handbuch des Moduls.

![Makrofeld in den Einstellungen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-makros-afbdb926-makros-feld.png)

## Was eingetragen wird

Der **Dateiname**, den die SelectLine dem Makro automatisch gibt — nicht seine Bezeichnung.

![Makro in der SelectLine](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-makros-098ac218-makros-selectline.png)

<p class="callout danger">Das ist die häufigste Verwechslung: In der SelectLine ist die <em>Bezeichnung</em> sichtbar, gebraucht wird aber der <em>Dateiname</em>. Trägt man die Bezeichnung ein, wird das Makro nicht gefunden — und meist ohne auffällige Meldung übergangen.</p>

## Die Parameter müssen passen

Steht der Eingabecursor im Feld, zeigt FINN.ghost die **Parameter**, die das Makro
erwartet. Diese müssen im Makro gleichlautend vorhanden sein.

<p class="callout warning">Weicht ein Parametername ab, läuft das Makro nicht. Die Parameter sind die vereinbarte Schnittstelle zwischen FINN.ghost und dem Makro — sie gehören zeichengenau übernommen.</p>

## Was zu bedenken ist

<p class="callout danger">Ein Makro läuft bei <strong>jedem</strong> betroffenen Datensatz. Bei einem Vollexport mit zehntausenden Artikeln entscheidet seine Laufzeit über die Dauer des Laufs — ein Makro, das eine Sekunde braucht, verlängert den Export um Stunden.</p>

<p class="callout warning">Makros werden in der SelectLine ausgeführt und können dort schreiben. Vor dem Einsatz in einem echten Mandanten gehören sie in einem Testmandanten geprüft.</p>

## Wenn ein Makro nicht greift

| Ursache | Abhilfe |
| ------------------------------------------ | ------------------------------------ |
| Bezeichnung statt Dateiname eingetragen | Dateiname aus der SelectLine übernehmen |
| Parametername weicht ab | im Makro anpassen |
| Makro liegt im falschen Mandanten | im richtigen Mandanten anlegen |
| Makro läuft, wirkt aber nicht | prüfen, ob es vor oder nach der Übertragung greift |

Meldungen dazu stehen im Protokoll. Siehe [Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen).

## Nächster Schritt

[Anpassungen über die config.json](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/anpassungen-uber-die-configjson)