Le colonne pubblicate dai campi di InfoPath vengono ricreate quando viene ripubblicato lo stesso modello di modulo di InfoPath

Numero KB originale: 2554288

Sintomi

Considerare lo scenario descritto di seguito:

  • Creare un modello di modulo di Office InfoPath e pubblicarlo in una raccolta documenti in SharePoint. Durante la pubblicazione, si selezionano determinati campi di InfoPath da pubblicare come colonne nella raccolta documenti. Dopo aver pubblicato il modello di modulo, si decide di pubblicare lo stesso modello di modulo e gli stessi campi in una raccolta documenti diversa nello stesso sito di SharePoint.

  • Successivamente, si implementa una modifica nel modello di modulo di InfoPath e si ripubblica il modello di modulo in entrambe le raccolte documenti nello stesso ordine in cui è stato eseguito durante la prima pubblicazione.

In questo scenario vengono ricreate tutte le colonne delle raccolte documenti pubblicate dai campi di InfoPath.

Durante questa procedura, viene aggiornato anche il nome interno delle colonne ricreate nelle raccolte documenti di SharePoint, ovvero un numero che inizia con 0 viene suffisso nel nome della colonna precedente. Ad esempio, una colonna denominata LastName viene modificata in LastName0.

La ricreazione delle colonne è un processo in due passaggi:

  1. La colonna viene aggiunta di nuovo alla raccolta di SharePoint.
  2. Le colonne non associate ai campi di InfoPath vengono rimosse.

Causa

InfoPath archivia l'elenco dei campi pubblicati nelle raccolte documenti di SharePoint in un manifesto locale insieme alle colonne a cui sono associati questi campi. A tale scopo, fare riferimento all'ID colonna in SharePoint (un valore GUID univoco) con il campo InfoPath.

Quando si pubblica il modello di modulo di InfoPath aggiornato in una raccolta documenti di SharePoint la seconda volta, InfoPath verifica se la colonna con l'ID associato esiste già. Se non trova la colonna corrispondente, viene creata una nuova colonna nella raccolta documenti. Tutte le colonne non associate ad alcun campo di InfoPath vengono eliminate dalla raccolta documenti.

Le operazioni seguenti vengono eseguite in background quando si pubblica lo stesso modello di modulo in più raccolte di SharePoint:

  • Quando si pubblica il modello di modulo nella prima raccolta la prima volta, ogni colonna pubblicata viene creata e associata al campo InfoPath corrispondente.

  • Quando si pubblica il modello di modulo nella seconda libreria la prima volta, InfoPath non trova le colonne associate agli ID archiviati e crea quindi nuove colonne. Associa quindi il nuovo ID colonna al campo InfoPath corrispondente.

  • Quando si pubblica il modello di modulo nella prima libreria la seconda volta, InfoPath non trova le colonne associate agli ID archiviati, poiché i GUID della seconda libreria sono attualmente associati ai campi. InfoPath crea quindi nuove colonne che a loro volta ottengono nuovi ID e sono associate ai campi di InfoPath.

  • In questo processo sono presenti molte colonne create che non sono associate ad alcun campo di InfoPath e vengono rimosse dalla raccolta documenti.

  • Questo comportamento viene ripetuto quando si pubblica il modello di modulo nella seconda libreria la seconda volta.

Nota

Questo problema non si verifica se il modello di modulo di InfoPath viene pubblicato come tipo di contenuto del sito o se i campi di InfoPath vengono pubblicati come colonne del sito in SharePoint.

Risoluzione

Esistono un paio di metodi per evitare che ciò accada:

  • Creare una colonna del sito per ogni campo di InfoPath da pubblicare nel sito di SharePoint e selezionare le colonne del sito create in precedenza durante la pubblicazione del modello di modulo di InfoPath in entrambe le raccolte.

    Poiché l'ID delle colonne del sito non cambia, InfoPath non deve ricreare le colonne esistenti.

  • Creare una copia separata del modello di modulo di InfoPath, una per ogni raccolta documenti di SharePoint. In questo modo, InfoPath non creerà nuovamente le colonne esistenti perché gli ID colonna non cambieranno.

    Lo svantaggio di questo approccio è che è necessario implementare tutte le modifiche in tutte le copie del modello di modulo in uso.

Nota

In generale, invece di pubblicare due volte il modello di modulo di InfoPath, l'approccio consigliato consiste nel pubblicare il modello di modulo come tipo di contenuto del sito e associare il tipo di contenuto del sito a entrambe le raccolte documenti di SharePoint.

Ulteriori informazioni

Per altre informazioni, vedere Aggiungere, rimuovere o modificare colonne della raccolta di SharePoint o colonne del sito.