none
problema conexión crm4 sharepoint con c# RRS feed

  • Pregunta

  • Hola! estoy intentando que desde crm al crear una cuenta crear un subsite, pero me encuentro con el problema que al utilizar la dll Microsoft.sharepoint o la Microsoft.sharepoint.client, en tiempo de ejecución me da un error de esamblado y la verdad que por mas que miro por ahí, y pruebo cosas no consigo solucionarlo. El error es de emsamblado que no encuentra la dll c:/aechivos de programa/microsoft CRm/server/bin/......... ¿alguien me pude decir que debo de hacer? ya que soy novato en CRM y Sharepoint, por cierto mediante webservices lo he conseguido, lo único que no he podido meter el subsite ene el inicio rápido.

    Gracias.

    sábado, 6 de octubre de 2012 21:42

Todas las respuestas

  • Hola Julian

    Guarda las librerías en local, (hay una opción en VS.Net que te permite eso, no recuerdo muy bien cual es pero date un paseo por las propiedades de la libreria). 

    Los site deben de ser creados por un servicio web, creo que para hacer crear el subsite lo que debes de hacer es apuntar a http://<servidor>/site

    Te dejo algunos link que creo que te pueden ayudar,

    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.aspx

    http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2f8b9c7a-f8fd-4100-9575-fcd2eacd186e

    http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/f3b87767-d497-4f71-80aa-d75f2065c301


    Salu2 Atilin | http://www.dexrm.com

    lunes, 8 de octubre de 2012 8:15
  • Hola Aitilio

    Con servicios Web creo los subsite, pero no me los pone en el inicio rápido, y eso no es lo que quieren, y el subsite si me lo mete dentro del site que le digo, en cambio la librerias si hay una propiedad que permite meterlas en el inicio rápido, adjunto código.

     using (SPWeb web = subsite.OpenWeb("pruebas/"+ account))
                    {
                        if (!web.IsRootWeb)
                        { 
                            // Get the parent site's navigator.
                            SPNavigation nav = web.ParentWeb.Navigation;
                            // Get the Sites heading.
                            SPNavigationNode sitesHeading = nav.GetNodeById((int)SPQuickLaunchHeading.Sites);
                            // Check if a link to the child already exists.
                            SPNavigationNode newNode = null;
                            if (sitesHeading != null)
                            {
                                newNode = sitesHeading
                                    .Children
                                    .Cast<SPNavigationNode>()
                                    .FirstOrDefault(n => n.Url == web.ServerRelativeUrl);
                            }
                            // No link, so create one.
                            if (newNode == null)
                            {
                                // Create the link.
                                newNode = new SPNavigationNode(web.Title, web.ServerRelativeUrl);
                                // Add it to the parent site's Quick Launch.
                                newNode = nav.AddToQuickLaunch(newNode, SPQuickLaunchHeading.Sites);
                            }
                            Console.WriteLine("A link to {0} is on the Quick Launch for {1}", newNode.Title, nav.Web.Title);
                        }
                    }
                   }

    lunes, 8 de octubre de 2012 9:01
  • lo he intentado con el cliente de sharepoint y me da el siguiente error:

    2012-10-08 12:57:55.4] Process: w3wp |Organization:25eb6644-7129-4650-9803-b12d7ebe0e96 |Thread:    5 |Category: Platform.Sdk |User: 82532b2c-0ad7-46f3-9136-89a5457f6785 |Level: Error | PluginStep.Execute
    >Web Service Plug-in failed in SdkMessageProcessingStepId: {EEF538DD-2411-E211-9582-005056810040}; EntityName: account; Stage: 50; MessageName: Create; AssemblyName: Microsoft.Crm.Extensibility.V3CalloutProxyPlugin, Microsoft.Crm.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.V3CalloutProxyPlugin; Exception: Unhandled Exception: System.IO.FileNotFoundException: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.
       en ClassLibrary3.Class1.PostCreate(CalloutUserContext userContext, CalloutEntityContext entityContext, String postImageEntityXml)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.PostCreateAdapter.Execute(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.CalloutAdapterBase.ExecuteAdapter(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.Execute(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
    .
    [2012-10-08 12:57:55.4] Process: w3wp |Organization:25eb6644-7129-4650-9803-b12d7ebe0e96 |Thread:    5 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ErrorInformation.LogError
    >MSCRM Error Report:
    --------------------------------------------------------------------------------------------------------
    Error: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.

    Error Number: 0x80040265

    Error Message: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.

    Error Details: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.

    Source File: Not available

    Line Number: Not available

    Request URL: http://192.168.151.17/SMS/sfa/accts/edit.aspx

    Stack Trace Info: [FileNotFoundException: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.]
       en ClassLibrary3.Class1.PostCreate(CalloutUserContext userContext, CalloutEntityContext entityContext, String postImageEntityXml)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.PostCreateAdapter.Execute(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.CalloutAdapterBase.ExecuteAdapter(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.Execute(IPluginExecutionContext context)
       en Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)

    [InvalidPluginExecutionException: No se puede cargar el archivo o ensamblado 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ni una de sus dependencias. El sistema no puede hallar el archivo especificado.]
       en Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
       en Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
       en Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
       en Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
       en Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
       en Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
       en Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
       en Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
       en Microsoft.Crm.Sdk.InProcessCrmService.Execute(Object request)
       en Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.ExecuteInternal()
       en Microsoft.Crm.Application.Platform.ServiceCommands.CreateCommand.Execute()
       en Microsoft.Crm.Application.Platform.DataSource.Create(Entity entity, Boolean performDuplicateCheck)
       en Microsoft.Crm.Application.Platform.EntityProxy.Create(Boolean performDuplicateCheck)
       en Microsoft.Crm.Application.Forms.AppForm.SaveEntity(EntityProxy entity, FormEventId eventType, String redirectPath, Boolean performDuplicateCheck)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Crm.Callout;
    using System.IO;
    using Microsoft.SharePoint.Client;
    namespace ClassLibrary3
    {
        public class Class1 : CrmCalloutBase
        {
            public override void PostCreate(CalloutUserContext userContext, CalloutEntityContext entityContext, string postImageEntityXml)
            {
                base.PostCreate(userContext, entityContext, postImageEntityXml);
                System.IO.File.WriteAllText(@"c:\temp\despuescrearbiblioteca.txt", postImageEntityXml);
                /*using (SPSite mySite = new SPSite("http://sharepoint/pruebas"))
                {
                    using (SPWeb myWeb = mySite.OpenWeb())
                    {
                        SPWeb newWeb = myWeb.Webs.Add("nuevo site", "Nuevo sitio", "lanzado desde CRM", 1033, "prueba", false, false);
                        myWeb.Dispose();
                    }
                    
                }*/
                ClientContext remoteCtx = new ClientContext("http://sharepoint/pruebas/");
                Web remoteWeb = remoteCtx.Web;
                remoteCtx.Load(remoteWeb);
                WebCreationInformation skillsInfo = new WebCreationInformation();
                skillsInfo.Title = "PRUEBASUBSITE";
                skillsInfo.Language = 1033;
                skillsInfo.WebTemplate = "STS#1";
                skillsInfo.Url = "Site creado desde el CRM";
                skillsInfo.UseSamePermissionsAsParentSite = true;
                Web skillsWeb = remoteWeb.Webs.Add(skillsInfo);
                skillsWeb.QuickLaunchEnabled = true;
                remoteCtx.ExecuteQuery();
            }
        }
    }

    lunes, 8 de octubre de 2012 11:01