E-mailsjablonen
Enums
CFL Email Template Type
extensible = true
values:
- CFL Text
- CFL Template Table
- CFL Other Table
- CFL Template
- CFL Expression
- CFL Url
- CFL Field Caption
- CFL Table Caption
- CFL Call BoCount API
Events
CFLOnAfterUpdateUrl
local procedure CFLOnAfterUpdateUrl(var Url: text)
begin
end;
Event om in te grijpen op de gegenereerde url.
Table CFL Mail Template
procedure CFLFillTemplate
procedure CFLFillTemplate(pVariant: Variant; var txtTemplate: Text)
Gebruik deze functie om een mailsjabloon op te vullen met data.
De parameter pVariant bevat de record. Deze record moet overeenkomen met de brontabel van het mailsjabloon.
De tekst van het opgevulde sjabloon wordt dan geretourneerd in de parameter txtTemplate.
Voorbeeld
Een mailsjabloon heeft altijd een tabel waarop die is gebouwd. Het opvullen van een template dient dan ook te gebeuren met een record uit die tabel.
De functie CFLPreview uit de tabel CFL Mail Template is een duidelijk voorbeeld.
Eerst krijgt men de mogelijkheid om filters te plaatsen op de tabel. Daarna wordt de functie CFLFillTemplate aangeroepen met dat record. Het is deze functie die het sjabloon gaat opvullen met de data uit het record.
procedure CFLPreview()
var
RecRef: RecordRef;
FldRef: FieldRef;
KeyRef: keyref;
lVariant: Variant;
txtBody: Text;
OStream: outstream;
txtFile: text;
FileMgt: codeunit "File Management";
FilterPage: FilterPageBuilder;
TableCaptionValue: Text;
ObjectTranslation: record "Object Translation";
ContentPreview: page "Content Preview";
i: integer;
begin
if rec."CFL Table No." <> 0 then begin
RecRef.OPEN("CFL Table No.");
Keyref := recref.KeyIndex(1);
TableCaptionValue := ObjectTranslation.TranslateObject(ObjectTranslation."Object Type"::Table, "CFL Table No.");
FilterPage.ADDTABLE(TableCaptionValue, "CFL Table No.");
for i := 1 to KeyRef.FieldCount do begin
Fldref := KeyRef.FieldIndex(i);
FilterPage.AddFieldNo(TableCaptionValue, FldRef.Number);
end;
FilterPage.SetView(TableCaptionValue, RecRef.GetView(true));
IF FilterPage.RUNMODAL = true THEN BEGIN
RecRef.SetView(FilterPage.GETVIEW(TableCaptionValue, TRUE));
END Else
exit;
IF RecRef.FINDFIRST THEN BEGIN
lVariant := RecRef;
end;
end;
CFLFillTemplate(lVariant, txtBody);
ContentPreview.SetContent(txtBody);
ContentPreview.run;
end;