Как получить текст локализованных полей в VDM? - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь получить данные делового партнера из нашего S / 4HANA Cloud (Public Cloud) с помощью VDM.

        final List<BusinessPartner> businessPartners =
                new DefaultBusinessPartnerService()
                        .getAllBusinessPartner()
                        .select(BusinessPartner.BUSINESS_PARTNER,
                                BusinessPartner.BUSINESS_PARTNER_NAME)
                        .filter(BusinessPartner.BUSINESS_PARTNER_CATEGORY.eq("2"))
                        .orderBy(BusinessPartner.BUSINESS_PARTNER, Order.ASC)
                        .execute();

Английское имя делового партнера отображается правильно.Но имя японского делового партнера отображается как ?????.

{"BusinessPartner":"80000001","BusinessPartnerName":"Domestic US Customer 1"},
{"BusinessPartner":"80000002","BusinessPartnerName":"?????????????"},
{"BusinessPartner":"90000001","BusinessPartnerName":"Domestic US Supplier 1"},
{"BusinessPartner":"90000002","BusinessPartnerName":"????????"}

Не могли бы вы дать мне совет, как получить текст локализованных полей?

Спасибо.

(Дополнительные примечания)

Я выполнил OData вручную с почтальоном.В этом случае локализованные поля отображались на японском языке.

https://myXXXXXX.s4hana.ondemand.com/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner?$select=BusinessPartner,BusinessPartnerName&$orderby=BusinessPartner&$filter=BusinessPartnerCategory%20eq%20'2'&$format=json&saml2=disabled

output

{
    "d": {
        "results": [
            {
                "__metadata": {
                    "id": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('80000001')",
                    "uri": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('80000001')",
                    "type": "API_BUSINESS_PARTNER.A_BusinessPartnerType"
                },
                "BusinessPartner": "80000001",
                "BusinessPartnerName": "Domestic US Customer 1"
            },
            {
                "__metadata": {
                    "id": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('80000002')",
                    "uri": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('80000002')",
                    "type": "API_BUSINESS_PARTNER.A_BusinessPartnerType"
                },
                "BusinessPartner": "80000002",
                "BusinessPartnerName": "東京得意先株式会社"
            },
            {
                "__metadata": {
                    "id": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('90000001')",
                    "uri": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('90000001')",
                    "type": "API_BUSINESS_PARTNER.A_BusinessPartnerType"
                },
                "BusinessPartner": "90000001",
                "BusinessPartnerName": "Domestic US Supplier 1"
            },
            {
                "__metadata": {
                    "id": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('90000002')",
                    "uri": "https://myXXXXXX.s4hana.ondemand.com:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('90000002')",
                    "type": "API_BUSINESS_PARTNER.A_BusinessPartnerType"
                },
                "BusinessPartner": "90000002",
                "BusinessPartnerName": "東京仕入先株式会社"
            }
        ]
    }
}

1 Ответ

0 голосов
/ 09 октября 2018

Если вы используете HttpServlet, убедитесь, что для кодировки символов объекта HttpServletResponse установлено значение UTF-8, а для типа содержимого - application/json, прежде чем писать ответ.

response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
...