我尝试使用sharepoint的updatelistitems web服务。但无法找到如何以xml格式提供输入数据以及soap请求。
提前致谢
答案 0 :(得分:1)
由于这是您正在进行的集成,因此我建议您使用适用于SharePoint的ADO.NET适配器并通过WCF服务(soap / wsdl)进行连接。它将为您节省大量时间,如果正确完成,您的集成将不会是专有的。
在此http://www.bendsoft.com/downloads/camelot-wcf-service/检查此现成的wcf服务http://blog.bendsoft.com/category/integrations/wcf-services/,安装说明。
它是开源的,但是支持Camelot XML格式,如果您查询数据,它会将模式与内容捆绑在一起,请在此处查看示例模式http://www.bendsoft.com/downloads/sharepoint-web-parts/xml-pusher/。
要使用WCF服务将数据插入SharePoint,您只需执行类似这样的操作
$SharePointNonQuery = new SharePointNonQuery(array(
'sql' => "INSERT INTO contactform (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')",
'method' => 'ExecuteNonQuery',
'connString' => 'sharepoint_connection',
'sharedKey' => constant("WSDL_SHARED_KEY")
));
示例显然是在PHP(http://blog.bendsoft.com/2011/04/camelot-php-tools-1-1-for-sharepoint-released/)中完成的,但在Objective-C中创建一个类并通过SOAP将命令作为SQL发送并在WCF服务中执行SQL命令同样容易。
希望这有帮助!
-----------编辑此行以下-----------
从Objective-C查询建议的WCF服务会产生类似这样的内容
WSMethodInvocationRef soapReq = createSOAPRequest(url, method, namespace, params, paramOrder, reqHeaders);
Url是wcf服务的位置,即。 http://yourserver.com/wcf/camelot.wcf
该方法是您要使用的wcf服务中的方法。 Camelot WCF服务有一些默认方法。在这种情况下适合的是ExecuteNonQuery方法,它接受以下参数; sql,connString和sharedKey。
bool ExecuteNonQuery(string sql, string connString, string sharedKey);
params是上面列出的参数,它们应该作为关联数组发送(我假设为NSDictionary)。
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
@"INSERT INTO YourList (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')", @"sql",
@"connString", @"SharePointConnectionString",
@"sharedKey", @"YourPreferredKey",
nil];
ExecuteNonQuery是一个bool方法,它会向Objective-C应用程序中的soapReq方法返回true或false。