22.06.2018, 13:13 | #1 |
Участник
|
TreeNode AOTgetProperty («Model») возвращает разные значения для клиента и сервера
Всем привет!
Суть проблемы: создается экземпляр объекта TreeNode. Содержит структуру (свойство) Model. На клиенте структура заполняется значением "Foundation". На сервере заполняется значением "19". Таким образом при вызове метода AOTgetProperty («Model») на клиенте получаем значение "Foundation", на сервере "19". (значения приведены для примера, "19" по сути отображает ID модели в таблице SysModelManifest). Пример кода: TreeNode treeNode; ModelName modelNameRet; treeNode = TreeNode::findNode(@"\Data Dictionary\Base Enums\ABC"); modelNameRet = parentTreeNode.AOTgetProperty("Model"); info(modelNameRet); |
|
22.06.2018, 13:33 | #2 |
Участник
|
Если 19 соответствует идентификатору модели Foundation то это полбеды.
А иначе катастрофа. |
|
25.06.2018, 13:07 | #3 |
Участник
|
Нашел два решения задачи.
1. Использовать конструкцию SysModelStore::modelId2Name(treeNode.AOTGetModel()); treeNode.AOTGetModel() - возвращает ModelId 2. Использовать запрос: SysModelElement sysModelElement; SysModelElementData sysModelElementData; utilModels utilModels; select sysModelElement where sysModelElement.Name == "ABC" join sysModelElementData where sysModelElement.RecId == sysModelElementData.ModelElement join Name from utilModels where utilModels.Id == sysModelElementData.ModelId; info (utilModels.Name); Второе решение мне не подошло, так как сильно замедляет выполнение кода (в моем случае в 3~ раза) |
|
27.06.2018, 07:31 | #4 |
Участник
|
Таблица системная, возможно для использования индекса не хватает поля ElementType. Думаю, метод treeNode.AOTGetModel() все равно использует запрос, однако информация кэшируется, и в первый раз все равно будет работать медленно. Также как при открытии ветки в АОТ. Первый вариант предпочтительнее, как с точки зрения производительности, так и с т.з. понимания кода другими людьми.
__________________
// no comments Последний раз редактировалось dech; 27.06.2018 в 08:54. |
|
Теги |
aotgetproperty, ax 2012 r3, client, model, server, treenode |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|