Condividi tramite


Traccia delle dipendenze dei componenti di soluzione

Le soluzioni sono costituite da componenti. Utilizzare l'area Soluzioni di Microsoft Dataverse per creare o aggiungere i componenti di soluzione. È possibile eseguire queste azioni a livello di programmazione utilizzando il messaggio AddSolutionComponentRequest o qualsiasi messaggio che crea o aggiorna componenti di soluzione che includano un parametro SolutionUniqueName.

I componenti di soluzione dipendono spesso da altri componenti di soluzione. Non è possibile eliminare un componente di soluzione che ha dipendenze su altri componenti di soluzione. Ad esempio, una barra multifunzione personalizzata in genere richiede risorse Web script o immagine per visualizzare le icone ed eseguire le azioni tramite gli script. Fintanto che la barra multifunzione personalizzata è nella soluzione, le risorse Web specifiche utilizzate sono obbligatorie. Prima di poter eliminare le risorse Web è necessario rimuovere i riferimenti nella barra multifunzione personalizzata. Le dipendenze dei componenti di soluzione possono essere visualizzate nell'applicazione facendo clic su Mostra dipendenze.

In questo argomento vengono descritti i tipi di componenti di soluzione che è possibile includere nelle soluzioni e le dipendenze esistenti tra loro.

Tutti i componenti di soluzione

L'elenco completo dei tipi di componente di soluzione disponibili si trova nel set di opzioni globale componenttype del sistema. L'intervallo supportato dei valori per questa proprietà è disponibile includendo il file OptionSets.cs o OptionSets.vb nel progetto. Tuttavia, molti tipi di componente di soluzione elencati sono solo per uso interno e l'elenco non contiene informazioni sulle relazioni tra i componenti di soluzione.

Dipendenze dei componenti di soluzione

Le dipendenze tra i componenti di soluzione consentono di assicurare un utilizzo affidabile delle soluzioni, impediscono che azioni svolte dagli utenti possano rovinare involontariamente alcune personalizzazioni definite in una soluzione. Le dipendenze consentono di installare e disinstallare una soluzione gestita semplicemente importando o eliminando una soluzione.

Il framework delle soluzioni automaticamente traccia le dipendenze dei componenti di soluzione. Ogni operazione su un componente di soluzione calcola automaticamente tutte le dipendenze con altri componenti nel sistema. Le informazioni di dipendenza vengono utilizzate per gestire l'integrità di sistema e impedire operazioni che condurrebbero a uno stato incoerente.

In seguito alla verifica di dipendenza, i seguenti comportamenti vengono applicati:

  • L'eliminazione di un componente è impedita se un altro componente del sistema dipende da esso.

  • L'esportazione di una soluzione avvisa l'utente se mancano componenti che potrebbero causare un errore durante l'importazione della soluzione in un altro sistema.

    Errori durante l'esportazione possono essere ignorati se lo sviluppatore di soluzioni prevede che la soluzione sia installata solo in un'organizzazione in cui si suppone che i componenti dipendenti esistano. Ad esempio, quando si crea una soluzione che è progettata per essere installata in una soluzione di base preinstallata.

  • L'importazione di una soluzione non riesce se tutti i componenti richiesti non sono inclusi nella soluzione e non sono presenti nel sistema di destinazione.

    • Inoltre, quando si importa una soluzione gestita, tutti i componenti richiesti devono corrispondere al tipo di pacchetto della soluzione. Un componente in una soluzione gestita può dipendere solo da un altro componente gestito.

    Vi sono tre tipi di dipendenza dei componenti di una soluzione:

    Soluzione Interna
    Le dipendenze interne vengono gestite da Dataverse quando un particolare componente di una soluzione non può esistere senza un altro componente della soluzione.

    Pubblicato
    Le dipendenze pubblicate vengono create quando si imposta una correlazione tra due componenti di una soluzione e quindi tali componenti vengono pubblicati. Per rimuovere questo tipo di dipendenza, rimuovere l'associazione e quindi pubblicare di nuovo le entità.

    Non pubblicato
    Le dipendenze non pubblicate si applicano alla versione non pubblicata di un componente di soluzione pubblicabile che viene aggiornato. Una volta pubblicato, il componente di soluzione diventa una dipendenza pubblicata.

    Le dipendenze interne della soluzione sono dipendenze in cui le azioni con un componente di soluzione richiedono un'azione per un altro componente di soluzione. Se si elimina un'entità, ad esempio, ci si dovrebbe aspettare che vengano eliminati anche tutti gli attributi dell'entità. Verranno eliminate inoltre le eventuali relazioni dell'entità con altre entità.

    Una dipendenza interna, tuttavia, potrebbe portare a una dipendenza pubblicata e richiedere quindi interventi manuali. Se si include un campo di ricerca in un modulo di entità e quindi si elimina l'entità primaria nella relazione, ad esempio, sarà possibile completare l'eliminazione solo dopo la rimozione del campo di ricerca dall'entità correlata e la successiva pubblicazione del modulo.

    Quando si eseguono azioni a livello di programmazione con le soluzioni, è possibile utilizzare i messaggi relativi all'entità Dependency. Vedi l'entità Dependency per i messaggi utilizzabili per identificare le dipendenze che possono esistere prima di eliminare un componente o disinstallare una soluzione.

Componenti di soluzione comuni

Questi sono u componenti di soluzione visualizzati nell'applicazione e i componenti che verranno utilizzati direttamente per aggiungere o rimuovere componenti di soluzione utilizzando la pagina della soluzione. L'esistenza di ciascuno degli altri tipi di componenti di soluzione dipende da uno o più di questi componenti di soluzione.

Nastri dell'applicazione (RibbonCustomization) Entità (Entità) Segnala (Segnala)
Modello di articolo (KBArticleTemplate) Profilo di sicurezza sul campo (FieldSecurityProfile) Elaborazione dei messaggi SDK passaggio (SDKMessageProcessingStep)
Ruolo di connessione (ConnectionRole) Modello di unione di posta (MailMergeTemplate) ruolo di sicurezza (Ruolo)
Modello di contratto (ContractTemplate) set di opzioni (Set di opzioni) Servizio endpoint (ServiceEndpoint)
Dashboard o modulo entità (SystemForm) Assemblaggio plug-in (PluginAssembly) Mappa del sito (SiteMap)
Modello di posta elettronica (EmailTemplate) Processo (flusso di lavoro) Risorsa Web (WebResource)

Barre multifunzione dell'applicazione (RibbonCustomization)

Personalizzazioni della barra multifunzione dell'applicazione e modelli di barra multifunzione per l'entità. Le barre multifunzione dell'applicazione non includono le definizioni delle barre multifunzione a livello di modulo o entità.

Le barre multifunzione dell'applicazione personalizzate spesso dispongono di dipendenze pubblicate nelle risorse Web. Le risorse Web sono utilizzate per definire le icone dei pulsanti della barra multifunzione e le funzioni JavaScript per controllare quando gli elementi della barra multifunzione vengono visualizzati o quali azioni vengono eseguite quando un particolare controllo della barra multifunzione viene utilizzato. Le dipendenze vengono create solo quando le definizioni della barra multifunzione utilizzano la direttiva $webresource: per associare la risorsa Web alla barra multifunzione. Ulteriori informazioni: Direttiva $webresource

Modello di articolo (KBArticleTemplate)

Modello che contiene gli attributi standard di un articolo. Esiste sempre una dipendenza interna tra il modello di articolo e l'entità KbArticle.

Ruolo di connessione (ConnectionRole)

Ruolo che descrive la relazione tra due record. Ogni ruolo di connessione definisce i tipi di record di entità che possono essere collegati utilizzando il ruolo di connessione. Viene creata una dipendenza pubblicata tra il ruolo di connessione e l'entità.

Modello di contratto (ContractTemplate)

Modello che contiene gli attributi standard di un contratto. Esiste sempre una dipendenza interna tra il modello di contratto e l'entità contratto.

Modulo di entità o dashboard (SystemForm)

I record di entità del modulo di sistema vengono utilizzati per definire i dashboard e i moduli di entità. Quando viene utilizzato SystemForm come modulo di entità esiste una dipendenza interna sull'entità. Quando viene utilizzato SystemForm come dashboard, non esistono dipendenze interne. I moduli di entità e i dashboard di solito dispongono di dipendenze pubblicate correlate al contenuto. Un modulo di entità potrebbe disporre di campi di ricerca che dipendono da una relazione di entità. I dashboard e i moduli di entità possono contenere grafici o sottogriglie che creeranno una dipendenza pubblicata da una visualizzazione, che quindi ha una dipendenza interna da un'entità. Una dipendenza pubblicata da risorse Web può essere creata a causa del contenuto visualizzato nel dashboard o nel modulo o quando un modulo contiene le librerie JavaScript. I moduli di entità dispongono di dipendenze pubblicate da qualsiasi attributo visualizzato come campo nel modulo.

Modello di messaggio (EmailTemplate)

Modello contenente gli attributi standard di un messaggio di posta elettronica. Un modello di messaggio in genere include i campi che consentono di inserire i dati da attributi di entità specificati. Un modello di messaggio può essere collegato a una specifica entità quando viene creato in modo possa essere una dipendenza interna dall'entità. Un modello di messaggio globale non è associato a un'entità specifica, ma può disporre di dipendenze pubblicate dagli attributi di entità utilizzati per fornire i dati. Un processo (flusso di lavoro) è di frequente configurato per inviare un messaggio di posta elettronica utilizzando un modello di messaggio creando una dipendenza pubblicata con il flusso di lavoro.

Entità (Entity)

La struttura principale utilizzata per modellare e gestire i dati in Dataverse. Grafici, moduli, relazioni di entità, visualizzazioni e attributi associati a entità vengono eliminati automaticamente quando l'entità viene eliminata a causa delle dipendenze interne tra loro. Le entità di frequente dispongono di dipendenze pubblicate con processi, dashboard e modelli di messaggio.

Profilo di sicurezza campi (FieldSecurityProfile)

Profilo che definisce il livello di accesso per gli attributi protetti.

Modello di stampa unione (MailMergeTemplate)

Modello contenente gli attributi standard di un documento di stampa unione. Un modello di stampa unione dispone di una dipendenza pubblicata dall'entità con cui è associato.

Set di opzioni (OptionSet)

Un set di opzioni definisce un gruppo di opzioni. Un attributo di elenco a discesa utilizza un set di opzioni per definire le opzioni fornite. Alcuni attributi di elenco a discesa possono utilizzare un set di opzioni globale affinché le opzioni fornite siano sempre le stesse e possano essere gestite in un'unica posizione. Una dipendenza pubblicata si verifica quando un attributo di elenco a discesa fa riferimento a un set di opzioni globale. Non è possibile eliminare un set di opzioni globale utilizzato da un attributo di elenco a discesa.

Assembly di plug-in (PluginAssembly)

Assembly contenente uno o più tipi di plug-in. I plug-in vengono registrati per gli eventi che normalmente sono associati a entità. Viene creata una dipendenza pubblicata.

Processo (Workflow)

Set di regole logiche che definiscono i passaggi necessari per automatizzare un processo aziendale, un'attività o un set di azioni da eseguire. I processi forniscono un'ampia gamma di azioni che consentono di creare dipendenze pubblicate da un altro componente di soluzione a cui fa riferimento il processo. Ogni processo inoltre dispone di una dipendenza pubblicata dall'entità con cui è associato.

Report (Report)

Riepilogo dei dati in un layout di semplice lettura. Un report dispone di dipendenze pubblicate dai dati di attributo o entità inclusi nel report. Ogni report deve essere associato a una categoria di report che creare una dipendenza interna da un componente di soluzione denominata categoria correlata a report (ReportCategory). I report possono essere configurati come sottoreport creando una dipendenza pubblicata con il report padre.

Passaggio di elaborazione del messaggio SDK (SDKMessageProcessingStep)

Fase della pipeline di esecuzione che deve essere eseguita da un plug-in.

Ruolo di sicurezza (Role)

Gruppo di privilegi di sicurezza. Agli utenti vengono assegnati ruoli che li autorizzano ad accedere al sistema Dataverse. I moduli di entità possono essere associati a ruoli di sicurezza specifici per controllare chi può visualizzare il modulo. Viene creata una dipendenza pubblicata tra il ruolo di sicurezza e il modulo.

Nota

Solo i ruoli di sicurezza dalla business unit dell'organizzazione possono essere aggiunti a una soluzione. Solo un utente con l'accesso in lettura ai ruoli di sicurezza possono aggiungerli a una soluzione.

Endpoint del servizio (ServiceEndpoint)

Endpoint del servizio che è possibile contattare.

Mappa del sito (SiteMap)

Dati XML utilizzati per controllare il riquadro di navigazione dell'applicazione. La mappa del sito può essere collegata per visualizzare una risorsa Web HTML o un'icona nella mappa del sito che potrebbe utilizzare una risorsa Web di immagine. Quando la direttiva $webresource: è utilizzata per stabilire le associazioni, viene creata una dipendenza pubblicata. Ulteriori informazioni: Direttiva $webresource

Risorsa Web (WebResource)

Dati equivalenti ai file utilizzati nello sviluppo Web. Le risorse Web forniscono i componenti lato client utilizzati per generare gli elementi di interfaccia utente personalizzati. Le risorse Web possono disporre di dipendenze pubblicate con moduli di entità, barre multifunzione e mappa del sito. Quando la direttiva $webresource: è utilizzata per stabilire le associazioni in una barra multifunzione o nella mappa del sito, viene creata una dipendenza pubblicata. Per ulteriori informazioni, vedi Direttiva $webresource.

Nota

Le risorse Web possono dipendere da altre risorse Web basate sui relativi collegamenti. Ad esempio, una risorsa Web HTML può utilizzare una risorsa Web CSS o script. Una risorsa Web Silverlight visualizzata all'esterno di un modulo di entità o un grafico deve disporre di una risorsa Web HTML per ospitarla. Le dipendenze non sono tracciate come dipendenze di soluzione.

Vedi anche

Concetti di soluzione
Rimozione delle dipendenze
ambiente strategia
Lavora con le soluzioni utilizzando le API SDK]
Riferimento entità soluzione
Riferimento entità SolutionComponent