Skip to content

Spostare Tabelle tra App in Business Central

Hai mai sviluppato un’app per Microsoft Dynamics 365 Business Central che, nel tempo, è diventata troppo grande e difficile da gestire? Con la nuova funzionalità introdotta da Microsoft, è finalmente possibile suddividere grandi app in moduli più piccoli e mantenibili, anche in ambienti online. In questo articolo esploreremo passo passo come spostare tabelle e campi tra app, evitando interruzioni e perdite di dati.

Cos’è il “Move” di Tabelle e Campi

Microsoft ha introdotto una funzione che consente di dichiarare una tabella o un campo come “moved” da un’app a un’altra. Questo è particolarmente utile per la modularizzazione delle applicazioni e per gestire la complessità in ambienti production, sia on-premise che online.

ObsoleteState: Moved e PendingMove

  • Moved: il campo o tabella è già stato trasferito in un’altra app.

  • PendingMove: il campo o tabella è in attesa di essere spostato.

La scelta tra i due dipende dalla direzione dello spostamento:

  • Move Down (verso un’app che dipende da quella originale): si può usare direttamente “moved”.

  • Move Up (verso un’app da cui si dipende): è necessario passare prima per “pendingMove” e aggiornare la build.

Esempio Pratico: Dalla Teoria alla Pratica

Scenario

Un’app chiamata International Book contiene tabelle come “BookHeader” e “ShippingAgent2”. L’obiettivo è spostare la tabella “ShippingAgent2” in una nuova app specializzata nella gestione delle spedizioni.

Passaggi per lo Spostamento

  1. Nella vecchia app:

    • Dichiarare la tabella come ObsoleteState = Moved

    • Specificare MoveTo con l’App ID della nuova app

    • Stessa cosa per i singoli campi (es. ShippingAgent2Number)

  2. Creare la nuova app:

    • Dipendere dall’app originale tramite App.json

    • Ricreare la tabella identica con MoveFrom

    • Stesso ID, nome e namespace

    • Copiare eventuali Page e crearne le estensioni

  3. Publishing:

    • Utilizzare il comando Publish Full Dependency Tree per garantire l’installazione coerente di tutte le dipendenze

Best Practice e Avvertenze

  • Matching Perfetto: ID, nomi, namespace devono essere identici.

  • No Breaking Changes: lo spostamento non deve introdurre modifiche che interrompono il funzionamento.

  • Evita PTE: questa funzionalità non è supportata su app PTE (per ora).

  • Gestione Versioni: incrementare sempre la build per ogni pubblicazione.

  • Chiavi Primarie e Secondarie: i campi parte di chiavi non possono essere spostati.

  • Backup e Test: fare sempre test in ambienti on-premise e monitorare gli effetti sul database.

Vantaggi di Questa Tecnica

  • Modularizzazione del codice

  • Facilita la manutenzione

  • Riduce i rischi in ambienti production

  • Nessun uso di ETL o SQL manuale

Conclusione

La nuova funzionalità di spostamento di tabelle e campi in Business Central semplifica enormemente la gestione di app complesse. Seguendo una metodologia precisa e rispettando le regole imposte, è possibile ottenere una separazione logica e tecnica delle funzionalità senza compromettere la stabilità dell’applicazione.

FAQ

È possibile spostare una tabella tra app in Business Central online?

Sì, è possibile utilizzando lo stato ObsoleteState = Moved e seguendo le regole di dipendenza tra app.

Quali sono i rischi principali nello spostare tabelle e campi?

Il rischio principale è la perdita di dati se gli ID, nomi o namespace non corrispondono perfettamente tra app.

Si possono spostare anche i campi delle chiavi primarie?

No, i campi delle chiavi primarie e secondarie non possono essere spostati.

Come pubblicare correttamente le app dipendenti?

Utilizza il comando Publish Full Dependency Tree for Active Project per garantire una pubblicazione ordinata delle app.

Posso usare questa funzione nelle app PTE?

No, al momento questa funzione è disponibile solo per AppSource e ambienti on-premise.

Facebook
LinkedIn

Approfondisci

Articoli correlati

Su questo sito utilizziamo strumenti di prima o terza parte che memorizzano piccoli file
(cookie) sul tuo dispositivo. I cookie sono normalmente utilizzati per consentire
il corretto funzionamento del sito (cookie tecnici), per generare report
sull’utilizzo della navigazione (cookie di statistica) e per pubblicizzare
adeguatamente i nostri servizi/prodotti (cookie di profilazione). Possiamo
utilizzare direttamente i cookie tecnici, ma hai il diritto di scegliere se abilitare o
meno i cookie statistici e di profilazione
. Abilitando questi cookie, ci aiuti a
offrirti un’esperienza migliore