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:
- Kolumnen läggs till i SharePoint-biblioteket igen.
- 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.