2011-09-13 17 views
5

は、私はコンテンツタイプのルックアップフィールドを追加しようとするフィールドは、この定義されています。私は、このルックアップフィールドによって参照は、サイトコレクションの範囲に存在したいSharepointのルックアップフィールドとWebId =」

<Field ID="{c80e8e3c-7124-4772-a39d-5b69f131d542}" 
     Name="Site" 
     Group="Tieto Intranet Columns" 
     Type="Lookup" 
     DisplayName="Site" 
     StaticName="Site" 
     List="Lists/FavoriteSites" 
     ShowField="Title" 
     PrependId="TRUE" 
     WebId="~sitecollection" 
    > 

FavoriteSitesリスト、デプロイメントはうまくいきますが、このルックアップでコンテンツタイプに基づいてリストを作成すると、LookupフィールドがFavoriteSitesリストには接続されていないように見えます。残念ながらドロップダウンセレクトは、FavoriteSitesリストのデータが空であることを示すはずです

私がFavoriteSitesに新しいルックアップ列を手動で作成しても問題ありません。

このルックアップ定義でどこに問題があるのでしょうか?

UPDATE:

WebId =〜sitecollectionとフィールドに指定したリスト=リスト/ FavoriteSites属性{c80e8e3c-7124-:リッチが私を推奨されているように

が、私はこのメッセージを見つける冗長上のレベルのログを設定します{d86c7005-d31d-43ae-b86b-38f28b81072e}の{4772-a39d-5b69f131d542}が見つかりませんでした。セットリスト= {39CEC23E-FB28-47B3-BC36-C21780AD1D94}。

リストお気に入りサイトがあるのでわかりません。 FavoriteSitesリストとSiteフィールドを含む2番目のリストは、サイトコレクションスコープの1つの機能によって展開されます。

デプロイ時にguidがわからないため、GUIDによる検索でリストを指定できません。

+1

「WebId =〜sitecollectionおよびList = Lists/FavoriteSites属性が指定されています」というメッセージに対して機能がアクティブ化された時点でSPログ(Verboseレベルのログが必要)を検索し、メッセージ。 –

+0

コメントありがとうございましたRichさん、このメッセージを見つけて投稿を更新しました。あなたは今どこに問題があるのか​​考えていますか? – Michal

答えて

4

をあなたの手で作成したフィールドのフィールド定義を見てSharePointManagerを使用して、簡単にリストの咲くGUIDを見つけることをお勧めしますサイトコレクションのルートサイトまたは機能がアクティブ化されているサイト(後者がサブサイトの場合)。

フィーチャによってリスト/お気に入りアイテムが作成されている場合は、フィールドフィーチャの前にアクティブ化されていることを確認してください。必要がある場合は、ListInstance要素をField要素のすぐ上に置きます。しかし、メッセージは明らかです。カスタムフィールドがサイトコレクションにプロビジョニングされている時点では、リストは存在しません。それがなぜ機能していないのですか?

明確にするには、そのフィールドを使用するリストインスタンスを作成するときだけでなく、機能がアクティブ化された時点でリストが存在する必要があります。

P.S.私は"documentation"にMicrosoft.SharePoint.SPFieldElement.PerformFixUpIfLookUpFieldメソッドをチェックしてこれを見つけました。

+0

Richに感謝します。これは、機能を有効にする順番が原因です。フィーチャーの前にフィーチャーのアクティブ化をフィーチャーの前に置くと、フィーチャーはすべて正常に機能します。 – Michal

1

リストのフィールドをリストのIDに変更してみてください。 List="{4641f5f2-b358-4805-9d7d-e910d2243fb5}"

私はまた、どのようなそのログメッセージが意味することはリスト/ FavoriteSitesが存在しないことがあるなど

+0

あなたの返信ありがとうございましたNat、SharePointManagerは本当に非常に便利なアプリケーションです、私はそれを以前知っていませんでした。 展開時にIDがわからないため、このリストをIDで指定することはできません。フィーチャー・イベント・レシーバーでこの列を追加することはできますが、使いたい方法ではありません。私は、XMLの定義とリストのURLがSharepoint 2010でOKになるはずだと思います。 – Michal

1

私は同じ問題がありました。最後に私の問題は、ルートWebにあるリストを宣言的に参照できないということでした。 WebIdプロパティの〜sitecollectionトークンは、中括弧の間にGuidを記述するため、SharePointは中括弧なしで期待しています(説明はhttp://martensboarterstun.wordpress.com/2013/06/15/how-to-create-a-list-definition-with-a-lookup-field-declaratively/にあります)。私はリスト定義にルートウェブIDを置くことになった。

関連する問題