Mit diesem Formular können Sie fehlende, unklare oder fehlerhafte Inhalte in der Dokumentation melden und Verbesserungsvorschläge machen. Ihr Feedback hilft uns, die Qualität und Vollständigkeit kontinuierlich zu verbessern.
Beleg E-Mails
Dieser E-Mail Versand wird empfohlen, wenn
eine PDF-Datei auf Basis des zu versendenden Datensatzes erstellt und an die E-Mail angefügt werden soll.
vom Standard abweichende Empfänger pro zu versendender Belegart einrichtbar sein sollen.
Sprachenabhängige E-Mail Bodys gefordert sind.
dauerhaft Dateien (wie z.B. AGBs) pro Belegart an die zu versendende E-Mail angehängt werden sollen.
Voraussetzung ist, dass man über den zu versendenden Datensatz einen Bezug zu einem Debitor oder Kreditor herstellen kann.
Umsetzung
Soll im Projekt eine kundenindividuelle E-Mail auf Basis einer in unitop nicht vorhandenen Beleg-Belegart für Debitoren oder Kreditoren erstellt werden, müssen folgende Erweiterungen erfolgen: (Achtung: statt vorangestelltem GOB (in unitop) wird in Kundenprojekten mit PTE als Präfix gearbeitet!)
Neue "Verwendung" im Enum "Report Selection Usage" anlegen, hinter dem in der Berichtsauswahl der zu versendende Report eingerichtet wird.
Neue Belegart einrichten für die Tabelle, auf deren Basis eine E-Mail versendet werden soll. Sollte keine Kopf-/Zeilenstruktur vorhanden sein, wird die Angabe für die Zeilentabelle leer gelassen (die Angabe der Kopf-Tabelle ist obligatorisch). Hinterlegung von Verwendung, Filtern (wenn in derselben Tabelle mehrere unterschiedliche E-Mails versendet werden sollen (vgl. Angebot, Auftrag etc.)) und Geschäftsbeziehung nicht vergessen.
Neue Funktionen in der Tabelle, für die der Versand erfolgen soll:
Für den generellen Versand: PTESend
Aufruf der Codeunits CCSendCustomer oder CCSendVendor mit Funktion Send
procedure PTESend(ReportSelectionUsage: Enum "Report Selection Usage"; var DocumentSendingProfile: Record "Document Sending Profile") var CCSendCustomer: Codeunit "GOB CC Send Customer"; begin CCSendCustomer.Send(Rec, ReportSelectionUsage, DocumentSendingProfile); end;Für den Aufruf der Belegempfänger: PTECallDocumentRecipients
Aufruf der Codeunit CCDocRecipientsMgt mit Funktion CallCCDocumentRecipients
procedure PTECallDocumentRecipients()
var
CCDocRecipientsMgt: Codeunit "GOB CC Doc. Recipients Mgt.";
begin
CCDocRecipientsMgt.CallCCDocumentRecipients(Rec);
end;
- Löschen der (gebuchten) Empfänger OnAfterDelete
trigger OnAfterDelete()
var
CCDocRecipientsMgt: Codeunit "GOB CC Doc. Recipients Mgt.";
begin
CCDocRecipientsMgt.DeleteDocumentRecipients(Rec);
end;
- Erweiterung der Karte und Liste für die Tabelle deren Daten versendet werden soll, um eine E-Mail Action:
action("PTE E-Mail")
{
Caption = 'Email',
Comment = 'de-DE=E-Mail';
ToolTip = 'Send the document by Email.',
Comment = 'de-DE=Versenden Sie den Beleg per E-Mail.';
ApplicationArea = All;
Image = Email;
trigger OnAction();
var
DocumentSendingProfile: Record "Document Sending Profile";
DocSendingProfileMgt: Codeunit "GOB Doc. Sending Profile Mgt.";
begin
DocumentSendingProfile.Get(DocSendingProfileMgt.GetDocumentSendingProfile_Email());
Rec.GOBSend(Enum::"Report Selection Usage"::<NeueVerwendung>,DocumentSendingProfile);
end;
}
- Erweiterung der Karte und Liste für die Tabelle deren Daten versendet werden soll, um die Action "Belegempfänger"
action("PTE Document Recipients")
{
Caption = 'Document Recipients',
Comment = 'de-DE=Belegempfänger';
ToolTip = 'Set up the recipients of this document and possible follow-on documents here.',
Comment = 'de-DE=Richten Sie hier die Empfänger dieses Belegs und möglicher Folgebelege ein.';
ApplicationArea = All;
Image = MailSetup;
trigger OnAction();
begin
Rec.PTECallDocumentRecipients();
end;
}
- Für das Kopieren der Dokumentenlayouts der Stammdaten in die Belegempfänger (der relevanten Belege):
Erweiterung der Funktion GetUsageTypeFilterForCopyCRS in Codeunit 5059770 "GOB CC Doc. Recipients Mgt." über den Publisher OnAfterGetUsageFilterForCopyCRS zur Erweiterung des gebildeten Filterstrings
[EventSubscriber(ObjectType::Codeunit, Codeunit::"GOB CC Doc. Recipients Mgt.", 'OnAfterGetUsageFilterForCopyCRS', '', false, false)]
procedure PTEOnAfterGetUsageFilterForCopyCRS(RecRef, UsageFilter)
begin
case RecRef.Number of
Database::"Sales Header":
begin
RecRef.SetTable(SalesHeader);
case SalesHeader."Document Type" of
SalesHeader."Document Type"::Quote:
UsageFilter += '|' + Format(ReportSelections.Usage::"PTE ABC");
end;
end;
end;
end;
Um die einzubindende Belegart über einen eigenen Absender zu versenden, muss das Enum "Email Scenario" erweitert und in der Codeunit "GOB CC Email Scenario Mapping" der Publisher OnElseCaseOnGetEmailScenario abonniert werden. Dort kann man dann gemappt über die neue Belegart das neue E-Mail Szenario zurückgeben.
Das Layout für den E-Mail Body wird wie bei allen Beleg-Belegarten in den benutzerdefinierten Berichtslayouts eingerichtet. Ebenso der Betreff und der Name der PDF-Datei, die an die E-Mail angefügt wird. Eine programmtechnische Erweiterung ist bei dieser Nutzung nicht nötig.
E-Mail Anhänge, die dauerhaft bei E-Mails der neuen Belegart mit versendet werden sollen, können wie gewohnt in der neuen Belegart hinterlegt werden. Eine programmtechnische Erweiterung ist bei dieser Nutzung nicht nötig.
Sollten für die neue Tabelle die Kopf- (und Zeilen-)anhänge aus dem BC Standard übernommen werden, werden diese automatisch beim E-Mail Versand als CC Anhang im E-Mail Dialog vorgeschlagen. Eine programmtechnische Erweiterung ist über die Adaption des BC Standards hinaus bei dieser Nutzung nicht nötig.
Sollten für die neue Tabelle die DMS-Anhänge aus unitop übernommen werden, werden diese automatisch beim E-Mail Versand als CC Anhang im E-Mail Dialog vorgeschlagen. Eine programmtechnische Erweiterung ist über die Adaption des unitop Standards hinaus bei dieser Nutzung nicht nötig.
Grafischer Überblick

*Rot umrandet ist der Part der im Projekt programmiert werden muss.