質問

私が目撃したもの

2007年から2010年までのアップグレード後のSharePointにかなり迷惑なことに気付いた。

SharePoint 2007のタスクリストスキーマは、最初に '割り当てられた'フィールドを持っていました。これは基本的に「割り当てられた」フィールドがデータベースレベルで 'int1'フィールドに入ったことを意味していました。

SharePoint 2010では、タスクリストスキーマは先に先行しています。それが新しいリストのための意味を考えると思いますか?先行列はデータベースレベルの 'INT1'フィールドに入り、 'int2'に割り当てられて 'int2'に配置されます。

タスクコンテンツタイプのフィールド順序の変更「空白カスタムリスト」を使用してコンテンツタイプを直接追加するのに役立ちます。そのようにして、2007年がどのように見えたのか、リストスキーマ内のフィールドをオンラインで注文します。ただし、「タスクリスト定義」はそれを無視し、それ自体のスキーマを開始点として使用します。 SharePoint 2007と同じ基礎と同じデータフィールドを使用してタスクリストを取得するには、基本的にリストのコンテンツタイプ/フィールドを再加工(削除して追加)し、スキーマを並べ替えられたコンテンツタイプのそれとリセットする必要があります。

なぜこの問題は何ですか?

あなたの多くは、私が彼らに触れて以来、私が彼らに触れないようにして以来、私がSQLフィールドを気にしているのか疑問に思うかもしれませんが、マイクロソフトが私を作っていたよ!!!

すべてのサイトから不完全なタスクをロールアップするためにDataFormWebPartを使用します。 SharePoint Designerを使用して作成されました。クロスサイトの再帰ビットにはさまざまなオプションが設定されていますが、そのメインはCAMLクエリです。この部分は頭痛を引き起こしています。

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

上記は[Me]に基づいてフィルタリングすることが知られており、それは2007年に作成されたすべてのサイトのためのものです。新しいリストのタスクはありません。 ...そして、私は今それが生成されている基礎となるSQLが実行されているからです。

int1 = [id]
.

...ではありません:

int1 = [id] or int2 = [id]
.

SharePointの内部的にSQLをどのように構築するかはわかりませんが、CAMLをSQLに回す必要があるため、ソースを使用して関連付けられているフィールドマッピングを検索する必要があるため、わかりません。どちらの方法でも、ソースが古いリストや新しいリストに基づいて異なる予定です。それが古いものを使っていますが、どちらの方法でもこの時間がかかりますが、それは私に割り当てられているタスクが除外されています。現在の3つのオプションしか表示できません

  1. 現在のタスクリスト定義を反映するための現在のタスクリストをすべて更新するためのスクリプトを作成します。理想的ではなく、小さなタスクはありません。
  2. 進行中のタスクリストテンプレートを使用して作成されたすべてのリストは、前述のように変更された(CTとフィールドの削除/追加)。
  3. フィルタをXSLTに入れてパフォーマンスにかけてください。

    私は2番目のテンプレートを実現するかもしれませんが、元のテンプレートはまだ残っていてMSテンプレートから離れて移動します。おそらく将来の問題の影響を受けやすい!

    これは誰にでも目撃されていますか?私は本当にそれに対する答えではないことを知っています。ただの提案/意見。

役に立ちましたか?

解決

上記を目撃した時間がたくさんあります。クエリのビューフィールド部分に「割り当てられた」を置くだけで問題を修正しました!

表示のためのフィールドを使用していないとしても、その問題はそれを追加して修正されました。基礎となるフィールドはまだ異なるが、SharePointは結局のところこれを知っていて、巨大なクエリがWeb / Listごとの正しいフィールドを参照しています。

SWEEEETE。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top