0

私は SharePoint を使い始めたばかりで (SharePoint 2013 を使用しています)、次の問題があります。

ソース Web サイトにソース リスト( SPList ) があり、そのアイテムを宛先 Web サイトの宛先リスト(別のSPList ) に移動する必要があります。

したがって、基本的に、SPListItemを 2 つの異なる Web サイトのリストから別のリストに移動する必要があります。

さらに複雑なのは、移行先リストに、移行中のアイテムの日付フィールドに基づくフォルダーが含まれていることです (たとえば、日付が 2019/05/28 の場合、この 2019 のように、移行先リストに次のフォルダーが作成されます -- > 05 --> 28 このSPListItemを配置する必要がある場所)。

私はこのようなことができることを知っています:

private static void copyAttachments(SPListItem sourceItem, SPList sourceAttachList, SPList destAttachList, string destUrl)
{
    // Create the destination item for the attachments:
    SPListItem destAttachItem = null;

    string recNumber = sourceItem[Arxeia6Fields.NumeroProtocollo].ToString();
    DateTime recDate = (DateTime)sourceItem[Arxeia6Fields.DataProtocollo];

    /*
     * Add an item in a specific server-relative URL of the folder where the list item should be created.
     * The new list item represents a file.
     */
    destAttachItem = destAttachList.AddItem(destUrl, SPFileSystemObjectType.File);
    string title = recNumber + "/" + recDate.Year.ToString();
    destAttachItem["Title"] = title;
    destAttachItem["Numero protocollo"] = title;

}

このコードを使用して、宛先リストに新しいアイテムを追加して作成しています ( destAttachListという名前で、アイテムを配置するこのリスト内の正確なフォルダーを表すdestUrlを指定します (前のプロセスステップからこの情報を取得しています)。次に、単に値を設定します。移行先リストのこのアイテムの 2 つのフィールドは、移行中のソース リストのアイテムの値を使用します。

私の疑問は次のとおりです。

  1. ソース リストから移動先リスト (移動先 URL で指定された特定のフォルダー内) にアイテムを移動できますか?

  2. 移行中のこのアイテムに添付ファイルが含まれている場合、これらの添付ファイルはこの 1 回の移動ステップで自動的に移行できますか? (もし可能ならば)

4

1 に答える 1

1

SharePoint にはこのメソッドがすぐに実装されているため、これらすべてを手動で行う必要はありません。メソッドを追加する必要さえありません。メソッドを呼び出すことで、これらすべてのことを達成できるはずですMoveTo

sourceItem.File.MoveTo(SPUrlUtility.CombineUrl(destinationList.ParentWeb.Url,destinationList.RootFolder.Url));

もちろん、移動したいsourceItemsi は、SPListItem の移動先として機能する必要があります。SPListItemdestinationListSPList

于 2019-05-29T14:34:06.960 に答える