Показать сообщение отдельно
Старый 04.05.2023, 17:37   #17  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
На будущее оставлю здесь ссылку на SQL-скрипт для AX2012
https://github.com/dodiggitydag/AX-2...model%20db.sql
Там похоже ошибка в этом месте
X++:
----------------------------------------------------------------------------------------------
-- Step 4 Fix the field ids in SQLDictionary which do not match
----------------------------------------------------------------------------------------------
PRINT 'Step 4';

WITH t AS (
    SELECT (
            SELECT m1.NAME
            FROM ModelElement m1
            WHERE m1.ElementHandle = m.ParentHandle
        ) AS [Table Name],
        m.NAME AS [mName],
        m.AXid,
        s.RECID,
        M.ParentId,
        s.TableId,
        s.FieldID,
        S.NAME,
        s.SQLNAME
    FROM ModelElement m
    LEFT OUTER JOIN AX2012DB.dbo.SQLDICTIONARY s
        ON m.ParentId = s.TABLEID
        AND s.NAME =  upper(m.NAME) collate Latin1_General_CI_AS
    WHERE m.ElementType = 42 -- UtilElementType::TableField
        AND (s.ARRAY = 1 OR s.ARRAY IS NULL)
        AND (s.FieldID > 0 OR s.FieldID IS NULL)
        AND s.FieldID != m.AxId
)
UPDATE AX2012DB.dbo.SQLDICTIONARY
SET FIELDID = (t.axid * -1) -- Set to a negative number but correct ID
FROM t join AX2012DB.dbo.SQLDICTIONARY s
ON upper(t.mName) collate Latin1_General_CI_AS = s.NAME
    AND s.FieldID <> 0
    AND s.TableId = t.ParentId
проблема в том что для табличек с наследованием (DirPartyTable -->..--> CompanyInfo) таблички наследники в ModelElement содержат ParentId равный идентификатору таблички (для CompanyInfo - будет 41 т.е. tableNum(CompanyInfo), а в SqlDictionary содержат в TableId значение корневой таблички иерархии, т.е. 2303 = tableNum(DirPartyTable) )

Последний раз редактировалось Logger; 04.05.2023 в 17:42.
За это сообщение автора поблагодарили: sukhanchik (10).