AOTVersionControl

AOTVersionControl is a tool which integrates VSS and AOT

download (20k)

Features

 * 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

 * Axapta 3.0
 * VSS 6.0

Installation

 * import XPO
 * add the VCS_VersionControl menu to the SysContextMenu menu
 * restart Axapta

Configuration

 * 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

Import your existing AOT items

 * 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
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

Use Axapta compare tool instead of external diff
Example job: 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); }