Dela via


Kolumner som publiceras från InfoPath-fält återskapas när samma InfoPath-formulärmall publiceras på nytt

Ursprungligt KB-nummer: 2554288

Symptom

Tänk dig följande situation:

  • Du skapar en Office InfoPath-formulärmall och publicerar den i ett dokumentbibliotek i SharePoint. Under publiceringen väljer du vissa InfoPath-fält som ska publiceras som kolumner i dokumentbiblioteket. När du har publicerat formulärmallen bestämmer du dig för att publicera samma formulärmall och samma fält till ett annat dokumentbibliotek på samma SharePoint-webbplats.

  • Senare implementerar du en ändring i InfoPath-formulärmallen och publicerar om formulärmallen till båda dokumentbiblioteken i samma ordning som du gjorde under den första publiceringen.

I det här scenariot återskapas alla kolumner i dokumentbiblioteken som publicerades från InfoPath-fält.

Under den här proceduren uppdateras även det interna namnet på de återskapade kolumnerna i SharePoint-dokumentbiblioteken, dvs. ett numeriskt värde som börjar med 0 är suffixet till det gamla kolumnnamnet. Till exempel ändras en kolumn med namnet LastName till LastName0.

Återskapandet av kolumnerna är en tvåstegsprocess:

  1. Kolumnen läggs till i SharePoint-biblioteket igen.
  2. Kolumnerna som inte är associerade med InfoPath-fälten tas bort.

Orsak

InfoPath lagrar listan med fält som publiceras till SharePoint-dokumentbibliotek i ett lokalt manifest tillsammans med de kolumner som dessa fält är associerade till. Detta åstadkoms genom att referera till kolumn-ID:t i SharePoint (ett unikt GUID-värde) med InfoPath-fältet.

När du publicerar den uppdaterade InfoPath-formulärmallen till ett SharePoint-dokumentbibliotek andra gången kontrollerar InfoPath om kolumnen med det associerade ID:t redan finns. Om den inte hittar motsvarande kolumn skapas en ny kolumn i dokumentbiblioteket. Alla kolumner som inte är associerade med något av InfoPath-fälten tas bort från dokumentbiblioteket.

Följande åtgärder utförs i bakgrunden när du publicerar samma formulärmall till flera SharePoint-bibliotek:

  • När du publicerar formulärmallen till det första biblioteket första gången skapas varje publicerad kolumn och associeras med motsvarande InfoPath-fält.

  • När du publicerar formulärmallen till det andra biblioteket första gången hittar InfoPath inte de associerade kolumnerna med lagrade ID:n och skapar därför nya kolumner. Den associerar sedan det nya kolumn-ID:t med motsvarande InfoPath-fält.

  • När du publicerar formulärmallen till det första biblioteket andra gången hittar InfoPath inte de associerade kolumnerna med de lagrade ID:na, eftersom GUID:erna från det andra biblioteket för närvarande är associerade med fälten. InfoPath skapar alltså nya kolumner som i sin tur hämtar nya ID:n och som är associerade med InfoPath-fälten.

  • I den här processen skapas många kolumner som inte är associerade med något av InfoPath-fälten och som tas bort från dokumentbiblioteket.

  • Det här beteendet upprepas när du publicerar formulärmallen till det andra biblioteket andra gången.

Obs!

Det här problemet uppstår inte om InfoPath-formulärmallen publiceras som en webbplatsinnehållstyp eller InfoPath-fält publiceras som webbplatskolumner i SharePoint.

Åtgärd

Det finns några metoder för att förhindra detta:

  • Skapa en webbplatskolumn för varje InfoPath-fält som ska publiceras på SharePoint-webbplatsen och välj de förskapade webbplatskolumnerna när du publicerar InfoPath-formulärmallen till båda biblioteken.

    Eftersom ID:t för webbplatskolumnerna inte ändras behöver InfoPath inte återskapa de befintliga kolumnerna.

  • Skapa en separat kopia av InfoPath-formulärmallen, en för vart och ett av SharePoint-dokumentbiblioteken. Detta säkerställer att InfoPath inte återskapar de befintliga kolumnerna eftersom kolumn-ID:t inte ändras.

    Nackdelen med den här metoden är att du måste implementera alla ändringar i alla formulärmallskopior som används.

Obs!

I allmänhet i stället för att publicera InfoPath-formulärmallen två gånger är den rekommenderade metoden att publicera formulärmallen som en webbplatsinnehållstyp och associera webbplatsinnehållstypen med båda SharePoint-dokumentbiblioteken.

Mer information

Mer information finns i Lägga till, ta bort eller ändra SharePoint-bibliotekskolumner eller webbplatskolumner.