Condividi tramite


Panoramica della rimozione delle dipendenze

I componenti di soluzione dipendono spesso da altri componenti di soluzione. Non è possibile eliminare un componente di soluzione che ha dipendenze da un altro componente di soluzione. Le dipendenze sono record creati automaticamente dal framework delle soluzioni per impedire l'eliminazione dei componenti richiesti mentre uno o più componenti dipendenti includono ancora riferimenti ad essi. Un esempio di dipendenza è il seguente: dato che un campo è richiesto per il funzionamento di un modulo, se provi a eseguire un'azione che risulta nella cancellazione di quel campo, il modulo smette di funzionare.

Nota

In questo articolo, eliminazione significa che il componente è stato completamente rimosso dal sistema.

In questo articolo, discuteremo come gestire queste dipendenze e le strategie che è possibile utilizzare per rimuovere le dipendenze non più necessarie.

Dipendenze di componenti non gestiti e gestiti

Innanzitutto, è importante capire che le dipendenze impediscono solo le operazioni che eliminano un componente richiesto. Le azioni che possono eliminare un componente sono diverse, a seconda che il componente sia gestito o non gestito.

Componenti non gestiti

Questi componenti sono rappresentati da un singolo livello nella soluzione attiva. Qualunque operazione di eliminazione su tale componente comporta la completa rimozione del componente.

Componenti gestiti

L'eliminazione dei componenti gestiti dipende da più fattori: il numero di livelli della soluzione, la posizione relativa del livello che viene disinstallato e gli editori dei componenti. Ad esempio, quando un componente viene eliminato, considera i seguenti scenari e il comportamento previsto quando disinstalli i vari livelli.

Scenari di esempio

I seguenti scenari di esempio illustrano cosa succede ai livelli di soluzione quando le soluzioni vengono disinstallate.

Scenario 1: disinstallare un singolo livello di soluzione

Disinstallare un singolo livello.

La disinstallazione della soluzione 1 causa l'eliminazione di un componente perché è l'unico livello per il componente.

Scenario 2: disinstallare i livelli di soluzione da diversi editori

Disinstallare due livelli: diverso editore.

  • La disinstallazione della soluzione 2 non provoca l'eliminazione di un componente. Solo quel livello verrà rimosso.
  • La disinstallazione della soluzione 1 causa l'eliminazione di un componente perché l'azione avviene nel livello di base. In effetti, la soluzione 1 non può essere disinstallata in questo scenario, poiché una soluzione di un altro editore estende il componente.

Scenario 3: disinstallare più livelli di soluzione da diversi editori

Disinstallare più livelli: diverso editore.

  • La disinstallazione della soluzione 3 non provoca l'eliminazione di un componente. Solo quel livello verrà rimosso.
  • La disinstallazione della soluzione 2 non provoca l'eliminazione di un componente. Solo quel livello verrà rimosso.
  • La disinstallazione della soluzione 1 non causa l'eliminazione di un componente, perché in questo caso è presente un'altra soluzione dello stesso editore (Editore A = Editore C)). La piattaforma rimuove il livello dalla soluzione 1 e lo sostituisce con il livello della soluzione 3.

Scenario 4: disinstallare i livelli della soluzione in una personalizzazione non gestita

Disinstallare due livelli: personalizzazione non gestita.

  • La disinstallazione del livello attivo (non gestito) non causa l'eliminazione di un componente. Solo quel livello verrà rimosso. Tieni presente che non puoi disinstallare la soluzione attiva, ma puoi rimuovere i componenti utilizzando la funzionalità Rimuovi personalizzazione attiva.
  • La disinstallazione della soluzione 1 provoca l'eliminazione di un componente. L'azione avviene nel livello di base. A differenza dello scenario 2, è possibile disinstallare la soluzione 1. La soluzione attiva non è considerata un'estensione ed entrambi i livelli verranno rimossi.

Pagina Mostra dipendenze

Il comando Mostra dipendenze elenca le dipendenze per la soluzione o il componente della soluzione selezionato. Può essere aperta:

  • Selezionando Mostra dipendenze nella pagina della soluzione.
  • Selezionando Avanzate>Mostra dipendenze all'interno di una soluzione quando viene selezionato un componente della soluzione.
  • Tentando di disinstallare una soluzione, che farà sì che la piattaforma rilevi l'esistenza di dipendenze.

Dalla pagina Dipendenze è possibile aprire, rimuovere o eliminare il componente. Altre informazioni: Visualizzare le dipendenze per un componente

Diagnosi delle dipendenze

Prendi in considerazione lo scenario seguente. L'organizzazione di seguito ha due soluzioni: Soluzione - Flusso di lavoro e Soluzione - Entità personalizzata.

Elenco di soluzioni con due soluzioni.

Il proprietario dell'organizzazione ha deciso che non è più necessaria Soluzione - Entità personalizzata, ha provato a cancellarla e si è visualizzata la seguente pagina:

Dettagli dipendenza dopo aver tentato di eliminare una soluzione.

Senza entrare nei dettagli, possiamo concludere che la disinstallazione della soluzione sta tentando di eliminare un'entità denominata Entità personalizzata e tre campi, Entità personalizzata, Nome e Campo numero, e tutti e quattro i componenti hanno dipendenze.

Nota

La disinstallazione della soluzione potrebbe potenzialmente eliminare più componenti, ma poiché non hanno dipendenze, non verranno visualizzati nell'elenco.

Il prossimo passaggio è controllare il collegamento Livelli di soluzioni (colonna più a destra) per ogni dipendenza. Ti aiuterà a decidere cosa fare per rimuovere la dipendenza.

La figura seguente mostra i dettagli delle dipendenze tra entità (entità personalizzata) e processo (flusso di lavoro di test).

Dettagli sulle dipendenze dell'entità personalizzata.

In base ai dati visualizzati, puoi vedere che il componente dipendente appartiene a una soluzione denominata SolutionWorkflow. Per rimuovere questa dipendenza, possiamo:

  • Aggiornare la definizione del flusso di lavoro in SolutionWorkflow rimuovendo eventuali riferimenti all'entità o ai suoi sottocomponenti. Quindi, esegui l'aggiornamento o l'upgrade della soluzione.
  • Disinstalla la soluzione SolutionWorkflow.
  • Rimuovi il flusso di lavoro da una nuova versione della soluzione SolutionWorkflow e quindi esegui un aggiornamento.

Poiché qualsiasi componente dipendente può impedire la rimozione della soluzione, si consiglia di controllare tutte le dipendenze e apportare tutte le modifiche richieste in un'unica operazione.

La figura seguente mostra i dettagli delle dipendenze tra entità (entità personalizzata) e app basata su modello (app personale).

Dipendenza tra entità (entità personalizzata) e app (app personale).

In base ai dati visualizzati, puoi vedere che il componente dipendente appartiene a una soluzione denominata Active. Ciò indica che la dipendenza è stata creata importando una soluzione non gestita o tramite una personalizzazione non gestita eseguita tramite la moderna interfaccia utente o l'API.

Per rimuovere questa dipendenza, puoi:

  • Modificare la definizione dell'app basata su modello per rimuovere qualsiasi riferimento all'entità o ai suoi sottocomponenti. Poiché le app basate su modello supportano la pubblicazione, è necessario pubblicare le modifiche.
  • Eliminare l'app basata su modello.

Nota

La disinstallazione di una soluzione non gestita non è un'opzione per rimuovere questa dipendenza, perché le soluzioni non gestite sono solo un mezzo per raggruppare i componenti.

Azioni per rimuovere una dipendenza gestita

Le dipendenze gestite sono quelle in cui il componente dipendente è associato a un soluzione gestita. Per risolvere questo tipo di dipendenza, è necessario agire sulla soluzione in cui è stato aggiunto il componente. Tale azione può essere diversa a seconda di ciò che stai cercando di fare.

Se stai tentando di disinstallare una soluzione

Segui questi passaggi:

  1. Nell'organizzazione di destinazione, ispeziona il collegamento Livelli di soluzioni per trovare qual è la soluzione più in alto nell'elenco del componente dipendente.
  2. Nell'organizzazione di origine, prepara una nuova versione della soluzione in cui la soluzione non contiene il componente dipendente o ha una versione aggiornata del componente dipendente che non contiene riferimenti al componente richiesto. Il tuo obiettivo è rimuovere qualsiasi riferimento ai componenti richiesti nella nuova versione della soluzione.
  3. Esporta la nuova versione della soluzione.
  4. Nell'organizzazione di destinazione, aggiorna la soluzione.
  5. Riprova la disinstallazione.

Se stai tentando di aggiornare una soluzione

In questo caso, è necessario confermare di voler eliminare il componente richiesto (ricorda che le dipendenze vengono applicate solo ai componenti che vengono eliminati).

Se non vuoi eliminare il componente, puoi correggere la nuova versione della soluzione aggiungendo nuovamente il componente nel modo seguente:

  1. Nell'organizzazione di destinazione, disinstalla la soluzione a fasi (la soluzione che termina con _Upgrade).
  2. Nell'organizzazione di origine, aggiungi nuovamente i componenti richiesti alla soluzione.
  3. Esporta la nuova versione.
  4. Ritenta l'aggiornamento.

Se l'eliminazione è intenzionale, è necessario rimuovere la dipendenza. Prova i passaggi descritti nella sezione precedente, "Se stai tentando di disinstallare una soluzione".

Livelli e dipendenze

I componenti dipendenti possono essere a livelli, pertanto potrebbe essere necessario modificare più di una soluzione per rimuovere completamente una dipendenza. Il framework delle dipendenze calcola solo le dipendenze tra i livelli più alti per i componenti richiesti e dipendenti. Ciò significa che è necessario considerare le soluzioni del componente dipendente dall'alto verso il basso.

Si consideri il seguente scenario:

Scelta di una soluzione da disinstallare.

Tenti di disinstallare Soluzione - Entità personalizzata e l'operazione viene bloccata dalle dipendenze.

Dipendenze che bloccano la disinstallazione della soluzione.

Inizi la diagnosi della dipendenza selezionando Livelli di soluzioni nell'attributo new_numberfield. Vedi la schermata seguente:

Dipendenza tra l'attributo new_numberfield e il flusso di lavoro di test.

Poiché le dipendenze vengono create solo tra i livelli più alti di ciascun componente, il primo passo è gestire la dipendenza tra l'attributo new_numberfield in SolutionCustomEntity e il flusso di lavoro di test in SolutionWorkflow3.

Per rimuovere la dipendenza, decidi di disinstallare SolutionWorkflow3. Lo fai, ma quando provi a disinstallare ancora una volta la soluzione, ti viene presentata la stessa pagina di dipendenze:

Dipendenze che bloccano la disinstallazione di Soluzione - Entità personalizzata.

Comunque, l'attributo new_numberfield non è più elencato, anche se esistesse in più livelli.

Azioni per rimuovere una dipendenza non gestita

Per rimuovere dipendenze non gestite, è necessario agire direttamente sui componenti, non sulle soluzioni a cui appartengono. Ad esempio, se desideri rimuovere le dipendenze tra un attributo e un modulo, devi modificarlo nell'editor di moduli e rimuovere l'attributo dal modulo. La dipendenza verrà rimossa dopo aver selezionato Salva e Pubblica.

Nota

  • Il comando Mostra dipendenze ti consente di eseguire azioni per visualizzare, rimuovere la dipendenza, modificare il componente o eliminare il componente. Altre informazioni: Visualizzare le dipendenze per un componente
  • Puoi inoltre eliminare il componente dipendente. Quell'azione elimina tutte le dipendenze, insieme al componente.

Per visualizzare le dipendenze di un componente, dall'area Soluzioni, apri la soluzione desiderata, seleziona i puntini di sospensione verticali accanto al componente, quindi seleziona Avanzate>Mostra dipendenze.

La pagina delle dipendenze ha due parti distinte:

  • Componenti dipendenti: l'elenco di componenti che dipendono dal campo selezionato. In altre parole, questi componenti hanno questo campo come componente richiesto.
  • Componenti richiesti: l'elenco di componenti richiesti da questo campo per l'utilizzo. In altre parole, questi componenti hanno questo campo come componente dipendente.

Dipendenze dei componenti.

Vedi anche