0

Parameter wird nicht in Funktion übernommen

Ich möchte eine Rechung anlegen und diese dann als E-Mail versenden.
Dazu lege ich erst die Rechnung an und erszeuge eine neue Rechnungsnummer.
Dann will ich in einer Mailvorlage die Platzhalter wie Datum, Rechungsnummer, etc durch die Rechnungsdaten ersetzen.
Wenn ich meine Parser Funktion aufrufe ist die Rechnungsnummer ein leerer Text.
Außerhalb dieser Funktion ist die Variable aber mit der Rechnungsnummer gefüllt.
Alle anderen Variablen sind ebenfalss gefüllt. Nur eben die Rechnungsnummer nicht.

"-----------------------------------";
" Auszug aus neue Rechnung ertellen ";
"-----------------------------------";

let Rechnungsnummer := getNextInvoiceNumber();
let invoice := (create Rechnungen);
invoice.(Datum := abo.'Nächstes Datum');
invoice.(Rechnungsnummer := Rechnungsnummer);
invoice.(Kunde := Kunde);
alert(invoice.Rechnungsnummer);  <<<<---- nicht leer
invoice.('E-Mail Betreff' := parse_template(invoice, "{$Vorname}, deine Rechnung {$Rechnungsnummer} ...."));
invoice.('E-Mail Nachricht' := parse_template(invoice, "Hallo {$Vorname} ...."));
alert(invoice.Rechnungsnummer);  <<<<---- nicht leer

Hier die Parser Funktion:

"------------------------------------------------------------------------------";
" Ersetzt die Vorlage mit den passenden Daten                                  ";
"------------------------------------------------------------------------------";
function parse_template(invoice : Rechnungen,template : text) do
    alert(invoice.Rechnungsnummer);  <<<<---- ist hier leer

    let result := template;
    result := replace(result, "{$Vorname}", invoice.Kunde.Vorname);
    result := replace(result, "{$Rechnungsnummer}", invoice.Rechnungsnummer);
    result := replace(result, "{$Datum}", format(invoice.Datum, "DD.MM.YYYY"));
    result
end;

Kann mir das jemand erklären?

Antwort

null