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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.08.2008, 21:10   #1  
Blog bot is offline
Blog bot
Участник
 
25,631 / 848 (80) +++++++
Регистрация: 28.10.2006
axaptapedia: Create New AOT Project From Template
Источник: http://www.axaptapedia.com/Create_Ne..._From_Template
==============

Summary: If you want to automatically create a project from a Template Project (An Empty Project with just the AOT Structure for example), then you can use this code as a helpful guideline.


X++:
 //
 //  Takes a Template Project Name and a Target Project Name
 //  and automatically creates a new Project from a Template Project.
 //
 static void CreateNewAOTProjectFromTemplate(Args _args)
 {
     ProjectNode     templateproject;
     ProjectNode     pretargetproject;
     ProjectNode     targetproject;

     TreeNode        sharedProject;

     UtilElements    utilElement;

     str             templateprojectname;
     str             pretargetprojectname;
     str             targetprojectname       = 'AATest';

     str pretargetprojectname()
     {
         return pretargetprojectname;
     }
     ;

     // Get the templateprojectname from someplace where the name of a Template project can be found.
     // NOTE:  You'll need to change this Line and assign your own Template name.
     templateprojectname   = DPA_Parameters::find().AOTProjectTemplate;
    
     sharedProject   = SysTreeNode::getSharedProject();
     if (sharedProject.AOTfindChild(targetprojectname))
         return;

     // Find the Template Project and load it for inspection
     templateproject   = sharedProject.AOTfindChild(templateprojectname);
     if (!templateproject)
         return;
     templateproject.loadForInspection();

     // Duplicate the Template Project using an intermediary ProjectNode
     pretargetproject   = templateproject.AOTDuplicate();
     pretargetproject.AOTsave();
    
     // Get the name of the duplicated project  - CopyOf%1 (%1 = whatever the Template name is)
     pretargetprojectname    = pretargetproject.AOTname();

     // Rename the duplicated Project to the desired project name.
     // NOTE: I tried other ways, but this is the only way that worked!
     //       And, it's fast!
     ttsbegin;
     select firstonly forupdate utilElement
         where utilElement.recordType == UtilElementType::SharedProject
            && utilElement.name       == pretargetprojectname();
     if (utilElement)
     {
         utilElement.name = targetprojectname;
         utilElement.doUpdate();
     }
     ttscommit;

     // Have to refresh the SharedProject Node  -  Very important!
     sharedProject.AOTrefresh();

     // Now just get the new project and open it.
     targetproject   = sharedProject.AOTfindChild(targetprojectname);
     targetproject.AOTrun();
 }
Источник: http://www.axaptapedia.com/Create_Ne..._From_Template
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
За это сообщение автора поблагодарили: alex55 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dax-lessons: Create Technical Document from AX Blog bot DAX Blogs 0 12.03.2008 09:05
axaptapedia: Control AOS from command line Blog bot DAX Blogs 0 09.03.2007 14:50
Dynamics AX: Dynamics AX - Create a Layer Project Blog bot DAX Blogs 0 28.10.2006 16:40
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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