AOTVersionControl
From Axaptapedia
AOTVersionControl is a tool which integrates VSS and AOT
Contents
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]
- Axapta 3.0
- VSS 6.0
Installation[edit]
- import XPO
- add the VCS_VersionControl menu to the SysContextMenu menu
- restart Axapta
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>