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&Created</Formula> <FormulaDisplayNames>=Title&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);
}