Create a project from items checked out with the version control
I regularly install a new build of AX, so I have to export and import the stuff I'm working on. I have written the following job to help me create a Private Project of whatever is checked out.
static void SysCreatePendingObjectsProject(Args _args)
{
Dialog dialog;
DialogField dialogFieldProjectName;
SysProjectFilterRunBase upgradeProject;
SysVersionControlTmpItem item;
TreeNode treeNode;
UtilElements utilElements;
void createProject(SysElementName _projectName)
{
ProjectNode upgradeNode;
upgradeNode = SysTreeNode::createProject(_projectName);
upgradeProject = new SysProjectFilterRunBase();
upgradeProject.parmProjectNode(upgradeNode);
upgradeProject.grouping(SysProjectGrouping::AOT);
}
void getCheckedOutItems()
{
item = versioncontrol.getCheckedOutItems();
}
void addItems()
{
while select item
where item.ItemPath != ''
{
if (SysVersionControlTmpItem::isTreenode(item.InternalFilename))
{
treeNode = TreeNode::findNode(item.ItemPath);
utilElements = xUtilElements::findTreeNode(treeNode, false);
upgradeProject.doUtilElements(utilElements);
}
}
} ;
dialog = new Dialog();
dialogFieldProjectName = dialog.addField(typeId(SysElementName));
if (dialog.run())
{
createProject(dialogFieldProjectName.value());
getCheckedOutItems();
addItems();
upgradeProject.write();
}
}
There is one catch with this job though. It doesn't include the new elements I haven't "Created" yet, which is a bit of a problem if that is something you tend to forget. It's on my to-do list.
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm