API usage
Connecting to sharepoint
In order to connect to Sharepoint you need to import the Connector
method which is a factory return a ListEndPoint instance:
> from haufe.sharepoint import Connector
> url = "http://sharepoint/bereiche/onlineschulungen/_vti_bin/Lists.asmx?wsdl"
> username = 'YourDomain\\account'
> password = 'secret'
> list_id = '60e3f442-6faa-4b49-814d-2ce2ec88b8d5'
> service = connector.Connector(url, username, password, list_id)
Sharepoint list model introspection
The internals of the list schema is available through the model property
of the ListEndPoint instance:
> fields = service.model
The primary key of the list is exposed through the primary_key property:
> primary_key = service.primary_key
The lists of all required field names and all fields is available through:
> all_fields = service.all_fields
> required_fields = service.required_fields
List item deletion
In order to delete list items by their primary key values, you can use
the deleteItems() method:
> result = service.deleteItems('54', '55')
> print result
> print result.result
> print result.ok
The result object is an instance of ParsedSoapResult providing a
flag ok (True|False) indicating the overall success or overall failure
of the operation. The individual error codes are available by iterating over the
result property of the ParsedSoapResult instance.
Updating list items
You can update existing list items by passing one or multiple dictionaries
to updateItems(). Each dict must contain the value of the related primary key
(in this case the ID field):
data = dict(ID='77', Title=u'Ruebennase', FirstName=u'Heinz')
result = service.updateItems(data)
print result
print result.result
print result.ok
updateItems() will not raise any exception. Instead you need to
check the ok property of the result object and if needed the individual
items of the result property:
# update an item (non-existing ID)
data = dict(ID='77000', Title=u'Becker')
result = service.updateItems(data)
print result
print result.result
print result.ok
Adding items to a list
The addItems() method works like the updateItems() method
except that do not have pass in a primary key (since it is not known
on the client side). The assigned primary key value after adding
the item to the list should be available from the result object:
data = dict(Title=u'Ruebennase', FirstName=u'Heinz')
result = service.addItems(data)
print result
print result.result
print result.ok
print 'assigned ID:', result.result[0]['row']._ows_ID