标签: microsoft-dynamics

Dynamics CRM 2011:托管解决方案或部署从DEV到PRD的更改

对于Dynamics CRM 2011,Microsoft建议通过将更改打包为托管(或非托管)解决方案,将实体自定义从DEV移动到PRD.非托管是不好的,因为您无法在需要时删除实体(删除解决方案只删除容器,解决方案中包含的实体仍然存在).在培训期间的大多数实验示例中,您将自定义系统,然后将自定义实体导出为托管解决方案,然后将其导入生产中.这种基于解决方案的方法很简洁,可以更容易地控制PRD中的内容,将相关实体捆绑在一起,跟踪依赖性等,所以我明白了.

但是,有时您需要在DEV服务器上转储组织并从PRD恢复(以解决特定于数据的问题或其他原因).我们这样做是通过禁用,然后删除DEV组织,然后要求DBA团队从生产中恢复CRM数据库,然后我们将组织导回DEV服务器.但是,如果我们实施这种基于"托管解决方案"的变更迁移流程,在我们转储DEV并从PRD重新创建它后,我们是否会失去更改我们实体的能力,而这些解决方案处于只读模式?如果我们在这些托管解决方案中启用自定义,我们是否能够在解决方案中添加新实体或从解决方案中删除实体而不删除整个解决方案?因为我认为托管解决方案被视为一个单独的代码单元,所以它要么全部删除,要么全部删除.有兴趣了解其他人如何解决这个问题.

microsoft-dynamics dynamics-crm dynamics-crm-2011

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

AX 2012 http入站端口激活错误 - 未找到端口的部署网站

我是AX的新手,也是IIS的初学者(并且首先发布了stackoverflow).我需要一些AX 2012 AIF Web服务的帮助和配置http AX入站端口.

我的问题是尝试使用HTTP激活AX内的入站端口.我收到以下两个错误:

  • 找不到端口的部署网站:TestOrdImport
  • 无法部署端口'TestOrdImport'.\n错误:找不到端口的部署网站:TestOrdImport

这是在使用Microsoft发布的AX 2012 FP1 hyper-v映像的测试环境中.其他人使用此处的说明安装了Web服务:https://msdn.microsoft.com/EN-US/library/gg731848.aspx

根据为Web服务安装的人,我使用虚拟目录共享路径"C:\ Program Files\Microsoft Dynamics AX\60\AifWebServices \"和URL" http: "在网站屏幕上创建了一个新条目.// AX2012-A:85/MicrosoftDynamicsAXAif60 "

我不确定这些是否正确,但网站验证没有错误.Web服务似乎安装到站点"AIF"而不是"默认网站"

有没有人看到网站的IIS配置有任何问题?Web服务是否应该安装到默认网站而不是AIF网站?

创建入站端口时,它需要是http,因为我根据某人的请求设置了这个,但我再次无法启动入站端口并可以使用一些指导.

https://i.imgur.com/cl8jGVJ.png

microsoft-dynamics axapta aif dynamics-ax-2012

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

CRM SDK - Linq 比 QueryExpression 慢吗?

我已经在 lor 周围搜索了这个,但仍然看不到一个好的回应。我使用 Linq 和 QueryExpression 为相同的查询计时,通常后者的结果要快得多。然而,由于多个帖子中公开的许多原因(包括比 QueryExpression 语法更糟糕的事实),我更喜欢使用 Linq。

谁能解释为什么 QE 中的查询比 Linq 快?这会是环境问题(VS 2012、CRM 2011 和 2013、Windows 7 等,即非常标准)还是 QE 设计/架构比 Linq 快?

linq microsoft-dynamics crm dynamics-crm

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

Microsoft CRM多行文本字段问题

我有一个包含3个字段的表单,数据类型为多行文本.即使输入的文本值对于这3个字段来说很长,我也被要求显示完整的内容.

所以我继续检查Automatically expand to use available space表格编辑器中的字段格式部分,了解这三个字段中的每一个.

在此输入图像描述

但是,似乎CRM只允许其中一个字段Automatically expand to use available space 检查此属性,这就是表单现在的样子 -

在此输入图像描述

在上图中,Co-insurance,Reinsurance和Activity Record等字段都是多行文本.

任何有关扩展所有字段以占用表单上可用文本空间的帮助都将受到高度赞赏.请注意,页面在页面加载时应仅显示一行文本.

提前致谢.仅供参考 - 我正在使用Microsoft CRM 2016在线实例.

microsoft-dynamics dynamics-crm dynamics-crm-4 dynamics-crm-2013

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

crmsvcutil.exe:无法为早期绑定生成实体类 - Dynamics CRM Online

我正在尝试从我的 Dynamics CRM Online 实例生成早期绑定实体类。

我的机器上安装了 CRM SDK。

我正在从 SDK 的“Bin”文件夹运行以下命令。

crmsvcutil.exe /url:<<OrganizationServiceUrl>> /out:crmexams3.cs /username:"<<username>>" /password:"<<password>>"
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:

Error requesting orgs from the discovery server
Access is denied
Run Code Online (Sandbox Code Playgroud)

我已将 OrganizationServiceUrl 替换为可以从 CRM 实例中的开发人员资源中找到的组织服务 URL。

我的实例是 CRM 2016 Online。

知道为什么这会失败吗?

谢谢

microsoft-dynamics dynamics-crm dynamics-crm-online dynamics-crm-2016

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

在Dynamics API中删除实体引用

我是Microsoft Dynamics Web API的新手,我需要在批量更新调用中删除/ null实体引用(包含GUID的字段,该字段是另一个实体中记录的ID).此批量更新调用可以包含任意数量的记录,每个记录可以包含任意数量的需要为空的实体引用字段.要设置实体引用,我可以执行以下操作:

"gnh_address1_countryid@odata.bind":"/gnh_countries(c58790c2-ed83-e511-80f7-1458d043a570)"
Run Code Online (Sandbox Code Playgroud)

但是,要删除它,将值设置为null(或空的GUID字符串为0)似乎不起作用.我遇到过这个页面

https://msdn.microsoft.com/en-us/library/mt607875.aspx#bkmk_Removeareferencetoanentity

这告诉我,我需要为要删除的给定字段执行删除调用.这真的是唯一的方法吗?在我看来,这应该是一个相当简单的事情.根据我的理解,如果我有3条我想要更新的记录,每条记录都有3个实体引用字段,我想删除/删除/无效,那将是1次批量更新调用,然后是9次后续删除调用.如果我要更新1000条记录,这将是一次更新,然后是3000次删除调用.再次,这真的是唯一的方法吗?作为批量更新的一部分,是否无法删除它们?

microsoft-dynamics dynamics-crm dynamics-crm-webapi dynamics-crm-365 dynamics-365

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

Microsoft Dynamics CRM SDK CRMServiceClient连接字符串缓存错误

最新的Dynamics SDK的缓存行为使我发疯。

首先,如果要使用CrmServiceClient访问不同的环境,则必须使用RequireNewInstance=True;连接字符串中的参数。如果不是,即使您创建实例并将其部署到不同的环境,每个CrmServiceClient实例都将使用相同的连接。

现在,即使您RequireNewInstance=True;在连接字符串中使用,我也发现在某些情况下仍会发生缓存。

var client1 = new CrmServiceClient("RequireNewInstance=True;
Url=https://myCompany.crm.dynamics.com;
Username=myUser@myCompany.onmicrosoft.com; Password=myPassowrd;
AuthType=Office365");

//Now, client 2 points to a url that doesn’t exists:
var client2 = new CrmServiceClient("RequireNewInstance=True; 
Url=https://xxx.crm.dynamics.com; Username=myUser@myCompany.onmicrosoft.com; 
Password=myPassowrd; AuthType=Office365");
Run Code Online (Sandbox Code Playgroud)

client2继续使用第一个连接字符串,因此您无法确定新的连接字符串是否正确。

有什么想法如何在我的asp.net应用程序中正确测试Dynamics Crm连接字符串?

c# microsoft-dynamics dynamics-crm dynamics-crm-online dynamics-crm-365

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

删除记录后不会触发Dynamics 365中的实时工作流

我正在Dynamics 365中创建一个实时工作流,该工作流被设置为同时在“记录状态更改之前”和“记录删除之前”触发。我可以确认它在“记录状态更改”情况下可以正常运行,但是由于某些原因,当我删除相关记录时,它不能正常运行。

会有人知道为什么会发生这种情况吗?我什至查看了Process Session的历史记录,可以看到只有Record Status Change实例被触发了。所有Delete实例都没有日志条目。

我还应该补充一点,工作流程非常简单,对于删除和状态更改而言并没有做任何不同的事情,因此,对于状态更改而言正常工作的任何记录都应具有与删除相同的结果。

任何帮助将不胜感激。

microsoft-dynamics crm dynamics-crm dynamics-365

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

在 C# 插件中调用 Dynamics Web API

我在 Microsoft Dynamics 中有一个业务流程来处理新客户端的创建。当该过程完成时,我附加了一个工作流,该工作流启动一个调用插件来执行一些自定义处理的操作。我正在关注这篇文章来设置这个过程。

在我的插件中,我调用了 Dynamics Web API(参见下面的代码)。当我上responseMessage = client.GetAsync(url).Result;线时,我的插件退出而不返回错误。当我在插件注册工具中调试时,插件注册工具崩溃并且必须重新启动。当我查看网络流量时,此调用似乎因401 - Unauthorized错误而失败。

当我HttpClient从控制台应用程序尝试相同的调用时,调用成功。我尝试了几种不同的身份验证凭据,但没有成功。我还尝试GetAsync以几种不同的方式调用该函数。此错误与异步或身份验证方法有关吗?我在这里缺少什么?

HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = new NetworkCredential("admin", "password", "DOMAIN") });
client.BaseAddress = new Uri(Helpers.GetSystemUrl(COHEN.APIConnector.Application.Dynamics));
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
client.DefaultRequestHeaders.Add("OData-Version", "4.0");
HttpResponseMessage responseMessage;
string url = "ccseq_clients";

responseMessage = client.GetAsync(url).Result;
Run Code Online (Sandbox Code Playgroud)

更新

我们正在使用 Dynamics 2016 On-Premise。

我们使用 Web API 的原因是这个调用发生在我们开发的一个库中,该库将在多个系统之间进行接口。该库在插件内使用,但也可以在插件外用于其他应用程序。我们提供的代码示例是库中失败的代码块。我们将代码块直接拉入插件中,以查看错误是否与库或插件相关。

我们注意到 client.GetAsync(url).Resultcall 实际上返回了一个正确的值。我们错过了在我们的网络流量中看到在第三次成功之前两次调用失败并返回正确值的情况(见下面的截图)。奇怪的是,当我们调试这行代码时,越过这行代码导致插件注册工具崩溃,而网络流量显示我们返回了正确的值。如果我们在这行代码之后设置一个断点,那么插件注册工具就不会崩溃并且我们的响应中有一个正确的值。当我们回到库中调试而不是直接在插件中调试时,这种行为发生了变化。在库中,即使网络流量仍然显示成功响应,无论我们在何处设置断点,插件注册工具在点击此行时总是崩溃。

网络流量


更新 2

看起来我的库成功地对 Web API 进行了多次不同的调用,所以我认为问题更多的是插件注册工具无法处理 Web API 调用,而不是调用实际上不起作用。

网络流量

c# microsoft-dynamics asynchronous dynamics-crm microsoft-dynamics-webapi

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

如何从 Javascript 调用操作 Microsoft Dynamics

我需要从 Javascript 调用操作流程。我的操作接受 2 个输入参数和 1 个输出参数。下面是我的Action的截图

在此输入图像描述 我的表单中有一个文本字段,在其onChange事件中我调用此 CallAction 方法。下面是 JavaScript

function CallAction() {

        var actionName = "taqi_getPrice";
        var actionParameters = {
            "base": "USD",
            "TotalPrice": "200"
        };
        var actionResponse = activateCustomAction(actionName, actionParameters);
    }
    function activateCustomAction(actionName, actionParams) {

        var req = new XMLHttpRequest();
        req.open("POST", Xrm.Page.context.getClientUrl() + "/api/data/v9.0/taqi_getPrice", false);
        req.setRequestHeader("OData-MaxVersion", "4.0");

        req.setRequestHeader("OData-Version", "4.0");
        req.setRequestHeader("Accept", "application/json");
        req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        req.onreadystatechange = function () {
            if (this.readyState === 4) {
                req.onreadystatechange = null;
                if (this.status === 200) {
                    var results = JSON.parse(this.response); …
Run Code Online (Sandbox Code Playgroud)

javascript microsoft-dynamics action dynamics-crm dynamics-crm-webapi

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