Gegevenswaarde Type: Codeunit
Met de Type: Codeunit kan een waarde uit een tabel individueel worden gedefinieerd. Geprogrammeerde functies, filters en andere dingen kunnen hiervoor worden gebruikt.
Voorbeeld
Wanneer de klant een codeunit gebruikt voor het samenvoegen van regels of een codeunit voor andere logica voor een geboekte verkoopfactuur, dan heeft u ook een codeunit nodig voor eDocuments. Anders is de kans zeer groot dat er een ongeldig XML-bestand wordt aangemaakt voor XInvoice en ZUGFeRD-formaten.
In de voorbeeldcodeunit retourneert de GETFUNCTION-methode de parameterlijst voor de configuratie van de gegevenswaarde.
Info
Deze codeunit moet worden geïmplementeerd binnen een aangepaste extensie.
| AL |
|---|
| codeunit 50000 "SIM_XSD Custom Data Value"
{
TableNo = "SIM_XSD Data Value";
trigger OnRun()
var
LocalRecordSalesInvoiceLine: Record "Sales Invoice Line";
LocalRecordPurchInvLine: Record "Purch. Inv. Line";
LocalRecordSIMXSDLinkedData: Record "SIM_XSD Linked Data";
LocalRecordSIMXSDLinkedDataLine: Record "SIM_XSD Linked Data Line";
LocalRecordRef: RecordRef;
LocalParamText: Text;
begin
if Rec."Codeunit Function" = '' then
LocalParamText := 'GETFUNCTIONS'
else
LocalParamText := Rec."Codeunit Function";
case LocalParamText of
'GETFUNCTIONS':
Rec."Function List" := 'SalesInvoiceLine_CAT,PurchInvLine_CAT';
'SalesInvoiceLine_CAT':
begin
if not LocalRecordRef.Get(Rec."Codeunit Record ID") then
Error('Record bestaat niet.');
if not LocalRecordSIMXSDLinkedData.Get('CATEGORY') then
Error('Gekoppelde gegevens bestaan niet.');
if LocalRecordRef.Number <> 113 then
Error('Verkeerde tabel');
LocalRecordRef.SetTable(LocalRecordSalesInvoiceLine);
if LocalRecordSalesInvoiceLine."VAT Bus. Posting Group" = 'NICHTSTB' then begin
Rec."Function Return Value" := 'E';
exit;
end;
if LocalRecordSIMXSDLinkedDataLine.Get(LocalRecordSIMXSDLinkedData.Code, LocalRecordSalesInvoiceLine."VAT Prod. Posting Group") then begin
Rec."Function Return Value" := LocalRecordSIMXSDLinkedDataLine."New Value";
exit;
end;
Rec."Function Return Value" := '';
end;
'PurchInvLine_CAT':
begin
if not LocalRecordRef.Get(Rec."Codeunit Record ID") then
Error('Record bestaat niet.');
if not LocalRecordSIMXSDLinkedData.Get('CATEGORY') then
Error('Gekoppelde gegevens bestaan niet.');
if LocalRecordRef.Number <> 123 then
Error('Verkeerde tabel');
LocalRecordRef.SetTable(LocalRecordPurchInvLine);
if LocalRecordPurchInvLine."VAT Bus. Posting Group" = 'NICHTSTB' then begin
Rec."Function Return Value" := 'E';
exit;
end;
if LocalRecordSIMXSDLinkedDataLine.Get(LocalRecordSIMXSDLinkedData.Code, LocalRecordPurchInvLine."VAT Prod. Posting Group") then begin
Rec."Function Return Value" := LocalRecordSIMXSDLinkedDataLine."New Value";
exit;
end;
Rec."Function Return Value" := '';
end;
end;
end;
}
|
Zie ook