Mobile. Не добавляется деталь "Продукт в заказе" (чешская локализация)
Симптомы
Суть проблемы: в чешской локализации невозможно добавить стандартную деталь. При сохранении изменений в консоли ошибка «Cannot read property 'name' of undefined» (версия 7.7).
Кейс 1:
- открываем в мастере мобильного приложения «Настроить детали» в разделе «Заказы» (Objednбvky).
- добавляем деталь «Продукт в заказе» (Produkt v objednбvce)
- в результате добавления детали «Продукты в заказе» в дизайнере мобильного приложения происходит свал:
Если опять перейти в настройки детали, то caption этой детали не отображается.
Кейс 2:
- в мастере мобильного приложения открыть настройки стандартной детали, например, раздела «Контрагенты» (Firmy)
- ничего не добавляем, а только необходимо нажать на кнопку сохранить;
- заново открываем настройки детали раздела «Контрагенты». Увидим, что caption снова не отображаются. Снова нажимаем на сохранить.
- в результате возникает такая же ошибка.
Доп. информация:
- На русской и английской локализации не удается воспроизвести ошибку.
- В 7.8 не удалось воспроизвести, так как нет демки с чешской локализацией.
- При создании детали нормально формируется код:
{ "operation": "insert", "name": "settings", "values": { "entitySchemaName": "Order", "details": [], "columnSets": [], "localizableStrings": { "primaryColumnSetOrder_caption": "Zбkladnн informace", "OrderProductDetailV2StandartDetailOrder_caption": "Produkt v objednбvce" }, "settingsType": "RecordPage", "operation": "insert" } },
но у самой локализационной строки OrderProductDetailV2StandartDetailOrder_caption значение пустое. Если же туда добавить руками Produkt v objednбvce, то на странице перечня деталей карты Заказ мобильного приложения название появляется. Если же мы будем добавлять деталь сразу на страницу - то тоже самое сначала название детали видно, но после ее конфигурирования, сохранения страницы и повторного ее открытия видим undefined вместо названия. При этом никаких ошибок ни в консоли, ни в запросах нет.
Решение
Для решения проблемы необходимо:
1) Создать замещающий клиентский модуль(Nahrazující uživatelský modul) для схемы «Mobile app module - Section designer»
Внутри написать такой код:
define("MobileSectionDesignerModule", [], function() { return {}; } ); Ext.define("Terrasoft.MobileDesignerSchemaManager.override", { override: "Terrasoft.MobileDesignerSchemaManager", statics: { getCultureValues: function(value) { var res = this.callParent(arguments); res["cs-CZ"] = value; return res; } } });
2) После чего, удалить проблемный раздел из конфигурации:
А) Удалить схемы
UsrMobileOrderActionsSettingsDefaultWorkplace
UsrMobileOrderGridPageSettingsDefaultWorkplace
UsrMobileOrderProductActionsSettingsDefaultWorkplace
UsrMobileOrderProductGridPageSettingsDefaultWorkplace
UsrMobileOrderProductRecordPageSettingsDefaultWorkplace
UsrMobileOrderRecordPageSettingsDefaultWorkplace
Б) В манифесте MobileApplicationManifestDefaultWorkplace
Удалить локализируемую строку OrderSectionTitle
И в блоке "Modules" удалить "Order"
3) И снова добавить раздел и деталь через дизайнер.