Verstuurde e-mails

  • 2 minutes to read
NOTE

Op de hoofdpagina waar de part wordt geplaatst dient deze regel code geplaatst te worden in de OnAfterGetCurrRecord-trigger:
CurrPage.CFLSentMails.page.CFLSetRecord(rec.RecordId);

Voorbeeld

Hieronder een voorbeeld waarbij de factbox wordt toegevoerd op de klantenlijst.

pageextension 50000 MyExtension extends "Customer List"
{
    layout
    {
        addfirst(FactBoxes)
        {
            part(CFLSentMails; "CFL Sent Mails Factbox")
            {
                ApplicationArea = All;
                Caption = 'Sent mails';
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    var
    begin
        CurrPage.CFLSentMails.page.CFLSetRecord(rec.RecordId);
    end;
}

Extra informatie

Om dit mogelijk te maken is een eigen tabel CFL Sent Mail gecreƫerd. Deze tabel is een kopie van de standaard tabel Sent Mail.
Dit is nodig omdat de meeste velden in de standaard-tabel afgeschermd zijn en niet kunnen gebruikt worden, zetten we de records uit de standaard-tabel via transferfields over naar onze tabel. In die tabel hebben we dan alle velden zitten en die kunnen we wel gebruiken.

De zelfde manier kan je ook gaan gebruiken om bvb op de Email editor pagina uitbreidingen te doen. Hieronder voorbeeld voor het toevoegen van actieknop die toelaat om een bijlage toe te voegen aan de mail.
De pagina, de tabelvelden, de attachments zijn zowat allemaal afgeschermd in de standaard. Maar door het overzetten van de record naar de eigen tabel is het mogelijk om de Message id van de mail te verkrijgen.
Eens je die Message id hebt kan je met de codeunit Mail Message de mail ophalen en aanpassen via de functies in de codeunit.

pageextension 50000 "Email Editor Ext" extends "Email Editor"
{
    layout
    {
    }

    actions
    {
        addlast(Processing)
        {
            action(CFLTest)
            {
                ApplicationArea = All;
                caption = 'Test Attachment';

                trigger OnAction()
                var
                    EmailMessage: codeunit "Email Message";
                    cflmailmessage: record "CFL Sent Email" temporary;
                    cflimagemt: codeunit "CFL Image Mgt";
                begin
                    cflmailmessage.TransferFields(rec);
                    EmailMessage.Get(cflmailmessage."Message id");
                    EmailMessage.AddAttachment('test.pdf', 'application:pdf', cflimagemt.GetEmptyPDF());
                    CurrPage.Attachments.page.Update();
                end;
            }
        }
    }
}