Report 7398 Date Compress Whse. Entries, source in 29
Source29
src/Layers/W1/BaseApp/Warehouse/Ledger/DateCompressWhseEntries.Report.al627 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Warehouse.Ledger;
using Microsoft.Foundation.AuditCodes;
using Microsoft.Foundation.Period;
using Microsoft.Inventory.Tracking;
using System.DataAdministration;
using System.Utilities;
report 7398 "Date Compress Whse. Entries"
{
Caption = 'Date Compress Whse. Entries';
ToolTip = 'Save database space by combining related entries in one new entry. You can compress entries from closed fiscal years only.';
Permissions = TableData "Date Compr. Register" = rimd,
TableData "Warehouse Entry" = rimd,
TableData "Warehouse Register" = rimd;
ProcessingOnly = true;
dataset
{
dataitem("Warehouse Entry"; "Warehouse Entry")
{
DataItemTableView = sorting("Item No.", "Bin Code", "Location Code", "Variant Code", "Unit of Measure Code", "Lot No.", "Serial No.", "Entry Type", Dedicated, "Package No.");
RequestFilterFields = "Item No.", "Bin Code", "Location Code", "Zone Code";
trigger OnAfterGetRecord()
begin
WhseEntry2 := "Warehouse Entry";
WhseEntry2.SetCurrentKey(
"Item No.", "Bin Code", "Location Code", "Variant Code",
"Unit of Measure Code", "Lot No.", "Serial No.");
WhseEntry2.CopyFilters("Warehouse Entry");
WhseEntry2.SetRange("Item No.", WhseEntry2."Item No.");
WhseEntry2.SetRange("Bin Code", WhseEntry2."Bin Code");
WhseEntry2.SetRange("Location Code", WhseEntry2."Location Code");
WhseEntry2.SetRange("Variant Code", WhseEntry2."Variant Code");
WhseEntry2.SetRange("Unit of Measure Code", WhseEntry2."Unit of Measure Code");
WhseEntry2.SetFilter(
WhseEntry2."Registering Date",
DateComprMgt.GetDateFilter(WhseEntry2."Registering Date", EntrdDateComprReg, false));
if (not RetainSerialNo) or (not RetainLotNo) or (not RetainPackageNo) then
UpdateITWhseEntries();
WhseEntry2.SetTrackingFilterFromWhseEntry(WhseEntry2);
WhseEntry2.SetRange("Warranty Date", WhseEntry2."Warranty Date");
WhseEntry2.SetRange("Expiration Date", WhseEntry2."Expiration Date");
CalcCompressWhseEntry();
NewWhseEntry.Init();
NewWhseEntry."Location Code" := WhseEntry2."Location Code";
NewWhseEntry."Bin Code" := WhseEntry2."Bin Code";
NewWhseEntry."Item No." := WhseEntry2."Item No.";
NewWhseEntry.Description := Text008;
NewWhseEntry."Variant Code" := WhseEntry2."Variant Code";
NewWhseEntry."Unit of Measure Code" := WhseEntry2."Unit of Measure Code";
NewWhseEntry.Dedicated := WhseEntry2.Dedicated;
NewWhseEntry."Zone Code" := WhseEntry2."Zone Code";
NewWhseEntry."Bin Type Code" := WhseEntry2."Bin Type Code";
NewWhseEntry."Registering Date" := WhseEntry2.GetRangeMin(WhseEntry2."Registering Date");
NewWhseEntry.CopyTrackingFromWhseEntry(WhseEntry2);
NewWhseEntry."Warranty Date" := WhseEntry2."Warranty Date";
NewWhseEntry."Expiration Date" := WhseEntry2."Expiration Date";
OnAfterGetWarehouseEntryOnAfterInitNewWhseEntry(NewWhseEntry, "Warehouse Entry");
Window.Update(1, NewWhseEntry."Registering Date");
Window.Update(2, DateComprReg."No. of New Records");
repeat
WhseEntry2.Delete();
DateComprReg."No. Records Deleted" := DateComprReg."No. Records Deleted" + 1;
Window.Update(3, DateComprReg."No. Records Deleted");
if UseDataArchive then
DataArchive.SaveRecord(WhseEntry2);
until not WhseEntry2.FindFirst();
if PosQtyBaseonBin > 0 then begin
InsertNewEntry(
NewWhseEntry, PosQtyonBin, PosQtyBaseonBin,
PosCubage, PosWeight, NewWhseEntry."Entry Type"::"Positive Adjmt.");
DateComprReg."No. of New Records" := DateComprReg."No. of New Records" + 1;
end;
if NegQtyBaseonBin < 0 then begin
InsertNewEntry(
NewWhseEntry, NegQtyonBin, NegQtyBaseonBin,
NegCubage, NegWeight, NewWhseEntry."Entry Type"::"Negative Adjmt.");
DateComprReg."No. of New Records" := DateComprReg."No. of New Records" + 1;
end;
if DateComprReg."No. Records Deleted" >= NoOfDeleted + 10 then begin
NoOfDeleted := DateComprReg."No. Records Deleted";
InsertRegisters(WhseReg, DateComprReg);
end;
end;
trigger OnPostDataItem()
begin
if DateComprReg."No. Records Deleted" > NoOfDeleted then
InsertRegisters(WhseReg, DateComprReg);
if UseDataArchive then
DataArchive.Save();
end;
trigger OnPreDataItem()
begin
if EntrdDateComprReg."Ending Date" = 0D then
Error(Text003, EntrdDateComprReg.FieldCaption("Ending Date"));
Window.Open(
Text004 +
Text005 +
Text006 +
Text007);
SourceCodeSetup.Get();
SourceCodeSetup.TestField("Compress Whse. Entries");
DateComprReg.LockTable();
WhseEntry2.ReadIsolation(IsolationLevel::ReadCommitted);
LastEntryNo := WhseEntry2.GetLastEntryNo();
SetRange("Entry No.", 0, LastEntryNo);
SetRange("Registering Date", EntrdDateComprReg."Starting Date", EntrdDateComprReg."Ending Date");
InitRegisters();
RetainSerialNo := RetainNo(FieldNo("Serial No."));
RetainLotNo := RetainNo(FieldNo("Lot No."));
RetainPackageNo := RetainNo(FieldNo("Package No."));
if UseDataArchive then
DataArchive.Create(DateComprMgt.GetReportName(Report::"Date Compress Whse. Entries"));
end;
}
}
requestpage
{
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(StartingDate; EntrdDateComprReg."Starting Date")
{
ApplicationArea = Warehouse;
Caption = 'Starting Date';
ToolTip = 'Specifies the first date to be included in the date compression. The compression will affect all warehouse entries from this date to the Ending Date.';
}
field(EndingDate; EntrdDateComprReg."Ending Date")
{
ApplicationArea = Warehouse;
Caption = 'Ending Date';
ToolTip = 'Specifies the last date to be included in the date compression. The compression will affect all warehouse entries from the Starting Date to this date.';
trigger OnValidate()
var
DateCompression: Codeunit "Date Compression";
begin
DateCompression.VerifyDateCompressionDates(EntrdDateComprReg."Starting Date", EntrdDateComprReg."Ending Date");
end;
}
field(PeriodLength; EntrdDateComprReg."Period Length")
{
ApplicationArea = Warehouse;
Caption = 'Period Length';
OptionCaption = 'Day,Week,Month,Quarter,Year,Period';
ToolTip = 'Specifies the length of the period whose entries will be combined. Choose the field to see the options.';
}
group("Retain Field Contents")
{
Caption = 'Retain Field Contents';
field(SerialNo; RetainFields[1])
{
ApplicationArea = ItemTracking;
Caption = 'Serial No.';
ToolTip = 'Specifies if you want to retain the serial number in the compression.';
}
field(LotNo; RetainFields[2])
{
ApplicationArea = ItemTracking;
Caption = 'Lot No.';
ToolTip = 'Specifies if you want to retain the lot number in the compression.';
}
field(PackageNo; RetainFields[3])
{
ApplicationArea = ItemTracking;
Caption = 'Package No.';
ToolTip = 'Specifies if you want to retain the package number in the compression.';
}
}
field(UseDataArchiveCtrl; UseDataArchive)
{
ApplicationArea = Suite;
Caption = 'Archive Deleted Entries';
ToolTip = 'Specifies whether the deleted (compressed) entries will be stored in the data archive for later inspection or export.';
Visible = DataArchiveProviderExists;
}
}
}
}
actions
{
}
trigger OnQueryClosePage(CloseAction: Action): Boolean
var
ConfirmManagement: Codeunit "Confirm Management";
begin
if CloseAction = Action::Cancel then
exit;
if not HideDialog then
if not ConfirmManagement.GetResponseOrDefault(CompressEntriesQst, true) then
CurrReport.Break();
end;
trigger OnOpenPage()
var
DateCompression: Codeunit "Date Compression";
begin
if EntrdDateComprReg."Ending Date" = 0D then
EntrdDateComprReg."Ending Date" := DateCompression.CalcMaxEndDate();
InsertField("Warehouse Entry".FieldNo("Serial No."), "Warehouse Entry".FieldCaption("Serial No."));
InsertField("Warehouse Entry".FieldNo("Lot No."), "Warehouse Entry".FieldCaption("Lot No."));
InsertField("Warehouse Entry".FieldNo("Package No."), "Warehouse Entry".FieldCaption("Package No."));
DataArchiveProviderExists := DataArchive.DataArchiveProviderExists();
UseDataArchive := DataArchiveProviderExists;
end;
trigger OnInit()
begin
DataArchiveProviderExists := DataArchive.DataArchiveProviderExists();
end;
}
labels
{
}
trigger OnPreReport()
var
DateCompression: Codeunit "Date Compression";
begin
WhseEntryFilter := CopyStr("Warehouse Entry".GetFilters, 1, MaxStrLen(DateComprReg.Filter));
DateCompression.VerifyDateCompressionDates(EntrdDateComprReg."Starting Date", EntrdDateComprReg."Ending Date");
LogStartTelemetryMessage();
end;
trigger OnPostReport()
begin
LogEndTelemetryMessage();
end;
var
SourceCodeSetup: Record "Source Code Setup";
DateComprReg: Record "Date Compr. Register";
EntrdDateComprReg: Record "Date Compr. Register";
WhseReg: Record "Warehouse Register";
NewWhseEntry: Record "Warehouse Entry";
WhseEntry2: Record "Warehouse Entry";
DateComprMgt: Codeunit DateComprMgt;
DataArchive: Codeunit "Data Archive";
Window: Dialog;
WhseEntryFilter: Text[250];
PosQtyonBin: Decimal;
PosQtyBaseonBin: Decimal;
NegQtyonBin: Decimal;
NegQtyBaseonBin: Decimal;
PosWeight: Decimal;
NegWeight: Decimal;
PosCubage: Decimal;
NegCubage: Decimal;
NoOfFields: Integer;
RetainFields: array[3] of Boolean;
FieldNumber: array[10] of Integer;
FieldNameArray: array[10] of Text;
FirstEntryNo: Integer;
LastEntryNo: Integer;
NoOfDeleted: Integer;
i: Integer;
WhseRegExists: Boolean;
RetainSerialNo: Boolean;
RetainLotNo: Boolean;
RetainPackageNo: Boolean;
#pragma warning disable AA0074
Text008: Label 'Date Compressed';
#pragma warning restore AA0074
HideDialog: Boolean;
UseDataArchive: Boolean;
DataArchiveProviderExists: Boolean;
CompressEntriesQst: Label 'This batch job deletes entries. We recommend that you create a backup of the database before you run the batch job.\\Do you want to continue?';
#pragma warning disable AA0074
#pragma warning disable AA0470
Text003: Label '%1 must be specified.';
#pragma warning restore AA0470
Text004: Label 'Date compressing warehouse entries...\\';
#pragma warning disable AA0470
Text005: Label 'Date #1######\\';
Text006: Label 'No. of new entries #2######\';
Text007: Label 'No. of entries del. #3######';
#pragma warning restore AA0470
#pragma warning restore AA0074
StartDateCompressionTelemetryMsg: Label 'Running date compression report %1 %2.', Locked = true;
EndDateCompressionTelemetryMsg: Label 'Completed date compression report %1 %2.', Locked = true;
local procedure InitRegisters()
var
NextRegNo: Integer;
begin
WhseReg.Init();
WhseReg."No." := WhseReg.GetNextEntryNo();
WhseReg."Creation Date" := Today;
WhseReg."Creation Time" := Time;
WhseReg."Source Code" := SourceCodeSetup."Compress Whse. Entries";
WhseReg."User ID" := CopyStr(UserId(), 1, MaxStrLen(WhseReg."User ID"));
NextRegNo := DateComprReg.GetLastEntryNo() + 1;
DateComprReg.InitRegister(
Database::"Warehouse Entry", NextRegNo,
EntrdDateComprReg."Starting Date", EntrdDateComprReg."Ending Date", EntrdDateComprReg."Period Length",
WhseEntryFilter, WhseReg."No.", SourceCodeSetup."Compress Whse. Entries");
for i := 1 to NoOfFields do
if RetainFields[i] then
DateComprReg."Retain Field Contents" :=
CopyStr(
DateComprReg."Retain Field Contents" + ',' + FieldNameArray[i], 1,
MaxStrLen(DateComprReg."Retain Field Contents"));
DateComprReg."Retain Field Contents" := CopyStr(DateComprReg."Retain Field Contents", 2);
WhseRegExists := false;
NoOfDeleted := 0;
end;
local procedure InsertRegisters(var WhseReg: Record "Warehouse Register"; var DateComprReg: Record "Date Compr. Register")
begin
WhseReg."From Entry No." := FirstEntryNo;
WhseReg."To Entry No." := NewWhseEntry."Entry No.";
if WhseRegExists then begin
WhseReg.Modify();
DateComprReg.Modify();
end else begin
WhseReg.InsertRecord();
DateComprReg.Insert();
WhseRegExists := true;
end;
Commit();
DateComprReg.LockTable();
WhseEntry2.Reset();
end;
local procedure InsertField(Number: Integer; Name: Text)
begin
NoOfFields := NoOfFields + 1;
FieldNumber[NoOfFields] := Number;
FieldNameArray[NoOfFields] := Name;
end;
local procedure RetainNo(Number: Integer): Boolean
begin
exit(RetainFields[Index(Number)]);
end;
local procedure Index(Number: Integer): Integer
begin
for i := 1 to NoOfFields do
if Number = FieldNumber[i] then
exit(i);
end;
local procedure CalcCompressWhseEntry()
var
LocalWhseEntry: Record "Warehouse Entry";
begin
PosQtyonBin := 0;
PosQtyBaseonBin := 0;
PosWeight := 0;
PosCubage := 0;
NegQtyonBin := 0;
NegQtyBaseonBin := 0;
NegWeight := 0;
NegCubage := 0;
LocalWhseEntry.Copy(WhseEntry2);
if LocalWhseEntry.Find('-') then
repeat
if LocalWhseEntry."Qty. (Base)" < 0 then begin
NegQtyonBin := NegQtyonBin + LocalWhseEntry.Quantity;
NegQtyBaseonBin := NegQtyBaseonBin + LocalWhseEntry."Qty. (Base)";
NegWeight := NegWeight + LocalWhseEntry.Weight;
NegCubage := NegCubage + LocalWhseEntry.Cubage;
end else begin
PosQtyonBin := PosQtyonBin + LocalWhseEntry.Quantity;
PosQtyBaseonBin := PosQtyBaseonBin + LocalWhseEntry."Qty. (Base)";
PosWeight := PosWeight + LocalWhseEntry.Weight;
PosCubage := PosCubage + LocalWhseEntry.Cubage;
end;
until LocalWhseEntry.Next() = 0;
end;
local procedure UpdateITWhseEntries()
var
LocalWhseEntry: Record "Warehouse Entry";
LocalWhseEntry2: Record "Warehouse Entry";
WhseItemTrackingSetup: Record "Item Tracking Setup";
ItemTrackingMgt: Codeunit "Item Tracking Management";
QtyonBin: Decimal;
begin
ItemTrackingMgt.GetWhseItemTrkgSetup(WhseEntry2."Item No.", WhseItemTrackingSetup);
OnUpdateITWhseEntriesOnAfterGetWhseItemTrkgSetup(WhseEntry2, WhseItemTrackingSetup);
LocalWhseEntry.Copy(WhseEntry2);
if RetainSerialNo or RetainLotNo or RetainPackageNo then begin
if WhseItemTrackingSetup.TrackingRequired() then begin
LocalWhseEntry.SetFilter("Warranty Date", '<>%1', 0D);
LocalWhseEntry.SetFilter("Expiration Date", '<>%1', 0D);
if not LocalWhseEntry.Find('-') then begin
LocalWhseEntry.SetRange("Warranty Date");
LocalWhseEntry.SetRange("Expiration Date");
end;
end;
end else begin
LocalWhseEntry.SetRange("Warranty Date", WhseEntry2."Warranty Date");
LocalWhseEntry.SetRange("Expiration Date", WhseEntry2."Expiration Date");
end;
if not RetainSerialNo then begin
if WhseItemTrackingSetup."Serial No. Required" then
LocalWhseEntry.SetFilter(LocalWhseEntry."Serial No.", '<>''''');
end else
LocalWhseEntry.SetRange("Serial No.", WhseEntry2."Serial No.");
if not RetainLotNo then begin
if WhseItemTrackingSetup."Lot No. Required" then
LocalWhseEntry.SetFilter(LocalWhseEntry."Lot No.", '<>''''');
end else
LocalWhseEntry.SetRange("Lot No.", WhseEntry2."Lot No.");
if not RetainPackageNo then begin
if WhseItemTrackingSetup."Package No. Required" then
LocalWhseEntry.SetFilter(LocalWhseEntry."Package No.", '<>''''');
end else
LocalWhseEntry.SetRange("Package No.", WhseEntry2."Package No.");
if LocalWhseEntry.Find('-') then
repeat
QtyonBin := 0;
LocalWhseEntry2.Copy(LocalWhseEntry);
if not RetainSerialNo and WhseItemTrackingSetup."Serial No. Required" then
LocalWhseEntry2.SetRange("Serial No.", LocalWhseEntry."Serial No.");
if not RetainLotNo and WhseItemTrackingSetup."Lot No. Required" then
LocalWhseEntry2.SetRange("Lot No.", LocalWhseEntry."Lot No.");
if not RetainPackageNo and WhseItemTrackingSetup."Package No. Required" then
LocalWhseEntry2.SetRange("Package No.", LocalWhseEntry."Package No.");
if (not RetainSerialNo and WhseItemTrackingSetup."Serial No. Required") or
(not RetainLotNo and WhseItemTrackingSetup."Lot No. Required") or
(not RetainPackageNo and WhseItemTrackingSetup."Package No. Required")
then begin
LocalWhseEntry2.SetRange("Warranty Date", LocalWhseEntry."Warranty Date");
LocalWhseEntry2.SetRange("Expiration Date", LocalWhseEntry."Expiration Date");
end;
if LocalWhseEntry2.Find('-') then
repeat
QtyonBin := QtyonBin + LocalWhseEntry2."Qty. (Base)";
until LocalWhseEntry2.Next() = 0;
if QtyonBin <= 0 then begin
if LocalWhseEntry2.Find('-') then
repeat
if not RetainSerialNo and WhseItemTrackingSetup."Serial No. Required" then
LocalWhseEntry2."Serial No." := '';
if not RetainLotNo and WhseItemTrackingSetup."Lot No. Required" then
LocalWhseEntry2."Lot No." := '';
if not RetainPackageNo and WhseItemTrackingSetup."Package No. Required" then
LocalWhseEntry2."Package No." := '';
if (not RetainSerialNo and WhseItemTrackingSetup."Serial No. Required") or
(not RetainLotNo and WhseItemTrackingSetup."Lot No. Required") or
(not RetainPackageNo and WhseItemTrackingSetup."Package No. Required")
then begin
LocalWhseEntry2."Warranty Date" := 0D;
LocalWhseEntry2."Expiration Date" := 0D;
end;
OnUpdateITWhseEntriesOnBeforeLocalWhseEntry2Modify(
LocalWhseEntry2,
RetainSerialNo, WhseItemTrackingSetup."Serial No. Required",
RetainLotNo, WhseItemTrackingSetup."Lot No. Required",
RetainPackageNo, WhseItemTrackingSetup."Package No. Required");
LocalWhseEntry2.Modify();
until LocalWhseEntry2.Next() = 0;
if (not RetainSerialNo and WhseItemTrackingSetup."Serial No. Required") or
(not RetainLotNo and WhseItemTrackingSetup."Lot No. Required") or
(not RetainPackageNo and WhseItemTrackingSetup."Package No. Required")
then begin
WhseEntry2."Warranty Date" := 0D;
WhseEntry2."Expiration Date" := 0D;
end;
if not RetainSerialNo then
WhseEntry2."Serial No." := '';
if not RetainLotNo then
WhseEntry2."Lot No." := '';
if not RetainPackageNo then
WhseEntry2."Package No." := '';
OnUpdateITWhseEntriesOnAfterSetWhseEntry2(
WhseEntry2,
RetainSerialNo, WhseItemTrackingSetup."Serial No. Required",
RetainLotNo, WhseItemTrackingSetup."Lot No. Required",
RetainPackageNo, WhseItemTrackingSetup."Package No. Required");
end;
until LocalWhseEntry.Next() = 0;
end;
local procedure InsertNewEntry(var WhseEntry: Record "Warehouse Entry"; Qty: Decimal; QtyBase: Decimal; Cubage: Decimal; Weight: Decimal; EntryType: Option)
begin
LastEntryNo := WhseEntry.GetNextEntryNo();
WhseEntry."Entry No." := LastEntryNo;
WhseEntry."Warehouse Register No." := WhseReg."No.";
WhseEntry.Quantity := Qty;
WhseEntry."Qty. (Base)" := QtyBase;
WhseEntry.Cubage := Cubage;
WhseEntry.Weight := Weight;
WhseEntry."Entry Type" := EntryType;
OnBeforeInsertNewEntry(WhseEntry);
WhseEntry.Insert(true);
if FirstEntryNo = 0 then
FirstEntryNo := LastEntryNo;
end;
procedure SetParameters(EntrdDateComprReg2: Record "Date Compr. Register"; ItemTrackingSetup: Record "Item Tracking Setup")
begin
SetParameters(EntrdDateComprReg2, ItemTrackingSetup, true)
end;
procedure SetParameters(EntrdDateComprReg2: Record "Date Compr. Register"; ItemTrackingSetup: Record "Item Tracking Setup"; DoUseDataArchive: Boolean)
begin
EntrdDateComprReg.Copy(EntrdDateComprReg2);
InsertField(WhseEntry2.FieldNo("Serial No."), WhseEntry2.FieldCaption("Serial No."));
InsertField(WhseEntry2.FieldNo("Lot No."), WhseEntry2.FieldCaption("Lot No."));
InsertField(WhseEntry2.FieldNo("Package No."), WhseEntry2.FieldCaption("Package No."));
RetainFields[1] := ItemTrackingSetup."Serial No. Required";
RetainFields[2] := ItemTrackingSetup."Lot No. Required";
RetainFields[3] := ItemTrackingSetup."Package No. Required";
DataArchiveProviderExists := DataArchive.DataArchiveProviderExists();
UseDataArchive := DataArchiveProviderExists and DoUseDataArchive;
end;
procedure SetHideDialog(NewHideDialog: Boolean)
begin
HideDialog := NewHideDialog;
end;
local procedure LogStartTelemetryMessage()
var
TelemetryDimensions: Dictionary of [Text, Text];
begin
TelemetryDimensions.Add('ReportId', Format(CurrReport.ObjectId(false), 0, 9));
TelemetryDimensions.Add('ReportName', CurrReport.ObjectId(true));
TelemetryDimensions.Add('UseRequestPage', Format(CurrReport.UseRequestPage()));
TelemetryDimensions.Add('StartDate', Format(EntrdDateComprReg."Starting Date", 0, 9));
TelemetryDimensions.Add('EndDate', Format(EntrdDateComprReg."Ending Date", 0, 9));
TelemetryDimensions.Add('PeriodLength', Format(EntrdDateComprReg."Period Length", 0, 9));
TelemetryDimensions.Add('SerialNoRequired', Format(RetainFields[1], 0, 9));
TelemetryDimensions.Add('LotNoRequired', Format(RetainFields[2], 0, 9));
TelemetryDimensions.Add('PackageNoRequired', Format(RetainFields[3], 0, 9));
TelemetryDimensions.Add('UseDataArchive', Format(UseDataArchive));
Session.LogMessage('0000F50', StrSubstNo(StartDateCompressionTelemetryMsg, CurrReport.ObjectId(false), CurrReport.ObjectId(true)), Verbosity::Normal, DataClassification::OrganizationIdentifiableInformation, TelemetryScope::All, TelemetryDimensions);
end;
local procedure LogEndTelemetryMessage()
var
TelemetryDimensions: Dictionary of [Text, Text];
begin
TelemetryDimensions.Add('ReportId', Format(CurrReport.ObjectId(false), 0, 9));
TelemetryDimensions.Add('ReportName', CurrReport.ObjectId(true));
TelemetryDimensions.Add('RegisterNo', Format(DateComprReg."Register No.", 0, 9));
TelemetryDimensions.Add('TableID', Format(DateComprReg."Table ID", 0, 9));
TelemetryDimensions.Add('NoRecordsDeleted', Format(DateComprReg."No. Records Deleted", 0, 9));
TelemetryDimensions.Add('NoofNewRecords', Format(DateComprReg."No. of New Records", 0, 9));
Session.LogMessage('0000F51', StrSubstNo(EndDateCompressionTelemetryMsg, CurrReport.ObjectId(false), CurrReport.ObjectId(true)), Verbosity::Normal, DataClassification::OrganizationIdentifiableInformation, TelemetryScope::All, TelemetryDimensions);
end;
[IntegrationEvent(false, false)]
local procedure OnAfterGetWarehouseEntryOnAfterInitNewWhseEntry(var NewWarehouseEntry: Record "Warehouse Entry"; OldWarehouseEntry: Record "Warehouse Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeInsertNewEntry(var WarehouseEntry: Record "Warehouse Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnUpdateITWhseEntriesOnAfterSetWhseEntry2(var WarehouseEntry: Record "Warehouse Entry"; RetainSerialNo: Boolean; SNRequired: Boolean; RetainLotNo: Boolean; LNRequired: Boolean; RetainPackageNo: Boolean; PNRequired: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnUpdateITWhseEntriesOnBeforeLocalWhseEntry2Modify(var WarehouseEntry: Record "Warehouse Entry"; RetainSerialNo: Boolean; SNRequired: Boolean; RetainLotNo: Boolean; LNRequired: Boolean; RetainPackageNo: Boolean; PNRequired: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnUpdateITWhseEntriesOnAfterGetWhseItemTrkgSetup(var WarehouseEntry: Record "Warehouse Entry"; var WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
}