标签: dynamics-crm-webapi

CRM 2016:使用Web API for CRM IFD连接CRM Web服务

我是Web API的新手,并尝试使用Web API使用C#构建CRM Web服务应用程序.以下是我正在使用的示例代码:C#应用程序,它使用ADAL对Azure AD进行身份验证,并与Dynamics CRM进行通信.

此代码适用于内部CRM环境中的AD身份验证.但我的环境是IFD,这意味着我必须使用OAuth.它表示必须使用该服务端点的身份提供程序授权对Web服务的方法调用.但是,所有示例都指向Microsoft Azure Active Directory.但是对于实际情况,我们是否必须在Azure Active Directory中注册CRM应用程序?

那我怎么能在我的代码中定义'Client ID','RedirectUrl','Authority',我的endppoint在哪里?我们正在使用ADFS身份验证.

有人可以共享一些示例代码吗?

谢谢.

crm adal dynamics-crm-2016 dynamics-crm-webapi

5
推荐指数
0
解决办法
670
查看次数

在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
查看次数

如何使用涉及Number值过滤器的自定义FetchXml查询Dynamics CRM Web API?

我正在尝试使用WEB API /api/data/v8.x执行获取XML.一切都很好,除非我有查询涉及"属性包含数字值的地方".例如,以下用于查找电话号码的fetchXML包含"03":

<fetch mapping="logical">
  <entity name="account">
    <attribute name="name" />
    <attribute name="telephone1" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="telephone1" operator="like" value="%03%" />
    </filter>
  </entity>
</fetch>
Run Code Online (Sandbox Code Playgroud)

当我们在WEB API上通过GET运行它时:

https://CRM_URL/api/data/v8.0/accounts?fetchXml=<fetch%20mapping%3D"logical"><entity%20name%3D"account"><attribute%20name%3D"name"%20%2F><attribute%20name%3D"telephone1"%20%2F><order%20attribute%3D"name"%20descending%3D"false"%20%2F><filter%20type%3D"and"><condition%20attribute%3D"telephone1"%20operator%3D"like"%20value%3D"%2503%25"%20%2F><%2Ffilter><%2Fentity><%2Ffetch>
Run Code Online (Sandbox Code Playgroud)

CRM Web API返回无效的XML错误,如下所示:

{"error":{"code":"","message":"无效的XML.","innererror":{"message":"无效的XML.","type":"System.ServiceModel.FaultException`1 [[Microsoft.Xrm.Sdk.OrganizationServiceFault,Microsoft.Xrm.Sdk,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35]]"}}}

如果过滤器值不以数字开头,或者我删除过滤器值上的'%',则查询运行正常.我的结论是,这与我的过滤器值中的"%+ number"的编码和解码有关.

我的查询有什么问题,还是这个Dynamics CRM Web API错误?任何工作?

dynamics-crm fetchxml dynamics-crm-online dynamics-crm-webapi

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

使用 CRM Web API 获取视图的列名

我正在使用 CRM Online 2016 Web API。现在我拥有的唯一信息是savedQuery 或userQuery 记录。有了这个,我可以获得视图的所有记录,但我也想要这个视图的列名。

是否有一种简单的方法可以使用 Web API 获取列名,仅包含savedQuery/userQuery 记录的信息?

我已经有了获取列名的间接方法(使用 LayoutXML)。

dynamics-crm-online dynamics-crm-2016 dynamics-crm-webapi

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

计算 Dynamics CRM Online Web API (ODATA) 中的所有行

是否可以计算给定实体中的所有行,绕过 5000 行限制并绕过页面大小限制?

我不想在一个请求中返回超过 5000 行,但只想要该给定实体中所有行的计数。

根据 Microsoft 的说法,您不能在请求 URI 中执行此操作:

The count value does not represent the total number of entities in the system. 

It is limited by the maximum number of entities that can be returned.
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个:

GET [Organization URI]/api/data/v9.0/accounts/?$count=true
Run Code Online (Sandbox Code Playgroud)

还有其他办法吗?

dynamics-crm odata dynamics-crm-online dynamics-crm-webapi dynamics-crm-365

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

如何从 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万
查看次数

使用Dynamics CRM中的OData检索所有OptionSet值

我是Dynamics CRM的新手.我正在构建一个应用程序,它应该更新Dynamics CRM中的实体.我可以毫无问题地更新简单类型.现在的情况是,我在Contact实体中声明了一些自定义选项集.

有没有办法检索所有可能的OptionSet值(文本和值),以便我的应用程序可以查找适当的值并将其设置在它生成的有效负载中?

我无法找到任何端点WebAPI以及XRMServices/2011/OrganizationData.svc.任何帮助都会非常棒.

dynamics-crm dynamics-crm-2013 dynamics-crm-webapi

4
推荐指数
1
解决办法
7201
查看次数

从 CRM web api 中的 OData 查询获取选项集文本

https://example.com/crm/api/data/v8.2/accounts?$select=custom_optionset
Run Code Online (Sandbox Code Playgroud)

上述查询选择 CRM 中选项集字段中的所有值。返回数据如下所示:

{
    {
        "@odata.etag":"W/\"112607639\"","custom_optionset":285960000,"accountid":"a08f0bd1-e2c4-e111-8c9a-00155d0aa573"
    },
    {
        "@odata.etag":"W/\"112615384\"","custom_optionset":285960010,"accountid":"a18f0bd1-e2c4-e111-8c9a-00155d0aa573"
    }
}
Run Code Online (Sandbox Code Playgroud)

我不想要选项集的值。我想要相关的文本标签。我怎么得到这个?

javascript dynamics-crm odata dynamics-crm-2016 dynamics-crm-webapi

4
推荐指数
1
解决办法
5820
查看次数

是否可以使用 web api 从 CRM 获取实体可用的所有关系?

我需要分别在 HTML 页面上获取和显示实体的所有可用关系。例如:如果我在 html 页面中选择 Account,我应该可以看到 Account Entity 的 1:N、N:1 和 N:N 关系。

我在下面尝试过,查询和我觉得,这些都没有正确帮助我,请建议我一个解决方法来实现这个目标。

https://<CRMORGNAME>/api/data/v8.2/RelationshipDefinitions/Microsoft.Dynamics.CRM.ManyToOneRelationshipMetadata?$select=Entity1LogicalName,SchemaName&$filter=Entity1LogicalName eq 'account'

https://<CRMORGNAME>/api/data/v8.2/RelationshipDefinitions?$select=RelationshipType,SchemaName
Run Code Online (Sandbox Code Playgroud)

javascript dynamics-crm dynamics-crm-webapi

3
推荐指数
1
解决办法
1526
查看次数

OData“包含”与 Dynamics 365 Web API“包含”

通过 Web API 查询 Dynamics 365 时,有多个运算符可供选择以过滤查询的数据。其中一个运算符contains实际上出现了两次。

一个是 ODatacontains函数(您可以在“标准查询函数”标题下找到它):

https://msdn.microsoft.com/en-us/library/gg334767.aspx#Filter%20results

例子:

$filter=contains(name,'(sample)')

另一个是 Dynamics 365 Web API 本身的实现:

https://msdn.microsoft.com/en-us/library/mt608053.aspx

我试过这个,但只有一个通用 SQL 错误:

$filter=Microsoft.Dynamics.CRM.Contains(PropertyName='name',PropertyValue='(sample)')

有什么不同?也许有人甚至可以告诉我如何contains正确调用 Web API 版本?

dynamics-crm odata dynamics-crm-webapi dynamics-crm-365 dynamics-365

3
推荐指数
1
解决办法
8436
查看次数