Microsoft CRM 2011的一个问题.给出以下参数:
如何构建一个url来指向该记录的主要(或"默认")形式?
我可以在表单urls中告诉一个模式,但是一些querystring params非常模糊,我不知道如何将它们重用于任何其他类型的实体.此外,版本4.0具有系统实体的特定URL(/ sfa /等).似乎不再是这种情况了.
任何帮助将不胜感激 - 谢谢.
(欢迎使用其他标签,我无法添加它们.)
我想允许用户从联系人实体中选择一个或多个联系人,然后启动一个接受记录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) 尝试为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) 如何从sql server获取实体的选项设置值.我开发了一个Windows应用程序,其中我使用模拟从crm获取选项集.但现在我的要求是使用sql server凭据从sql server获取值,但不使用crm凭据.
我正在研究CRM 2011.我们有一个自定义实体"订单".其中一个订单被某人(用户)删除.我们能找到谁(用户)删除了该记录吗?
编辑:
1-嗯,正如我提到的,我们有一个定制的实体; 这意味着涉及软件开发.
2-这个问题等于" 我们能找到谁删除了SQL Server中的记录 "吗?
因此,使用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,如果这有所作为
我们最近有几个问题出现在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
My Dynamics CRM实例拒绝运行插件.不幸的是我没有物理访问环境,我无法调试或调查.只猜测并指示系统管理员尝试其他方法.
我从编译MS CRM SDK的示例插件并注册它开始.在服务器上,sandbox只能以模式注册.我没有部署管理员权限.
插件Create在account实体上的消息上注册- 就像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)
能不能给我一个线索,我可以尝试下一步,解决这个问题?
我有一些性能非常慢的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
如何使用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
dynamics-crm ×5
c# ×4
c#-4.0 ×1
dialog ×1
fetchxml ×1
javascript ×1
outlook ×1
plugins ×1
sdk ×1
threadpool ×1
transactions ×1