Campi infatabili di recente promuovere la libreria non nella Biblioteca?
-
28-10-2019 - |
Domanda
Ho un modulo infatabile impostato come tipo di contenuto primario su una libreria di moduli che funziona bene. Il modulo è un modello gestito caricato/attivato tramite amministratore centrale e contiene un numero di campi promossi.
Ora ho aggiunto un altro campo al modulo in Infopath (e ho aggiunto un controllo sul modulo per esso, per la visibilità) e ho impostato quel campo da promuovere in biblioteca (confermato attraverso entrambi Tools -> Form Options -> Property Promotion
, e l'elenco durante la pubblicazione) e pubblicato e caricato il modulo (usando l'amministratore centrale).
Quando apro il modulo in SharePoint (creando un nuovo elemento nella libreria dei moduli o aprendo un elemento esistente in quella libreria) vedo il controllo per il mio nuovo campo e posso archiviare i dati sul campo. Tuttavia, il campo non è promosso, in quanto non riesco a vederlo in nessuno dei seguenti:
- la pagina delle proprietà elementi (visualizza/modifica)
- la pagina Visualizza crea/modifica
- L'elenco delle colonne nella pagina Impostazioni della libreria modulo
- L'elenco delle colonne del tipo di contenuto per il modulo, nella pagina Impostazioni della libreria del modulo
Ho provato tutto ciò a cui riesco a pensare per far promuovere questo campo a corto di eliminare l'intera biblioteca e ricominciare. Qualcun altro ha incontrato questo problema? Come posso promuovere un nuovo campo in una biblioteca esistente?
Soluzione
Bene, ho risposto alla mia domanda ...
Quello che ho finito per fare è stato alla fine:
- Cancellato l'intera libreria di moduli
- Ha creato una nuova copia/versione della libreria modulo e ha aggiunto il tipo di contenuto del modulo dalla galleria dei tipi di contenuti del sito
Questo non ha risolto nulla. Non farlo.
Il mio prossimo passo è stato probabilmente eccessivo, ma io:
- Cancellato l'intera libreria di moduli
- Eliminato il tipo di contenuto del modulo dalla galleria dei tipi di contenuti del sito
- Rimosso del tutto il campo dalla forma infatabilmente
- Pubblicato il modulo (meno campo) e lo caricò in amministratore centrale
- Ha ri-aggiunto il campo in Infopath e pubblicato, promuovendo nuovamente il campo nello stesso modo in cui avevo prima, e lo caricò attraverso l'amministratore centrale
- Ho provato ad aggiungere il tipo di contenuto del modulo a una nuova copia/versione della libreria del modulo (il tipo di contenuto non era disponibile)
- Disattivato e riattivato la funzione per il modulo nelle impostazioni di raccolta del sito
- Aggiunto il tipo di contenuto del modulo alla nuova libreria di moduli
E ha funzionato!
La mia teoria è che la disattivazione e la riattivazione della funzione per il modulo infatario costringerà i campi promossi ad essere aggiornati e che fino a quando non avrai fatto che il tipo di contenuto utilizzerà ancora i vecchi campi (in modo che nulla che fai a Il livello della libreria del modulo significherà una cosa). Ma sarebbe comunque un'operazione molto distruttiva se stai lavorando sui dati di produzione e spero che ci sia ancora un modo più facile e "più sicuro" di aggiornare le proprietà/campi/colonne promosse di un modulo infatabilmente pubblicato su SharePoint.
Ma probabilmente non c'è.
Altri suggerimenti
Ho solo disattivato, e poi riattivare la funzione è stato sufficiente per me. Inoltre, non sembrava essere distruttivo. Forse dipenderebbe da ciò che è nella tua funzione, nel mio caso la forma infatabilmente e nient'altro.
Ho risolto (soluzione usata) Questo problema di PowerShell.
Devi sapere:
1) ID campo nel tipo di contenuto
2) xpath al campo in forma di infatica
Successivamente devi usare questo script PowerShell:
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$web = Get-SPWeb "https://intranet.company.com"
$contentTypeName = "Content Type Name"
$ct = $web.ContentTypes[$contentTypeName]
# Content Type Fields
# Field
$fieldId = "1209bb86-645b-4e56-aea2-265a325a98af"
$fieldLinks = $ct.FieldLinks | Where-Object {$_.Id -eq $fieldId}
$fieldLinks.ReadOnly = $true
$fieldLinks.XPath = "/my:Fields/my:FieldGroup/my:Field"
$ct.Update($true)