CRM 2013 通过自定义工作流程获取 CRM URL
CRM 2013 Get CRM URL via Custom Workflow
我需要通过自定义工作流程获取 CRM URL,以便在下一步发送电子邮件时使用。这样做的原因是为了向用户区分这封电子邮件来自哪个服务器 (UAT/Live)。
我一直在尝试按照本网站的建议使用 HTTPContext 路由 https://social.microsoft.com/Forums/en-US/31ff567d-65ea-4385-a764-68a2121ae8c0/ms-crm-2011-get-path-of-crm-server-url-in-plugin?forum=crmdevelopment 但是我得到的结果是无用的,因为我只收到一个“/”。
有谁知道从这一点开始该做什么或为什么这可能不起作用?
如果不创建与 CRM 发现服务的连接,这将无法以受支持的方式完成,这需要您提供凭据。工作流中可用的组织服务没有发现组织的方法 URL。
您有两个选择:
1) 使用 CodeActivity
.
上的 InputParameter
代码属性将其作为参数传递给工作流
2) 创建(如果您还没有的话)一个配置实体来存储 URL 并在您的代码中检索它。
如果您真的不需要 URL(即您没有创建 link),那么您可以查询 Organization
实体以获取 Name
属性。这将为您提供组织的名称 - 这将是 URL 中唯一独特的部分。这将允许您向用户指示电子邮件是来自 UAT 还是 Prod。
我最终想出了一个解决方案,使用 environment.machinename 来获取服务器名称。从那里我可以确定工作流 运行 通过哪个生产服务器并将包含 dev、uat 或 live 的字符串传递到输出以在我的 activity 电子邮件中使用。
请注意,我必须在没有处于沙盒模式下的情况下注册工作流。希望这对以后的人有所帮助。
这是一个非常古老的问题,但我在尝试做类似的事情时遇到了它。
我发现 v9 中引入了一个 RetrieveCurrentOrganizationRequest
请求。这将适用于沙盒插件。
您可以像这样使用它来检索端点 url
var currentOrg = base.OrgService.Execute(
new RetrieveCurrentOrganizationRequest()
) as RetrieveCurrentOrganizationResponse;
var url = currentOrg.Detail.Endpoints
.Where(e => e.Key == EndpointType.WebApplication)
.FirstOrDefault()
.Value;
这里有更多信息:RetrieveCurrentOrganizationRequest
我在使用的时候发现Endpoints
集合中有3个可用的网址:
- Web 应用程序
- 组织数据服务
- 组织服务
与 CRM 2013(当时 OP 使用)相关,还有 RetrieveOrganizationRequest
class 与上述相同;但是你必须指定组织(和一些其他信息)
我需要通过自定义工作流程获取 CRM URL,以便在下一步发送电子邮件时使用。这样做的原因是为了向用户区分这封电子邮件来自哪个服务器 (UAT/Live)。
我一直在尝试按照本网站的建议使用 HTTPContext 路由 https://social.microsoft.com/Forums/en-US/31ff567d-65ea-4385-a764-68a2121ae8c0/ms-crm-2011-get-path-of-crm-server-url-in-plugin?forum=crmdevelopment 但是我得到的结果是无用的,因为我只收到一个“/”。
有谁知道从这一点开始该做什么或为什么这可能不起作用?
如果不创建与 CRM 发现服务的连接,这将无法以受支持的方式完成,这需要您提供凭据。工作流中可用的组织服务没有发现组织的方法 URL。
您有两个选择:
1) 使用 CodeActivity
.
InputParameter
代码属性将其作为参数传递给工作流
2) 创建(如果您还没有的话)一个配置实体来存储 URL 并在您的代码中检索它。
如果您真的不需要 URL(即您没有创建 link),那么您可以查询 Organization
实体以获取 Name
属性。这将为您提供组织的名称 - 这将是 URL 中唯一独特的部分。这将允许您向用户指示电子邮件是来自 UAT 还是 Prod。
我最终想出了一个解决方案,使用 environment.machinename 来获取服务器名称。从那里我可以确定工作流 运行 通过哪个生产服务器并将包含 dev、uat 或 live 的字符串传递到输出以在我的 activity 电子邮件中使用。
请注意,我必须在没有处于沙盒模式下的情况下注册工作流。希望这对以后的人有所帮助。
这是一个非常古老的问题,但我在尝试做类似的事情时遇到了它。
我发现 v9 中引入了一个 RetrieveCurrentOrganizationRequest
请求。这将适用于沙盒插件。
您可以像这样使用它来检索端点 url
var currentOrg = base.OrgService.Execute(
new RetrieveCurrentOrganizationRequest()
) as RetrieveCurrentOrganizationResponse;
var url = currentOrg.Detail.Endpoints
.Where(e => e.Key == EndpointType.WebApplication)
.FirstOrDefault()
.Value;
这里有更多信息:RetrieveCurrentOrganizationRequest
我在使用的时候发现Endpoints
集合中有3个可用的网址:
- Web 应用程序
- 组织数据服务
- 组织服务
与 CRM 2013(当时 OP 使用)相关,还有 RetrieveOrganizationRequest
class 与上述相同;但是你必须指定组织(和一些其他信息)