标签: dynamics-crm-2011

构建实体表单URL

Microsoft CRM 2011的一个问题.给出以下参数:

如何构建一个url来指向该记录的主要(或"默认")形式?

我可以在表单urls中告诉一个模式,但是一些querystring params非常模糊,我不知道如何将它们重用于任何其他类型的实体.此外,版本4.0具有系统实体的特定URL(/ sfa /等).似乎不再是这种情况了.

任何帮助将不胜感激 - 谢谢.

(欢迎使用其他标签,我无法添加它们.)

dynamics-crm dynamics-crm-2011

6
推荐指数
1
解决办法
6510
查看次数

在Dynamics 2011中调用对话框并将多个recordID传递给它

我想允许用户从联系人实体中选择一个或多个联系人,然后启动一个接受记录ID的对话框.我们的想法是为联系人添加一些自定义配置.

我目前在功能区按钮上启动了一个自定义操作,启动了一个对话框,但它只接受一个记录ID.我可以访问所选记录ID的列表,这不是问题,它是使用JavaScript将列表传递给对话框.

我似乎无法在SDK或代码片段中找到任何内容.我找到的最接近的是这个:

http://crmmongrel.blogspot.com/2011/06/launch-dialog-from-ribbon-button-in-crm.html

任何人都知道这是否可行?我知道开箱即用发送直接电子邮件允许将电子邮件发送到所选项目,所以我需要类似的东西.

我应该使用对话框还是别的什么?

以下是单击功能区按钮时调用的javascript代码片段:

function LaunchModalDialog(SelectedControlSelectedItemReferences,dialogID, typeName)
{

// Get selected objects
var allItems = new Array
var allItems = SelectedControlSelectedItemReferences

// Just get first item for now as dialog only seems to accept one ID
var personId = allItems[0].Id;
personId = personId.replace(/\{/g, "");
personId = personId.replace(/\}/g, "");

// Load modal
var serverUri = Mscrm.CrmUri.create('/cs/dialog/rundialog.aspx');
var mypath = serverUri + '?DialogID={' + dialogID + '}&EntityName=' + typeName + '&ObjectId={' +personId + '}';
mypath = encodeURI(mypath);

// First …
Run Code Online (Sandbox Code Playgroud)

javascript dialog dynamics-crm-2011

6
推荐指数
1
解决办法
8353
查看次数

Dynamics CRM 2011 Online,CrmSvcUtil,代理服务器身份验证失败

尝试为Dynamics CRM 2011 Online 编写插件.

第一步是使用CrmSvcUtil为实体类生成代码.

我想我有正确的CrmSvcUtil参数(见下文)但是当我运行它时我得到:

退出程序例外:元数据包含无法解析的引用:' https : //myorg.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl '.启用跟踪并查看跟踪文件以获取更多信息.

启用跟踪(通过CrmSvcUtil.exe.config)会显示以下错误:

---> System.Net.WebException:远程服务器返回错误:(407)需要代理验证. 在System.ServiceModel.Description.MetadataExchangeClient的
System.Net.HttpWebRequest.GetResponse()
处.MetadataLocationRetriever.DownloadMetadata(TimeoutHelper timeoutHelper)
等...

这是有道理的,因为我所在的网络有一个代理服务器,需要我的网络用户名/密码才能上网.当然,这个用户名/密码与Dynamics CRM不同.

那么,我如何让CrmSvcUtil将正确的用户名/密码传递给代理?

这是我与CrmSvcUtil一起使用的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="url" value="https://myorg.crm.dynamics.com/XRMServices/2011/Organization.svc"/>
    <add key="codeCustomization" value="Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"/>
    <add key="out" value="XRM\Xrm.cs"/>
    <add key="namespace" value="Xrm"/>
    <add key="username" value="myusername@fordynamics.com"/>
    <add key="password" value="mydynamicspassword"/>
    <add key="deviceid" value="my device ID"/>
    <add key="devicepassword" value="my device password"/>
    <add key="servicecontextname" value="XrmServiceContext" />
    <add key="servicecontextprefix" value="Xrm" />
  </appSettings>

  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="configConsoleListener"
        type="System.Diagnostics.ConsoleTraceListener">
          <filter type="System.Diagnostics.EventTypeFilter" …
Run Code Online (Sandbox Code Playgroud)

c# dynamics-crm dynamics-crm-2011

6
推荐指数
1
解决办法
4384
查看次数

如何从crm外的应用程序中的sql server获取选项设置值

如何从sql server获取实体的选项设置值.我开发了一个Windows应用程序,其中我使用模拟从crm获取选项集.但现在我的要求是使用sql server凭据从sql server获取值,但不使用crm凭据.

c# dynamics-crm c#-4.0 dynamics-crm-2011

6
推荐指数
1
解决办法
4691
查看次数

我们能否找到谁删除了CRM 2011中的记录?

我正在研究CRM 2011.我们有一个自定义实体"订单".其中一个订单被某人(用户)删除.我们能找到谁(用户)删除了该记录吗?

编辑:

1-嗯,正如我提到的,我们有一个定制的实体; 这意味着涉及软件开发.

2-这个问题等于" 我们能找到谁删除了SQL Server中的记录 "吗?

dynamics-crm dynamics-crm-2011

6
推荐指数
1
解决办法
5581
查看次数

Dynamics CRM 2011 Outlook客户端和浏览器呈现

因此,使用Dynamics CRM 2011,您可以使用浏览器客户端或Outlook客户端.

它们看起来非常相似,这使我认为Outlook客户端必须使用Internet Explorer(或其组件)来呈现大多数页面.我一直试图找出是否是这种情况,但没有取得多大成功.所以我的问题是:

Dynamics Client 2011的Outlook客户端是否以某种方式将页面呈现外包给Internet Explorer?
如果是这样,它是否受到PC上安装的Internet Explorer版本(7,8,9等)的影响,或者它是否使用Outlook内置的单独Trident渲染引擎(因此如果升级它将保持不变IE上的IE).

编辑:我特别关注Outlook 2007,如果这有所作为

outlook internet-explorer dynamics-crm-2011

6
推荐指数
1
解决办法
987
查看次数

CRM 2011插件中的线程/环境上下文

我们最近有几个问题出现在Dynamics CRM 2011中,一个插件执行(即Execute()方法的传递)保证保持在同一个线程上.

我想使用Ambient Context模式实现跟踪,以避免将跟踪服务传递给任何可能要跟踪的类.问题在于,正如我们所知,插件仅在每个注册步骤中实例化一次,然后从同一实例提供所有后续操作; 这意味着我不能只有一些静态属性,比如Tracing.Current我分配当前ITracingService实例,我很高兴.如果我这样做,最后启动的操作将覆盖可能仍在运行的所有其他操作的实例(并且这种并发并不罕见).

现在,如果我可以确定该Execute()方法下的所有内容都保留在同一个线程中,我仍然可以使用环境上下文利用[ThreadStatic]静态字段的属性:

public static class Tracing
{
    [ThreadStatic]
    private static ITracingService _current;

    public static ITracingService Current
    {
        get
        {
            if (null == _current)
            {
                _current = new NullTracingService();
            }

            return _current;
        }

        set { _current = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我会在输入Execute()方法时设置它并在最后清除它,以便删除对跟踪服务实例的引用.

我唯一可以在MSCRM插件的上下文找到线程的方法是,显然单个线程来自ThreadPool - 无论对我的问题可能产生什么后果.

有没有人更深入地了解如何使用MSCRM插件处理线程 - 或者在这种特殊情况下如何使用SOLID代码优雅地处理跟踪问题的任何其他想法(AOP /动态拦截在这里没有选项)?

感谢您的帮助和指点.

c# multithreading cross-cutting-concerns threadpool dynamics-crm-2011

6
推荐指数
1
解决办法
2073
查看次数

插件执行失败,因为Sandbox Client在初始化期间遇到错误

My Dynamics CRM实例拒绝运行插件.不幸的是我没有物理访问环境,我无法调试或调查.只猜测并指示系统管理员尝试其他方法.

我从编译MS CRM SDK的示例插件并注册它开始.在服务器上,sandbox只能以模式注册.我没有部署管理员权限.

插件Createaccount实体上的消息上注册- 就像SDK要求的那样.但是跟随运行时错误块执行:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: The plug-in execution failed because the Sandbox Client encountered an error during initialization.Detail: 
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
  <ErrorCode>-2147204748</ErrorCode>
  <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
  <Message>The plug-in execution failed because the Sandbox Client encountered an error during initialization.</Message>
  <Timestamp>2013-04-10T07:53:37.9238143Z</Timestamp>
  <InnerFault i:nil="true" />
  <TraceText>

[SamplePlugins: Microsoft.Crm.Sdk.Samples.FollowupPlugin]
[0a47eeb7-b3a1-e211-8ab3-00155d008717: Microsoft.Crm.Sdk.Samples.FollowupPlugin: Create of account]
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了不同类型的插件,无论是自定义还是来自Microsoft的样本,都是相同的 - 它们在远程服务器上失败了.
  • 我在本地开发服务器上尝试了相同的插件 - 它们都成功了.
  • 我试图在本地开发服务器上以最小权限运行Sandbox服务,以在本地重现错误,但它没有显示出来.
  • 我要求在远程开发服务器上以最大权限运行Sandbox服务以远程解决问题,但是徒劳无功.

能不能给我一个线索,我可以尝试下一步,解决这个问题?

c# plugins dynamics-crm-2011

6
推荐指数
1
解决办法
5151
查看次数

如何在FetchXML中创建条件可选

我有一些性能非常慢的SQL报告,因此我们将它们全部转换为FetchXML,但所有SQL报告都具有可选的所有条件,如下所示:

SELECT 
  ...
FROM ...
WHERE (@operator          = 'All' OR Operator          = @operator)
  AND (@new_gen_comp_name = 'All' OR new_gen_comp_name = @new_gen_comp_name)
  ...
Run Code Online (Sandbox Code Playgroud)

在参数值中,All如果用户选择此值,则存在一个值,该条件将被忽略,因此它将从该字段获取所有值.

现在我想在FetchXML中执行此操作,我尝试or在它们之间放置两个带过滤器的条件,一个用于值,另一个包含空值,如下所示:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
   <entity name="incident"> 
      ...
      ...
      <filter type="and">
         <filter type="and">
           <condition attribute="createdon" operator="on-or-after" value="@StartDate" /> 
           <condition attribute="createdon" operator="on-or-before" value="@EndDate" /> 
         </filter>
         <filter type="or">
           <condition attribute="new_gen_comp_type" operator="in" value="@new_gen_comp_type" /> 
           <condition attribute="new_gen_comp_type" operator="null" /> 
         </filter>
      </filter>

      ...
      ...
  </entity>
</fetch>
Run Code Online (Sandbox Code Playgroud)

只有当用户选择参数的所有值时,这才能正常工作@new_gen_comp_type,但问题是如果用户只选择特定值,它也会包含空值,这是错误的.

那么,如果用户选择select allSQL中的参数值,有没有办法让这些条件成为可选项?

dynamics-crm reporting-services fetchxml dynamics-crm-2011 dynamics-crm-2013

6
推荐指数
1
解决办法
7486
查看次数

CRM 2011 SDK交易

如何使用crm 2011 sdk和XrmServiceContext创建事务?

在下一个示例中,“ new_brand”是一些自定义实体。我想创建三个品牌。第三有错误的OwnerID guid。当我调用SaveChanges()方法时,创建了两个品牌,但出现了异常。如何回滚前两个品牌的创建?

是否可以不使用插件和工作流程?

using (var context = new XrmServiceContext(connection))
{
    SystemUser owner = context.SystemUserSet.FirstOrDefault(s => s.Id == new Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"));

    // create 3 brands
    new_brand b1 = new new_brand();
    b1.new_brandidentification = 200;
    b1.new_name = "BRAND 200";
    b1.OwnerId = owner.ToEntityReference();
    context.AddObject(b1);

    new_brand b2 = new new_brand();
    b2.new_brandidentification = 300;
    b2.new_name = "BRAND 300";
    b2.OwnerId = owner.ToEntityReference();
    context.AddObject(b2);

    new_brand b3 = new new_brand();
    b3.new_brandidentification = 400;
    b3.new_name = "BRAND 400";
    b3.OwnerId = new EntityReference(SystemUser.EntityLogicalName, new Guid("00000000-0000-0000-0000-000000000000"));
    context.AddObject(b3);

    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

sdk transactions transactionscope early-binding dynamics-crm-2011

5
推荐指数
1
解决办法
4551
查看次数