Codeunit 104070 Upgrade Refs To Rem. Tables, source in 29

Source29

src/Layers/W1/BaseApp/OtherCapabilities/Upgrade/UpgradeRefsToRemTables.Codeunit.al49 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.Upgrade;

using System.Diagnostics;
using System.Environment;
using System.Reflection;
using System.Text;

codeunit 104070 "Upgrade Refs To Rem. Tables"
{
    Subtype = Upgrade;

    trigger OnUpgradePerCompany()
    var
        HybridDeployment: Codeunit "Hybrid Deployment";
        RemovedTablesFilter: Text;
    begin
        if not HybridDeployment.VerifyCanStartUpgrade(CompanyName()) then
            exit;

        // There is no check for upgrade tags, as this code needs to run
        // on every upgrade (in case more tables got removed)

        RemovedTablesFilter := GetRemovedTablesFilter();
        CleanUpChangeLogSetup(RemovedTablesFilter);
    end;

    local procedure CleanUpChangeLogSetup(RemovedTablesFilter: Text)
    var
        ChangeLogSetupTable: Record "Change Log Setup (Table)";
    begin
        ChangeLogSetupTable.SetFilter("Table No.", RemovedTablesFilter);
        ChangeLogSetupTable.DeleteAll();
    end;

    local procedure GetRemovedTablesFilter(): Text
    var
        TableMetadata: Record "Table Metadata";
        SelectionFilterManagement: Codeunit SelectionFilterManagement;
        TableMetadataRecordRef: RecordRef;
    begin
        TableMetadata.SetRange(ObsoleteState, TableMetadata.ObsoleteState::Removed);
        TableMetadataRecordRef.GetTable(TableMetadata);
        exit(SelectionFilterManagement.GetSelectionFilter(TableMetadataRecordRef, TableMetadata.FieldNo(ID), false));
    end;
}