質問

うことによりコピーしSPListItem(ファイル)からサイトコレクションです。これを作成し、そのファイルのようになります:

var archiveFile = newsArchive.Lists[listName].RootFolder.Files.Add(originalItem.File.Name, originalItem.File.OpenBinary());
var archiveItem = archiveFile.Item;

によるユーティリティメソッドに書いたとして設定すべてのフィールドの値を新しい項目に対応するオリジナルアイテムはこのように

Utilities.PopulateListItemMetadata(....)

このことが、継続させない、著作者ます。

私の設定は、著者の分野explicitelyいろいろなことを想像、インスタンスはこのように:

string userName = originalItem.GetUser("Created by").LoginName;
SPUser user = newsArchive.SiteUsers[userName];
archiveItem["Author"] = user.ID + ";#" + user.LoginName;
archiveItem.Update();

ようにな

string userName = originalItem.GetUser("Created by").LoginName;
SPUser user = newsArchive.SiteUsers[userName];
archiveItem["Author"] = user;
archiveItem.Update();

すが、SPListItem.Update()メソッドを呼び出すまでは、archiveItem["著者""の部分には元に戻ド\。私はテレビを使ってビデオメッセージ損失が、これには業務に取り組めました。

P.S. のSPListItem.GetUser法の拡張手法

P.S.P. コードを実行からタイマー仕...

編集:たりの掘削による新しい分野でのコンテンツタイプを設定する分野の論文の著者はオリジナルアイテムがが設定されていない。しかし、います。EnsureUser(ユーザー名)を返し正しいユーザーです。この奇妙なのか!?!

役に立ちましたか?

解決

の答えを見つ、

SPFieldUserValue val = new SPFieldUserValue(newsArchive, user.ID, user.Name);
archiveItem["Author"] = val; 
archiveItem.SystemUpdate(false);

かったね。

他のヒント

私の経験と同じ問題です。してい この質問.

に勤務している私にとってはラップと同じコードを持っている最終える高い特典をご利用いただけます。

編集

てみましょう置き換え:

SPUser user = newsArchive.SiteUsers[userName];

SPUser user = newsArchive.EnsureUser(userName);

そのためにユーザーのwebでの、また参照を取得します。のSiteUsers収集することでユーザーはサイトコレクション-も必ずしも追加されています。場合はSharePointを探知していないのではない、ユーザーでも利用システム。

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