CRM365 - Какой самый простой способ получить список 1: M сущностей отношений - PullRequest
0 голосов
/ 20 января 2020

Есть ли способ (плагин для XrmToolBox, фрагмент кода), чтобы получить список атрибутов поиска, указывающих на мою сущность? Мне нужен точно такой же список, как в плагине Fetch XML Builder, link-entity Relationship 1: M (см. Рисунок), и я могу скопировать этот список. (Моя сущность - это возможность)

enter image description here

Спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Если вы просто хотите, чтобы список копировался и вставлялся, вы можете получить его в браузере, используя CRAP WebAPI

/api/data/v9.0/RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata?$select=SchemaName&$filter=ReferencedEntity eq 'account'

Этот запрос выполняет следующие действия:

  • Извлекает все отношения 1: N из CRM
  • Ограничение количества возвращаемых атрибутов включает только Schemaname
  • Фильтрация результата для отображения только атрибутов, ориентированных на сущность account

Вы просто открываете свою организацию CRM в браузере и вставляете вышеприведенную строку после адреса своей CRM

например

https://myorg.crm.dynamics.com/api/data/v9.0/RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata? $ select = имя_схемы & $ filter = ReferencedEntity eq 'account'

0 голосов
/ 21 января 2020

Поскольку Филбурт покажет мне правильный путь, возможное C# решение находится внизу

public List<KeyValuePair<string, string>> GetRelatedEntities (string entityName)
{
    List<KeyValuePair<string, string>> retval = new List<KeyValuePair<string, string>>();

    RetrieveEntityRequest retrieveBankAccountEntityRequest = new RetrieveEntityRequest
    {
        EntityFilters = EntityFilters.All,
        LogicalName = entityName 
    };
    RetrieveEntityResponse retrieveBankAccountEntityResponse = (RetrieveEntityResponse)service.Execute(retrieveBankAccountEntityRequest);

    OneToManyRelationshipMetadata[] relations = retrieveBankAccountEntityResponse.EntityMetadata.OneToManyRelationships;
    foreach(OneToManyRelationshipMetadata m in relations)
    {
        retval.Add(new KeyValuePair<string, string>(m.ReferencingEntity, m.ReferencingAttribute));
    }

    return retval;
}
...