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" } ]
}
我有一个 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" } ]
}