include_page_правилаоформления
Требуется реализовать алгоритм, который принимает список меток и выдает список модулей, к которым принадлежит каждая метка.
Код метки. Например, «@SYS25058»
Структура, которая содержит коды модулей, к которым принадлежит каждая метка.
Выбранная программистом структура должна предоставлять удобный поиск и перебор по меткам.
В качестве структуры может использоваться:
В каждой записи структуры должны присутствовать:
Для каждой метки отбираются перекрестные ссылки (ЧемИспользуется) Для каждого объекта, который использует метку определить конфигурационный и лицензионный ключ. Повторить для каждого ОбъектРодитель.
Например, метка «@SYS25058» используется в нескольких местах. Среди прочего эту метку используют следующие объекты
1.\Data Dictionary\Tables\XBRLTaxonomyLabelElement\Field Groups\Label 2.\Data Dictionary\Extended Data Types\SRSEnumLabel 3.\Data Dictionary\Extended Data Types\COSEditDesc 4.\Classes\SysCodeExplorer\writeLabel
Разберем эти записи:
1.\Data Dictionary\Tables\XBRLTaxonomyLabelElement\Field Groups\Label 1.Первая запись указывает на группу полей в таблице. Если бы у группы полей были бы свойства конфигурационный и лицензионный ключ, то мы бы добавили их в список результатов для модуля XBRL. По перекрестным ссылкам видно, что группа полей ничем не используется. 1.Поднимаемся на уровень вверх по AOT. Field Groups не имеет свойств и ничем не используется. 1.Поднимаемся на уровень вверх по AOT. Таблица XBRLTaxonomyLabelElement - верхних значимый объект в AOT. Модуль определяется по префиксу названия таблицы. XBRL - код модуля. Конфигурационный ключ LedgerAdvanced. Лицензионный ключ LedgerAdvanced. 2.\Data Dictionary\Extended Data Types\SRSEnumLabel 1.Название модуля - SRS 1.Этот расширенный тип не содержит конфигурационного ключа 2.Этот расширенный тип используется только в одном поле одной таблицы 3.Поле не содержит конфигурационного ключа 4.Поднимаемся по AOT. Название модуля SRS. Конфигурационный ключ от таблицы ReportingServices. Лицензионный ключ SysUsers 3.\Data Dictionary\Extended Data Types\COSEditDesc 1.Название модуля - COS 2.Этот расширенный тип не содержит конфигурационного ключа 3.Этот расширенный тип используется в элементах 7ми форм. Разбираем каждую и также получаем модуль COS. В элементах этих форм не указаны ни лицензионные, ни конфигурационные ключи 4.Находим menuItem для каждой формы (в перекрестных ссылках информации для этого поиска нет) 5.Находим конфигурационные и лицензионные ключи из menuItem 4.\Classes\SysCodeExplorer\writeLabel 1.Название модуля Sys 2.класс не содержит метода main (если бы содердал, то нужно было бы искать menuItem и вызов этого класса в элементах форм) 3.класс испольузется в нескольких методах, в том числе в классе SysHelpBookAOHierarchy, который содержит метод main 4.метод main класса SysHelpBookAOHierarchy вызывается из display menuItem: SysTreeHierarchyBrowser. А этот menuItem привязан к конфигурационному ключу SysDevelopmentMorphX, который привязан к лицензионному ключу SysMorphX.
Таким образом, для метки «@SYS25058» в списке результатов должны присутствовать следующие записи: «@SYS25058»,«XBRL»,«LedgerAdvanced»,«LedgerAdvanced» «@SYS25058»,«SRS»,«…»,«…» «@SYS25058»,«COS»,«….»,«…» «@SYS25058»,«Sys»,«SysDevelopmentMorphX»,«SysMorphX»
Примечание: К сожалению, стандартные перекрестные ссылки показывает не все зависимости. Возможно, придется делать дополнительный анализ и пополнять список ЧемИспользуется
Это повторяющийся префикс в значимых объектах верхнего уровня в AOT.
Получившаяся таблица приложена файлом.
Обратите внимание, что типы и enum'ы не участвуют в анализе - для них слишком часто не используются префиксы
Таблица упорядочена по убыванию количества объектов в модуле. Знак <…> отображает прочие модули
#|
prefix | Объектов | License | Conf | Security | Использовано раз | ||
Sys | 1370 | 17 | 15 | 4 | 30100 | ||
Ledger | 916 | 2 | 20 | 9 | 46820 | ||
Cust | 892 | 0 | 8 | 9 | 65020 | ||
Proj | 869 | 2 | 14 | 9 | 40752 | ||
Invent | 866 | 0 | 6 | 9 | 55599 | ||
HRM | 787 | 4 | 8 | 26 | 22612 | ||
Vend | 726 | 0 | 4 | 9 | 34998 | ||
RPay | 585 | 1 | 12 | 68 | 14380 | ||
Sales | 564 | 0 | 7 | 0 | 30548 | ||
KM | 554 | 6 | 8 | 31 | 13888 | ||
Tax | 553 | 0 | 2 | 0 | 21806 | ||
smm | 528 | 4 | 6 | 8 | 18029 | ||
<…> | 478 | 17 | 55 | 8 | 52132 | ||
Jmg | 453 | 0 | 4 | 11 | 14572 | ||
Asset | 408 | 1 | 4 | 0 | 15470 | ||
RAsset | 383 | 1 | 1 | 9 | 7603 | ||
Prod | 379 | 3 | 3 | 9 | 15786 | ||
COS | 378 | 4 | 10 | 9 | 14479 | ||
PBA | 348 | 5 | 5 | 7 | 13760 | ||
Purch | 347 | 0 | 0 | 0 | 13779 | ||
WMS | 266 | 2 | 3 | 0 | 6731 | ||
Bank | 256 | 1 | 4 | 7 | 10285 | ||
RHRM | 252 | 1 | 1 | 8 | 4179 | ||
Tmp | 250 | 0 | 0 | 0 | 17382 | ||
DEL | 237 | 0 | 0 | 0 | 11517 | ||
SMA | 233 | 0 | 6 | 8 | 9025 | ||
Rtax | 232 | 0 | 0 | 0 | 3267 | ||
Pl | 205 | 0 | 13 | 1 | 3237 | ||
Req | 187 | 1 | 2 | 9 | 6088 | ||
AX | 175 | 0 | 0 | 0 | 2155 | ||
Intrastat | 167 | 0 | 1 | 0 | 4523 | ||
AIF | 166 | 2 | 2 | 0 | 5387 | ||
BOM | 153 | 0 | 3 | 0 | 3926 | ||
DSO | 138 | 0 | 0 | 0 | 1590 | ||
RCash | 134 | 0 | 1 | 13 | 2917 | ||
Form | 126 | 0 | 0 | 0 | 10897 | ||
Empl | 123 | 0 | 2 | 8 | 21117 | ||
OLAP | 123 | 0 | 1 | 0 | 3189 | ||
Cz | 107 | 0 | 6 | 0 | 3203 | ||
EP | 100 | 3 | 2 | 44 | 1961 | ||
Forecast | 95 | 2 | 2 | 0 | 2335 | ||
Address | 93 | 0 | 0 | 0 | 9013 | ||
RFID | 93 | 1 | 3 | 0 | 1284 | ||
Lv | 92 | 0 | 4 | 0 | 1178 | ||
Facture | 88 | 0 | 0 | 0 | 1903 | ||
Wrk | 87 | 1 | 1 | 0 | 2330 | ||
RDeferrals | 79 | 0 | 1 | 0 | 1711 | ||
Web | 78 | 0 | 0 | 0 | 1909 | ||
NumberSeq | 77 | 0 | 0 | 0 | 3727 | ||
Xml | 73 | 0 | 0 | 0 | 1796 | ||
BAS | 70 | 1 | 1 | 8 | 2661 | ||
Price | 68 | 0 | 1 | 0 | 3190 | ||
Route | 68 | 0 | 2 | 0 | 2530 | ||
Eu | 68 | 0 | 0 | 0 | 1042 | ||
CC | 63 | 0 | 0 | 0 | 784 | ||
InterCompany | 62 | 0 | 0 | 0 | 1280 | ||
Event | 61 | 1 | 1 | 0 | 1402 | ||
SRS | 60 | 0 | 0 | 0 | 2010 | ||
Image | 55 | 0 | 0 | 0 | 1367 | ||
Paym | 52 | 0 | 2 | 0 | 1369 | ||
Dimension | 51 | 1 | 1 | 0 | 4011 | ||
Docu | 50 | 0 | 0 | 0 | 3064 | ||
Tutorial | 50 | 0 | 0 | 0 | 650 | ||
RTSL | 49 | 0 | 0 | 0 | 1112 | ||
Batch | 47 | 0 | 0 | 0 | 692 | ||
RLedgerSheet | 45 | 0 | 0 | 0 | 147 | ||
SQL | 42 | 0 | 0 | 0 | 1628 | ||
Markup | 39 | 0 | 1 | 0 | 1802 | ||
Gantt | 39 | 0 | 0 | 0 | 461 | ||
Lt | 38 | 0 | 3 | 0 | 763 | ||
Config | 37 | 0 | 1 | 0 | 787 | ||
Xbrl | 35 | 0 | 0 | 0 | 1997 | ||
x | 33 | 0 | 0 | 0 | 1941 | ||
Trade | 32 | 2 | 6 | 0 | 1125 | ||
Work | 30 | 0 | 0 | 0 | 681 | ||
Sk | 29 | 0 | 0 | 0 | 492 | ||
Journal | 28 | 0 | 0 | 0 | 2361 | ||
Rcontract | 28 | 0 | 0 | 0 | 701 | ||
Commission | 28 | 0 | 1 | 0 | 505 | ||
xRef | 27 | 0 | 0 | 0 | 911 | ||
Report | 26 | 0 | 1 | 0 | 1243 | ||
Book | 26 | 0 | 0 | 0 | 702 | ||
Supp | 24 | 0 | 1 | 0 | 525 | ||
RunBase | 23 | 0 | 0 | 0 | 2379 | ||
Output | 23 | 0 | 0 | 0 | 102 | ||
CAC | 21 | 0 | 0 | 0 | 68 | ||
Currency | 19 | 0 | 3 | 0 | 3572 | ||
Unit | 18 | 0 | 0 | 0 | 808 | ||
Ee | 18 | 0 | 2 | 0 | 78 | ||
TransactionReversal | 17 | 0 | 3 | 0 | 249 | ||
ECP | 16 | 0 | 0 | 0 | 809 | ||
Budget | 15 | 0 | 0 | 0 | 1202 | ||
BarCode | 15 | 0 | 0 | 0 | 218 | ||
Dialog | 14 | 0 | 0 | 0 | 6430 | ||
Dict | 14 | 0 | 0 | 0 | 5552 | ||
Conv | 14 | 0 | 0 | 0 | 29 | ||
Cheque | 14 | 0 | 0 | 0 | 23 | ||
Map | 13 | 0 | 0 | 0 | 5751 | ||
Company | 13 | 0 | 0 | 0 | 5580 | ||
Query | 8 | 0 | 0 | 0 | 13404 | ||
BusinessStatistics | 8 | 0 | 0 | 0 | 174 | ||
Graphics | 8 | 0 | 0 | 0 | 105 | ||
Object | 5 | 0 | 0 | 0 | 9166 | ||
Win | 4 | 0 | 0 | 0 | 1316 | ||
List | 3 | 0 | 0 | 0 | 1732 | ||