我有一些创建任务并通过创建队列项实体将它们放入队列的进程。由于解决方案中不包含队列,因此当我从 dev 导出并导入以测试进程时,会出现错误并且未激活。我必须通过这些过程,更新对队列的引用,并激活这些过程。
有没有办法从我导出和导入到另一个环境时不会中断的进程中引用队列?
我有一些创建任务并通过创建队列项实体将它们放入队列的进程。由于解决方案中不包含队列,因此当我从 dev 导出并导入以测试进程时,会出现错误并且未激活。我必须通过这些过程,更新对队列的引用,并激活这些过程。
有没有办法从我导出和导入到另一个环境时不会中断的进程中引用队列?
队列实体不支持解决方案,因此您无法在导出/导入期间保留链接。
解决此问题的最简单方法是确保Queue.Id
队列的主键 Guid() 在每个组织中都相同。最简单的方法是遵循Gonzalo Ruiz 的这些程序。
另一种方法是以编程方式在每个环境中创建队列,以便您可以控制Queue.Id
值。
public static Guid CreateQueue(ServerConnection.Configuration serverConfig,
Guid id, string name)
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
serverConfig.HomeRealmUri,
serverConfig.Credentials,
serverConfig.DeviceCredentials))
{
IOrganizationService service = (IOrganizationService)serviceProxy;
Entity newQ = new Entity("queue");
newQ.Id = id;
newQ["name"] = name;
Guid newqueueid = service.Create(newQ);
return newqueueid;
}
}
此代码示例来自从开发到测试和生产环境部署 Microsoft Dynamics CRM 2011 和 CRM Online 解决方案,我强烈推荐给任何 Dynamics CRM 开发人员。