E-mailsjablonen

  • 2 minutes to read

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;