Share via


Kolonner publisert fra InfoPath-felt opprettes på nytt når den samme InfoPath-skjemamalen publiseres på nytt

Opprinnelig KB-nummer: 2554288

Symptomer

Vurder følgende scenario:

  • Du oppretter en Office InfoPath-skjemamal og publiserer den til et dokumentbibliotek i SharePoint. Under publisering velger du bestemte InfoPath-felt som skal publiseres som kolonner i dokumentbiblioteket. Når du har publisert skjemamalen, bestemmer du deg for å publisere den samme skjemamalen og de samme feltene til et annet dokumentbibliotek på samme SharePoint-område.

  • Senere implementerer du en endring i InfoPath-skjemamalen og publiserer skjemamalen på nytt til begge dokumentbibliotekene i samme rekkefølge som du gjorde under den første publiseringen.

I dette scenarioet opprettes alle kolonnene i dokumentbibliotekene som ble publisert fra InfoPath-felt, på nytt.

Under denne prosedyren oppdateres også det interne navnet på de gjenopprettede kolonnene i SharePoint-dokumentbibliotekene, det vil si at en numerisk start med 0 er suffikset til det gamle kolonnenavnet. En kolonne kalt Etternavn endres for eksempel til Etternavn0.

Gjenopprettingen av kolonnene er en totrinnsprosess:

  1. Kolonnen legges til i SharePoint-biblioteket på nytt.
  2. Kolonnene som ikke er knyttet til InfoPath-feltene, fjernes.

Årsak

InfoPath lagrer listen over felt som publiseres til SharePoint-dokumentbiblioteker i et lokalt manifest sammen med kolonnene som disse feltene er tilknyttet. Dette gjøres ved å referere til kolonne-ID-en i SharePoint (en unik GUID-verdi) med InfoPath-feltet.

Når du publiserer den oppdaterte InfoPath-skjemamalen til et SharePoint-dokumentbibliotek andre gang, kontrollerer InfoPath om kolonnen med den tilknyttede IDen allerede finnes. Hvis den ikke finner den tilsvarende kolonnen, opprettes en ny kolonne i dokumentbiblioteket. Alle kolonner som ikke er knyttet til noen av InfoPath-feltene, slettes fra dokumentbiblioteket.

Følgende operasjoner utføres i bakgrunnen når du publiserer den samme skjemamalen til flere SharePoint-biblioteker:

  • Når du publiserer skjemamalen til det første biblioteket første gang, opprettes hver publiserte kolonne og er knyttet til det tilsvarende InfoPath-feltet.

  • Når du publiserer skjemamalen til det andre biblioteket første gang, finner ikke InfoPath de tilknyttede kolonnene med de lagrede ID-ene, og oppretter derfor nye kolonner. Den knytter deretter den nye kolonne-ID-en til det tilsvarende InfoPath-feltet.

  • Når du publiserer skjemamalen til det første biblioteket andre gang, finner ikke InfoPath de tilknyttede kolonnene med de lagrede ID-ene, siden GUID-ene fra det andre biblioteket for øyeblikket er knyttet til feltene. InfoPath oppretter derfor nye kolonner som igjen får nye ID-er og er knyttet til InfoPath-feltene.

  • I denne prosessen er det opprettet mange kolonner som ikke er knyttet til noen av InfoPath-feltene og fjernes fra dokumentbiblioteket.

  • Denne virkemåten gjentas når du publiserer skjemamalen til det andre biblioteket andre gang.

Obs!

Dette problemet oppstår ikke hvis InfoPath-skjemamalen publiseres som en områdeinnholdstype eller InfoPath-felt publiseres som områdekolonner i SharePoint.

Løsning

Det finnes et par metoder for å hindre at dette skjer:

  • Opprett en områdekolonne for hvert InfoPath-felt som skal publiseres på SharePoint-området, og velg de forhåndsopprettede områdekolonnene når du publiserer InfoPath-skjemamalen til begge bibliotekene.

    Siden ID-en for områdekolonnene ikke endres, trenger ikke InfoPath å opprette de eksisterende kolonnene på nytt.

  • Opprett en egen kopi av InfoPath-skjemamalen, én for hvert Av SharePoint-dokumentbibliotekene. Dette sikrer at InfoPath ikke oppretter de eksisterende kolonnene på nytt fordi kolonne-ID-ene ikke endres.

    Ulempen med denne fremgangsmåten er at du må implementere alle endringene i alle skjemamalkopiene som er i bruk.

Obs!

Generelt sett, i stedet for å publisere InfoPath-skjemamalen to ganger, er den anbefalte fremgangsmåten å publisere skjemamalen som en nettstedsinnholdstype og knytte områdeinnholdstypen til begge SharePoint-dokumentbibliotekene.

Mer informasjon

Hvis du vil ha mer informasjon, kan du se Legge til, fjerne eller endre kolonner for SharePoint-biblioteker eller områdekolonner.