1

以下のコードを使用してSharePointリストアイテムをバッチ更新しており、バッチ更新を使用してアイテムのコンテンツタイプも更新できるかどうかを確認しようとしています。これはSharepoint2010用であり、Webサービスのみを使用できます。私はどこにも例を見つけることができませんでした。

public static void UpdateListItems(string SiteURL, string ListName, int[] ItemIDs, List<string> FieldNames, List<object> Values)
    {
        using (ListsSoapClient ls = GetListSoapClient(SiteURL))
        {
            XDocument xDoc = new XDocument(new XElement("Batch"));
            xDoc.Root.Add(new XAttribute("OnError", "Continue"));
            xDoc.Root.Add(new XAttribute("PreCalc", "TRUE"));

            int ID = 0;

            for (int i = 0; i < ItemIDs.Count(); i++)
            {

                ID++;
                XElement xMethod = new XElement("Method",
                    new XAttribute("ID", ID),
                    new XAttribute("Cmd", "Update"),
                    new XElement("Field",
                        new XAttribute("Name", "ID"),
                        ItemIDs[i]
                        )
                    );

                for (int j = 0; j < FieldNames.Count(); j++)
                {
                    xMethod.Add(new XElement("Field",
                                   new XAttribute("Name", Functions.SPFieldName(FieldNames[j])),
                                       Values[j]
                                       )
                               );
                }

                xDoc.Root.Add(xMethod);
            }

            ls.UpdateListItems(ListName, xDoc.Root);
        }
    }
4

3 に答える 3

1

新しいバージョンを作成せずに、SharePoint2010のWebサービスを使用してコンテンツタイプを更新する方法はありません。SharePoint 2010でそれを実現する唯一の方法は、クライアントオブジェクトモデルを使用することです。Lists.UpdateListItemsはそれを行うことができますが、コンテンツタイプが更新されると、新しいドキュメントバージョンが追加されます。

参考のために参照してください:これらのスレッド

于 2012-05-09T14:41:26.193 に答える
0

コンテンツ タイプ名を使用すると、SharePoint 2010 で機能します

<Method ID='1' Cmd='New'><Field Name='Title'>134</Field><Field Name='ContentType'>ContentTypeNameHere</Field></Method>

于 2015-10-13T18:42:26.877 に答える
0

「ContentType」という名前のフィールドを追加し、コンテンツ タイプ名の値を指定すると機能するようです。これがサポートされているかどうかはわかりません。

于 2012-05-11T13:26:11.117 に答える