FetchXML 本地化

FetchXML Localization

我有一个 FetchXML 查询 returns 我的门户的正确实体。

如何获取存储在我的 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>

使用 XML 并假设属性 "xyz_testclassification" 是一个选项集类型,您的 FetchXML 查询可以 return 这样的结果集:

<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属性"name"包含选项值的显示名称。属性 "formattedvalue" 仅对数值属性有用(整数、小数、双精度、金钱)。

当您在 C# 中使用 FetchXML 时,方法 IOrganizationService.RetrieveMultiple 将 return Entity 个对象。 Entity class 有一个包含显示值的 FormattedValues 集合。

所有值都return根据代表查询系统的用户的语言和格式设置进行编辑。

我同意 Henk van Boeijen 的观点。我想补充一点,如果您使用 Web Api 端点,也可以通过在 header 中添加 "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": "0,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