Zum Inhalt

Aktivierung des automatischen Versands für eigene Prozesse

Einführung

Der Dokumentenversand ermöglicht den automatischen Versand aller Versandprofile, wenn bestimmte Prozesse ausgeführt werden (z. B. das Umwandeln eines Vertrags in eine Bestellung). Die relevantesten Prozesse im Business Central Standard sind bereits abgedeckt. Es kann jedoch der Fall sein, dass das, was den Versand auslösen soll, noch nicht abgedeckt ist oder außerhalb des Business Central Standards liegt.

Um eine Integration innerhalb eines gewünschten Verfahrens zu erreichen, müssen Sie:

  1. Ein benutzerdefiniertes Ereignis definieren, das an dem gewünschten Punkt in Ihren Prozessen ausgelöst wird (z. B. nach dem Buchen einer Bestellung oder dem Aktualisieren einer bestimmten Tabelle).

  2. Sicherstellen, dass ein Connector vorhanden ist, der Ihre Anwendung/en mit dem Dokumentenversand verbindet. Erstellen Sie einen, falls erforderlich, um die Integration zu erleichtern.

  3. Einen Ereignis-Abonnenten für dieses Ereignis innerhalb Ihres eigenen Connectors erstellen.

Dieser Artikel erklärt, wie Sie diese Schritte implementieren und bietet Beispielcode zum Erstellen eines Ereignisses, Abonnieren desselben und Verknüpfen mit unserer Versandfunktionalität.

Erstellen und Abonnieren eines benutzerdefinierten Ereignisses

Schritt 1: Definieren Sie das benutzerdefinierte Ereignis

Der erste Schritt besteht darin, ein benutzerdefiniertes Ereignis im AL-Code zu definieren. Dieses Ereignis muss an dem geeigneten Punkt im Prozess ausgelöst werden, um das richtige Timing für den Versand sicherzustellen. Zum Beispiel:

[IntegrationEvent(false, false)]
local procedure OnAfterCustomProcess(ParamCustomRecord: Record "Custom Table"; ParamAdditionalInfo: Text)
begin
    // Dieses Ereignis wird nach einem benutzerdefinierten Prozess, wie dem Buchen oder Aktualisieren, ausgelöst.
end;

In diesem Beispiel wird das Ereignis OnAfterCustomProcess für eine benutzerdefinierte Tabelle definiert. Es nimmt den Datensatz der Tabelle und alle zusätzlichen relevanten Informationen als Parameter entgegen.

Schritt 2: Implementieren Sie den Ereignisauslöser

Dieses benutzerdefinierte Ereignis sollte an dem Punkt im Prozess aufgerufen werden, an dem der Versand initiiert werden soll. Wenn es beispielsweise nach dem Buchen eines Datensatzes gesendet werden soll:

procedure PostCustomRecord(var ParamCustomRecord: Record "Custom Table")
begin
    // Buchungslogik hier...
    Commit();

    // Auslösen des benutzerdefinierten Ereignisses
    OnAfterCustomProcess(ParamCustomRecord, 'Benutzerdefinierte Buchung abgeschlossen');
end;

Schritt 3: Erstellen Sie den Ereignis-Abonnenten

Sobald das benutzerdefinierte Ereignis vorhanden ist, besteht der nächste Schritt darin, einen Ereignis-Abonnenten im Connector zu erstellen, der auf das Ereignis hört und es mit dem Dokumentenversand verbindet:

[EventSubscriber(ObjectType::Codeunit, CodeunitId, 'OnAfterCustomProcess', '', false, false)]
local procedure HandleCustomProcess(ParamCustomRecord: Record "Custom Table"; ParamAdditionalInfo: Text)
var
    LocalCodeunitSIMEDSSI: Codeunit "SIM_EDS SI";
    LocalCodeunitSIMEDSQueueMgt: Codeunit "SIM_EDS Queue Mgt";
    LocalRecordRef: RecordRef;
begin
    // Holen Sie sich die Datensatzreferenz für die benutzerdefinierte Tabelle
    LocalRecordRef.GetTable(ParamCustomRecord);
    LocalRecordRef.SetRecFilter();

    // Rufen Sie die Versandfunktionalität auf
    LocalCodeunitSIMEDSSI.SetIsCustomProcess(true);
    LocalCodeunitSIMEDSQueueMgt.SendEDS(LocalRecordRef, false, false, '');
    LocalCodeunitSIMEDSSI.ClearIsCustomProcess();
end;

Erklärung

Benutzerdefiniertes Ereignis:
- Sie sollten eigene Ereignisse definieren, wie OnAfterCustomProcess, die an dem richtigen Punkt in Ihren Prozessen ausgelöst werden sollten (z. B. nach dem Buchen eines Datensatzes).
- Dies gewährleistet volle Flexibilität, um den Dokumentenversand mit Ihren benutzerdefinierten Workflows zu integrieren.

Ereignis-Abonnent:
- Der Abonnent hört auf das benutzerdefinierte Ereignis und verbindet es mit unserem Versandverfahren.
- Dies muss innerhalb Ihres Connectors implementiert werden.

Connector:
- Wenn kein Connector vorhanden ist, müssen Sie einen erstellen, um Ihre benutzerdefinierten Tabellen/Verfahren mit dem Dokumentenversand zu verknüpfen.

Protokolle und Fehlersuche

Wenn die Integration nicht wie erwartet funktioniert:
- Überprüfen Sie das Auslösen des benutzerdefinierten Ereignisses: Stellen Sie sicher, dass das benutzerdefinierte Ereignis an dem geeigneten Punkt im Prozess aufgerufen wird.
- Überprüfen Sie die Protokolle: Protokolle zeigen Probleme an, wie z. B. Fehlkonfigurationen oder fehlende Verbindungen zwischen dem Ereignis und dem Versandverfahren.
- Überprüfen Sie die Connector-Einrichtung: Wenn der Ereignis-Abonnent nicht funktioniert, stellen Sie sicher, dass er korrekt in einem funktionierenden Connector implementiert ist.

Zusammenfassung

Durch das Erstellen eines benutzerdefinierten Ereignisses und eines Ereignis-Abonnenten innerhalb Ihres Connectors können Sie die Funktionalität des Dokumentenversands auf benutzerdefinierte Tabellen und Prozesse erweitern. Die Flexibilität, wo und wie das Ereignis ausgelöst wird, ermöglicht eine nahtlose Integration in einzigartige Workflows.

Wenn kein Connector vorhanden ist, muss er als Grundlage für diese Integration erstellt werden. Für zusätzliche Unterstützung konsultieren Sie bitte unsere Unterstützungsdokumentation oder wenden Sie sich an den technischen Support.