0
Answered

Sharepoint 2010 Lists?

Ross Currie 13 years ago in UNIFYBroker/Microsoft SharePoint updated by anonymous 9 years ago 34

Hi,

I notice that it is very clearly stated that the Sharepoint List connector is for Sharepoint 2007. I don't see a 2010 equivalent.

Is there an expectation that it will work with Sharepoint 2010? If so, how does the configuration need to differ? I notice that there are distinct differences between the 2010 communicator and the 2007 communicator for the other connectors

Adam, can you comment on this?

According to

{http://msdn.microsoft.com/en-us/library/websvclists.aspx}

the lists web service is still provided. And, the methods used appear to still be there (UpdateListItems and GetListItems).

Would it be too difficult to try it out?

Please assign the issue to Shane once you have read this, as I asked him the same question when the current version was being developed. Sorry that I cannot remember his answer.

Literally just tried it now.. was waiting for Boyd @ BCE to get back to me with the portal info.

First try yields the following error:

System.Net.WebException: The request failed with an empty response.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.ListService.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID)
at Unify.Communicators.Moss2007ListWebServiceCommunicatorBase.<GetListItems>d__6.MoveNext()
at Unify.Connectors.MossListConnector.<GetAllEntities>d__14.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

Given this config:

<connectorconfiguration configuration="readingAndWritingConnector">
<connector connector="Unify.Connectors.SharePoint.List" id="

{4C5EFE6A-D416-4def-920F-57C2F308D3D2}

" name="SharePoint 2007 List Connector" key="ID">
<entitySchema>
<!-A SharePoint list has two compulsory attributes to retrieve->
<!-ID is left as not required as it is created in the connector on provision->
<field name="ID" validator="int" readonly="True" required="False" key="True" />
<field name="Title" validator="string" readonly="True" required="True" />
<field name="IntegerColumn" validator="int" />
<field name="DateColumn" validator="date" />
<field name="TimestampColumn" validator="timestamp" />
<field name="DecimalColumn" validator="string" />
<field name="YesNoColumn" validator="boolean" />
<field name="StringColumn" validator="string" />
<field name="StringMultiColumn" validator="string.multi" />
</entitySchema>
<image>blah</image>
<!-Credentials may be None, Default or Custom->
<!-URI specifies the location of the SharePoint instance->
<!-Domain, user and password specify custom credentials for connecting to SharePoint->
<!-Certificate can be used to specify a custom X509 certificate filename->
<!-Proxy defines whether or not to use the Default, Custom or "None" setting->
<!-proxyUri defines the address for a Custom proxy->
<!-timeout defines the communicator timeout period->
<!-preauthenticate is a true or false value stating whether or not to preauthenticate->
<!-listName is the name or GUID of the list->
<!-viewName is the name or GUID of the view, leave empty if not using a view->
<!-rowLimit defines the number of list items the service will retrieve at a time->
<communicator credentials="Custom" proxy="Default" preauthenticate="false" timeout="00:30:00" proxyUri="" uri="https://communities.bne.catholic.edu.au/" domain="intranet" user="Rcurrie"
securePassword="PfXR9PNe6tG3PLJ+6Zvy3A==" certificate="" listName="Extranet_Friends" viewName="" rowLimit="100">
</communicator>
</connector>
<getAllEntities>
<timing name="RecurringTimespan">
<timespan value="100000000000" />
</timing>
</getAllEntities>
</connectorconfiguration>

Probably authentication-related... I'll fiddle with the config options to see if I can get a better response

Tried various configurations, such as this:

<connectorconfiguration configuration="readingAndWritingConnector">
<connector connector="Unify.Connectors.SharePoint.List" id="

{4C5EFE6A-D416-4def-920F-57C2F308D3D2}

" name="SharePoint List Connector" key="ID">
<entitySchema>
<!-A SharePoint list has two compulsory attributes to retrieve->
<!-ID is left as not required as it is created in the connector on provision->
<!-- <field name="ID" validator="int" readonly="True" required="False" key="True" />
<field name="Title" validator="string" readonly="True" required="True" />
<field name="IntegerColumn" validator="int" />
<field name="DateColumn" validator="date" />
<field name="TimestampColumn" validator="timestamp" />
<field name="DecimalColumn" validator="string" />
<field name="YesNoColumn" validator="boolean" />
<field name="StringColumn" validator="string" />
<field name="StringMultiColumn" validator="string.multi" />
-->
<field name="Surname" validator="string" />
<field name="First_name" validator="string" />
<field name="School" validator="string" />
<field name="ID" validator="int" />
<field name="Email_Address" validator="string" />
<field name="Commencement_Date" validator="date" />
<field name="Completion_Date" validator="date" />

</entitySchema>
<image>R0lGODlhdQB9APcAAAAAAAYGBgwMDBQUFBoaGioqKisrKzMxMzIyMjc3Nzo6OilvMUBAQEJAQ0VFRUhISFJQU19fX2JiYmJhZGlpaW9vb3d2eXh4eH9/fwFuvUiINGKeN3W0RgmR0w658jaJwjmh1lis3FvG8tBVL+dzMIateY7BU6vRZvGdH+IKfCtE+CaXffEEPTIT4aGhoiJjI+Pj5CQkJaWlpeXm5qamqC9h6SlqLKvs7S0tLa2trm5uby8vL29vYu62ru+wr7cgJrO6di3mcHRr9/Hs/bXg/LTp/nkssDAwMfIy83Nzc/S1trfxNbX2tnZ2dvb293d3dLa4tzd4N/i5eHTyvru0+Tm6Orr7ezs7O3t7e7v8fH14fz14vHx8fLy8vLz9Pb29vb29/779/n5+fv5+vj5/z8/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAdQB9AAAI/wDNCBxI8EyYLVQSaknIMKGRhxAjGplCcYqVMmcIatzIsaPHjyBDhjxDZcWIkyNIqFzJsqXLlUHMZBRJs6bNmxtJotzJE+XLFECBokCRYsSUMzNxKl3KFKnJnlB/BhU6NMUKK0yzaq2Z8SnUnVKnDq26QomXpFvTqpUZxuvXlC6nUh2qAsUKJlXW6k1r0O3XsHPp2mUiBePew0q7Rl2ZgoTcxynGqlBhlbBhxJhp9u25osiQz1M+i/4cpHTpFZEnU75bGG3m1xw381wBpXZtJbZz25YSJIXq1ZZdwx4uUPZO2lGyKF/OnDmZIr4nE2V9mbh1mWZIcIYiBan37+DPQP+XPj14+PPhry81qH02d+Gxx9ct39oMlB49gOgHgr+/fyBjwKceSGeM0d5x74kkXmRjVSaFQD104AEIIYhgYQgggNBBBhx2GEKAA9pU4IEpjUBbdwpC12BlVZwBhIQeWCjCfiJg2MGNN3LYA1IhamYgWCYmOJKKRAF1VxVlhABjjBbqd6GGG+b4QV4C9ljQjyetdGKVBak41ZFJLskkjRhCKeUUWXBppUxYwkXClilGFtSbeIXpwZ1MylijmRls+MEUUaxJYBjatQTnkHLRWUUYSuJ55wcfUJihjTlm8CcTgn50BhhZsnQogdDNqWgYETraARJRMKEqE1Eg8UGlfwb/mmlHm3aqpZCgztnYkaSKCYISrEohbBVM8BnrrLRy6qZKn2pqRGOeQpHXi0v+KgUZZWR7hhUZnikrshrVuuybuGoaBhErpGvVEEpEcUYW/PXnA6sYecdtt5YCCm5OnLK0a7kEZgHsbUg8iFQVFTHR7mXbSnrjsfsW1C+0/3aHHo8FmVFFFMJGEQUY3oFRhbDCnjXQtiGkrCHEERc3sWNAkQCFFWPUXHMYOOe8Ec5g9FyGTBmRgW3NxRWHlBUV2vhBuy2f/LKo6UYtddRFhIHUuVGrdFRGQECacn71mmEFd0DIiOEHqDbtMlyQBTVWkUFRgZQRLZloWAgd3ghCi2dU/xFCnk/+m3LtcIslmSqVRXUEHkVYfiuH5vRQ4d9dgAEVkrgqWfKIdCrduFyvY1C4ooDxe5zMGuJ1xmTU97BvGFkfqeeNXYexc9NF5gS3AzSRR7vJAwBBRlDpL5rnXi7DvuLmuvZA25qF4dESr37TjrwwpMRxAjQMiutGclTvvySmyPBBBTRA31DTy/FNcXwUXQKVBDSsp53B78yEQYUr+o9aQ8Kw1T6MiKFGxjwgAY0TRBG8xklOBBkVRANRRQWqDJIAQg+QIIDHXgWKfjggyA0nxKQkKb0AQ0MUdCNClUILDIgpQwpvI0SrGCvVQXQhWeAoQ0VpoQsmLAgZACD0P+GSMQiEtFoZSgi0DJShjFkS2hIzJYUjfbDk50BIVTYAhYbokUtWm0mCNnCQaiAHTOQQQto1EIVaMgjKzhwhwqDgsl+aBAiqIAFd2QBHlvARz4S4Y9G+CIVWsCCPqqgCDwSAgcWyUiLVaEEi9yAJCe5AQ1swF10tKMe/hHIhihk6CkAsiKYMjJtMBkJdAAI02wASHIRAgmOIEsZ3kCE9hSAxqg4QC3kMdCctKTDwElEZbABDJMoY8tMCUTvGCGEmyAA7Y0AQeEEIUxwJKWtIymBkpQHcIZoZeb9CMwP9nJKSgBDKQsZQuUgCRnRtOWQijmNbFZS2lyYAMlqALIPvf/TT3605edjMgfiwAFMBxTndIqAyTfaQIhDA+WP/gBNm25yG2ujp/g/KcvWyBMgoJhCMjUIxGkNQZ3vnMJD41lPd8ZSYtSKXf91Kg4hflHVXnBC0FIlx+nQJgzCEGSi4ylTb3wAxOU4KjOfOY9K1kCKeSFnyiQ6flWCCwObqoKVYWCAy3mhShskIcms8JUa+PMpW7TqdE7Q0z9SQQKkuytqULSC6UAhRSqCmRI6arHoFCnF1qhCoC1Qg0oedanwjSjbS2MFBerLewwEXcny9YYoJiTog12koVNaz97mVj4YGwMRuBoJ7fgnSzUAKk1EEI3T2aGy0oysxhVjUi5s9qC/4SWCIaMSUYGy9IleLa1hG2qYb35G5EqoT4eKYInO9mCFVyrtSaIaERNUAMfVta1TEXr56jwmzsW4bi1JYhyyYnbsiCpBtGVLgdqsEzXZOSnr91mFIYbMbV295Dg5dJ4mVuWB6FXuj9YLxRKmDH4VlIDNdBu7gbZ3e8ityPj/WRozVuG/0qXugMWzhmWcGBc1mC+aWXwb4oQHI+IZ5yfpLCFp3sDOaKHw7j0MF7SuoVk/makDw6XGZQ7TnSxs8LpnW4N5GiGbFnxpzFG8Iw/V+PuJja82OExMH183iBLlLo1OG0JspxlWB54AUqm776uaGPVPFlAGZHycilcgiDPMv+ajKRkh8EcTzGDyyBlVqbFLmaGIeBWtFQmQ5ul+2Z7RhKzMV7AAqhpZ2ThubstKMISGkJphgThl1QuKQciWmhGHjq+GlC0BpYA4s+FIc+T0age77sCPgKUymZQwgZOINGVxpmwuFT0AkrgVYPl7tT37a6qVY3M/gpksNBkKEWXCmpLOpSdarISmYNN7WGHs7n5jTVqucztLCN1yzVAlVWZjGpqp9ravuxvvTbFMY95jILujreweEjg3JmhBdYz9x0z6k8+0u/BIot3uwUucCnsc4BGYIHo7ovujWKbMGX0Dk6ijaxBIpOPre7j1KSmQNz0kOJVVJAXbLjBkpv85B7/z3bI+RLwt8J14HDtWHKgvPLECISxUyTIYov8s7DVfC0XCzp4fk70ohv96EhPutJvwqPvaGomIF+6R4SWkSxgJegiw2HUpV6QM9jgBmX4IBOsDgarZ6EMWSg7GJAwA3HrkusiOsMMLKCEF9jABzfwgQ32/nUbIOEGNpjBC14wgxkwYetwPwMZbjD4Gdhg8FFwPOAJb/fA6x1Vc4S7ZsigwRuM8O83KBjglXDAeUkBCUjA2Egkrvr1OJ1Wrd8LGWQiMi+UwQuz90IBb0AGKdzdClKw7urJsEZsAauMOEmiz2LvsuSgGfHhAsMNJgCBCcyAjVaYQANeUAULNGDuFjj4/9OVYAEIQGAGXpiABZAvojLYwALqn0GLcqIECNhAQEJsChgscAALzP0AE9AdPnAAPnAGA+gDZQB4Wsd6EicTStAA52cBL5AF6rdES4QxQ/cdYAAB/cd/E8A34FEFM6AE6OEDL3AWzEcgcncANlAvSNAA4TcDDYAEXiCDSEAGYwAGGEEGXiVXI8cEeHUGL9AA7pJE6WcBWRAcZSBWH3d7ZGAFt8ODM3QGXgAB62eALJhDrRIFLpRERZZ2XpUmZOB9TPBXmacgVmCFDCOD0weA5QeASBB47/ICE6B+GwN/EzCBSGEDB3ADIUN9dHh+ZEB+dWgBQPgCFpCITDADdTgBqf+nfgfzfWBAh9Q3A2XQfceViOVnAa3SAP3neJjEFUqQhVCHBH3IhnXXADfQfRYwhg0wLz4QBXXIBC/4AhiRBfzHfYo3ASwYBd7nQDagKhBwghwYjC8AAbFYflWgfjf1AgeABEN4A76nilHwikwAgErgAzBoBd43L+0lIqboh6X4jNroLjdAhGeQiNU4A94xgG2HBOaXJlQ4AwcAAUpgBnWIEQ9YgF7wd1ZYhRaQQ1aIevToAx7IgTOwjt4Bf0yAjEzwikhRfmUwAxAgj4h3Bg/5Ahh4AwdAeg1weDbwkeloAS9YgHtYj+YHgxZ5BvUXgBWIkchYf9W3fVkwjNsCARD/iJMQgATeR3ipZ4omKXcTUH/zgoxIcYxkMIRvx3RkoH1spHjllwUhCZIimYijKI5nwJHSyDFZMHtLdICJ6IAQMH0TEAVekIg1qZE1OQNS4DHKoX7r9oBYSYcNWZQmiZTHWG82gREDOJRJyH9+OJVedwCHp34UCAHJMUJWmAX9eHhkgHdONYRKAJcs2QA2oIYPiIQ2mY4QgCmtsoGtmBGbQn1KwHn2V43zoooR2QBjIIPLRHOxkYMGSH3UN5YyMX3dMX3uMngY2YgWUAU+UH11aJI3YH7Ux3sSiBGyGIfVB3/o538ywQTU55xj+AIuVBzSWX3DCAZS4IjLeZQTUAYy/9mCiNdESAEGtIgEV0eFUhAgWVAF2PJXGGEFSBCLGAGcsQgGtMcEGYQkGkMl3Gl72ZgcZ7dG9UKfPtBDGrOUMpEF9XlOV+UFYyAFKAh8GOFBgQJ9SLGIM4CASYGBQ3eBovl6IQqi52GBItqAVuR0DEhFKMp0Bmh+5keCRaNjNhp7JmpFrCWidFSTASgwbFRkjvVCQFMc9RJEQ3ekjMkjuPdCZ2cGXqAcOkhHUrB9ITh313cG9WmCI9iOP5mIfmgFoed4ZOAFN+B4mOIDjteVauoDWaB3gXd4JqR4QzgD8tidefiPziiB8dg39neZiDiW12iFNgAGVpCgltd2MzCmbP83L/XZdtA3IJtCjxNweEPoLgcogyR4gF6HjMP4M3QJgxjxM0ghBY5HgpH3AqmnpiATBbwXqZJaBvCImB5IfX1IhyCTlmWQiAMonA3giGOJgQmYd91RBYPXHUowA/r5dbCqHt+RkdQXeI4nBbiKFBQJjx90AHZXeBpklEajpm/qLsb6AsiqrFnwAnI6p7oHQcN4jDSUg7sKAXj1gNU3cgfAjopnBg+JlVoqf1mZesmqqgZoA4+prM1qHWcgi9anfcACgYL3Atw4AXg1hvcKldo6d6mJlTzpA06lpkzwdWoaBapag6lXRVR4A4kosCyJiC/Ae3indWxnMVKZiGwplXL/qqV3F3pegHduurOhRwYOqpcDxERFSrQj2nVQl0PrFnuTZRizxyNjIBM+F3KvZzRN515Im7QrmrRcW6Oa97VgG7ZiW3MOYABjqxY7AABPoBEOgAArJ3RwG7cXwwMA4ARy6x0AQAN3u7d827d+G3R0a7d7m7d/W7iGe7hzW7fgUQEMgBRXEAEBEAARIAY0AACWCwACgLiau7l9G7iLqwBIIQEKwAWUiwNIQbicm7qqC7iK+x0VALpnoAAuEB6ou7q2e7ue67qwiwEBEANc8B21e7vCy7m56x2vixRiAAMCAAAR8AWnq7fDG72aW7xIcbzeIQY5EAAS8LzS272GS71nU2C930EBsAsAMuC96Nu5rWu8oNsFCdAEZ/AEA4ABSKEADyAGWJC++gu3R3C5lgu6jIsUOkAAmHsBYoAUSTAAAFAA+9vADvzAEBzBEjzBFFzBFRwQADs=</image>
<!-Credentials may be None, Default or Custom->
<!-URI specifies the location of the SharePoint instance->
<!-Domain, user and password specify custom credentials for connecting to SharePoint->
<!-Certificate can be used to specify a custom X509 certificate filename->
<!-Proxy defines whether or not to use the Default, Custom or "None" setting->
<!-proxyUri defines the address for a Custom proxy->
<!-timeout defines the communicator timeout period->
<!-preauthenticate is a true or false value stating whether or not to preauthenticate->
<!-listName is the name or GUID of the list->
<!-viewName is the name or GUID of the view, leave empty if not using a view->
<!-rowLimit defines the number of list items the service will retrieve at a time->
<communicator
credentials="Custom"
proxy="Default"
preauthenticate="true"
timeout="00:30:00"
proxyUri=""
uri="https://communities.bne.catholic.edu.au/sites/AccessControl/Lists/Extranet_Friends/"
domain="intranet"
user="Rcurrie"
securePassword="PfXR9PNe6tG3PLJ+6Zvy3A==" certificate="" listName="Extranet_Friends" viewName="" rowLimit="100">
</communicator>
</connector>
<getAllEntities>
<timing name="RecurringTimespan">
<timespan value="100000000000" />
</timing>
</getAllEntities>
</connectorconfiguration>

Still get the same error:

20110606,05:19:15,Change detection engine import all items failed.,Change detection engine,Warning,"Change detection engine import all items for connector SharePoint 2007 List Connector failed with reason The request failed with an empty response.. Duration: 00:00:02.8281431
Error details:
System.Net.WebException: The request failed with an empty response.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.ListService.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID)
at Unify.Communicators.Moss2007ListWebServiceCommunicatorBase.<GetListItems>d__6.MoveNext()
at Unify.Connectors.MossListConnector.<GetAllEntities>d__14.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

SD: As per Adam's recommendation, any suggestions on compatability?

SharePoint 2010 is backwards compatible with the API to SharePoint 2007/WSS3.0 lists - although they have deprecated some items, they're still available.

The error you have would indicate a comms issue - what's in the IIS logs?

Ross,

Using the same username and password, are you able to navigate to the following?

https://communities.bne.catholic.edu.au/sites/AccessControl/Lists/Extranet_Friends/_vti_bin/Lists.asmx

A quick look revealed someone else has encountered this message before due to permissions. Another user got a similar message for another application because the address was incorrect/not resolving. It does look more like Shane was saying - a communications issue.

@Adam:
Navigating to https://communities.bne.catholic.edu.au/sites/AccessControl/Lists/Extranet_Friends/_vti_bin/Lists.asmx loads fine. I'm not prompted for my username/password... seems the credentials pass through automatically. However, I have configured the connector to use my credentials, so unless I haven't configured them properly (refer above), I don't imagine it's the issue.

@Shane/Matt:
Does seem as if it's likely a communications issue. Speaking to Boyd apparently it's accessing a server in their production Sharepoint farm... which means all kinds of reverse proxies and whatnot. I'll see if we can find anything in the logs, but ideally I'll have Boyd set up a server in the development environment.

What is the importance of having this work? Is there a deadline on this?

Thanks.

Just quickly, browsing to .asmx is often not secured the same way as actually invoking the web service. As the WSDL is public, there's no need to secure it. To test authentication you'd have to write a test harness that invokes the web service using those credentials.

@Adam:
Importance is relatively high... this is for the BCE Externals Provisioning Project which has a deadline at the end of the month.

Development is meant to commence at the start of next week and I'm just trying to get the SharePoint components assembled so that we can get as far ahead on things as possible.

@Shane:
Sounds like a plan. I've set Daniel to writing a test harness that tests this functionality and will continue to work with Boyd to either setup a dev instance of SharePoint or to resolve the communications issues

Hi Daniel,

As discussed, can you please create a quick test harness that allows us to test connectivity to the SharePoint 2010 List web services described in the links Matt has suggested and post on progress back here

I had authentication problems while trying to develop the test harness. When adding the web reference using the URL Matt posted - https://communities.bne.catholic.edu.au/sites/AccessControl/Lists/Extranet_Friends/_vti_bin/Lists.asmx from the BCE server that hosts FIM Visual studio repeatedly asks for authentication. I've entered credentials that work to log me into sharepoint. The log on account may need some extra sharepoint permissions. I'll investigate that now.

It appears the xml schema is not the same. I have run a test here and my connector is unable to retrieve any data back. I did not, however, have any exceptions thrown.

I will create a new version of the connector.

I hadn't seen Daniels comment before my previous one.

I will not release the change until I hear back, because I will not be able to reproduce the problem, and thus not be able to fix it.

Thanks.

The account I was using had every sharepoint permission I could find - I don't know sharepoint well. Something is blocking my test app from Authenticating but I can't tell what. IB isn't having authentication problems as far as we can see though.

Boyd @ BCE did some tweaking of the reverse proxy which the dev environment uses to connect to the prod sharepoint server and I was able to get a succesful connection with Identity Broker.

However, when the connector import had completed 0 records were returned. Subsequent imports yield a soap error. I haven't been able to get the same "0 records returned" again. Error as follows:

20110607,03:28:21,Get all entities from connector failed.,Connector,Warning,"Get all entities from connector SharePoint List Connector failed with reason Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.. Duration: 00:00:04.9667466
Error details:
System.Web.Services.Protocols.SoapException: Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.ListService.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID)
at Unify.Communicators.Moss2007ListWebServiceCommunicatorBase.<GetListItems>d__6.MoveNext()
at Unify.Connectors.MossListConnector.<GetAllEntities>d__14.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

Adam, if your change is able to return results in your test environment, are you able to release the change as a release candidate so that I can check if this impacts the BCE environment?

I am concerned with Daniel's absence this week that this issue has stalled somewhat - and I HAVE had succesful imports of 0 records into the environment.

I have uploaded new installers.

Please see SUBIDBSP:Downloads

Thanks Adam.

Is the config the same or do I need to specify a different connector? (eg Unify.Connectors.SharePoint.List2010?)

To save having to make changes throughout the product and configurations, I have not updated the name of the connector.

Okay, no worries. I just wanted to make sure that me using the same config wasn't why I was getting the same error. Which I am:

20110609,04:17:39,Get all entities from connector failed.,Connector,Warning,"Get all entities from connector SharePoint List Connector failed with reason Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.. Duration: 00:00:03.1719359
Error details:
System.Web.Services.Protocols.SoapException: Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.ListService.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID)
at Unify.Communicators.Moss2007ListWebServiceCommunicatorBase.<GetListItems>d__6.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

I'm not sure why I was able to do a single succesful import of 0 users previously.

I will try some various configurations tomorrow to see if I can get a different result, but if you have any suggestions, please let me know.

Any feedback you can give as per above would be great.

Also, can you confirm the format of the uri attribute in the communicator?

Currently I have uri="https://communities.bne.catholic.edu.au/sites/AccessControl/Lists/Extranet_Friends/"

This points directly at the list.

actually, I figured out that I changed it to that uri AFTER I got the succesful import.

The one that worked was:
uri="https://communities.bne.catholic.edu.au/sites/AccessControl/"

Have changed it back to that and am now presented with the following:
20110609,04:26:12,Change detection engine import all items failed.,Change detection engine,Warning,"Change detection engine import all items for connector SharePoint List Connector failed with reason An error occurred while evaluating a task on a worker thread. See the inner exception details for information.. Duration: 00:00:00.4375084
Error details:
Unify.Framework.EvaluatorVisitorException: An error occurred while evaluating a task on a worker thread. See the inner exception details for information. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Unify.Repository.EntityExpressionQueryVisitor`3.CreateMultiValueRangeExpression(IMultiKey`1 multiKey, IEnumerable`1 sourceValueList, IQueryable`1 sourceQueryable)
at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodWhereWithMultiValueEnumerableContains(MethodCallExpression expression)
at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context)
at Unify.Framework.LinqWhereQuery`5.GetEnumerator()
at Unify.Repository.EntityRepositoryExtensions.ToDictionaryWithKeyClashErrorTKey,TValue,TOriginal(IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction)
at Unify.Repository.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities)
at Unify.Repository.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32 index)
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()
— End of inner exception stack trace —
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.CheckForException()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.WaitForCompletedThreads()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

I will check the schema I've defined in the connector and see if this is causing the issue... however if you have any thoughts about what could be causing this, that would be great.

Just make sure that you have at minimum the below two fields set:

<field name="ID" validator="int" readonly="True" required="False" key="True" />
<field name="Title" validator="string" readonly="True" required="True" />

(and the key is not needed in the connector element)

Using this schema there were no errors on the import and some data flowed in but there's still a few things not quite right.

<field name="ID" validator="int" readonly="True" required="False" key="True" />
<field name="Title" validator="string" />
<field name="First_Name" validator="string" />
<field name="School" validator="string" />
<field name="Email_Address" validator="string" />
<field name="Commencement_Date" validator="date" />
<field name="Completion_Date" validator="date" />
<field name="School:School_ID" validator="int" />

For some reason it's flowing Surname to the title field but won't flow it to a field called surname. It just flows a blank to surname if I include it.

Also it's flowing a blank to the School:School_ID. It appears that this may be a calculated field in the list depending on the school selected? (Is that right Ross?) So if it is that might be the reason.

Any suggestions on getting those two fields working properly?

Great news Daniel.

It probably has to do with the underlying list schema. I may have misconfigured those two fields when I setup the connector(well, Surname may be that BCE is using a field called "title" to store the surname).

Can you work out anything from looking at the list in SharePoint? You should have admin rights to modify/view its configuration.

Does it reflect what is in the connector conifg?

The field refers to the field id, which can be different to the display name that you normally see. Sorry I cannot remember how to get the actual field id. The School:School_ID may also not match the actual id.

From memory, the title field is on every table, which is why it's a required field. The title may have been renamed?

Yes that's right. When I click on a field to edit in Sharepoint the URL contains the actual id. So for surname, 'title' appears in the URL and for School:School_ID, 'School_x003a_School_ID' appears in the URL. Using these values in the config let the import work correctly with no issues.

That is also great news.

Looks like this issue is resolved. Daniel, you and I can move discussions about this into a project issue now that we're getting the data in.

Thanks for your assistance Adam - Daniel, mark the issue resolved if you like.

Glad we got this going beore the weekend. Great job

Hi Daniel - has this been sufficiently resolved, if so can if be closed?

Issue resolved, the connector works as required.