Microsoft CRM Dynamics Online - 如何检索活动列表并向其添加联系人

时间:2015-03-31 13:21:51

标签: c# crm microsoft-dynamics dynamics-crm-online

首先,我对Microsoft Dynamics CRM Online相对较新。

我的目标:我想从我们的CRM中获取当前活动广告系列列表(在我的情况下是一个事件列表),并将其列在预订表单的下拉列表中。然后我想让一个人填写表格并选择他们想参加的活动。点击提交后,将在CRM中创建一个联系人,该人员将被添加到"回复"作为参加的部分。

到目前为止我所拥有的:

public void Run(String connectionString, String AddDetails)
    {
        try
        {
            // Establish a connection to the organization web service using CrmConnection.
            Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);

            // Obtain an organization service proxy.
            // The using statement assures that the service proxy will be properly disposed.
            using (_orgService = new OrganizationService(connection))
            {
                // Instantiate an account object.
                Entity account = new Entity("contact");

                // Set the required attributes. For account, only the name is required. 
                // See the metadata to determine 
                // which attributes must be set for each entity.
                account["lastname"] = AddDetails;

                _orgService.Create(account);
            }
        }

                    // Catch any service fault exceptions that Microsoft Dynamics CRM throws.
        catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>)
        {
            // You can handle an exception here or pass it back to the calling method.
            throw;
        }
    }

我可以创建联系人并检索此记录的唯一ID。这非常有效。我只想检索一个广告系列并将其附加到下一个活动/广告系列中。

我的问题:我似乎无法获得将广告系列添加到网页中的广告系列列表,然后将此人添加到广告系列中。

我已经阅读了很多关于创建令人困惑的快速广告系列的文章。我想要达到的标准是什么?还是不可能?任何人都可以提供一些代码让我开始朝着正确的方向前进吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

首先,您需要检索广告系列

QueryExpression qe = new QueryExpression("campaign");
qe.ColumnSet = new ColumnSet(true); // this will retrieve all fields, you should only retrieve attribute you need ;)

EntityCollection collection = _orgService.RetrieveMultiple(qe);

然后,您可以遍历此集合以获取所需的列表。

然后,当您的用户提交自定义表单webresource或其他应用程序后,您需要在CRM中创建Campaign响应

var campaignResponse = new Entity("campaignresponse");
campaignResponse["regardingobjectid"] = new EntityReference("campaign", YOUR CAMPAIGN GUID);
campaignResponse["customer"] = new EntityReference("lead/account/contact", RECORDGUID);
_orgService.Create(campaignResponse);

这可以让你走上正轨;)