Ereignistypen
Diese Seite listet die Ereignisse, die SHIPM8 auslöst, nach Bereich gruppiert. Zu jedem finden Sie den trigger identifier, den Sie ins Abonnement tippen, und den passenden trigger type. Beides muss zusammenpassen, sonst greift das Abonnement nicht — siehe Ein Abonnement anlegen.
Einen Identifier lesen
Die meisten Identifier bestehen aus drei Teilen:
$module_object_action
- module — der Teil von SHIPM8, aus dem das Ereignis kommt (
invoicing,nautical,customcontentund so weiter). - object — die Art Datensatz (
invoice,visitoder der System code eines Ihrer eigenen Objekte). - action — was passiert ist (
add,update,finalized,eta…).
Das erste Zeichen ist bedeutsam:
$— das Ereignis kommt aus SHIPM8 selbst.@— das Ereignis kommt von außen, geschickt von einem externen System.
Manche Identifier haben nur zwei Teile, und geplante Jobs nutzen eine ID statt eines Namens. Das ist unten jeweils vermerkt.
Rechnungen
Ereignisse rund um Rechnungen. Der mitgeführte Datensatz ist die Rechnung selbst.
| Trigger identifier | Trigger type | Wann es passiert |
|---|---|---|
$invoicing_invoice_add | Create | Eine Rechnung entsteht — von Hand, über einen Rechnungsablauf oder per Import. |
$invoicing_invoice_update | Update | Eine Rechnung wird geändert. Das Ereignis trägt auch die Liste der geänderten Felder. |
$invoicing_invoice_delete | Delete | Eine Rechnung wird gelöscht. |
$invoicing_invoice_cancel | Generic | Eine Rechnung wird storniert. |
$invoicing_invoice_split | Generic | Eine Rechnung wird in mehrere aufgeteilt. |
$invoicing_invoice_finalized | Generic | Eine Rechnung wird final. |
$invoicing_invoice_pendingapproval | Generic | Ein Rechnungsablauf legt eine Rechnung zur Freigabe vor. |
$invoicing_invoice_pendingverification | Generic | Ein Rechnungsablauf legt eine Rechnung zur Prüfung vor. |
$invoicing_invoice_finalized ist hier das Arbeitspferd: der Moment, in dem eine Rechnung
feststeht und an ein Buchhaltungssystem gehen kann.
Eigene Datensätze (eigene Daten)
Ereignisse an den Objekten, die Sie selbst unter Eigene Daten eingerichtet haben. Weil diese Objekte je Organisation verschieden sind, bauen sich die Identifier aus dem System code Ihres Objekts auf — dem Kurzcode an der Objektdefinition:
$customcontent_<system code>_<action>
Ein Objekt mit dem System code order ergibt also $customcontent_order_add,
$customcontent_order_update und so weiter.
| Aktionsteil | Trigger type | Wann es passiert |
|---|---|---|
_add | Create | Ein Datensatz dieser Art entsteht. |
_update | Update | Ein Datensatz wird geändert. Trägt die Liste der geänderten Felder. |
_delete | Delete | Ein Datensatz wird gelöscht. |
_detach | Delete | Ein Datensatz wird von dem Datensatz gelöst, mit dem er verknüpft war. |
Der Posteingang
Datensätze, die über den Posteingang ankommen und erst freigegeben werden müssen, bevor sie
echte Datensätze werden, haben ein eigenes Modul, customcontentinbox:
$customcontentinbox_<system code>_<action>
| Aktionsteil | Trigger type | Wann es passiert |
|---|---|---|
_add | Create | Ein Posteingangseintrag entsteht. |
_update | Update | Ein Posteingangseintrag wird geändert. |
_delete | Delete | Ein Posteingangseintrag wird gelöscht. |
_approve | Generic | Ein Posteingangseintrag wird freigegeben und wird ein echter Datensatz. |
_decline | Generic | Ein Posteingangseintrag wird abgelehnt. |
_addshadow | Generic | Eine Schattenkopie eines Posteingangseintrags entsteht. |
Automatisieren Sie etwas am fertigen Datensatz, nehmen Sie customcontent.
customcontentinbox nur dann, wenn es um Ankunft und Freigabe eingehender Daten geht.
Hafenbesuche und Bewegungen
Ereignisse, die entstehen, während SHIPM8 die Anlaufdaten aus den Systemen des Hafens aktuell hält. Sie feuern je geändertem Wert, deshalb nennt der Identifier den geänderten Wert statt einer Aktion. Alle haben den trigger type Generic.
Für einen Hafenbesuch — den ganzen Anlauf:
| Trigger identifier | Wann es passiert |
|---|---|
$nautical_visit_eta | Die voraussichtliche Ankunftszeit ändert sich. |
$nautical_visit_ata | Die tatsächliche Ankunftszeit wird gesetzt. |
$nautical_visit_etd | Die voraussichtliche Abfahrtszeit ändert sich. |
$nautical_visit_atd | Die tatsächliche Abfahrtszeit wird gesetzt. |
$nautical_visit_status | Der Status des Besuchs ändert sich. |
$nautical_visit_agent | Der Agent des Besuchs ändert sich. |
$nautical_visit_entrypoint | Der Besuch bekommt seinen Einlaufpunkt. |
$nautical_visit_exitpoint | Der Besuch bekommt seinen Auslaufpunkt. |
$nautical_visit_pierin | Das Schiff kommt an einem Liegeplatz an. |
$nautical_visit_pieruit | Das Schiff verlässt einen Liegeplatz. |
$nautical_visit_lockentry | Das Schiff fährt in eine Schleuse ein. |
$nautical_visit_lockexit | Das Schiff verlässt eine Schleuse. |
Für eine Bewegung — einen einzelnen Abschnitt des Besuchs:
| Trigger identifier | Wann es passiert |
|---|---|
$nautical_movement_eta | Die voraussichtliche Ankunft der Bewegung ändert sich. |
$nautical_movement_ata | Die tatsächliche Ankunft der Bewegung wird gesetzt. |
$nautical_movement_etd | Die voraussichtliche Abfahrt der Bewegung ändert sich. |
$nautical_movement_atd | Die tatsächliche Abfahrt der Bewegung wird gesetzt. |
$nautical_movement_agent | Der Agent der Bewegung ändert sich. |
Die Daten dahinter beschreibt Hafenbesuche.
Ankunfts- und Abfahrtszeiten werden im Vorfeld eines Anlaufs immer wieder korrigiert — ein ETA-Ereignis kann für einen Besuch also viele Male feuern. Ergänzen Sie Bedingungen, damit die Automatisierung nur dann handelt, wenn sie soll — etwa auf den tatsächlichen Zeiten statt auf den geschätzten.
Dokumente (Datenexport)
Ereignisse, die entstehen, nachdem SHIPM8 etwas erzeugt und ausgeliefert hat. Beide haben den trigger type Generic. Die Ereignisdaten sagen, welche Vorlage verwendet wurde, welche Datensätze betroffen waren, ob es geklappt hat und welche Fehlermeldungen es gab.
| Trigger identifier | Wann es passiert |
|---|---|
$contentdistribution_template_distribute | Ein Dokument wurde aus einer Exportvorlage erzeugt und ausgeliefert. |
$contentdistribution_notification_distribute | Eine Benachrichtigung wurde erzeugt und ausgeliefert. |
Damit bauen Sie „und danach festhalten, dass es verschickt wurde“ — siehe Ereignisse verketten.
Eingehende Webhooks (externe Systeme)
Schickt ein angebundenes System eine Änderung an SHIPM8, kommt sie als Ereignis mit einem
@ davor und nur zwei Teilen an:
@service_object
Der trigger type ist Generic. Unterstützt wird derzeit Exact Online, die Identifier
sehen also aus wie @exactonline_salesinvoice oder @exactonline_purchaseentry — der
Objektteil ist der Objekttyp, für den der Webhook auf der Exact-Online-Seite registriert ist.
Anders als bei den übrigen Ereignissen sind die Daten hier die Nutzdaten des externen Systems, nicht ein SHIPM8-Datensatz. Deshalb gehen Webhook-Automatisierungen meist mit einer Aktion Content distribution export additional data oder Content distribution import zusammen — siehe Aktionstypen.
Den Webhook selbst einzurichten gehört zur Schnittstelle; siehe Exact Online.
Geplante Jobs
Ein geplanter Job hat keinen namensbasierten Identifier. Stattdessen ist die ID des Jobs
— ein langer Code der Form 3f2a1b00-… — der trigger identifier, und der trigger type ist
Hangfire. Der Job läuft nach seinem Zeitplan und übergibt seine Daten an jedes
Abonnement, das seine ID trägt.
So entsteht eine wiederkehrende Automatisierung: Der Job liefert das Wann, das Abonnement das Was. Die ID bekommen Sie vom Job selbst.
Ihre eigenen Kettenereignisse
Jeder Identifier, den Sie sich auf dem Reiter Triggers einer Aktion ausdenken, wird zu einem Ereignis, das Sie abonnieren können. Geben Sie ihm den trigger type Generic, außer Sie lassen den Namen bewusst auf eines der Wörter enden, die unter Ein Abonnement anlegen stehen. Siehe Ereignisse verketten.
Wenn das gesuchte Ereignis fehlt
Mit SHIPM8 kommen neue Ereignisse dazu, und nicht jede Änderung in der App löst eines aus. Steht der Moment, den Sie automatisieren wollen, nicht in diesen Tabellen, fragen Sie den SHIPM8-Support — manchmal gibt es ein benachbartes Ereignis, das mit den richtigen Bedingungen passt, und manchmal ist es eine kleine Ergänzung auf unserer Seite.
Den trigger type Processed gibt es für Ereignisse, deren Name auf _processed endet.
Derzeit löst kein Bereich so eines aus, Sie brauchen ihn also noch nicht — er ist für später
reserviert.