FetchXML Локализация

У меня есть запрос FetchXML, который возвращает правильные объекты для моего портала.

Как получить переведенные значения, хранящиеся в моей CRM

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
    <entity name="testentity">
        <attribute name="xyz_testclassification" />
        <attribute name="xyz_schemaname" />
    </entity>
</fetch>

2 ответа

Решение

Работа с XML и допущение, что атрибут "xyz_testclassification" является типом набора опций, который ваш запрос FetchXML может вернуть набор результатов, например так:

<resultset morerecords="0">
  <result>
    <xyz_testclassification name="Option One" formattedvalue="10003">10003</xyz_testclassification><xyz_schemaname>One</xyz_schemaname>
  </result>
  <result />
  <result>
    <xyz_testclassification name="Option Two" formattedvalue="10004">10004</xyz_testclassification><xyz_schemaname>Two</xyz_schemaname>
  </result>
  <result>
    <xyz_testclassification name="Option Three" formattedvalue="10001">10001</xyz_testclassification><xyz_schemaname>Three</xyz_schemaname>
  </result>
</resultset>

Здесь атрибут XML "имя" содержит отображаемое имя значения параметра. Атрибут "formattedvalue" полезен только для числовых атрибутов (int, decimal, double, money).

Когда вы используете FetchXML в C#, метод IOrganizationService.RetrieveMultiple вернусь Entity объекты. Entity класс имеет FormattedValues коллекция, содержащая отображаемые значения.

Все значения возвращаются в соответствии с языком и настройками форматирования пользователя, от имени которого запрашивается система.

Я согласен с Хенком ван Бойеном. Я хотел бы добавить, что если вы используете конечную точку Web Api, это также возможно, добавив "Prefer: odata.include-annotations=" ​​OData.Community.Display.V1.FormattedValue"в заголовке запроса.

HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Preference-Applied: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

{
 "@odata.context": "[Organization URI]/api/data/v8.2/$metadata#accounts(name,donotpostalmail,accountratingcode,numberofemployees,revenue)",
 "value": [
 {
  "@odata.etag": "W/"502170"",
  "name": "Fourth Coffee (sample)",
  "donotpostalmail@OData.Community.Display.V1.FormattedValue": "Allow",
  "donotpostalmail": false,
  "accountratingcode@OData.Community.Display.V1.FormattedValue": "Default Value",
  "accountratingcode": 1,
  "numberofemployees@OData.Community.Display.V1.FormattedValue": "9,500",
  "numberofemployees": 9500,
  "revenue@OData.Community.Display.V1.FormattedValue": "$100,000.00",
  "revenue": 100000,
  "accountid": "89390c24-9c72-e511-80d4-00155d2a68d1",
  "transactioncurrencyid_value": "50b6dd7b-f16d-e511-80d0-00155db07cb1" } ]
}

Для более подробной информации: https://msdn.microsoft.com/en-us/library/gg334767.aspx

Другие вопросы по тегам