AOTVersionControl

From Axaptapedia
Jump to: navigation, search

AOTVersionControl is a tool which integrates VSS and AOT

download (20k)

History window
Winmerge runned from AOT Version Control

Features[edit]

  • store XPO of selected AOT item in VSS
  • allows to view history of changes (checkins)
  • can be integrated with diff tools (such as WinMerge) to view changes

Prerequesits[edit]

Installation[edit]

Configuration[edit]

  • Right click on the any AOT item
  • select Add-Ins \ Version control \ Parameters
  • insert a record (record with the empty user name are default paramaters for each user)
  • set the following fields:
    • clear user names values
    • path to database (for example \\AXAPTA\vss$\srcsafe.ini)
    • VSS project (for example Axapta\Application - is's the path to the existing project on the VSS)
  • insert another record (your personal settings)
  • set the following fields:
    • working folder - path to the existing folder where XPOs will be exported to (for example С:\axapta\myApplication)
    • user name - your user name in the VSS
    • password - your password in the VSS
    • path top diff - path to the diff tool you ae using (for example C:\Program Files\WinMerge\WinMergeU.exe)
    • save this record

Usage[edit]

Import your existing AOT items[edit]

  • run VCS_ImportLayer from AOT
  • change layer to the value you want to import (usr for example)
  • write comment ("initial import", for example)
  • press OK
  • wait

other[edit]

All standard actions are under Add-Ins \ Version control submenu of the contect menu of AOT items.

All actions do the following:

  • find a set of exportable AOT items (for example if you are checking in a method, it will check in the class; if you check in Classes node of your project it will check in all classes; and if you check in a project it will check in project structure and all its contents if recursive checkbox is set)
  • perform the action

TODO[edit]

Use Axapta compare tool instead of external diff[edit]

Example job: <xpp> static void Test_Compare(Args _args) {

   #AotExport
   #File
   TreeNode                        treeNodeImport  = NULL;
   int                             exportId;
   int                             flag            = (#impGetCompareNode +  #impKeepIds);
   SysCompare compare=new SysCompare();
   SysContextMenuAotImportDialog context;
   SysCompareItem                  sysCompareItem  = new SysCompareItem();
   str fileName=@'D:\0\WW_ProjectListForm.xpo';
   int getFilePositionOfTheFirstElement(str _fileName)
   {
       AsciiIO io=new AsciiIO(fileName, 'r');
   ;
       io.inFieldDelimiter(#delimiterEnter);
       io.inRecordDelimiter(#expEndRecord);
       io.read();
       return (io.status() == IO_Status::Ok) ? (io.filePosition() - strLen(#expEndRecord)): 0;
   }
   exportId        = infolog.startImport(fileName, flag);
   treeNodeImport  = infolog.getImportedNode(exportId, 
       UtilFileType::Application, 
       UtilElementType::Form, 
       'WW_ProjectListForm', getFilePositionOfTheFirstElement(fileName) , flag);
   infolog.endImport(exportId, 1);
   sysCompareItem.treeNode1(TreeNode::findNode(@'\Forms\WW_ProjectListForm'));
   context=new SysContextMenuAotImportDialog(sysCompareItem, treeNodeImport);
   compare.init(context);

} </xpp>