簡體   English   中英

如何在CRM 2016中檢索實體名稱

[英]How to retrieve entity names in CRM 2016

在我們的解決方案中,我們正在動態構建HTTP / ODATA請求。

例如,我們將構建一個如下所示的URL:

[http://org....api/v8.1/]accounts(00000000-0000-0000-0000-000000000001)/primarycontactid?$select=fullname

我們如何動態獲取所有實體的列表,例如“帳戶”?

在2011年,我們只需針對LeadSet / AccountSet / etcSet執行,2016年的戰略是什么?

我不知道是否有一些“語言”技巧(顯然該集的名稱只是實體的英文中的復數名稱,但這對我來說還不夠好),所以我喜歡它 - 只需調用webAPI元數據:

http://[crmurl]/api/data/v8.2/EntityDefinitions?$select=EntitySetName,LogicalName&$filter=LogicalName eq 'account'

結果如下:

{
  "@odata.context":"http://[crmurl]/api/data/v8.2/$metadata#EntityDefinitions(EntitySetName,LogicalName)","value":[
    {
      "EntitySetName":"accounts","LogicalName":"account","MetadataId":"70816501-edb9-4740-a16c-6a5efbc05d84"
    }
  ]
}

所以你明白了。 當然,您可以跳過$filter部分,只需獲取所有設置名稱的列表並將其緩存到某處。

1.獲取crm中的所有實體:

https://<your org name>.crm.dynamics.com/api/data/v8.2/

2.獲取所有記錄元數據信息(檢索多個記錄):

https://<your org name>.crm.dynamics.com/api/data/v8.2/accounts?

3.獲取特定記錄電子郵件地址信息(檢索單個記錄)。 我們在select子句中選擇了哪些屬性,我們可以在結果中獲取這些屬性信息:

https://<your org name>.crm.dynamics.com/api/data/v8.2/accounts?$select=emailaddress1&$filter=accountid eq <GUID goes here>

4.在CRM中獲取整個元數據信息:

https://<your org name>.crm.dynamics.com/api/data/v8.2/EntityDefinitions

另一種方法是從單數名稱生成復數名稱。

據我所知,Web API v8 +中復數實體名稱的規則是:

  • 以s,x,z,ch或sh結尾:添加'es'
  • 以y結尾:刪除'y',添加'ies'
  • 否則:添加's'

這是我用於此的JavaScript函數:

function pluralName (name) {
    var plural = '';
    if (name != null && typeof(name) == 'string') {
        var len = name.length;
        var lastChar = len > 0 ? name.slice(-1) : '';
        var last2Chars = len > 1 ? name.slice(-2) : '';

        if (lastChar == 's' || lastChar == 'x' || lastChar == 'z' || last2Chars == 'ch' || last2Chars == 'sh') {
            plural = name + 'es';
        }
        else if (lastChar == 'y') {
            //strip off last character and add suffix
            plural = name.substr(0, len - 1) + 'ies';
        }
        else {
            plural = name + 's';
        }
    }
    return plural;
}

好吧,如果你想要實體列表,你可以簡單地查詢和解析服務的根目錄,如下所示:

https://contoso.api.crm.dynamics.com/api/data/v8.1/

如果你也想要這些字段,你可以這樣做:

https://contoso.api.crm.dynamics.com/api/data/v8.1/ $ metadata

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM