質問

他のアプリケーションのための文書の一種のCRUDを示すWebサービスを提供しています..

私は、ユーザーがメタダマスで(WSを介して)アップロードできる文書ライブラリをいくつか持っています。

すべての種類の文書について新しいファイルのアップロードはうまく機能しますが、新しいバージョンの特定のファイル(DOCX、PPTXなど)をアップロードしたときに、メタデータが新しいバージョンで消えます。

so。どうすればこの問題を解決できますか?よく知られているバグまたは私が見つけた新しいものですか?

ありがとうございました!

役に立ちましたか?

解決 2

古い項目フィールドに挿入されたデータを「下に書き換える」という問題を解決しました。

カスタム列を想定しているとする:

  • tt_file_id
  • tt_content_id
  • tt_name

    コードは次のとおりです。

    SPListItem oldItem = list.GetItemById(OldItemID);
    SPListItem newFile = (list.RootFolder.Files.Add(oldItem["Name"].ToString(), filebytes, true)).ListItemAllFields;
    
    string Name = oldItem["Name"].ToString();
    newFile["tt_file_id"] = oldItem["tt_file_id"];
    newFile["Name"] = oldItem["Name"];
    newFile["tt_content_id"] = oldItem["tt_content_id"];
    
    newFile.SystemUpdate(false);
    
    .

他のヒント

同じ質問としてMSDNフォーラムでこのリンクをチェックしてください。

メタデータを追加した場合は、(.docx / .xlsx)の

。あなたはダウンロードします ドキュメントとアップロードするフィールド値に気付くでしょう 事前に入っており、これはXMLプロモーションのためです 降格。これを確認するには:
ステップ1:あなたの.docxの拡張子を変更してください または.xlsxから.zipへの
ステップ2:zipファイルを開き、フォルダを探す customxml
ステップ3:フォルダを開き、ファイルitem1.xmlを探す
ファイルを開くと、そのプロパティには あなたが最初に文書をアップロードしたときに割り当てられたのと同じ値。 これがあなたがあなたが一度あなたの事前に移入されたフィールドを取得する正確な理由です この文書をアップロードしてください。上記のプロセスはXMLと呼ばれるものです プロモーションと降格。これがあなたにこれが何であるかについてのアイデアを与えることを願っています。

Note: The above steps won't be true for .doc or .xls, for these types of documents you will notice that fields are always empty.
.

http://社会。 msdn.microsoft.com/forums/en/sharepoint2010General/thread/1B115343-20E5-4962-AF97-793194F07637

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