views:

333

answers:

2

I am trying to upload a document from my local machine using the Copy.asmx webservice, the CopyIntoItems method. I can successfully upload the document and a DateTime property but I cannot update a lookup property of the document library. I am using MOSS 2007 with sp2

The code I am using is shown below:

        string[] destinationUrls = { Uri.EscapeUriString(destinationUrl) };

        CopySharepointService.FieldInformation dateInformation = new CopySharepointService.FieldInformation();
        dateInformation.DisplayName = "Date";
        dateInformation.Type = CopySharepointService.FieldType.DateTime;
        dateInformation.Value = DateTime.Today.ToString();

        CopySharepointService.FieldInformation fundInformation = new CopySharepointService.FieldInformation();
        fundInformation.DisplayName = "Fund";
        fundInformation.Type = CopySharepointService.FieldType.Lookup;
        fundInformation.Id = new Guid(fundGuidItem); // This is the GUID of the field being updated in the document library
        fundInformation.Value = "1";

        CopySharepointService.FieldInformation[] info = { dateInformation, fundInformation };            
        CopySharepointService.CopyResult[] result;    
        CopySharepointService.CopySoapClient CopyService2007 = new CopySoapClient("CopySoap");

        CopyService2007.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
        CopyService2007.CopyIntoItems(destinationUrl, destinationUrls, info, fileData, out result);

The document is successfully uploaded but the lookup field is not updated

Can anyone please help?

A: 

Did you manage to find an answer to this problem?

I'm experiencing the same issue.

I've tried using the value of the lookup item title ("Oranges"), the lookup item id ("3"), and the combination of id and title ("3;#Oranges") but nothing seems to work and no exceptions are thrown.

Thanks, Dave

Dave
+1  A: 

I just found this thread:

"Unfortunately, the CopyIntoItems will not put information into fields of "File", "Computed" or "Lookup" types. The web service uses the SPCopy class's CopyIntoItem which makes a call to a private method called FieldShouldBeCopiedTo. This method contains the logic prventing Lookup fields from being copied."

http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2fdc9933-ddb8-446f-80ad-6c8e17dfdb6f

I hate SharePoint sometimes.

Dave