2013-04-17 2 views
0

Я создал метод для экспорта объектов AOT (объект объекта приложения). Это работает, но когда я экспортирую Forms-Treenodes, не могу найти его.Dynamics AX 4.0 Export Forms

Метод является серверным методом и работает на BatchServer.

Моей идеей было экспортировать объекты в виде файлов xpo каждые 2 часа. Резервное копирование Я могу отслеживать изменения кода.

void run(str Path) 
{ 
    List    _ValueList = new List(Types::String); 
    Counter    _ListCounter; 
    ListIterator  _ListIterator; 
    str     _RootFolder; 
    str     _FileName; 
    str     _FolderName; 
    TreeNode   _TreeNode; 
    TreeNode   _InnerTreeNode; 
    TreeNodeIterator _TreeNodeIt; 
    FileIoPermission _Perm; 
    #define.ExportMode("w") 
    ; 

    _RootFolder = Path; 
    //Objektbaum definition 
    _ValueList.addEnd("Forms"); 
    _ValueList.addEnd("Reports"); 
    _ValueList.addEnd("Queries"); 
    _ValueList.addEnd("Classes"); 
    _ValueList.addEnd("Macros"); 
    _ValueList.addEnd("Jobs"); 
    _ValueList.addEnd(@"Data Dictionary\Tables"); 
    _ValueList.addEnd(@"Data Dictionary\Maps"); 
    _ValueList.addEnd(@"Data Dictionary\Views"); 
    _ValueList.addEnd(@"Data Dictionary\Extended Data Types"); 
    _ValueList.addEnd(@"Data Dictionary\Base Enums"); 

    _ListIterator = new ListIterator(_ValueList); 
    info(strfmt("RootExportPath: %1",_RootFolder)); 

    // durch die zuvor definierte Liste laufen 
    while(_ListIterator.more()) 
    { 
     try 
     { 
      info(strfmt(@"\%1",_ListIterator.value())); 
      //Haupttreenode objekt laden 
      _TreeNode = TreeNode::findNode(strfmt(@"\%1",_ListIterator.value())); 

      if (_TreeNode != null) 
      { 
       //Splitten des HauptNodes 
       _TreeNodeIt = _TreeNode.AOTiterator(); 
       _InnerTreeNode = _TreeNodeIt.next(); 
       //Durchlaufen der SubNodes 
       info(strfmt("Object found in Node: %1 ",_TreeNode.AOTchildNodeCount())); 
       while(_InnerTreeNode) 
       { 
        //Pfad und Filename bereitstellen 
        _FolderName = strfmt(@"%1\%2",_RootFolder,strreplace(_ListIterator.value(),@" ","_")); 
        _FileName = strfmt(@"\%1.xpo",strreplace(_InnerTreeNode.AOTname(),@" ","_")); 
        //Fileperms setzen ("w") = Write (OverWrite) 
        _Perm = new FileIoPermission(_FolderName+_FileName , #ExportMode); 
        if (_Perm == null) 
        { 
         return; 
        } 

        _Perm.assert(); 

        try 
        { 
         if(!WinApi::pathExists(_FolderName)) 
         { 
          if(WinApi::createDirectory(_FolderName)) 
          { 
           throw error(strfmt("Pfad konnte nicht erstellt werden %1\n",_FolderName)); 
          } 
          if(!WinApi::pathExists(_FolderName)) 
          { 
           throw error(strfmt("Fehler beim erstellen des Pfades %1\n",_FolderName)); 
          } 
         } 
         //Export in definierten Filename 
         if(WinApi::fileLocked(_FolderName+_FileName)) 
         { 
           throw error("File ist ReadOnly\n"); 
         } 
         _InnerTreeNode.treeNodeExport(_Foldername+_FileName); 
        } 
        catch 
        { 
         error(strfmt(@"xpo File %1 konnte nicht geschrieben werden\n",_FolderName+_Filename)); 
         throw error("Abbruch des Jobs\n"); 
        } 
        CodeAccessPermission::revertAssert(); 

        _InnerTreeNode = _TreeNodeIt.next(); 
       } 
       // BP deviation documented. 
       _TreeNode.treeNodeExport(_FileName); 
      } 
      else 
      { 
       error(strfmt("TreeNode empty %1",_ListIterator.value())); 
      } 
     } 
     catch 
     { 
      throw error("Fehler in der Verarbeitungsroutine\n"); 
     } 
     _ListIterator.next(); 
    } 
} 
+0

Что вы хотите сказать? –

ответ

0

Формы не могут быть экспортированы пакетным сервером, потому что форма не загружается. Это немного странно, но пакетный сервер вызывает только классный слой в AOT ... Формы ar hirarchical top of it и т. Д. Не экспортируются.

0

Имеется ли папка «Формы» в вашем местоположении экспорта?

Вы пытаетесь установить разрешения в папке, прежде чем проверять ее существование и создать ее.

Смежные вопросы