AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.06.2007, 14:58   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Их надо знать в лицо
Тут сделал джобик, выводящий все таблицы Axapt-ы, конфигурационный ключ, количество записей в таблице и количество перекрёстных ссылок. Запустил на стандарте с демо базой. Потом сделал фильтр. Ссылок > 100, записей не меньше 1. И модули Логиcтика, Торговля, Главная книга + пустые. Получилось 115 таблиц. Интересно можно ли их считать основными таблицами. Кто как считает?
Вложения
Тип файла: xls Основные таблицы.xls (33.0 Кб, 105 просмотров)

Последний раз редактировалось miklenew; 26.06.2007 в 10:56.
За это сообщение автора поблагодарили: mazzy (5).
Старый 20.06.2007, 15:25   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
классно.
не все эти таблицы входят в набор основных.

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

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

Ну и сам джобик, наверное, было б полезно выложить сюда тоже. Спасибо.
Старый 21.06.2007, 08:11   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вот 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);
                    }
            }
        }
    }
}
Цитата:
Сообщение от Gustav
"Записей не меньше 1" - это мне понятно. А "ссылок > 100" - это что за критерий, извиняюсь, "основнистости"?
Пока это только предположение, которое может стать утверждением. Если не появяться основные таблицы, которые не вошли в этот список. Буду рад если кто то найдёт такие таблицы.
Цитата:
Сообщение от Gustav
И ссылки какого рода имеются в виду? Любое упоминание о данной таблице в "Перекрестных ссылках" в любом контексте (поле, релэйшн, метод и т.д.)?
Когда правой кнопкой кликаете на таблице-> Перекрёстные ссылки. Отображаются все места где используется эта таблица. Вот что я имел ввиду.
Сейчас хочу распределить этот список на первичные(т.е. таблицы клиентов, поставщиков), вторичные(Заказы, Закупки,Накладные т.е. те таблицы куда стикаются данные от первичных) и лишние(ошибочно попавшие). Отберу выложу. В любом случае если есть какие-то возражения пишите.
Старый 21.06.2007, 09:09   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от miklenew Посмотреть сообщение
Пока это только предположение, которое может стать утверждением. Если не появяться основные таблицы, которые не вошли в этот список. Буду рад если кто то найдёт такие таблицы.
О!, да, таких дофига и больше.

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

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

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

А банк... Рассматривать торговлю и логистику без банка... хм... конечно можно.
Но это смелое решение
__________________
полезное на axForum, github, vk, coub.
Старый 21.06.2007, 10:00   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от miklenew Посмотреть сообщение
какая таблица какому модулю принадлежит
Я еще раз настаиваю на том, что ваша логика ошибочна.

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

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

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

Цитата:
Сообщение от miklenew Посмотреть сообщение
Соответственно для тех таблиц у которых есть привязки нам это не важно.
Важно, важно.
__________________
полезное на axForum, github, vk, coub.
Старый 25.06.2007, 16:37   #14  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от 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 - количество ссылок поля

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

Последний раз редактировалось miklenew; 25.06.2007 в 16:47.
Старый 26.06.2007, 09:24   #15  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Получился вот такой список. С учётом ключей полей и ссылки таблиц + ссылки мапов в которые входят эти таблицы. Но считаю всё же основные таблицы надо определять из первого списка. А второй иметь ввиду при состовлении связей. Потому что как раз в новых строчках модули и соединяются. Хотя не только в них.
Вложения
Тип файла: xls Основные таблицы2.xls (43.5 Кб, 96 просмотров)
За это сообщение автора поблагодарили: driller (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поиск по форуму - список слов менее 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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:45.