AXForum  
Go Back   AXForum > Прочие обсуждения > Курилка
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 20.06.2007, 14:58   #1  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Их надо знать в лицо
Тут сделал джобик, выводящий все таблицы Axapt-ы, конфигурационный ключ, количество записей в таблице и количество перекрёстных ссылок. Запустил на стандарте с демо базой. Потом сделал фильтр. Ссылок > 100, записей не меньше 1. И модули Логиcтика, Торговля, Главная книга + пустые. Получилось 115 таблиц. Интересно можно ли их считать основными таблицами. Кто как считает?
Attached Files
File Type: xls Основные таблицы.xls (33.0 KB, 105 views)

Last edited by miklenew; 26.06.2007 at 10:56.
This post has been rated by: mazzy (5).
Old 20.06.2007, 15:25   #2  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
классно.
не все эти таблицы входят в набор основных.

например km* сильно сторонняя таблица
purchPrintCopies тоже сильно вспомогательная.

Но для начала очень правильный подход.
Выделить основные и сделать для них схему при помощи Visual MorphXlorer или Reverse Enegeneering в Visio...
__________________
полезное на axForum, github, vk, coub.
Old 20.06.2007, 16:29   #3  
Gustav is offline
Gustav
Moderator
Gustav's Avatar
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Join Date: 24.01.2006
Location: Санкт-Петербург
Blog Entries: 19
"Записей не меньше 1" - это мне понятно. А "ссылок > 100" - это что за критерий, извиняюсь, "основнистости"?
И ссылки какого рода имеются в виду? Любое упоминание о данной таблице в "Перекрестных ссылках" в любом контексте (поле, релэйшн, метод и т.д.)?

Ну и сам джобик, наверное, было б полезно выложить сюда тоже. Спасибо.
Old 21.06.2007, 08:11   #4  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Вот job.
X++:
static void Job10(Args _args)
{
    FileNameSave                fileNameSave = "C:\\1.txt";
    AsciiIo                     File;
    container                   oneRecord;
    UtilElements                UtilElements;
    DictTable                   dictTable;
    dictConfigurationKey        dictConfigurationKey;
    LoginProperty               loginProperty;
    ODBCConnection              odbcConnection;
    Statement                   statement;
    ResultSet                   result;
    SqlSystem                   sqlSystem;
    str                         Query;
    str                         countStr;
    XRefReferences              XRefReferences;
    xRefNames                   xRefNames;
    int                         countRef;
;
    sqlSystem = new SqlSystem();
    loginProperty = sqlSystem.createLoginProperty();
    odbcConnection    =  new odbcConnection(loginproperty);
    Statement         =   odbcConnection.createStatement();

    file = new AsciiIo(fileNameSave, 'W');
    if(file)
        File.write("");
    while select UtilElements
    group by name, recordType
    {
        if (enum2str(UtilElements.recordType)=="Table")
        {
            dictTable = new DictTable(tablename2id(UtilElements.Name));
            if (!dictTable.isTmp() && dictTable.isSql())
            {
                    Query ="Select count(recId) from "+dictTable.name();
                    Result =   statement.executeQuery(Query);
                    try
                    {
                        while ( Result.next() )
                        {
                            countStr=Result.getString(1);
                        }
                    }
                    catch
                    {
                        countStr = "0";
                    }

                    xRefNames = xRefNames::find(xRefKind::Table,"",dictTable.name());
                    select count(RecId)from XRefReferences
                        where XRefReferences.referencePathRecId == xRefNames.xRefPathRecId;
                    countRef = XRefReferences.RecId;

                    oneRecord = connull();
                    if (dictTable.configurationKeyId())
                    {
                        dictConfigurationKey = new DictConfigurationKey(dictTable.configurationKeyId());
                        oneRecord +=  dictTable.name()+ '; '
                                      + dictTable.label()+'; '
                                      + dictConfigurationKey.name()  + '; '
                                      + dictConfigurationKey.label() + '; '
                                      + countStr + '; '
                                      + int2Str(countRef);
                        File.writeExp(oneRecord);
                    }
                    else
                    {
                        oneRecord +=  dictTable.name()+ '; '
                                      + dictTable.label()+'; '
                                      + '; '
                                      + '; '
                                      + countStr +  '; '
                                      + int2Str(countRef);
                        File.writeExp(oneRecord);
                    }
            }
        }
    }
}
Quote:
Originally Posted by Gustav
"Записей не меньше 1" - это мне понятно. А "ссылок > 100" - это что за критерий, извиняюсь, "основнистости"?
Пока это только предположение, которое может стать утверждением. Если не появяться основные таблицы, которые не вошли в этот список. Буду рад если кто то найдёт такие таблицы.
Quote:
Originally Posted by Gustav
И ссылки какого рода имеются в виду? Любое упоминание о данной таблице в "Перекрестных ссылках" в любом контексте (поле, релэйшн, метод и т.д.)?
Когда правой кнопкой кликаете на таблице-> Перекрёстные ссылки. Отображаются все места где используется эта таблица. Вот что я имел ввиду.
Сейчас хочу распределить этот список на первичные(т.е. таблицы клиентов, поставщиков), вторичные(Заказы, Закупки,Накладные т.е. те таблицы куда стикаются данные от первичных) и лишние(ошибочно попавшие). Отберу выложу. В любом случае если есть какие-то возражения пишите.
Old 21.06.2007, 09:09   #5  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by miklenew View Post
Пока это только предположение, которое может стать утверждением. Если не появяться основные таблицы, которые не вошли в этот список. Буду рад если кто то найдёт такие таблицы.
О!, да, таких дофига и больше.

userinfo, exchrate.
не вошел весь bank*, bom*, commission*, config* и т.п.
в общем, для начала посмотрите в список таблиц в AOT.

Quote:
Originally Posted by miklenew View Post
Когда правой кнопкой кликаете на таблице-> Перекрёстные ссылки. Отображаются все места где используется эта таблица. Вот что я имел ввиду.
Этого мало.
Сама таблица может не использоваться, но активно используются поля и/или методы этой таблицы
__________________
полезное на axForum, github, vk, coub.
Old 21.06.2007, 09:25   #6  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
кроме того, могут быть следующие случаи:
1. таблицы могут быть обернуты map'ом, а уже map активно используется
2. таблицы обернуты классом, который используется. А сама таблица напрямую используется редко
__________________
полезное на axForum, github, vk, coub.
Old 21.06.2007, 09:31   #7  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Quote:
Originally Posted by mazzy
О!, да, таких дофига и больше.

userinfo, exchrate.
не вошел весь bank*, bom*, commission*, config* и т.п.
в общем, для начала посмотрите в список таблиц в AOT.
bank* - модуль банк
bom* - модуль Спецификации
commission* - модуль Коммиссионные
config* - модуль Номенклатурная аналитика - конфигурация
Я специально взял только три модуля (Логиcтика, Торговля, Главная книга) + пустые.
Т.к пустые принадлежат всем. И по замыслу наверное должны быть самые основные. Слона надо есть кусками.
Quote:
Originally Posted by mazzy
Этого мало.
Сама таблица может не использоваться, но активно используются поля и/или методы этой таблицы
Мысль не понял. Полюбому ведь будут объявлять табличную переменную или static метод использовать. Значит в этот список и они попадут. Конечно может быть не явное использование полей на формах в таблицах(связь по расширенному типу). Но тут уж надо подумать. Может тоже можно отловить.
Old 21.06.2007, 09:40   #8  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Quote:
Originally Posted by mazzy View Post
кроме того, могут быть следующие случаи:
1. таблицы могут быть обернуты map'ом, а уже map активно используется
2. таблицы обернуты классом, который используется. А сама таблица напрямую используется редко
Вобще то конечно правильно. Насчет класов мысли были, но сначало список таблиц доделать хочется. Отобрать первичные и второстепенные. Возможно составить схему. По крайней мере попробую. Не уверен ещё в собственных силах. Но если двигаться в нужном направлении должно получиться. Когда с классами будет хоть какой-то адекватный результат. Можно анализировать информацию 1 и 2. Таблицы+классы. Пока наверное ограничусь без информации от Map-ов и классов. Хотя Map-ы тоже навеное посчитать можно. Подумаю.
Old 21.06.2007, 09:47   #9  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Да если кому-то интересно какая таблица какому модулю принадлежит, вот полный список. Вернее не совсем полный. !dictTable.isTmp() && dictTable.isSql().
Attached Files
File Type: xls Полный список таблиц.xls (289.5 KB, 114 views)
Old 21.06.2007, 09:54   #10  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by miklenew View Post
bom* - модуль Спецификации
commission* - модуль Коммиссионные
config* - модуль Номенклатурная аналитика - конфигурация
Вообще говоря, это не модуль, а префиксы, которые входят в торговлю/логистику.
См. Нужна квалифицированная помощь по функционалу MBS Axapta

А банк... Рассматривать торговлю и логистику без банка... хм... конечно можно.
Но это смелое решение
__________________
полезное на axForum, github, vk, coub.
Old 21.06.2007, 10:00   #11  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by miklenew View Post
какая таблица какому модулю принадлежит
Я еще раз настаиваю на том, что ваша логика ошибочна.

1. Сама таблица логически не может принадлежать модулю.
2. модулю "принадлежат" данные (вернее, совокупность логически связанных данных образует модуль)
3. данные хранятся в полях
4. т.е. анализировать надо принадлежность полей к тому или иному модулю
5. это значит, что таблица может принадлежать нескольким модулям одновременно
6. параметр ConfigurationKey, указанный в самой таблице дает слишком общую информацию. Этот параметр определяет при покупке какого модуля эта таблица появится. Но он не определяет к какому модулю таблица принадлежит (вот такой вот логический выверт). Например, банк появляется при покупке лицензии Finance I и т.п.

См. http://axapta.mazzy.ru/lib/explore/
Этот мир - иллюзия. Вы начали изучайть эту матрицу при помощи внутренних кодов. Не останавливайтесь на полпути.

__________________
полезное на axForum, github, vk, coub.
Old 21.06.2007, 11:33   #12  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Quote:
Originally Posted by mazzy
4. т.е. анализировать надо принадлежность полей к тому или иному модулю
Я так понимаю, если мы отключаем ключ. А на таблице привязан этот ключ, то таблицой мы уже не сможем воспользоваться. Если не ошибаюсь они ещё и обнуляются при отключение ключа. Соответственно для тех таблиц у которых есть привязки нам это не важно. А вот у тех, у кого нет привязок к ключам наверное важно.
Old 21.06.2007, 11:50   #13  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by miklenew View Post
Если не ошибаюсь они ещё и обнуляются при отключение ключа.
Эти поля физически уничтожаются при помощи Alter Table.
А таблицы физически уничтожаются при помощи Drop Table при выключении ключа.
Соответственно данные "обнуляются"

Quote:
Originally Posted by miklenew View Post
Соответственно для тех таблиц у которых есть привязки нам это не важно.
Важно, важно.
__________________
полезное на axForum, github, vk, coub.
Old 25.06.2007, 16:37   #14  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Quote:
Originally Posted by mazzy
4. т.е. анализировать надо принадлежность полей к тому или иному модулю
Сделал три таблицы.
1)TableProperty
поля:
TableName - имя таблицы
LabelTable - русское
ConfigurationkeyName - имя ключа таблицы
LabelConfigurationkey - русское
CountRecId - количество записей
CountReference - количество ссылок таблиц
2) TableInMaps
поля
TableName - имя таблицы
LabelTable - русское
MapsName - имя мапа
CountReference - количество ссылок мапа
3)FieldsInTable
поля
TableName - имя таблицы
LabelTable - русское
ConfigurationkeyName - имя ключа поля
LabelConfigurationkey - русское
FieldNum - номер поля
FieldName -имя поля
FieldLabel - русское
CountReference - количество ссылок поля

Заполнил их. Из этой информации уже можно определить. Каким ещё модулям принадлежит таблица, если исходить не из ключа таблицы, а из ключей полей таблицы. Можно проссумировать ссылки таблиц и их мапов, для более адэкватного анализа. Будет ли это правильно? А то у меня сомнения ещё остаются.

Last edited by miklenew; 25.06.2007 at 16:47.
Old 26.06.2007, 09:24   #15  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Получился вот такой список. С учётом ключей полей и ссылки таблиц + ссылки мапов в которые входят эти таблицы. Но считаю всё же основные таблицы надо определять из первого списка. А второй иметь ввиду при состовлении связей. Потому что как раз в новых строчках модули и соединяются. Хотя не только в них.
Attached Files
File Type: xls Основные таблицы2.xls (43.5 KB, 96 views)
This post has been rated by: driller (1).
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Поиск по форуму - список слов менее 4х букв, по которым надо осуществять поиск George Nordic Обсуждение форума 68 12.11.2009 16:54
Тревожиться надо о самой Америке Pavel Курилка 29 17.10.2008 14:21
Должен ли РМ знать функционал Системы? Alexey-IT Курилка 20 15.07.2007 09:45
Глюки, которые надо исправить mazzy Обсуждение форума 51 11.06.2004 13:05

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 08:32.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.