![]() |
#5 |
Участник
|
![]()
Казалось бы, для того, чтобы записать свою модификацию в sys-слой, надо быть членом команды
Navision-hq или хакером. Но на практике выяснилось следующее: В рамках решения задачи тотального аудита системы возникла необходимость включить свойства CreatedDate/ModifiedDate во многих таблицах, в т.ч. созданных в sys-слое. Нелегкая работа - проставить руками свойства сразу в нескольких сотнях таблиц. Поэтому был написан небольшой джоб, вроде этого: static void AOT_ModifyAllTables_tst(Args _args) { treeNode treeNode; xInfo xInfo = new xInfo(); DictTable dictTable; int i; ; treeNode = xInfo.rootNode(); treeNode = treeNode.AOTfindChild("Data Dictionary"); treeNode = treeNode.AOTfindChild("Tables"); treeNode = treeNode.AOTfirstChild(); while (treeNode) { dictTable = new DictTable(treeNode.applObjectId()); if (dictTable.dataPrCompany() && ! dictTable.isMap() && ! dictTable.isTmp()) { treeNode.AOTsetProperties("PROPERTIES"+"\n"+"ModifiedDate #Yes"+"\n"+"CreatedDate #Yes"+"\n"+"ENDPROPERTIES"); treeNode.aotsave(); info(strfmt("Table %1 changed", treeNode.treeNodeName())); i++; } treeNode = treeNode.nextSibling(); } info(strfmt("Total %1 tables changed", i)); } Если изменяемая таблица находилась в каком-нибудь из "низших" слоев, свойства изменялись, но объект оставался в том же слое, в котором и был, а не переходил в usr |
|
|
За это сообщение автора поблагодарили: aidsua (1), jeky (1). |