[GELÖST] Archiv löschen, aber letzte Version behalten

18. Januar 2016 11:50

Hallo,

leider habe ich in der Forensuche nichts passendes zu meiner Frage gefunden.
Ich würde gerne wissen ob es eine Möglichkeit gibt, das Archiv zu bereinigen bis auf die letzte Angebots- oder Auftragsversion?

Also die Möglichkeit gibt es programmiertechnisch mit Sicherheit, aber vielleicht übersehe ich ja auch eine einfachere Variante.

Danke für eure Infos!

Gruß

Daniel
Zuletzt geändert von NavBeginner am 22. Januar 2016 14:52, insgesamt 1-mal geändert.

Re: Archiv löschen, aber letzte Version behalten

20. Januar 2016 10:14

Hallo nochmal,

es gibt doch bestimmt die Möglichkeit da was zu basteln.
Ich habe in Navision die Funktion gefunden "Archivierte Angebotsversionen löschen".
Diese bezieht sich auf den ProcessReport (5179) -> Delete Sales Quote Versions.

In folgendem Code werden also die Angebotsversionen gelöscht:
Code:
Sales Header Archive - OnAfterGetRecord()

SalesHeader.SETRANGE("Document Type",SalesHeader."Document Type"::Quote);
SalesHeader.SETRANGE("No.","No.");
SalesHeader.SETRANGE("Doc. No. Occurrence","Doc. No. Occurrence");
IF NOT SalesHeader.FINDFIRST THEN
  DELETE(TRUE);


Wie kann ich den denn bearbeiten bzw. prüfen ob eine höhere Version verfügbar ist? Wenn ja dann die vorherige löschen.
Bin programmiertechnisch nicht so fit.

Würde mich über einen Ansatz freuen!

Danke und Gruß

Daniel

Re: Archiv löschen, aber letzte Version behalten

20. Januar 2016 19:33

Ich würd's mal so in der Art versuchen:

SalesHeaderArchive2.setrange("Document Type","Document Type");
SalesHeaderArchive2.setrange("No.","No.");
SalesHeaderArchive2.setrange("Doc. No. Occurrence","Doc. No. Occurrence");
SalesHeaderArchive2.setfilter("Version No.",'>%1',"Version No.");
if SalesHeaderArchive2.findfirst then
begin
[ Löschen des aktuellen Sales Header Archive und der zugehörigen Zeilen und der zugehörigen Nebentabellen, Bemerkungen und was es sonst noch so geben könnte, ob da ein einfaches DELETE(TRUE) reicht müsstest du prüfen. ]
end

Re: Archiv löschen, aber letzte Version behalten

22. Januar 2016 14:52

Hallo enh,

danke für deine Info. Ich habs mittlerweile ebenfalls so gelöst wie du, bis auf eine kleine Abweichung. Es klappt aber sehr gut.

Mein Code:
Code:
youngerSalesHeaderArchive.SETRANGE("Document Type",youngerSalesHeaderArchive."Document Type"::Order);
youngerSalesHeaderArchive.SETRANGE("No.","No.");
youngerSalesHeaderArchive.SETFILTER("Version No.", '>%1', "Version No.");

IF NOT youngerSalesHeaderArchive.ISEMPTY THEN
 DELETE(TRUE);


PS: Es kann einiges an Performance einbüßen wenn man das komplette Archiv bereinigen will. Kleiner Tipp: Bereich festlegen und warten bis fertig. Dann nächsten Bereich usw.

Danke und Gruß
Privex007