次の方法で共有


Lists.UpdateList メソッド (websvcLists)

名前空間: websvcLists
アセンブリ: STSSOAP (stssoap.dll 内)

構文

'宣言
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/UpdateList", RequestNamespace:="https://schemas.microsoft.com/sharepoint/soap/", ResponseNamespace:="https://schemas.microsoft.com/sharepoint/soap/", Use:=SoapBindingUse.Literal, ParameterStyle:=SoapParameterStyle.Wrapped)> _
Public Function UpdateList ( _
    listName As String, _
    listProperties As XmlNode, _
    newFields As XmlNode, _
    updateFields As XmlNode, _
    deleteFields As XmlNode, _
    listVersion As String _
) As XmlNode
'使用
Dim instance As Lists
Dim listName As String
Dim listProperties As XmlNode
Dim newFields As XmlNode
Dim updateFields As XmlNode
Dim deleteFields As XmlNode
Dim listVersion As String
Dim returnValue As XmlNode

returnValue = instance.UpdateList(listName, listProperties, newFields, updateFields, deleteFields, listVersion)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/UpdateList", RequestNamespace="https://schemas.microsoft.com/sharepoint/soap/", ResponseNamespace="https://schemas.microsoft.com/sharepoint/soap/", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)] 
public XmlNode UpdateList (
    string listName,
    XmlNode listProperties,
    XmlNode newFields,
    XmlNode updateFields,
    XmlNode deleteFields,
    string listVersion
)

パラメータ

  • listName
    リストの GUID を含む文字列。
  • listProperties
    System.Xml.XmlNode オブジェクトに割り当てることができ、更新されるすべてのリスト プロパティを含む XML フラグメント。次のような形式になります。

    <List Title="List_Name" Description="List_Description" 
        Direction="LTR"/>
    

    次の表では、listProperties パラメータで使用できる属性について説明します。

    名前

    説明

    AllowMultiResponses

    アンケートで複数の回答を許可する場合は TRUE

    Description

    リストの説明を含む文字列。

    Direction

    LTR (左から右)、RTL (右から左)、None のいずれかを含む文字列。

    EnableAssignedToEmail

    案件リストの電子メール通知を有効にする場合は TRUE

    EnableAttachments

    リスト内のアイテムに対する添付ファイルを有効にする場合は TRUE。この属性は、ドキュメント ライブラリには適用されません。

    EnableModeration

    リストのコンテンツ承認を有効にする場合は TRUE

    EnableVersioning

    リストのバージョン管理を有効にする場合は TRUE

    Hidden

    リストを非表示にする場合は TRUE。非表示のリストは、[ドキュメントとリスト] ページ、サイド リンク バー、[サイト コンテンツの変更] ページ、または [列の追加] ページのルックアップ フィールドのオプションとして表示されません。

    MultipleDataList

    会議ワークスペース サイトの一覧に、サイト内の複数の会議インスタンスのデータが格納されるように指定する場合は TRUE

    Ordered

    リストの [ビューの編集] ページでユーザーがリスト内にあるアイテムの順序を変更できるようにするオプションを有効にする場合は TRUE

    ShowUser

    アンケート結果にユーザー名を表示するように指定する場合は TRUE

    Title

    リストのタイトルを含む文字列。

  • newFields
    System.Xml.XmlNode オブジェクトに割り当てることができ、追加操作を個別に追跡するために、Field 要素をメソッド ブロックの内部に含む XML フラグメント。次のような形式になります。

    <Fields>
       <Method ID="1">
          <Field ReadOnly="TRUE" Type="Counter" PrimaryKey="TRUE"
             DisplayName="Field1_Name" FromBaseType="TRUE" />
       </Method>
       <Method ID="2">
          <Field Type="Text" DisplayName="Field2_Name" 
             Required="TRUE" FromBaseType="TRUE" MaxLength="255" 
             Description="Description" /> 
       </Method>
       ...
    </Fields>
    

    UpdateList メソッドで、新しいフィールドをリスト ビューに追加する場合は、Method 要素の AddToView 属性を使用して、ビューの GUID を指定します。

    集計フィールドの作成は、他のフィールドの作成とは異なります。これは、次の例に示すように、数式を指定する必要があるからです。この数式によって、各アイテムの [Title] フィールドおよび [Created] フィールドの値を連結する新しいフィールドが作成されます。

    <Fields>
       <Method ID="1">
          <Field Type="Calculated" DisplayName="myCalcField" ResultType="Text">
             <Formula>=Title&amp;Created</Formula>
             <FormulaDisplayNames>=Title&amp;Created</FormulaDisplayNames>
             <FieldRefs>
                <FieldRef Name="Title"/>
                <FieldRef Name="Created"/>
             </FieldRefs>
          </Field>
       </Method>
    </Fields>
    

    上記の例では、数式内のアンパサンド ("&") は、SOAP 要求で使用するためにエンコードする必要があります。

  • updateFields
    System.Xml.XmlNode オブジェクトに割り当てることができ、更新操作を個別に追跡するために、Field 要素をメソッド ブロックの内部に含む XML フラグメント。次のような形式になります。

    <Fields>
       <Method ID="3">
          <Field ReadOnly="TRUE" Type="Counter" Name="MyID" 
             PrimaryKey="TRUE" DisplayName="MyID" 
             FromBaseType="TRUE" />
       </Method>
       <Method ID="4">
          <Field Type="Text" Name="Title" DisplayName="DocTitle" 
             Required="TRUE" FromBaseType="TRUE" MaxLength="255" 
             Description="Title of your document" />
       </Method>
       ...
    </Fields>
    
  • deleteFields
    削除操作を個別に追跡するために、削除するフィールド名を指定する Field 要素をメソッド ブロックの内部に含む XML フラグメント。次のような形式になります。

    <Fields>
       <Method ID="5">
          <Field Name="Field1" />
       </Method>
       <Method ID="6">
          <Field Name="Field2" />
       </Method>
       ...
    </Fields>
    
  • listVersion
    競合の検出を実行するために更新されるリストのバージョンを含む文字列。

戻り値

変更が適用された後のリスト スキーマを含み、新規のフィールド、更新されたフィールド、または削除されたフィールドの結果として生成されたブロックも含む XML フラグメント。このフラグメントは、次のような形式になり、System.Xml.XmlNode オブジェクトに割り当てることができます。

<Results xmlns="https://schemas.microsoft.com/sharepoint/soap/">
   <NewFields>
      <Method ID="1">
         <ErrorCode>0x00000000</ErrorCode>
         <Field Type="DateTime" DateOnly="TRUE" 
            DisplayName="Field1_Display_Name" FromBaseType="TRUE" 
            Name="Field1_Name" ColName="datetime2" />
      </Method>
      <Method ID="2">
         <ErrorCode>0x00000000</ErrorCode>
         <Field Type="Text" DisplayName="Field2_Display_Name" 
            Required="TRUE" FromBaseType="TRUE" 
            Description="Description" Name="Field2_Name" 
            ColName="nvarchar4" />
      </Method>
   </NewFields>
   <UpdateFields>
      <Method ID="3">
         <ErrorCode>0x00000000</ErrorCode>
         <Field Type="Number" Name="NumberColumn" DisplayName="Numbers" 
            Required="TRUE" FromBaseType="TRUE" 
            Description="Description" ColName="float1" />
      </Method>
      <Method ID="4">
         <ErrorCode>0x00000000</ErrorCode>
         <Field Type="Text" Name="Title" DisplayName="Title" 
            Required="TRUE" FromBaseType="TRUE" 
            Description="Description" ColName="nvarchar1" />
      </Method>
   </UpdateFields>
   <DeleteFields>
      <Method ID="5">
         <ErrorCode>0x00000000</ErrorCode>
      </Method>
      <Method ID="6">
         <ErrorCode>0x00000000</ErrorCode>
      </Method>
   </DeleteFields>
   <ListProperties DocTemplateUrl="" 
      DefaultViewUrl="/Site_Name/Lists/List_Name/AllItems.aspx" 
      ID="{6800A6B5-5B01-4E7B-B847-7F0C01F1F602}" Title="List_Name" 
      Description="New_Description" 
      ImageUrl="/_layouts/images/itgen.gif" 
      Name="{6800A6B5-5B01-4E7B-B847-7F0C01F1F602}" BaseType="0" 
      ServerTemplate="100" 
      Created="20030619 05:35:34" Modified="20030619 05:39:43" 
      LastDeleted="20030619 05:35:34" 
      Version="11" Direction="none" ThumbnailSize="" WebImageWidth="" 
      WebImageHeight="" 
      Flags="4096" ItemCount="0" AnonymousPermMask="" 
      RootFolder="/Site_Name/Lists/List_Name" 
      ReadSecurity="1" WriteSecurity="1" Author="1" 
      EventSinkAssembly="" EventSinkClass="" 
      EventSinkData="" EmailInsertsFolder="" AllowDeletion="True" 
      AllowMultiResponses="False" 
      EnableAttachments="True" EnableModeration="False" 
      EnableVersioning="False" Hidden="False" 
      MultipleDataList="False" Ordered="False" ShowUser="True" />
</Results>

次のコード例では、現在のサイト内にある指定したリストのフィールドとプロパティを変更します。また、UpdateList メソッドの各パラメータの実装方法も示しています。この例では、GetList メソッドを使用してリストのバージョンを返し、XmlDocument オブジェクトを使用してパラメータの XmlNode オブジェクトを作成します。

この例では、using (Visual C#) または Imports (Visual Basic) ディレクティブが System.Xml 名前空間に含まれている必要があります。

Dim listService As New Web_Reference_Folder.Lists()
listService.Credentials = System.Net.CredentialCache.DefaultCredentials

Dim ndList As XmlNode = listService.GetList("List_Name")
Dim ndVersion As XmlNode = ndList.Attributes("Version")

Dim xmlDoc = New System.Xml.XmlDocument()

Dim ndDeleteFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, 
   "Fields", "")
Dim ndProperties As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, 
   "List", "")
Dim ndTitleAttrib As XmlAttribute = 
   CType(xmlDoc.CreateNode(XmlNodeType.Attribute, "Title", ""), 
   XmlAttribute)
Dim ndDescriptionAttrib As XmlAttribute = 
   CType(xmlDoc.CreateNode(XmlNodeType.Attribute, "Description", ""), _
   XmlAttribute)
Dim ndNewFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, 
   "Fields", "")
Dim ndUpdateFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, 
   "Fields", "")

ndTitleAttrib.Value = "List_Name"
ndDescriptionAttrib.Value = "New_Description"

ndProperties.Attributes.Append(ndTitleAttrib)
ndProperties.Attributes.Append(ndDescriptionAttrib)

ndDeleteFields.InnerXml = "<Method ID='5'>
    <Field Name='Field1'/></Method>" + _
    "<Method ID='6'><Field Name='Field2'/></Method>"
ndNewFields.InnerXml = "<Method ID='1'>" + _ 
    "<Field Type='DateTime' DateOnly='TRUE' DisplayName='NewField1' 
        FromBaseType='TRUE'/>" + _
    "</Method><Method ID='2'>" + _
    "<Field Type='Text' DisplayName='NewField2' Required='TRUE' 
        FromBaseType='TRUE' Description='Description'/>" + _
    "</Method>"
ndUpdateFields.InnerXml = "<Method ID='3'>" + _
    "<Field Type='Number' Name='Field1' DisplayName='Field1_Display' 
        Required='TRUE' FromBaseType='TRUE' 
        Description='Description'/>" + "</Method><Method ID='4'>" + _
    "<Field Type='Text' Name='Field2' DisplayName='Field2_Display' 
        Required='TRUE' FromBaseType='TRUE' 
        Description='Description'/>" + _
    "</Method>"

Try

    Dim ndReturn As XmlNode = 
        listService.UpdateList("f2c47fbe-0fe1-4c84-8ed0-f56912f3dca7", 
        ndProperties, ndNewFields, _
        ndUpdateFields, ndDeleteFields, ndVersion.Value)

    MessageBox.Show(ndReturn.OuterXml)

    Catch ex As Exception

        MessageBox.Show("Message:" + ControlChars.Lf + ex.Message + 
            ControlChars.Lf + _
            "StackTrace:" + ControlChars.Lf + ex.StackTrace)

End Try
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;

XmlNode ndList = listService.GetList("List_Name");
XmlNode ndVersion = ndList.Attributes["Version"];

XmlDocument xmlDoc = new System.Xml.XmlDocument();

XmlNode ndDeleteFields = xmlDoc.CreateNode(XmlNodeType.Element, 
    "Fields", "");
XmlNode ndProperties = xmlDoc.CreateNode(XmlNodeType.Element, "List", 
    "");
XmlAttribute ndTitleAttrib = 
    (XmlAttribute)xmlDoc.CreateNode(XmlNodeType.Attribute, 
    "Title", "");
XmlAttribute ndDescriptionAttrib = 
    (XmlAttribute)xmlDoc.CreateNode(XmlNodeType.Attribute, 
    "Description", "");
XmlNode ndNewFields = xmlDoc.CreateNode(XmlNodeType.Element, 
    "Fields", "");
XmlNode ndUpdateFields = xmlDoc.CreateNode(XmlNodeType.Element, 
    "Fields", "");

ndTitleAttrib.Value = "List_Name";
ndDescriptionAttrib.Value = "New_Description";

ndProperties.Attributes.Append(ndTitleAttrib);
ndProperties.Attributes.Append(ndDescriptionAttrib);

ndDeleteFields.InnerXml="<Method ID='5'>" + 
   "<Field Name='Field1'/></Method>" + 
   "<Method ID='6'><Field Name='Field2'/>" + 
   "</Method>";

ndNewFields.InnerXml = "<Method ID='1'>" +
   "<Field Type='DateTime' DateOnly='TRUE' DisplayName='NewField1' 
        FromBaseType='TRUE'/>" + 
   "</Method><Method ID='2'>" +
   "<Field Type='Text' DisplayName='NewField2' Required='TRUE' 
      FromBaseType='TRUE' Description='Description'/>" +
   "</Method>";

ndUpdateFields.InnerXml = "<Method ID='3'>" +
   "<Field Type='Number' Name='Field1' DisplayName='Field1_Display' 
      Required='TRUE' FromBaseType='TRUE' 
      Description='Description'/>" +
   "</Method><Method ID='4'>" +
   "<Field Type='Text' Name='Field2' DisplayName='Field2_Display' 
      Required='TRUE' FromBaseType='TRUE' 
      Description='Description'/>" +
   "</Method>";

try
{
   XmlNode ndReturn = 
      listService.UpdateList("f2c47fbe-0fe1-4c84-8ed0-f56912f3dca7", 
      ndProperties, ndNewFields, ndUpdateFields, ndDeleteFields, 
      ndVersion.Value);

   MessageBox.Show(ndReturn.OuterXml);
}

catch (Exception ex)
{
   MessageBox.Show("Message:\n" + ex.Message + "\nStackTrace:\n" + 
      ex.StackTrace);
}

関連項目

参照

Lists クラス
Lists メンバ
websvcLists 名前空間