문제

내가 목격한 것

2007에서 2010으로 업그레이드한 후 SharePoint에서 다소 짜증나는 점을 발견했습니다.

SharePoint 2007의 작업 목록 스키마에는 '할당 대상' 필드가 먼저 있었습니다.이는 기본적으로 'Assigned To' 필드가 데이터베이스 수준에서 'int1' 필드로 이동했음을 의미합니다.

SharePoint 2010에서는 작업 목록 스키마에 선행 작업이 먼저 있습니다.이것이 새로운 목록에 대해 무엇을 의미하는지 추측해 보세요.선행자 열은 데이터베이스 수준에서 'int1' 필드로 들어가고 'Assigned To'는 'int2'에 속합니다.

작업 콘텐츠 유형의 필드 순서를 변경하는 것은 '빈 사용자 정의 목록'을 사용하고 콘텐츠 유형을 직접 추가하는 경우에만 도움이 됩니다.그렇게 하면 목록 스키마의 필드가 2007년의 모습과 일치하게 정렬됩니다!그러나 '작업 목록 정의'는 이를 무시하고 자체 스키마를 시작점으로 사용합니다.SharePoint 2007과 동일한 기본 데이터 필드를 사용하여 작업 목록을 얻으려면 기본적으로 목록의 콘텐츠 유형/필드를 재작업(제거 및 추가)해야 하며 그 결과 순서가 변경된 콘텐츠 유형의 스키마로 스키마가 재설정됩니다.

이것이 왜 중요합니까?

많은 분들이 SQL 필드를 건드리면 안 되는데 왜 SQL 필드에 관심이 있는지 궁금해하실 것입니다.솔직히 말해서 신경 쓸 필요는 없지만 Microsoft가 나를 만들었습니다!!!

DataFormWebPart를 사용하여 모든 사이트에서 완료되지 않은 작업을 롤업합니다.SharePoint Designer를 사용하여 만들었습니다.크로스 사이트 재귀 비트에 대해 다양한 옵션이 설정되어 있지만 그 중 가장 중요한 것은 CAML 쿼리이며 이 부분이 골치 아픈 문제입니다.

<Eq>
    <FieldRef Name="AssignedTo" />
    <Value Type="Integer"><UserID Type="Integer"/></Value>
</Eq>

위의 내용은 [나]를 기준으로 필터링하는 것으로 알려져 있으며, 2007년에 만들어진 모든 사이트에 적용됩니다!새 목록의 작업은 그렇지 않습니다!...그리고 이제 생성되는 기본 SQL이 다음을 수행하고 있기 때문이라는 것을 알고 있습니다.

int1 = [id]

...그리고 그렇지 않습니다:

int1 = [id] or int2 = [id]

(아직) SharePoint가 내부적으로 SQL을 어떻게 구축하는지 잘 모르겠지만 분명히 CAML을 SQL로 전환해야 하고 그렇게 하는 과정에서 소스를 사용하여 관련 필드 매핑을 조회해야 하기 때문에 어느 시점에서 조사해 볼 수도 있습니다.어느 쪽이든 소스는 이전 목록이나 새 목록에 따라 달라집니다.이번에는 어떤 이유로든 이전 버전을 사용하는 것으로 나타났습니다. 하지만 어느 쪽이든 나에게 할당된 작업이 이제 제외된다는 의미입니다.현재 세 가지 옵션만 볼 수 있습니다.

  1. 새 작업 목록 정의를 반영하도록 모든 현재 작업 목록을 업데이트하는 스크립트를 만듭니다.이상적이지도 않고 작은 작업도 아닙니다.
  2. 앞으로는 작업 목록 템플릿을 사용하여 생성된 모든 목록이 이전에 설명한 대로 수정되었는지 확인하세요(ct 및 필드 제거/추가).
  3. XSLT에 필터를 넣고 성능을 경험해보세요!

2번 템플릿을 템플릿화할 수 있지만 원본 템플릿은 여전히 ​​남아 있으며 MS 템플릿에서 벗어나면 향후 문제가 발생할 가능성이 높습니다!!

이것을 목격한 사람이 있나요?정말 답이 없다는 걸 알면서 포스팅을 합니다.그냥 제안/의견입니다.

도움이 되었습니까?

해결책

위의 내용을 목격하는 데 많은 시간을 보냈습니다.쿼리의 ViewFields 부분에 'AssignedTo'를 넣으면 문제가 해결된 것으로 나타났습니다!

표시용 필드를 사용하지 않더라도 해당 필드를 추가하여 문제가 해결되었습니다.기본 필드는 여전히 다르지만 결국 SharePoint는 이를 알고 있으며 생성된 대규모 쿼리는 웹/목록별로 올바른 필드를 참조합니다.

스위아아아.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top