AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2004, 17:49   #21  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Выгрузить все таблицы оказалось слишком продолжителтьным занятием. Как-нибудь потом сделаю, если понадобится. А вот пример только с таблицами Ledger*. С удовольствием выслушаю предложения, как это можно сделать лучше :-)
Вложения
Тип файла: rar ledger.rar (57.8 Кб, 496 просмотров)
Старый 28.07.2004, 16:47   #22  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Суппер!

Не сочтите за наглость а можно ли получить данный скрипт. Т.к. у нас море своих таблиц и форм. Разработчики ушли и ни строчки доки не оставили. А я тут месяц как работаю.До этого С# программером 2 года работал, по тихоньку разбираюсь но уж очень все это как то стресово получается. Так что для меня задача диаграммы в Rational Rose до жути актуальная.

Спасибо!

Буду рад любому ответу!
Старый 28.07.2004, 16:56   #23  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
В принципе, не сложно получить и диаграмму классов. Причем, не обязательно в rational rose.
Если кому то интересно - могу выложить job, который по классу (или всему АОТ) генерит файл, который с виду похож на "java", но реализация методов на X++.
По данному файлу практически любое case средство способно сгенерить диаграмму классов.
Старый 28.07.2004, 17:00   #24  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Очень интерестно. Я бы был очень признателен

Спасибо!
Старый 29.07.2004, 12:06   #25  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Если кому то интересно - могу выложить job, который по классу (или всему АОТ) генерит файл, который с виду похож на "java", но реализация методов на X++. По данному файлу практически любое case средство способно сгенерить диаграмму классов.
Вот job, который делает то - о чем я писал. Вариант далеко не окончательный, но для моих целей хватает:

PHP код:
static void ExportObjectToJava(Args _args)
{
    
AsciiIo     file;
    
str         objectName 'InventCostItemDim';
    
DictClass   dictClass;
    
DictMethod  dictMethod;
    
int         methodCount;
    
int         parmCount;
    
str         parmDescription;
    
int         ij,v;
    
str         s;
    
TreeNode    treeNode;
    
Info        info = new Info();
    ;
    
dictClass = new DictClass(classname2id(objectName));
    
file = new AsciiIo('d:\\' objectName '.java''w');

    
file.write('public class ' dictClass.name());
    
file.write('{');

    for (
i=1i<=dictClass.objectMethodCnt(); i++)
    {
        
dictMethod dictClass.objectMethodObject(i);
        
parmCount dictMethod.parameterCnt();

        
// собираем строку параметров метода
        
parmDescription '';
        for (
j=1j<=parmCountj++)
        {
           if (
parmDescription != ''parmDescription parmDescription ',';
           
parmDescription parmDescription enum2str(dictMethod.parameterType(j)) + ' p' int2str(j);
        }

        
file.write(   enum2str(dictMethod.accessSpecifier()) + ' ' +                                    // модификатор доступа
                      
enum2str(dictMethod.returnType()) + ' ' +     // return type
                      
dictClass.objectMethod(i) +                   // method name
                      
'(' parmDescription ')');

        
treeNode info.rootNode();
        
treeNode treeNode::findNode('\\Classes\\' dictClass.name() + '\\' dictClass.objectMethod(i));

        
file.write('  {');
        
file.write(treeNode.AOTgetSource());
        
file.write('  }');
    }

    
// статические методы
    
dictClass.staticMethodCnt();
    for (
i=1i<=vi++)
    {
        
dictMethod dictClass.staticMethodObject(i);
        
dictMethod.name();
             
file.write'static ' +  enum2str(dictMethod.accessSpecifier()) + ' ' +                                    // модификатор доступа
                      
enum2str(dictMethod.returnType()) + ' ' +     // return type
                      
dictClass.staticMethod(i) +                   // method name
                      
'(' ')');

        
treeNode info.rootNode();
        
treeNode treeNode::findNode('\\Classes\\' dictClass.name() + '\\' dictClass.staticMethod(i));

        
file.write('  {');
        
file.write(treeNode.AOTgetSource());
        
file.write('  }');
    }


    
file.write('}');

Старый 29.07.2004, 12:16   #26  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Вот так это выглядит в Power Designer:



Вложения
Тип файла: img39648-1 (41.3 Кб, 1194 просмотров)
Тип файла: img39648-2 (62.4 Кб, 966 просмотров)
Старый 29.07.2004, 12:29   #27  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
kalex А вот пример только с таблицами Ledger*. С удовольствием выслушаю предложения, как это можно сделать лучше :-)
К сожалению (а точнее к счастью) Роза не стоит; если не секрет - поделись, каким способом получил диаграмму.
Я вижу три пути:

1) Пишем job в Аксапте который бежит по АОТ и генерит скрипт на создание таблиц и relations между ними. Этот скрипт потом скармливается Розе.
2) Работает из Аксапты с Розой через COM.
3) Пишем job, который в базе Аксапты генерит реальные relations на основе данных в АОТ. Затем на эту базу натравливается Rational Rose, которая по структуре сама генерит диаграммы.
Старый 29.07.2004, 12:31   #28  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Предваряя вполне закономерные вопросы сразу отмечу - все вышеописанное я использую, но довольно узко. Для подготовки проектной документации - когда клиент хочет диаграммы, а рисовать с нуля их долго.
Старый 30.07.2004, 10:09   #29  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Я тоже использую эту модификацию в основном только для документирования уже сделанного. Изредка - для изучения стандартного функционала. И только для выбранных таблиц или классов. Выгружать все бессмысленно, да и в Розу не влезает.
Диаграмму делаю через COM.
Первый способ, который вы предложили, мне больше понравился (Тем, что скрипт потом можно любым средством обработать). Он мне раньше в голову не приходил. Но как в стандартном SQL скрипте отразить сложные связи типа 'поле ссылки фиксировано' и добавить коментарии?
Старый 30.07.2004, 12:19   #30  
psv is offline
psv
Участник
 
11 / 10 (1) +
Регистрация: 21.08.2003
Цитата:
Но как в стандартном SQL скрипте отразить сложные связи типа 'поле ссылки фиксировано'
Это невозможно.
Старый 30.07.2004, 14:17   #31  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Великолепная идея!
только у меня есть два вопроса
1. Вот эта строчка уменя не ok
treeNode = treeNode::findNode('Classes' + dictClass.name() + '' + dictClass.objectMethod(i));

т.е. Node не находится treeNode после = null
формат строки без пробелов без точек!!!

2. Где найти описание таких классов к примеру
treeNode, Info,DictClass ?

неужели вы черпали инфу из исходников!!!?
Старый 30.07.2004, 14:21   #32  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Насчет 1 - честно говоря не понял проблемы. Приведите оригинальное сообщение об ошибке.
Насчет 2 - смотрите System Documentation в АОТ.
Старый 30.07.2004, 14:44   #33  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Fehler während der Verarbeitung: TreeNode Objekt ist nicht initialisiert.
(TreeNode Objekt не инициализирован)
Stack-Trace:
\Classes\TreeNode\AOTgetSource
\Jobs\ExportObjectToJava - line 48

у меня есть подозрение что это из за разници в версиях.
У меня Axapta 3.0. т.к. в System Documentation описания
Info класса не было , а есть xInfo. Может его попробовать?
Старый 30.07.2004, 14:51   #34  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
В оригинале было
treeNode::findNode('\\Classes\\' + dictClass.name() + '\\' + dictClass.objectMethod(i));

Добавьте слэши.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 30.07.2004, 14:53   #35  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Попробуй заменить:

PHP код:
    treeNode info.rootNode(); 
на

PHP код:
        treeNode = new TreeNode(); 
Старый 30.07.2004, 14:56   #36  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Мда.... мало того, что он криво раскрасил, так он еще и повыкусывал куски кода

Максим, спасибо.
Старый 30.07.2004, 15:26   #37  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано rohlenko
У меня Axapta 3.0. т.к. в System Documentation описания
Info класса не было , а есть xInfo. Может его попробовать?
Его там и не должно быть. См. AOT\Classes почти в самом конце.
Старый 30.07.2004, 15:31   #38  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Ага!!!
Спасибо вам !
Со слешами заработало. Мне сразу бросилось в глаза, что
строка PATH без разделителей.А, мог бы и догадаться сам
Я еще в Axapta совсем новенький
Это что Seit при размещении текста слопал слеши?
Буду знать на будующее, что лучше размещать в Zip
Старый 02.08.2004, 11:26   #39  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
У меня для генерации диаграмм написана такая вот утилита.
Если есть заинтересованные, предлагаю поместить ее в проекты и развивать дальше.
Вложения
Тип файла: rar diagram.rar (11.6 Кб, 438 просмотров)
За это сообщение автора поблагодарили: mazzy (2), Alex_K (1).
Старый 02.08.2004, 12:55   #40  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
спасибо. обязательно поглядим.
Теги
ax3.0, диаграмма классов, законченный пример, модель данных, полезное, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ОПИСАНИЕ ТАБЛИЦ AXAPTA renat DAX: Программирование 15 27.01.2015 15:27
описание таблиц в Axapta 3.0 gyvenor DAX: Программирование 24 11.12.2006 14:40
структура таблиц контура производство mmmax DAX: Программирование 7 03.11.2004 19:03
структура таблиц контура производство mmmax DAX: Прочие вопросы 1 03.11.2004 15:12
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.