Tuesday, December 1, 2009

How to add all descendant classes to a new project

I bumped into the problem of a class compilation with no licence for X++ source code.

Forward compile option is not enough to make my changes working. Thus I need to export-import all descendant classes as well as the class I changed - FormLetter in my case.

I therefore have to add all these classes to my project. Natural laziness saved me again from this manual work.

I hope this short job inspired by system class SysCompilerOutput and miklenew's job from AXForum will help you in similar situations.






// add to a new project all descendant classes for forward compilation
public static void SISCreateCompileForwardProject(Args _args)
{
#AOT
str project = 'SIS_CompileForward';
SysCompilerOutput sysCompilerOutput;
Dictionary dictionary = new Dictionary();
DictClass dictClass = new DictClass(className2Id("Formletter"));
int numOfClasses = dictionary.classCnt();
ProjectNode sharedProjects;
ProjectNode newProject;

void addToProjectForwardClass(DictClass _dictClass, Dictionary _dictionary, int _numOfClasses)
{
ClassNode classNode;
DictClass dictClassLoop;
DictClass childClass;
int i;
;
if (_dictClass)
{
classNode = infolog.findNode(#ClassesPath + #AOTDelimiter + _dictClass.name());

if (classNode)
{
newProject.addUtilNode(UtilElementType::Class, classNode.name());

for (i=1; i <= _numOfClasses; i++)
{
dictClassLoop = _dictionary.classObject(_dictionary.classCnt2Id(i));

if (dictClassLoop.extend() == _dictClass.id())
{
childClass = new DictClass(dictClassLoop.id());
addToProjectForwardClass(childClass, _dictionary, _numOfClasses);
}
}
}
}
}
;

sharedProjects = infolog.projectRootNode().AOTfindChild('Shared');
sharedProjects.AOTAdd(project);
newProject = sharedProjects.AOTfindChild(project);
newProject.loadForInspection();
newProject = newProject.getRunNode();
addToProjectForwardClass(dictClass, dictionary, numOfClasses);
newProject.AOTsave();


}

Tuesday, October 20, 2009

Microsoft Brain

Yesterday, I was at a seminar about Microsoft Sharepoint Portal Services organized by Montreal community of .Net developers.

The presentation was good and interesting as usual. At the end of it they raffled three books about Best Practice for MOSS and one licence of Visual Studio 2008. However, yet there was one other prize that I got - Microsoft brain.

I am shocked how small it is...



picture borrowed from somebody

Thursday, July 16, 2009

Set 1920x1080x60 Resolution for LG LCD (VGA)

After installation of Ubuntu 9.04 I got a problem with my LCD as a second monitor to my Toshiba laptop. The resolution should have been 1920x1080 as a maximum but was 1280x768 indeed.

With a little help of my friend and this article I managed to add this absent line into xorg.conf file.

I am not sure about all these numbers in the following script for Terminal but it works as a charm.

sudo cvt 1920 1080 60 # 1920x1080 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz Modeline "1920x1080" 193.25 1920 2056 2256 2592 1080 1203 1209 1245 -hsync +vsync

sudo xrandr --newmode "1920x1080" 193.25 1920 2056 2256 2592 1080 1203 1209 1245 -hsync +vsync

sudo xrandr --addmode VGA "1920x1080"


Now, you can easily set it in Display Setting utility.

Tuesday, May 5, 2009

Code Camp Montreal 2009: Les meilleures pratiques de développement logiciel

Have you already registred? I have

http://codecampmontreal2009.eventbrite.com/


Informations
Date : Samedi 30 mai 2009
Heure : 8h30 à 17h00
Endroit : Marriott Château Champlain au centre ville (Carte), salles Viger A-B-C.
Stationnement: Payant. Le 1000 de la Gauchetière qui est juste à côté de l'hôtel offre un tarif réduit le week-end.
Métro: Bonaventure (ligne orange)
Coût : gratuit
Repas: non inclus
Thème : Les meilleures pratiques de développement logiciel.
Organisé par la Communauté .NET Montréal

Monday, May 4, 2009

Developer for Microsoft Dynamics AX Certification Roadmap

Microsoft Certified Business Management Solutions Professional - Developer for Microsoft Dynamics AX

MB6-819 AX 2009 Development Introduction

MB6-821 AX 2009 MorphX Solution Development

Collection 80011AE: Development I in Microsoft Dynamics AX 2009 (4 Hours)

Development I – Architecture

Development I - Data Dictionary

Development I - User Interfaces

Development I - Report Adjustments


Collection 80012AE: Development II in Microsoft Dynamics AX 2009 (3 Hours)

Development II - X++ Overview

Development II - Classes and Objects

Development II - X++ Control Statements

Development II - X++ Control Statements

Development II - Accessing the Database

Development II - Exception Handling

Development II - Appendix


MB6-820 AX 2009 Installation & Configuration

80019AE: Installation and Configuration for Microsoft Dynamics AX 2009 (6 Hours)

Installation and Configuration - Overview

Installation and Configuration - Planning Microsoft Dynamics AX Install

Installation and Configuration - Installing and Deploying Enterprise Portal

Installation and Configuration - Installing AIF Web Services

Installation and Configuration - Initializing Microsoft Dynamics AX

Installation and Configuration - Installing the Base System

Installation and Configuration – Deploying

Installation and Configuration - Installing and Deploying Workflow

Installation and Configuration - Install Microsoft Dynamics AX Reporting

MB6-825 AX 2009 Enterprise Portal Development

(-)

MB6-817 AX 2009 Trade & Logistics

80024AE: Trade and Logistics I in Microsoft Dynamics AX 2009 (9 Hours)

Trade and Logistics I - Introduction

Trade and Logistics I - Inventory

Trade and Logistics I - Purchase Orders and Purchase Order Posting

Trade and Logistics I - Serial and Batch Numbers

Trade and Logistics I - Item Arrival and Registration

Trade and Logistics I - Quarantine Management

Trade and Logistics I - Vendor Returns

Trade and Logistics I - Sales Orders and Sales Order Posting

Trade and Logistics I - Sales Order Picking

Trade and Logistics I - Over/Under Delivery and Miscellaneous Charges

Trade and Logistics I - Customer Returns

80025AE: Trade and Logistics II in Microsoft Dynamics AX 2009 (8 Hours)

Trade and Logistics II - Customer and Vendor Trade Agreements

Trade and Logistics II - Inventory Reporting and Statistics

Trade and Logistics II - Purchase Requisitions

Trade and Logistics II - Request for Quote

Trade and Logistics II - Transfer Orders

Trade and Logistics II - Sales Quotations

Trade and Logistics II - Quality Management

Trade and Logistics II - Reservations

Trade and Logistics II - Commissions

Trade and Logistics II - Inventory Journals

80010AE: Bill of Material in Microsoft Dynamics AX 2009 (6 Hours)

Bill of Materials - BOM Overview

Bill of Materials - Create Simple BOMs

Bill of Materials - Reports and Other BOM Functionality

Bill of Materials - Report a BOM as Finished

Bill of Materials - Scrap and Measurement

Bill of Materials - BOM Calculations

Bill of Materials - Creating BOMs with Versions

Bill of Materials - Sales Orders and BOMs

Bill of Materials - Working with BOM and Item Configurations

Full list of AX2009 exams

Thursday, April 30, 2009

How To Restrict Form Setup Conext Menu Item

To resrtict Form Setup context menu item you should:

Create security key, for example, SysSetupFormPermission




Add this key to SysSetupForm control tab



Create a new user group supposed to be restricted




Uncheck the key




A user included in the group will still have the context menu item
but will see an empty form




Thursday, April 9, 2009

Launching and closing Internet Explorer

One can run Internet Explorer in visible or invisible mode, then navigate any url and close the application, finally.

static void TestIE(Args _args)
{
COM c = new COM("InternetExplorer.Application");
str url = "http://msdn.microsoft.com/en-us/library/ms952618.aspx";
;
c.navigate(url);
c.visible(true);
if (DialogButton::Yes == BOX::YesNo("To close the browser press Yes", DialogButton::Yes))
{
info(strfmt("Job is done"));
c.quit();
}
}