From 6e1dfcaa68e36bf4fbc1e212bec37f08dc0cf787 Mon Sep 17 00:00:00 2001 From: Bert Verbeek Date: Mon, 22 Apr 2024 16:23:16 +0200 Subject: [PATCH] Add ADLSEExternalEvents.OnExportFinishedv2 and ADLSEExternalEvents.OnAllExportIsFinished business events --- businessCentral/app/src/Execute.Codeunit.al | 2 +- businessCentral/app/src/Execution.Codeunit.al | 2 ++ .../app/src/ExternalEvents.Codeunit.al | 36 ++++++++++++++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/businessCentral/app/src/Execute.Codeunit.al b/businessCentral/app/src/Execute.Codeunit.al index 6d19029..41d9b55 100644 --- a/businessCentral/app/src/Execute.Codeunit.al +++ b/businessCentral/app/src/Execute.Codeunit.al @@ -326,7 +326,7 @@ codeunit 82561 "ADLSE Execute" ADLSESessionManager.StartExportFromPendingTables(); ADLSESetupRec.GetSingleton(); - ADLSEExternalEvents.OnExportFinished(ADLSESetupRec); + ADLSEExternalEvents.OnExportFinished(ADLSESetupRec, ADLSETable); if not ADLSECurrentSession.AreAnySessionsActive() then if EmitTelemetry then diff --git a/businessCentral/app/src/Execution.Codeunit.al b/businessCentral/app/src/Execution.Codeunit.al index ff20dce..6b49d57 100644 --- a/businessCentral/app/src/Execution.Codeunit.al +++ b/businessCentral/app/src/Execution.Codeunit.al @@ -55,6 +55,8 @@ codeunit 82569 "ADLSE Execution" Message(ExportStartedTxt, Started, Counter); if EmitTelemetry then Log('ADLSE-001', StrSubstNo(ExportStartedTxt, Started, Counter), Verbosity::Normal); + + ADLSEExternalEvents.OnAllExportIsFinished(ADLSESetupRec); end; internal procedure StopExport() diff --git a/businessCentral/app/src/ExternalEvents.Codeunit.al b/businessCentral/app/src/ExternalEvents.Codeunit.al index 324c687..705c6a9 100644 --- a/businessCentral/app/src/ExternalEvents.Codeunit.al +++ b/businessCentral/app/src/ExternalEvents.Codeunit.al @@ -105,6 +105,7 @@ codeunit 82574 "ADLSE External Events" MyBusinessOnExport(ADLSESetup.SystemId, ADLSESetup."Storage Type", Url, WebClientUrl); end; + [Obsolete('Replaced with the OnExportFinishedv2 External Business Event', '24.0')] internal procedure OnExportFinished(ADLSESetup: Record "ADLSE Setup") var Url: Text[250]; @@ -116,6 +117,28 @@ codeunit 82574 "ADLSE External Events" MyBusinessOnExportFinished(ADLSESetup.SystemId, ADLSESetup."Storage Type", Url, WebClientUrl); end; + internal procedure OnExportFinished(ADLSESetup: Record "ADLSE Setup"; ADLSETable: Record "ADLSE Table") + var + Url: Text[250]; + WebClientUrl: Text[250]; + ADLSEFieldApiUrlTok: Label 'bc2adlsTeamMicrosoft/bc2adls/v1.0/companies(%1)/adlseTables(%2)', Locked = true; + begin + Url := ADLSEExternalEventsHelper.CreateLink(ADLSEFieldApiUrlTok, ADLSETable.SystemId); + WebClientUrl := CopyStr(GetUrl(ClientType::Web, CompanyName(), ObjectType::Page, Page::"ADLSE Setup", ADLSESetup), 1, MaxStrLen(WebClientUrl)); + MyBusinessOnExportFinishedv2(ADLSETable.SystemId, ADLSESetup."Storage Type", ADLSETable."Table ID", Url, WebClientUrl); + end; + + internal procedure OnAllExportIsFinished(ADLSESetup: Record "ADLSE Setup") + var + Url: Text[250]; + WebClientUrl: Text[250]; + ADLSEFieldApiUrlTok: Label 'bc2adlsTeamMicrosoft/bc2adls/v1.0/companies(%1)/adlseSetup(%2)', Locked = true; + begin + Url := ADLSEExternalEventsHelper.CreateLink(ADLSEFieldApiUrlTok, ADLSESetup.SystemId); + WebClientUrl := CopyStr(GetUrl(ClientType::Web, CompanyName(), ObjectType::Page, Page::"ADLSE Setup", ADLSESetup), 1, MaxStrLen(WebClientUrl)); + MyBusinessOnAllExportIsFinished(ADLSESetup.SystemId, ADLSESetup."Storage Type", Url, WebClientUrl); + end; + internal procedure OnRefreshOptions(ADLSESetup: Record "ADLSE Setup") var Url: Text[250]; @@ -192,11 +215,22 @@ codeunit 82574 "ADLSE External Events" begin end; - [ExternalBusinessEvent('OnExportFinished', 'Export is finished', 'When the export is finished', EventCategory::ADLSE)] + [Obsolete('Replaced with the OnExportFinishedv2 External Business Event', '24.0')] + [ExternalBusinessEvent('OnExportFinished', 'Export is finished for one table', 'When the export is finished for one table', EventCategory::ADLSE)] local procedure MyBusinessOnExportFinished(SystemId: Guid; "Storage Type": Enum "ADLSE Storage Type"; Url: Text[250]; WebClientUrl: Text[250]) begin end; + [ExternalBusinessEvent('OnExportFinishedv2', 'Export is finished for one table v2', 'When the export is finished for one table', EventCategory::ADLSE)] + local procedure MyBusinessOnExportFinishedv2(SystemId: Guid; "Storage Type": Enum "ADLSE Storage Type"; TableId: Integer; Url: Text[250]; WebClientUrl: Text[250]) + begin + end; + + [ExternalBusinessEvent('OnAllExportIsFinished', 'Export is finished of all tables', 'When the export is finished of all tables', EventCategory::ADLSE)] + local procedure MyBusinessOnAllExportIsFinished(SystemId: Guid; "Storage Type": Enum "ADLSE Storage Type"; Url: Text[250]; WebClientUrl: Text[250]) + begin + end; + [ExternalBusinessEvent('OnRefreshOptions', 'Refresh Options', 'When the options are refreshed', EventCategory::ADLSE)] local procedure MyBusinessOnRefreshOptions(SystemId: Guid; "Storage Type": Enum "ADLSE Storage Type"; Url: Text[250]; WebClientUrl: Text[250]) begin