Freeze Integration in benutzerdefinierte Seiten
Überblick
Die DEXPRO Freeze Extension bietet Dokumentenarchivierungs-Funktionalität, die es Benutzern ermöglicht, Dokumente, Anhänge und zugehörige Daten für jeden Business Central-Datensatz zu speichern und abzurufen. Dieser Leitfaden erklärt, wie Sie die Freeze-Funktionalität in benutzerdefinierte Seiten integrieren.
Kernkomponenten
1. Quick Freeze Infobox
Die zentrale Komponente ist die "DXP FRZ Quick Freeze FB" Seite, die folgendes bietet:
- Drag-and-Drop Datei-Upload-Funktionalität
- Anzeige archivierter Datensätze bezogen auf den aktuellen Datensatz
- Schnellzugriff auf Freeze-Operationen
2. Management Codeunits
- "DXP Extension Mgt." - Verwaltet Freeze-Warteschlangen-Operationen und Hintergrundverarbeitung
- "DXP Freeze Search Mgt." - Verwaltet Suchfunktionalität für archivierte Datensätze
- "DXP FRZ Result Mgt." - Verwaltet Ergebnisanzeige und Archiv-Ansicht
3. Wichtige Tabellen
- "DXP Frz Recent Record" - Speichert aktuelle Freeze-Einträge
- "DXP Freeze Setup" - Konfigurationseinstellungen
- "DXP Freeze Record Type" - Verfügbare Datensatztypen für die Archivierung
Implementierungsschritte
Schritt 1: Infobox hinzufügen
Fügen Sie die Quick Freeze Infobox zum Layout-Bereich Ihrer Seite hinzu:
layout
{
addfirst(factboxes)
{
part("DXP Quick Archive"; "DXP FRZ Quick Freeze FB")
{
ApplicationArea = All;
SubPageLink = "Record System ID" = field(SystemId),
"Record Table No." = const(Database::"Ihr Tabellenname");
SubPageView = sorting("Entry No.") order(descending);
}
}
}
Wichtige Hinweise:
- Ersetzen Sie
Database::"Ihr Tabellenname"
mit der entsprechenden Tabellenkonstante
Schritt 2: Navigationsaktionen hinzufügen
Fügen Sie Freeze-bezogene Aktionen zum Aktionsbereich der Seite hinzu:
actions
{
addfirst(navigation)
{
action("DXP Freeze")
{
Caption = 'Freeze öffnen';
ApplicationArea = All;
Image = Archive;
ToolTip = 'Öffnet das Freeze-Archiv und zeigt mit dem ausgewählten Datensatz verknüpfte Anhänge an.';
ShortcutKey = 'Ctrl+Alt+F';
trigger OnAction()
var
ResultMgt: Codeunit "DXP FRZ Result Mgt.";
begin
ResultMgt.SubmitSearchAndShowResults(Rec.RecordId(), FrzSearchMgt.GetSearchCombinationForTable(Rec.SystemId, Rec.RecordId.TableNo()));
end;
}
}
}
Schritt 3: Hervorgehobene Aktionen hinzufügen
actions
{
addfirst(Category_Category16)
{
actionref("DXP Freeze_Promoted"; "DXP Freeze")
{
}
}
modify(Category_Category16)
{
Caption = 'DEXPRO Freeze', Locked = true;
}
}
Schritt 4: Seiten-Trigger hinzufügen
trigger OnAfterGetCurrRecord()
begin
CurrPage."DXP Quick Archive".Page.SetSourceRecord(Rec.RecordId());
end;
Schritt 5: Variablen deklarieren
var
ExtMgt: Codeunit "DXP Extension Mgt.";
FrzSearchMgt: Codeunit "DXP Freeze Search Mgt.";
Vollständiges Beispiel
Hier ist ein vollständiges Beispiel für eine benutzerdefinierte Belegseite:
pageextension 50000 "Mein benutzerdef. Beleg Erw." extends "Mein benutzerdefinierter Beleg"
{
layout
{
addfirst(factboxes)
{
part("DXP Quick Archive"; "DXP FRZ Quick Freeze FB")
{
ApplicationArea = All;
SubPageLink = "Record System ID" = field(SystemId),
"Record Table No." = const(Database::"Ihr Tabellenname");
SubPageView = sorting("Entry No.") order(descending);
}
}
}
actions
{
addfirst(navigation)
{
action("DXP Freeze")
{
Caption = 'Freeze öffnen';
ApplicationArea = All;
Image = Archive;
ToolTip = 'Öffnet das Freeze-Archiv und zeigt mit dem ausgewählten Datensatz verknüpfte Anhänge an.';
ShortcutKey = 'Ctrl+Alt+F';
trigger OnAction()
var
ResultMgt: Codeunit "DXP FRZ Result Mgt.";
begin
ResultMgt.SubmitSearchAndShowResults(Rec.RecordId(), FrzSearchMgt.GetSearchCombinationForTable(Rec.SystemId, Rec.RecordId.TableNo()));
end;
}
}
addfirst(Category_Category16)
{
actionref("DXP Freeze_Promoted"; "DXP Freeze")
{
}
}
modify(Category_Category16)
{
Caption = 'DEXPRO Freeze', Locked = true;
}
}
trigger OnAfterGetCurrRecord()
begin
CurrPage."DXP Quick Archive".Page.SetSourceRecord(Rec.RecordId());
end;
var
ExtMgt: Codeunit "DXP Extension Mgt.";
FrzSearchMgt: Codeunit "DXP Freeze Search Mgt.";
}
Zusätzliche Suchabfragen einrichten
Um auch Archiveinträge anhand von nicht direkt über die System-ID/Tabellennummer verbundenen Datensätzen (via BC archiviert) anzeigen zu können, können zusätzliche Suchabfragen eingerichtet werden. Dies ist hier dokumentiert: https://docs.squeeze.one/books/freeze-for-dynamics-365-bc-de-de/page/zusatzliche-suchabfragen
Testen Ihrer Implementierung
Dieses Integrationsmuster gewährleistet konsistente Freeze-Funktionalität über alle Business Central-Seiten hinweg und behält dabei die von der DEXPRO Freeze Extension etablierte Benutzererfahrung bei.
No Comments