首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中使用XRM?

如何在C#中使用XRM?
EN

Stack Overflow用户
提问于 2021-01-16 02:49:33
回答 2查看 86关注 0票数 0

你好,我需要将JS Xrm web api函数转换为C#

代码语言:javascript
复制
var opp = Xrm.Page.data.entity.getId();
  Xrm.WebApi.retrieveMultipleRecords(
    "dei_opportunityline",
    "?$select=_dei_vendor_value,dei_multiplier,dei_iscommission,dei_opportunitylineid&$filter=_dei_opportunity_value eq " +
      opp
  ).then(
    function success(result) {
      for (var i = 0; i < result.entities.length; i++) {
        var newMulti = null;
        if (result.entities[i].dei_iscommission) {
          if (
            result.entities[i]["_dei_vendor_value"] ==
            "5fc8d03b-c41c-eb11-a813-000d3a31ed8d"
          ) {
            if (jcimulti != null) newMulti = jcimulti;
          } else {
            if (commulti != null) newMulti = commulti;
          }

对于像.retrieveMultipleRecords、result.entitiesi.dei_iscomission这样的方法

有没有办法用C#插件来写这个?!

EN

回答 2

Stack Overflow用户

发布于 2021-01-16 04:54:42

您不能在C#中使用Xrm,这只在动态客户端脚本(JS)上下文中有用。ie web表单上下文。

对于服务器端(C#),您必须使用HttpClientSample code

代码语言:javascript
复制
        HttpClient httpClient = null;
        httpClient = new HttpClient();
        //Default Request Headers needed to be added in the HttpClient Object
        httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
        httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
        httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        //Set the Authorization header with the Access Token received specifying the Credentials
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken);

        httpClient.BaseAddress = new Uri("https://yourorg.api.crmx.dynamics.com/api/data/v9.0/");
        var response = httpClient.GetAsync("dei_opportunityline?$select=_dei_vendor_value,dei_multiplier,dei_iscommission,dei_opportunitylineid&$filter=_dei_opportunity_value eq <guid>").Result;
        if (response.IsSuccessStatusCode)
        {
            var records = response.Content.ReadAsStringAsync().Result;

            //you can get dei_iscomission from above records  
        }

这是我们在控制台应用程序中使用的方式,但在插件或工作流代码中-您可以使用Org Service通过查询表达式或fetchxml来获取数据。像service.RetrieveMultiple这样的方法将满足您的需要。Read more

票数 0
EN

Stack Overflow用户

发布于 2021-12-01 20:41:07

只需在C#中包含crmsdk nuget包即可。然后你就可以随心所欲地连接了。请参阅docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65741964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档