2009-07-31 51 views
1

我想在使用UpdateListItems Web服务匹配某些标准时删除列表中的项。我不知道我想要删除的列表项的ID,但知道该标准。Sharepoint中的批处理元素在您不知道ID时删除列表项

例如,在SQL我可以这样做:

DELETE FROM listName WHERE LastName='Bauer' AND FirstName='Jack' 

你会如何编写一个批处理元素做到这一点?

更新

难道是这样的?

<Batch PreCalc='TRUE' OnError='Continue'> 
    <Method ID='1' Cmd='Delete'> 
    <Field Name='LastName'>Bauer</Field> 
    <Field Name='FirstName'>Jack</Field> 
    </Method> 
</Batch> 

是方法的ID还是您想要删除的东西的ID?

更新

我曾尝试下面的代码,并返回该错误是

Invalid URL Parameter 

The URL provided contains an invalid Command or Value. Please check the URL again. 

我的猜测是,它是不可能没有ID做...

回答

1

这看起来不可能。

我的方法是查询列表并获取id。循环为响应拉出id的然后创建一个方法为每个ID删除它。

0

我对使用Web服务并不熟悉,但我认为有一个用于搜索。使用API​​,您可以创建一个SPQuery并使用CAML来获取您想要删除的列表项。

+0

我不知道在whatthe CAML应该像... – John 2009-07-31 14:06:18

2

作为除了ChrisB的回答(格式化的评论的CAML查询似乎没有工作了),你会做的查询是这样的:

SPQuery query = new SPQuery(); 
query.Query = "<Where><And>"+ 
    "<Eq><FieldRef Name='LastName'/><Value Type='Text'>Bauer</Value></Eq>" 
    "<Eq><FieldRef Name='FirstName'/><Value Type='Text'>Jack</Value></Eq>" 
    "</And></Where>"; 
SPListItemCollection items = list.GetItems(query); 

(这是对象模型规范,但它自然延伸到web服务调用)

然后,你会遍历listitems并建立你的批处理。

+0

你是说,我有我的性判据即杰克Baure 查询列表与信息,我必须得到的ID 随着ID的我得到创建我的批处理脚本 运行批处理脚本删除 我明白这是如何工作的,最终目标是一样的,看起来有点长。 – John 2009-08-06 15:56:59

1

同样,要从Sharepoint 2010对象模型返回的列表项可以在xml中用于关键节点的C#对应值中,我们必须去除xml中位置1附加的附加字符。这可以按如下方式完成:

//代码解密从SharePoint Server 2010对象模型列表项返回的XML字符串。 - 礼貌 - 拉吉夫卡普尔 - ideals.co.in。查看http://www.ideals.co.in/estore/code.php以获得完整的解决方案。

 string sRetVal = ""; 
     string myXMLStr = "​<robot><Key>ConstSigned</Key><Value>Rad Is Signed</Value><Key>CodeAddChangeReqSub</Key><Value>ACRS</Value><Key>CodeAddChangeReqInit</Key><Value>ACRI</Value><Key>CodeSupTaskComp</Key><Value>STC</Value><Key>CodeSupApprComp</Key><Value>SAC</Value><Key>CodeSupRejComp</Key><Value>SAR</Value><Key>CodeOperAppr</Key><Value>OPA</Value><Key>CodeOperRej</Key><Value>OPR</Value><Key>Oper1TaskCreated</Key><Value>OTC</Value><Key>Oper2TaskCreated</Key><Value>QCTC</Value><Key>Oper2TaskAppr</Key><Value>QCRA</Value><Key>Oper2TaskRej</Key><Value>QCRR</Value><Key>ApprPending</Key><Value>Approval Pending</Value><Key>PendingProcessing</Key><Value>Pending Processing</Value><Key>PendingReview</Key><Value>Pending Review</Value><Key>Approved</Key><Value>Approved</Value><Key>GroupOperation</Key><Value>Operation</Value><Key>WorkFlowHistoryList</Key><Value>/Lists/Workflow History</Value><Key>ColInitDateTime</Key><Value>Initiated Date Time</Value><Key>ColWorkFlowHistoryParentInst</Key><Value>Workflow History Parent Instance</Value><Key>ColWorkflowAssId</Key><Value>Workflow Association ID</Value><Key>ColListId</Key><Value>List ID</Value><Key>ColPrimaryItemId</Key><Value>Primary Item ID</Value><Key>ColDate</Key><Value>Date Occurred</Value><Key>ColOutcome</Key><Value>Outcome</Value><Key>ColDesc</Key><Value>Description</Value><Key>ColCreated</Key><Value>Created</Value><Key>ColTaskStatus</Key><Value>TaskStatus</Value><Key>ServiceReqList</Key><Value>Service Request</Value><Key>CAUEventList</Key><Value>Events</Value><Key>ReqStatus1</Key><Value>Request Status</Value><Key>ReqStatCode</Key><Value>Request Status Code</Value><Key>ColumnCode</Key><Value>Code</Value><Key>SuperUser</Key><Value>SuperUser</Value><Key>AssignedTo</Key><Value>AssignedTo</Value><Key>TaskListId</Key><Value>ID</Value><Key>DocLibId</Key><Value>List</Value><Key>WorkflowInstanceId</Key><Value>WorkflowInstanceID</Value><Key>TaskTitle</Key><Value>Title</Value><Key>Priority</Key><Value>Priority</Value><Key>ReqStatusCode</Key><Value>Request Status Code</Value><Key>ServiceRequestList</Key><Value>Service Request</Value><Key>CAUEventList</Key><Value>Events</Value><Key>ColumnDesc</Key><Value>Description</Value><Key>ColumnStatus</Key><Value>Status</Value><Key>Completed</Key><Value>Completed</Value><Key>ReqStatus</Key><Value>Request Status</Value><Key>ColumnTaskStatus</Key><Value>TaskStatus</Value><Key>ColumnPerComp</Key><Value>PercentComplete</Value><Key>Rejected</Key><Value>Rejected</Value><Key>CodeSupTaskCreated</Key><Value>STC</Value><Key>CodeSupTaskInit</Key><Value>SAI</Value><Key>Oper1TaskInit</Key><Value>OPI</Value><Key>Oper2TaskInit</Key><Value>QCRI</Value><Key>ColActedBy</Key><Value>Acted By</Value><Key>WorkFlowCode</Key><Value>Workflow Code</Value><Key>ProcCode</Key><Value>Process Code</Value></robot>"; 
     string myXMLStr1 = myXMLStr; 
     int ln = myXMLStr.Length; 
     int lnMinus1 = ln - 1; 
     char[] myst = { ' ', ' ', ' '};// create a long array enough to fit the xml 
     string mys = ""; 
     object m1 ; 
     string m2 = ""; 

     myXMLStr.CopyTo(0, myst, 0, ln);   m1 = myst.Clone(); 
     m2 = new string(myst);// m1;// ToString(); 
     m2.TrimStart(); 
     m2.TrimEnd(); 
     m2 = m2.Substring(1); 
     sRetVal = GetConfigVal(m2, "ProcCode"); 
     Console.WriteLine("****#*" + sRetVal + "*#******");