Udostępnij za pośrednictwem


Kolumny opublikowane z pól programu InfoPath są ponownie tworzone po ponownym opublikowaniu tego samego szablonu formularza programu InfoPath

Oryginalny numer KB: 2554288

Symptomy

Rozpatrzmy następujący scenariusz:

  • Tworzysz szablon formularza programu InfoPath pakietu Office i publikujesz go w bibliotece dokumentów w programie SharePoint. Podczas publikowania należy wybrać niektóre pola programu InfoPath do opublikowania jako kolumny w bibliotece dokumentów. Po opublikowaniu szablonu formularza decydujesz się opublikować ten sam szablon formularza i te same pola w innej bibliotece dokumentów w tej samej witrynie programu SharePoint.

  • Później zaimplementujesz zmianę w szablonie formularza programu InfoPath i ponownie opublikujesz szablon formularza w obu bibliotekach dokumentów w takiej samej kolejności, jak podczas pierwszego publikowania.

W tym scenariuszu wszystkie kolumny w bibliotekach dokumentów, które zostały opublikowane z pól programu InfoPath, zostaną ponownie utworzone.

Podczas tej procedury wewnętrzna nazwa ponownie utworzonych kolumn w bibliotekach dokumentów programu SharePoint jest również aktualizowana, tj. cyfra rozpoczynająca się od 0 jest sufiksem do starej nazwy kolumny. Na przykład kolumna o nazwie LastName zmienia się na LastName0.

Odtworzenie kolumn jest procesem dwuetapowym:

  1. Kolumna zostanie ponownie dodana do biblioteki programu SharePoint.
  2. Kolumny, które nie są skojarzone z polami programu InfoPath, zostaną usunięte.

Przyczyna

Program InfoPath przechowuje listę pól publikowanych w bibliotekach dokumentów programu SharePoint w manifeście lokalnym wraz z kolumnami, z którymi te pola są skojarzone. Można to osiągnąć, odwołując się do identyfikatora kolumny w programie SharePoint (unikatowa wartość identyfikatora GUID) z polem InfoPath.

Podczas publikowania zaktualizowanego szablonu formularza programu InfoPath w bibliotece dokumentów programu SharePoint po raz drugi program InfoPath sprawdza, czy kolumna o skojarzonym identyfikatorze już istnieje. Jeśli nie znajdzie odpowiedniej kolumny, w bibliotece dokumentów zostanie utworzona nowa kolumna. Wszystkie kolumny, które nie są skojarzone z żadnym z pól programu InfoPath, zostaną usunięte z biblioteki dokumentów.

Następujące operacje są wykonywane w tle podczas publikowania tego samego szablonu formularza w wielu bibliotekach programu SharePoint:

  • Po pierwszym opublikowaniu szablonu formularza w pierwszej bibliotece każda opublikowana kolumna zostanie utworzona i zostanie skojarzona z odpowiednim polem Programu InfoPath.

  • Po pierwszym opublikowaniu szablonu formularza w drugiej bibliotece program InfoPath nie odnalazł skojarzonych kolumn z zapisanymi identyfikatorami i w związku z tym tworzy nowe kolumny. Następnie skojarzy nowy identyfikator kolumny z odpowiednim polem InfoPath.

  • Po opublikowaniu szablonu formularza w pierwszej bibliotece po raz drugi program InfoPath nie znajdzie skojarzonych kolumn z zapisanymi identyfikatorami, ponieważ identyfikatory GUID z drugiej biblioteki są obecnie skojarzone z polami. Program InfoPath tworzy więc nowe kolumny, które z kolei pobierają nowe identyfikatory i są skojarzone z polami programu InfoPath.

  • W tym procesie utworzono wiele kolumn, które nie są skojarzone z żadnym z pól programu InfoPath i są usuwane z biblioteki dokumentów.

  • To zachowanie jest powtarzane po opublikowaniu szablonu formularza w drugiej bibliotece po raz drugi.

Uwaga

Ten problem nie występuje, jeśli szablon formularza programu InfoPath jest publikowany jako typ zawartości witryny lub pola programu InfoPath są publikowane jako kolumny witryny w programie SharePoint.

Rozwiązanie

Istnieje kilka metod, aby temu zapobiec:

  • Utwórz kolumnę witryny dla każdego pola programu InfoPath, które ma zostać opublikowane w witrynie programu SharePoint, i wybierz wstępnie utworzone kolumny witryny podczas publikowania szablonu formularza programu InfoPath w obu bibliotekach.

    Ponieważ identyfikator kolumn witryny nie ulegnie zmianie, program InfoPath nie musi ponownie tworzyć istniejących kolumn.

  • Utwórz oddzielną kopię szablonu formularza programu InfoPath, po jednej dla każdej biblioteki dokumentów programu SharePoint. Dzięki temu program InfoPath nie utworzy ponownie istniejących kolumn, ponieważ identyfikatory kolumn nie ulegną zmianie.

    Wadą tego podejścia jest to, że należy zaimplementować wszystkie zmiany we wszystkich używanych kopiach szablonów formularzy.

Uwaga

Ogólnie rzecz biorąc, zamiast dwukrotnie publikować szablon formularza programu InfoPath, zaleca się opublikowanie szablonu formularza jako typu zawartości witryny i skojarzenie typu zawartości witryny z obiema bibliotekami dokumentów programu SharePoint.

Więcej informacji

Aby uzyskać więcej informacji, zobacz Dodawanie, usuwanie lub modyfikowanie kolumn biblioteki programu SharePoint lub kolumn witryny.