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
Retrieving a single list item
getItem() will return a single item by its primary key value:
> data = service.getItem('77')
Retrieving all list items
getItems() will return all list items (use with care!):
> items = service.getItems()