Zum Hauptinhalt springen
Mit einem Asynchronous-Server-Side-Event schickt der Shop Daten an ein fremdes System, ohne auf dessen Antwort zu warten. Der Seitenaufbau läuft weiter, die Übermittlung geschieht im Hintergrund. Im Template sind dafür nur zwei Tags nötig: ASSE-Fire() löst ein Ereignis aus, ASSE-LastErrorCode sagt, ob das geklappt hat. Wegweiser: Asynchronous-Server-Side-Events

Was beim Auslösen tatsächlich passiert

Das Tag verschickt die Daten nicht selbst. Es legt das Ereignis als Datei in einem Spool-Verzeichnis ab, und ein eigener Prozess stellt es von dort aus zu, mit Wiederholungen, falls der Empfänger nicht erreichbar ist. Daraus folgt zweierlei für die Templatearbeit:
  • Der Seitenaufbau wird nicht aufgehalten, auch wenn das Zielsystem langsam oder gar nicht antwortet.
  • Ob die Übermittlung am Ende erfolgreich war, erfährt das Template nicht. ASSE-LastErrorCode meldet nur, ob das Ereignis überhaupt angenommen und abgelegt werden konnte.
Für eine Rückmeldung an den Besucher eignen sich diese Tags deshalb nicht. Sie sind dafür gedacht, ein anderes System zu benachrichtigen, nicht dafür, eine Antwort abzuholen.

Voraussetzungen

Drei Dinge müssen stimmen, bevor ein Ereignis überhaupt ausgelöst werden kann: Ein Eintrag im Abschnitt <ASSE> legt unter anderem die ID fest, unter der das Ereignis im Template angesprochen wird, die Adresse des Empfängers, die HTTP-Methode, den Namen des Payload-Parameters, den Content-Type und die Bedingungen, unter denen eine Antwort als erfolgreich gilt. Referenz: Abschnitt ASSE

Ein Ereignis auslösen

Das Tag gibt selbst nichts aus. Es löst nur aus und ist deshalb ausschließlich als Einzel-Tag verwendbar, dafür in allen Templates.

ASSE-Fire()

Löst das Ereignis mit der angegebenen ID aus und übergibt ihm die angegebenen Daten. Beide Parameter unterstützen Tag-in-Tag, die Daten lassen sich also aus anderen Tags zusammensetzen.
Beide Parameter sind Pflicht. Fehlt der zweite, ist das Tag ungültig und löst nichts aus. Soll kein Inhalt mitgeschickt werden, übergeben Sie ausdrücklich einen leeren Wert statt den Parameter wegzulassen.Das Tag löst bei jedem Seitenaufbau aus, an dem es steht. Klammern Sie es deshalb so ein, dass es nur im gewünschten Fall zum Zuge kommt, beispielsweise auf der Bestellbestätigungsseite nur dann, wenn tatsächlich eine Bestellung zustande gekommen ist. Ein Neuladen der Seite durch den Besucher löst das Ereignis sonst ein zweites Mal aus.
Achten Sie beim Payload auf die Zeichen, die im Tag selbst Bedeutung haben. Ein Komma im Payload trennt sonst Parameter, die gar nicht getrennt werden sollen.

Prüfen, ob es geklappt hat

ASSE-LastErrorCode

Gibt den Ergebniscode des zuletzt ausgelösten Ereignisses aus. Als Bereichs-Tag greift es, wenn ein Fehler aufgetreten ist.
Als Einzel-Tag gibt ASSE-LastErrorCode immer eine Zahl aus, im Erfolgsfall die 0. Setzen Sie es deshalb nur innerhalb der Klammerung ein. Außerhalb steht sonst eine einsame 0 auf der Seite.
Das Tag hält immer nur das Ergebnis des zuletzt ausgelösten Ereignisses fest. Lösen Sie auf einer Seite mehrere aus, prüfen Sie jedes einzeln direkt nach seinem ASSE-Fire(), sonst sehen Sie nur das letzte Ergebnis.

Die Bedeutung der Codes

Nicht jeder Fehler ist ein Fall für den WEBSALE-Support. Ein Teil davon entsteht im Template selbst. Code 4 ist der häufigste und zugleich der, den Sie selbst beheben können. Er bedeutet fast immer einen Tippfehler in der ID oder einen Eintrag, der in der shop.config noch fehlt. Vergleichen Sie zuerst die Schreibweise im Tag mit der im Abschnitt <ASSE>. Codes jenseits dieser Liste betreffen das Schreiben der Ereignisdatei und sind ein Fall für Ihren WEBSALE-Ansprechpartner.

Verwandte Themen