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?

È stato utile?

Soluzione

Bene, ho risposto alla mia domanda ...

Quello che ho finito per fare è stato alla fine:

  1. Cancellato l'intera libreria di moduli
  2. 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:

  1. Cancellato l'intera libreria di moduli
  2. Eliminato il tipo di contenuto del modulo dalla galleria dei tipi di contenuti del sito
  3. Rimosso del tutto il campo dalla forma infatabilmente
  4. Pubblicato il modulo (meno campo) e lo caricò in amministratore centrale
  5. 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
  6. 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)
  7. Disattivato e riattivato la funzione per il modulo nelle impostazioni di raccolta del sito
  8. 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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top