Симптомы
Суть проблемы: в чешской локализации невозможно добавить стандартную деталь. При сохранении изменений в консоли ошибка «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) И снова добавить раздел и деталь через дизайнер.