![]() |
#32 |
Участник
|
Разобрался в чем проблема.
Если база и аос устанавливается в режиме "Register database for upgrade from Microsoft Dynamics AX 4.0 or Microsoft Dynamics AX 2009" то инсталлятор прописывает в БД хранимку TABLEPERTYPEINHERITANCEMODE которая возвращает 1. Также в табличке SYSGLOBALCONFIGURATION создает запись с NAME = TABLEPERTYPEMODE После этого аос считает что иерархию табличек надо хранить как в RTM версии в режиме одна табличка на одну табличку иерархии. Указанный эффект можно получить если просто в обычной базе создать хранимку командой X++: USE [BASE_NAME]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[TABLEPERTYPEINHERITANCEMODE] AS SELECT 1
GO Касательно задачи конвертации базы из ax4/2009 в формат 2012 R3 - то судя по всему предположение (что конвертер с предыдущих версий конвертирует базу в RTM формат) оказалось правильным и база в 2012-й сперва создается в режиме TABLEPERTYPEINHERITANCEMODE (так как инсталлятор создает ее с хранимкой) а после импорта / конвертации данных из ax4/2009 запускается класс SysDataUpgradeSCscTPT2TPH который и конвертирует уже способ хранения табличек в "плоский" режим. А в конце грохает хранимку и запись в SYSGLOBALCONFIGURATION (см. методы getStoredProcCleanupStatement и isInUnFlattenMode). Последний раз редактировалось Logger; 21.09.2018 в 18:16. |
|
|
За это сообщение автора поблагодарили: sukhanchik (6), gl00mie (5), -DocSerzh- (1), S.Kuskov (2). |
Теги |
ax2012, inheritance, table inheritance, наследование таблиц, полезное |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|