0

バックアップの目的で、Sharepoint 2010 エクスポート ツールを作成しています (Metavis のファイル マネージャーに少し似ています)。

ファイルをローカル ディスクにダウンロードするとき、ドキュメントに関連付けられたメタデータをバックアップする必要があります。csvファイルに保存します。私の最初のアプローチは、すべての listItem.fieldvalues を反復することでしたが、一部のフィールド値は複雑な型であり、バックアップ ファイルが不必要に複雑になるため、実際には機能しません。一部の値には、「MetaInfo」などの行末もあります。さらに、必要に応じてコンテンツを復元するためにすべての値が必要になるわけではありません。

したがって、私の考えは、機能の復元を行うために必要な Fieldvalues コレクションからのみ値を取得し、ユーザーが追加したすべてのメタデータを補足することです。

これを行うには、除外リストに対してすべてのフィールド値をチェックして、存在するかどうかを確認します。存在する場合は、バックアップしないでください。それがユーザー生成のメタデータか、「作成者」、「作成済み」などの必要な値のいずれかである場合。

私の質問は、すべてのフィールド値キーのリストを知っている人はいますか? または、私の問題に対するより良いアプローチがありますか?

ありがとう

更新: まあ、私は FieldValues コレクションを何らかの方法で繰り返し処理していました。すべての値を CSV にダンプするのは簡単でした。すべての値を取得するには、一度実行するだけで十分でした。あとは、構成用の xml ファイルを記述するだけです。これは疑問を残します:これを行うためのより良い方法はありますか?

4

2 に答える 2

1

Systemを使用して次のコードを記述し、リストフィールドをフィルタリングします。Microsoft.SharePoint.Clientを使用します。

    clientContext.Load(
         listItems,
         items => items
             .Include(
                 item => item["Title"],
                 item => item["Category"],
                 item => item["Estimate"]));

ソース: http: //msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Creating_Windows_Console_Application

すべてのフィールドを含むビューを作成し、SharePointオブジェクトモデルを使用してビューを取得し、コレクションからその列名を取得して、要件に応じてフィルター処理することができます。

于 2011-11-17T12:27:02.217 に答える
0

申し込みを終了しました。アップデートで書いたように、CSV ファイルにエクスポートしてすべての fieldValues のリストを作成しました。その後、ブール値の「バックアップ」を使用して構成ファイルを作成しました。これにより、バックアップの作成時に使用する値を制御できます。

振り返ってみると、構成ファイルは必要なかったと思います。バックアップ時に使用される値は、プログラムの動作全体のかなりの部分を占めているため、構成ファイルは管理者や将来の開発者に、単純な再構成でそのニーズが満たされるという印象を与えます。

新しい要件のためにプログラムを変更する必要がある場合は、とにかくコードを変更する必要があることがわかりました。そのため、値を「True」に設定すると、出力が変更されます。他のコードも同様に記述する必要があります。もう一度書くとしたら、おそらく定数を使用するでしょう。これにより、すべてが動的ではなくなりますが、それでもプログラムのニーズは満たされます。

(ちなみに、標準の fieldValues にないすべての名前のリストから始めるのがよかったでしょう。ここで公開しますが、最近転職したため、ファイルにアクセスできなくなりました。)

于 2011-12-14T09:42:35.393 に答える