Integrationsbeispiele
Die folgenden Beispiele verwenden Objekt-IDs aus einem fiktiven Consumer-Bereich. Sie müssen an den eigenen Bereich und die eigenen Präfixe angepasst werden.
Pakete automatisch erzeugen
codeunit 50130 "My DHL Packing"
{
procedure CreateSuggestedPackages(OrderNo: Code[20]; BoxCode: Code[20])
var
SalesHeader: Record "Sales Header";
DhlPackingMgt: Codeunit "SOUDHL Packing Mgt";
begin
SalesHeader.Get(SalesHeader."Document Type"::Order, OrderNo);
// 0 = Paketanzahl automatisch bestimmen.
DhlPackingMgt.CreatePackages(SalesHeader, 0, BoxCode);
end;
}Für einen expliziten Modus:
DhlPackingMgt.CreatePackagesWithPackingMode(
SalesHeader,
0,
BoxCode,
Enum::"SOUDHL Packing Mode"::"Smart Distribute");Die Methode kann bei unvollständigen Stammdaten oder nicht passenden Artikeln einen AL-Fehler auslösen. Für unbeaufsichtigte Prozesse sollte der Aufrufer eine klar definierte Fehlerbehandlung verwenden.
Packing-Eingaben über Event ändern
Das Event läuft nach der Standardauflösung und vor Validierung. Ein Fehler bricht ab, bevor Pending-Pakete gelöscht werden.
Empfänger vor dem Persistieren normalisieren
Der geänderte Header wird anschließend vom Connector gespeichert. Name, Adresse, E-Mail und Telefon nicht protokollieren.
Label für ein vorhandenes Paket erzeugen
Für Hintergrundprozesse sollte die Warnung protokolliert oder an den aufrufenden Prozess zurückgegeben werden, statt Message zu verwenden.
Labelergebnis ohne Failure-Event auswerten
Bei Erfolg läuft das Event nach dem Commit(). Ein Subscriber-Fehler rollt das Label nicht zurück.
Express-Produktcode bestimmen
Live-Express-Preis abrufen
OnBeforeGetRate kann Destination, Maße oder Produktcode ändern. OnAfterGetRate läuft auch dann, wenn Express nicht konfiguriert ist.
Express-Request über Event ergänzen
Dieser Subscriber läuft nur für Express. Das JSON darf nicht protokolliert werden.
Parcel-DE-Request ergänzen
Pflichtknoten nicht entfernen und keine Credentials verwalten. Fachliche Header-Änderungen gehören bevorzugt nach OnBeforeGenerateLabel.
Eigene Versandoberfläche verwenden
Produktiv sollte das Ausblenden von einer eigenen Setup-Option abhängen, damit Administratoren das Standard-DHL-UI bei Bedarf wieder aktivieren können.
Lookup auf DHL-Boxen
Lookups sind zulässig. Direkte Änderungen an DHL-Boxen aus der Consumer-App sollten vermieden werden.
