Nächstes Thema
★ Featured App
Finmatics Autonomous Accounting
Schnittstelle für KI-gesteuerte Belegverarbeitung von Finmatics.
Weitere Informationen
AppSource
Hinweis
NAVAX Dropzones sind für Upload-Größen bis zu 15000 KB (15 MB) geeignet.Hinweis
Dieses Beispiel dient nur zur Veranschaulichung der einfachsten Implementierung. Für Beleganhänge wird empfohlen die NAVAX App NAVAX Drag & Drop Beleganhänge (Drag & Drop Document Attachments) zu verwenden. Diese App basiert ebenfalls auf der NAVAX Dropzone, integriert diese aber direkt in die Beleganhang-FactBox. Weitere Informationen dazu finden Sie unter [Docs] NAVAX Drag & Drop Beleganhänge - Allgemeinenumextension 50000 "NVXTEST NCEX Dropzone ID" extends "NCEX Dropzone ID"
{
value(50000; "NVXTEST Customer")
{
Caption = 'NVXTEST Customer', Comment = 'DEU="NVXTEST Debitor"';
}
}
Durch diese Enum-Erweiterung hat der Kunde später auf der Seite NAVAX Dropzone-Einrichtung auch die Möglichkeit, die Einstellungen und Vorgaben für die neue Dropzone einzurichten:
pageextension 50000 "NVXTEST Customer List" extends "Customer List"
{
layout
{
addfirst(factboxes)
{
part(NVXTESTDropzone; "NCEX Dropzone")
{
ApplicationArea = All;
Visible = true;
}
}
}
trigger OnOpenPage()
begin
CurrPage.NVXTESTDropzone.Page.SetDropzoneID("NCEX Dropzone ID"::"NVXTEST Customer");
end;
trigger OnAfterGetCurrRecord()
begin
CurrPage.NVXTESTDropzone.Page.SetCurrRecord(Rec);
end;
}
Hinweis
Dieser Block:trigger OnAfterGetCurrRecord()
begin
CurrPage.NVXTESTDropzone.Page.SetCurrRecord(Rec);
end;
kann auch weggelassen werden, falls man z.B. eine Dropzone benötigt, die nicht Datensatzbezogen arbeitet. (z.B. Import von Zahlungsdateien der NAVAX App NCPI Zahlungsverkehr Import)
Hinweis
Für die Funktion SetDropzoneID steht auch eine Überladung mit folgenden zusätzlichen Parametern zur Verfügung:codeunit 50000 "NVXTEST Event Mgt."
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"NCEX Dropzone Mgt.", 'OnAfterUpload', '', false, false)]
local procedure NVXTEST_NCEXDropzoneMgt_OnAfterUpload(NCEXDropzoneID: Enum "NCEX Dropzone ID"; CurrRecordVariant: Variant; var UploadedTempBlobList: Codeunit "Temp Blob List"; FileNameList: List of [Text]; AdditionalCallID: Integer)
var
Customer: Record Customer;
DocumentAttachment: Record "Document Attachment";
TempBlob: Codeunit "Temp Blob";
ConfirmManagement: Codeunit "Confirm Management";
RecordRef: RecordRef;
InStream: InStream;
FileName: Text;
i: Integer;
NoOfFiles: Integer;
NoOfNoContentFiles: Integer;
NoRecordSelectedErr: Label 'No %1 is selected.', Comment = 'DEU="Es ist kein %1 ausgewählt."';
UploadMsg: Label 'Do you want to add %1 file(s) to the document attachments of %2 ''%3''?.', Comment = 'DEU="Möchten Sie %1 Datei(en) zu den Beleganhängen von %2 ''%3'' hinzufügen?"';
NoContentFilesMsg: Label 'Files that have no content cannot be added to the document attachments.\\Number of files not added: %1\Number of files added: %2', Comment = 'DEU="Dateien, die keinen Inhalt haben, können nicht zu den Beleganhängen hinzugefügt werden.\\Anzahl nicht hinzugefügter Dateien: %1\Anzahl hinzugefügter Dateien: %2"';
begin
if (NCEXDropzoneID <> NCEXDropzoneID::"NVXTEST Customer") then
exit;
if (UploadedTempBlobList.Count() = 0) then
exit;
if not CurrRecordVariant.IsRecord() then
Error(NoRecordSelectedErr, Customer.TableCaption());
Customer := CurrRecordVariant;
if (Customer."No." = '') then
Error(NoRecordSelectedErr, Customer.TableCaption());
Customer.Get(Customer."No.");
if not ConfirmManagement.GetResponseOrDefault(StrSubstNo(UploadMsg, UploadedTempBlobList.Count(), Customer.TableCaption(), Customer."No."), true) then
exit;
RecordRef.GetTable(Customer);
NoOfFiles := 0;
NoOfNoContentFiles := 0;
for i := 1 to UploadedTempBlobList.Count() do begin
UploadedTempBlobList.Get(i, TempBlob);
if TempBlob.HasValue() then begin
FileNameList.Get(i, FileName);
TempBlob.CreateInStream(InStream);
Clear(DocumentAttachment);
DocumentAttachment.Init();
DocumentAttachment.InitFieldsFromRecRef(RecordRef);
DocumentAttachment.SaveAttachmentFromStream(InStream, RecordRef, FileName);
NoOfFiles += 1;
end else
NoOfNoContentFiles += 1;
end;
if (NoOfNoContentFiles <> 0) then
Message(NoContentFilesMsg, NoOfNoContentFiles, NoOfFiles);
end;
}
Wichtig
if (NCEXDropzoneID <> NCEXDropzoneID::"NVXTEST Customer") then
exit;
Diese if-Bedingung entscheidet darüber, für welche Dropzone der Code ausgeführt werden soll und darf auf keinen Fall weggelassen werden.
Der Wert muss mit dem hinzugefügten Wert aus der enumextension übereinstimmen.
Finmatics Autonomous Accounting Schnittstelle für KI-gesteuerte Belegverarbeitung von Finmatics. Weitere Informationen AppSource |