none
Subir documento a Sharepoint desde aplicación Windows RRS feed

  • Pregunta

  • Hola!

    Estoy atascado a la hora de subir un documento a una biblioteca desde una aplicación windows

    He de decir que soy bastante "novato" como programador y es más que posible que esté metiendo la pata hasta el fondo en alguna parte del código, de momento, gracias a la ayuda obtenida por aquí y a través de los web services de sharepoint he conseguido montar un explorador del sitio y ahora estoy intentando subir un archivo a una lista (biblioteca)

    Este es el código que utilizo, pero me el siguiente fallo (intento subir el mismo archivo a 2 listas dentro del sitio sharepoint):

    'Microsoft.SharePoint.SoapServer.SoapServerException'

    En el tema de las rutas... se las estoy metiendo ahora a "capón" (ya digo, estoy en "pruebas" y primero quiero que funcione y luego ya me liaré a que recoja las rutas en condiciones)

    Este es el código:

    Dim myCopyService As New CopyWebService.Copy()

            myCopyService.Credentials = _

                System.Net.CredentialCache.DefaultCredentials

     

            Dim copySource As String = Label2.Text ' recoge ruta donde se encuentra el archivo Ejemplo.txt C:\Ejemplo.txt

            Dim copyDest As String() = _

                {"http://AAAA/sitios/BBBB/Biblio1/Ejemplo.txt", _

                "http://AAAA/sitios/BBBB/Biblio1/prueba/Ejemplo.txt"}

     

            Dim myFieldInfo As New CopyWebService.FieldInformation

            Dim myFieldInfoArray As CopyWebService.FieldInformation() = {myFieldInfo}

            Dim myByte As Byte

            Dim myByteArray() As Byte = {myByte}

     

            Dim myGetUint As System.UInt32 = myCopyService.GetItem(copySource, myFieldInfoArray, myByteArray)

     

            Dim myCopyResult1 As New CopyWebService.CopyResult()

            Dim myCopyResult2 As New CopyWebService.CopyResult()

            Dim myCopyResultArray As CopyWebService.CopyResult() = {myCopyResult1, myCopyResult2}

     

            Try

                Dim myCopyUint As System.UInt32 = myCopyService.CopyIntoItems(copySource, copyDest, _

                myFieldInfoArray, myByteArray, myCopyResultArray)

                If myCopyUint = 0 Then

                    Dim idx As Integer = 0

                    Dim myCopyResult As CopyWebService.CopyResult

                    For Each myCopyResult In myCopyResultArray

                        Dim opString As String = (idx + 1).ToString()

                        If myCopyResultArray(idx).ErrorMessage Is Nothing Then

                            MessageBox.Show(("Copy operation " + opString + _

                                "completed." + ControlChars.Cr + _

                                ControlChars.Lf + "Destination: " + _

                                myCopyResultArray(idx).DestinationUrl))

                        Else

                            MessageBox.Show(("Copy operation " + opString + _

                                "failed." + ControlChars.Cr + _

                                ControlChars.Lf + "Error: " + _

                                myCopyResultArray(idx).ErrorMessage + _

                                ControlChars.Cr + ControlChars.Lf + "Code: " + _

                                myCopyResultArray(idx).ErrorCode))

                        End If

                        idx += 1

                    Next myCopyResult

                End If

            Catch exc As Exception

                Dim idx As Integer = 0

                Dim myCopyResult As CopyWebService.CopyResult

                For Each myCopyResult In myCopyResultArray

                    idx += 1

                    If myCopyResult.DestinationUrl Is Nothing Then

                        Dim idxString As String = idx.ToString()

                        MessageBox.Show("Copy operation " + idxString + _

                            " failed." + ControlChars.Cr + ControlChars.Lf + _

                            "Description: " + exc.Message, "Exception", _

                            MessageBoxButtons.OK, MessageBoxIcon.Error)

                    End If

                Next myCopyResult

            End Try

        End Sub

    He podido observar que  myFieldInfoArray y MyByteArray no recogen nada :S (Nothing) y no se exactamente como meterle mano a esto (es prácticamente el mismo código que en el ejemplo que viene en el msdn del WebService Copy.

    Agradecería cualquier tipo de ayuda, a sabiendas que el que realmente falla soy yo y mi prácticamente nula experiencia. Aún así, tengo ganas de aprender y en ello estoy.

     

    Lo dicho, gracias de antemano y saludos

    jueves, 12 de mayo de 2011 9:34

Todas las respuestas