Dynamics crm 2011 使用web服务Microsoft Dynamics CRM添加sharepoint文档

Dynamics crm 2011 使用web服务Microsoft Dynamics CRM添加sharepoint文档,dynamics-crm-2011,dynamics-crm,crm,dynamics-crm-2013,dynamics-crm-online,Dynamics Crm 2011,Dynamics Crm,Crm,Dynamics Crm 2013,Dynamics Crm Online,我在我的Microsoft Dynamics CRM中有一个帐户实体,在Sharepoint中有一个文件夹,其中包含我要在c#上创建应用程序的帐户文档,使用Web Services CRM IOrganizationService在Sharepoint中添加文档。 有可能吗? 请点击任何链接以完成此操作。 我需要帮助。 提前感谢从您的问题中了解到,您已经在CRM文档管理系统中设置了SharePoint。您必须在文档管理设置中为帐户启用了文档位置。现在,您需要创建/上载文档到Sharepoint库

我在我的Microsoft Dynamics CRM中有一个帐户实体,在Sharepoint中有一个文件夹,其中包含我要在c#上创建应用程序的帐户文档,使用Web Services CRM IOrganizationService在Sharepoint中添加文档。
有可能吗?
请点击任何链接以完成此操作。
我需要帮助。

提前感谢

从您的问题中了解到,您已经在CRM
文档管理系统中设置了
SharePoint
。您必须在
文档管理设置
中为帐户启用了
文档位置。现在,您需要
创建/上载
文档到
Sharepoint库
。您可以使用
Sharepoint:Client-Side-Object-Model(CSOM)
来实现这一点。我有一段在sharepoint中创建文档的代码:

//Main Section Code
string sharePointUrl = GetDefaultSPSiteUrlFromCRMSiteCollectionEntity();
SharePointMethods sharePointMethods = new SharePointMethods(sharePointUrl, spUsername, spPassword, spDomain);

ClientContext context = sharePointMethods._clientContext;
Web web = sharePointMethods._clientContext.Web;
FileCreationInformation newFile = new FileCreationInformation();
  newFile.Content = System.IO.File.ReadAllBytes(newTempCRFDocumentFile);
  newFile.Url = sharePointFolder.ServerRelativeUrl+ CRFfileGeneratedName;
  newFile.Overwrite = true;
  List docs = web.Lists.GetByTitle("Account");
  Microsoft.SharePoint.Client.File uploadFile = sharePointFolder.Files.Add(newFile);
  context.ExecuteQuery();
助手功能:

internal string GetDefaultSPSiteUrlFromCRMSiteCollectionEntity()
    {
        try
        {
            ConditionExpression c = new ConditionExpression("isdefault", ConditionOperator.Equal, true);
            FilterExpression f = new FilterExpression(LogicalOperator.And);
            f.Conditions.Add(c);

            QueryExpression q = new QueryExpression("sharepointsite");
            q.Criteria = f;
            q.ColumnSet = new ColumnSet("sharepointsiteid", "name", "absoluteurl", "relativeurl", "isdefault", "parentsite");

            EntityCollection crmSites = GRID.CRM.Common.Common.RetrieveMultiple(q);
            if (crmSites.Entities.Count > 0)
            {
                Entity defaultSharePointSite = crmSites.Entities[0];
                if (defaultSharePointSite.Attributes.Contains("parentsite") && defaultSharePointSite.Attributes.Contains("relativeurl"))
                {
                    Entity parentSiteOfDefaultSite = GRID.CRM.Common.Common.RetrieveSingle("sharepointsite", ((EntityReference)defaultSharePointSite["parentsite"]).Id);
                    return (string)parentSiteOfDefaultSite["absoluteurl"] + "/" + defaultSharePointSite.GetAttributeValue<string>("relativeurl");
                }
                else
                {
                    return defaultSharePointSite.GetAttributeValue<string>("absoluteurl");
                }
            }
            // no SharePoint Sites defined in CRM
            throw new Exception("CRM does not have any default SharePoint Sites");
        }
        catch (Exception ex)
        {
            throw new Exception("CrmMethods -> GetDefaultSPSite (" + ex.Message + ")");
        }
    }


internal class SharePointMethods
{
    string _siteUrl;
    public ClientContext _clientContext;
    internal SharePointMethods(string spSiteUrl, string spUsername, string spPassword, string spDomain)
    {
        try
        {
            _siteUrl = spSiteUrl;
            _clientContext = new ClientContext(_siteUrl);

            _clientContext.Credentials = new System.Net.NetworkCredential
                (spUsername, spPassword, spDomain);
        }
        catch (Exception ex)
        {
            throw new Exception("SharePointMethods.Constructor --> [" + ex.Message + "]");
        }
    }
}
内部字符串GetDefaultSPSiteUrlFromCRMSiteCollectionEntity()
{
尝试
{
ConditionExpression c=新的ConditionExpression(“isdefault”,ConditionOperator.Equal,true);
FilterExpression f=新的FilterExpression(LogicalOperator.And);
f、 条件。添加(c);
QueryExpression q=新的QueryExpression(“sharepointsite”);
q、 标准=f;
q、 ColumnSet=新的列集(“sharepointsiteid”、“name”、“absoluteurl”、“relativeurl”、“isdefault”、“parentsite”);
EntityCollection crmSites=GRID.CRM.Common.Common.RetrieveMultiple(q);
如果(crmSites.Entities.Count>0)
{
实体defaultSharePointSite=crmSites.Entities[0];
if(defaultSharePointSite.Attributes.Contains(“父站点”)&&defaultSharePointSite.Attributes.Contains(“relativeurl”))
{
实体parentSiteOfDefaultSite=GRID.CRM.Common.Common.RetrieveSingle(“sharepointsite”,((EntityReference)defaultSharePointSite[“parentsite”]).Id);
返回(字符串)DefaultSite的父站点[“绝对URL”]+“/”+defaultSharePointSite.GetAttributeValue(“relativeurl”);
}
其他的
{
返回defaultSharePointSite.GetAttributeValue(“绝对URL”);
}
}
//CRM中未定义SharePoint网站
抛出新异常(“CRM没有任何默认SharePoint网站”);
}
捕获(例外情况除外)
{
抛出新异常(“CrmMethods->GetDefaultSPSite(“+ex.Message+”));
}
}
内部类SharePointMethods
{
字符串\u siteUrl;
公共客户端上下文_ClientContext;
内部SharePointMethods(字符串spSiteUrl、字符串spUsername、字符串spPassword、字符串spDomain)
{
尝试
{
_siteUrl=spSiteUrl;
_clientContext=新的clientContext(_siteUrl);
_clientContext.Credentials=new System.Net.NetworkCredential
(spUsername、spPassword、spDomain);
}
捕获(例外情况除外)
{
抛出新异常(“SharePointMethods.Constructor-->[“+ex.Message+”]”);
}
}
}