InfoPath 필드에서 게시된 열은 동일한 InfoPath 양식 서식 파일이 다시 게시될 때 다시 만들어집니다.
원래 KB 번호: 2554288
증상
다음과 같은 경우를 생각해볼 수 있습니다.
Office InfoPath 양식 서식 파일을 만들고 SharePoint의 문서 라이브러리에 게시합니다. 게시하는 동안 문서 라이브러리에서 열로 게시할 특정 InfoPath 필드를 선택합니다. 양식 서식 파일을 게시한 후 동일한 SharePoint 사이트의 다른 문서 라이브러리에 동일한 양식 서식 파일과 동일한 필드를 게시하기로 결정합니다.
나중에 InfoPath 양식 서식 파일의 변경 내용을 구현하고 첫 번째 게시 중에와 동일한 순서로 양식 서식 파일을 두 문서 라이브러리에 다시 게시합니다.
이 시나리오에서는 InfoPath 필드에서 게시된 문서 라이브러리의 모든 열이 다시 만들어집니다.
이 절차 중에 SharePoint 문서 라이브러리에서 다시 생성된 열의 내부 이름도 업데이트됩니다. 즉, 0 부터 시작하는 숫자의 접미사가 이전 열 이름에 접미사로 추가됩니다. 예를 들어 LastName 이라는 열이 LastName0으로 변경되었습니다.
열의 다시 만들기는 2단계 프로세스입니다.
- 열이 SharePoint 라이브러리에 다시 추가됩니다.
- InfoPath 필드와 연결되지 않은 열이 제거됩니다.
원인
InfoPath는 이러한 필드가 연결된 열과 함께 SharePoint 문서 라이브러리에 게시된 필드 목록을 로컬 매니페스트에 저장합니다. 이 작업은 InfoPath 필드를 사용하여 SharePoint의 열 ID(고유 GUID 값)를 참조하여 수행됩니다.
업데이트된 InfoPath 양식 서식 파일을 SharePoint 문서 라이브러리에 두 번째로 게시하는 경우 InfoPath는 연결된 ID가 있는 열이 이미 있는지 확인합니다. 해당 열을 찾지 못하면 문서 라이브러리에 새 열이 만들어집니다. InfoPath 필드와 연결되지 않은 열은 문서 라이브러리에서 삭제됩니다.
동일한 양식 서식 파일을 여러 SharePoint 라이브러리에 게시할 때 백그라운드에서 다음 작업이 수행됩니다.
양식 서식 파일을 처음 라이브러리에 게시하면 게시된 각 열이 만들어지고 해당 InfoPath 필드와 연결됩니다.
양식 서식 파일을 두 번째 라이브러리에 처음 게시할 때 InfoPath는 저장된 ID와 연결된 열을 찾지 못하므로 새 열을 만듭니다. 그런 다음 새 열 ID를 해당 InfoPath 필드와 연결합니다.
양식 서식 파일을 첫 번째 라이브러리에 두 번째로 게시하면 두 번째 라이브러리의 GUID가 현재 필드와 연결되어 있으므로 InfoPath에서 저장된 ID와 연결된 열을 찾을 수 없습니다. 따라서 InfoPath는 새 ID를 가져와 InfoPath 필드와 연결된 새 열을 만듭니다.
이 프로세스에는 InfoPath 필드와 연결되지 않고 문서 라이브러리에서 제거되는 많은 열이 만들어집니다.
이 동작은 양식 서식 파일을 두 번째 라이브러리에 두 번째로 게시할 때 반복됩니다.
참고
이 문제는 InfoPath 양식 서식 파일이 사이트 콘텐츠 형식으로 게시되거나 InfoPath 필드가 SharePoint에서 사이트 열로 게시되는 경우 발생하지 않습니다.
해결 방법
이 문제가 발생하지 않도록 하는 몇 가지 방법이 있습니다.
SharePoint 사이트에 게시할 각 InfoPath 필드에 대한 사이트 열을 만들고 InfoPath 양식 서식 파일을 두 라이브러리에 게시할 때 미리 만든 사이트 열을 선택합니다.
사이트 열의 ID는 변경되지 않으므로 InfoPath는 기존 열을 다시 만들 필요가 없습니다.
각 SharePoint 문서 라이브러리에 대해 하나씩 InfoPath 양식 서식 파일의 별도 복사본을 만듭니다. 이렇게 하면 열 ID가 변경되지 않으므로 InfoPath가 기존 열을 다시 만들지 않습니다.
이 방법의 단점은 사용 중인 모든 양식 서식 파일 복사본의 모든 변경 내용을 구현해야 한다는 것입니다.
참고
일반적으로 InfoPath 양식 서식 파일을 두 번 게시하는 대신 양식 서식 파일을 사이트 콘텐츠 형식으로 게시하고 사이트 콘텐츠 형식을 SharePoint 문서 라이브러리와 연결하는 것이 좋습니다.