Showing posts with label AX 2009. Show all posts
Showing posts with label AX 2009. Show all posts

Monday, September 6, 2010

Enable User ID from SQL in AX 2009

Enabling user Id in Axapta 3.0 from SQL was easy you need to update enable field to 1 only this but in AX 2009 if coincidently you have disable userID having Administrator access then updating enable filed will not work few days back coincidently i had done the same :) disabled my ID now being only user having administrator privledge i got stuck.

Now to enable it from back end SQL you need to update enable flag to 1 and provide SID in UserInfo table to get SID you can user following job as provided in Screenshot in some other application in  but in same domain



then use following query in SQL 

select * from USERINFO where  ID = 'secu'

update USERINFO set ENABLE = 1 where ID = 'secu'

update USERINFO set SID = 'S-1-5-21-2656439898-1577874530-2966910584-8962' where ID = 'secu' 

all this to enable from SQL ...........
Cheerz.......

Friday, May 14, 2010

Microsoft Dynamics Convergence 2010 Web Seminar Series

Take time to review these highly rated web seminars from the Convergence Virtual Partner Briefing. They will give you important updates on upgrades & renewals, how to compete effectively against NetSuite, Partner Development Centers, new MPN requirements and Partner Business Systems.

Microsoft Dynamics Convergence 2010 Web Seminar Series

*Require partner source login

Tuesday, February 23, 2010

Create formated Excel reports from Ax 2009

Extracting Excel reports from Dynamics AX 2009 is easier task but client ask for formatted reports developers face a problem in generating a report directly in excel as per client requirement as:
1. Borders
2. interiors
3. Bold/Italicheader
4. image in excel
5. Fonts
6. Underline










Below class can be used to generate the reports copy the code in text file and save in xpo import the file in Dynamcis AX 2009

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: CLS

; Microsoft Dynamics AX Class: ExcelReporter unloaded
; --------------------------------------------------------------------------------
CLSVERSION 1

CLASS #ExcelReporter
Id 30095
PROPERTIES
Name #ExcelReporter
Extends #
RunOn #Called from
ENDPROPERTIES

METHODS
Version: 3
SOURCE #classDeclaration
#class ExcelReporter
#{
# COM excelApplication;
# COM excelWorkBooks;
# COM excelWorkBook;
# COM excelWorkSheets;
# COM excelWorkSheet;
# COM excelCell;
# COM Module;
# COM range;
# COM Borders;
# COM Border;
# COM font;
# COM styles;
# COM style;
# COM interior;
# COM entireColumn;
# COM formula;
#
# COM AutoFilter;
# COM EnableAutoFilter ;
#
# COM excelCharts;
# COM excelChart;
#
# COM ActiveChart;
# COM ChartObjects;
# COM WrapText;
# COM ColoumnWidth;
#
#
# int lineNum;
#
# Array arr;
#
# str sCode;
# int ColNameLen;
#
#
#}
ENDSOURCE
SOURCE #ColoumnWidth
#void ColoumnWidth(COM _range,int Value)
#{
# ColoumnWidth = _range.ColoumnWidth(value);
#}
ENDSOURCE
SOURCE #companyLogo
#display Bitmap companyLogo()
#{
# CompanyInfo companyInfo = CompanyInfo::find();
# ;
#
# return CompanyImage::find(companyInfo.DataAreaId, companyInfo.TableId, companyInfo.RecId).Image;
#}
ENDSOURCE
SOURCE #getColChar
#str getColChar(int _num)
#{
# int basePosition = 0;
# int Counts;
# str char;
# int expo;
# boolean flagfound;
#
#
# if(_num > 16384)
# throw error('Not Supported by the system');
#
# ColNameLen = 1;
# while(_num > power(26,ColNameLen))
# {
# ColNameLen = ColNameLen + 1;
# }
#
#
# while(!flagfound)
# {
# switch(_num)
# {
# case 1+basePosition :
# char = 'A';
# break;
#
# case 2+basePosition :
# char = 'B';
# break;
#
# case 3+basePosition :
# char = 'C';
# break;
#
# case 4+basePosition :
# char = 'D';
# break;
#
# case 5+basePosition :
# char = 'E';
# break;
#
# case 6+basePosition :
# char = 'F';
# break;
#
# case 7+basePosition :
# char = 'G';
# break;
#
# case 8+basePosition :
# char = 'H';
# break;
#
# case 9+basePosition :
# char = 'I';
# break;
#
# case 10+basePosition :
# char = 'J';
# break;
#
# case 11+basePosition :
# char = 'K';
# break;
#
# case 12+basePosition :
# char = 'L';
# break;
#
# case 13+basePosition :
# char = 'M';
# break;
#
# case 14+basePosition :
# char = 'N';
# break;
#
# case 15+basePosition :
# char = 'O';
# break;
#
# case 16+basePosition :
# char = 'P';
# break;
#
# case 17+basePosition :
# char = 'Q';
# break;
#
# case 18+basePosition :
# char = 'R';
# break;
#
# case 19+basePosition :
# char = 'S';
# break;
#
# case 20+basePosition :
# char = 'T';
# break;
#
# case 21+basePosition :
# char = 'U';
# break;
#
# case 22+basePosition :
# char = 'V';
# break;
#
# case 23+basePosition :
# char = 'W';
# break;
#
# case 24+basePosition :
# char = 'X';
# break;
#
# case 25+basePosition :
# char = 'Y';
# break;
#
# case 26+basePosition :
# char = 'Z';
# break;
# }
# if(char)
# flagfound = true;
#
# if(basePosition)
# counts = counts + 1;
#
# basePosition = basePosition + 26;
# }
#
#
# if(strlen(char) < ColNameLen)
# char = this.getColChar(counts) + char;
#
# return char;
#
#}
#
#
#
#
#
#
#
#
#
#
#/* switch(_num)
# {
# case 1 :
# return 'A';
# break;
#
# case 2 :
# return 'B';
# break;
#
# case 3 :
# return 'C';
# break;
#
# case 4 :
# return 'D';
# break;
#
# case 5 :
# return 'E';
# break;
#
# case 6 :
# return 'F';
# break;
#
# case 7 :
# return 'G';
# break;
#
# case 8 :
# return 'H';
# break;
#
# case 9 :
# return 'I';
# break;
#
# case 10 :
# return 'J';
# break;
#
# case 11 :
# return 'K';
# break;
#
# case 12 :
# return 'L';
# break;
#
# case 13 :
# return 'M';
# break;
#
# case 14 :
# return 'N';
# break;
#
# case 15 :
# return 'O';
# break;
#
# case 16 :
# return 'P';
# break;
#
# case 17 :
# return 'Q';
# break;
#
# case 18 :
# return 'R';
# break;
#
# case 19 :
# return 'S';
# break;
#
# case 20 :
# return 'T';
# break;
#
# case 21 :
# return 'U';
# break;
#
# case 22 :
# return 'V';
# break;
#
# case 23 :
# return 'W';
# break;
#
# case 24 :
# return 'X';
# break;
#
# case 25 :
# return 'Y';
# break;
#
# case 26 :
# return 'Z';
# break;
#
#
#
#
#
# }
#
#}
#*/
#
ENDSOURCE
SOURCE #insertHeader
#void insertHeader(Types _types,
# int _idx,
# str _xlRowCol,
# str _value)
#{
# arr = new Array(_types);
# arr.value(_idx,_value);
# range = excelWorkSheet.Range(_xlRowCol);
# range.value2(COMVariant::createFromArray(arr));
#}
#
#
#
#
ENDSOURCE
SOURCE #insertImage
#void insertImage(int _idx,
# str _xlRowCol,
# Bitmap _value)
#{
# ;
# range = excelWorkSheet.Range(_xlRowCol);
# range.value(_value);
#}
#
#
#
#
ENDSOURCE
SOURCE #new
#void new()
#{
# ;
# excelApplication = new COM("excel.application");
# excelWorkBooks = excelApplication.workBooks();
# excelWorkBook = excelWorkBooks.add();
# excelWorkSheets = excelWorkBook.worksheets();
# excelWorkSheet = excelWorkSheets.add();
#
#}
ENDSOURCE
SOURCE #variant2COM
#void variant2COM(COM _COM, COMVariant _variant)
#
# {
#
# _COM.attach(_variant.iDispatch());
#
# }
#
ENDSOURCE
SOURCE #xlAllBorder
#void xlAllBorder(COM _range,int _weight)
#{
# Borders = _range.Borders();
# Border = Borders.Item(2);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(9);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
#}
ENDSOURCE
SOURCE #xlAutoFilter
#void xlAutoFilter(str _xlRowCol,
# boolean _Filter)
#
#
#
#{
# ;
# range = excelWorkSheet.Range(_xlRowCol);
#
#}
ENDSOURCE
SOURCE #xlAutoFit
#void xlAutoFit(COM _range)
#{
# entireColumn = _range.entireColumn();
# entirecolumn.autofit();
#}
ENDSOURCE
SOURCE #xlBotBorder
#void xlBotBorder(COM _range)
#{
# Borders = _range.Borders();
# Border = Borders.Item(9);
# Border.lineStyle(7);
# Border.Weight(3);
#}
ENDSOURCE
SOURCE #xlBoxBorder
#void xlBoxBorder(str _row,str _coll,int _weight)
#{
# int rowNum = any2int(strdel(_row,1,1));
# int collNum = any2int(strdel(_coll,1,1));
# str row = strdel(_row,2,strlen(_row));
# str coll = strdel(_coll,2,strlen(_coll));
#
# Com _range;
# // top
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",coll,rownum));
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // left
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",row,collnum));
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // right
# _range = excelWorkSheet.Range(strfmt("%1%2",num2char(char2num(coll,1)+1),rownum),strfmt("%1%2",num2char(char2num(coll,1)+1),collnum));
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // bottom
# _range = excelWorkSheet.Range(strfmt("%1%2",row,collnum+1),strfmt("%1%2",coll,collnum+1));
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#}
#
ENDSOURCE
SOURCE #xlChart
#void xlChart(str _xlRowCol,
# str _Text)
#
#
#{
#
#}
ENDSOURCE
SOURCE #xlClose
#void xlClose()
#{
# excelApplication.quit();
#}
ENDSOURCE
SOURCE #xlCreateHeader
#Array xlCreateHeader(Array _arr,
# int _idx,
# str _value)
#{
# _arr.value(_idx,_value);
# return _arr;
#}
#
#
#
#
ENDSOURCE
SOURCE #xlFormatCell
#void xlFormatCell(str _xlRowCol,
# int _fontSize,
# boolean _bold,
# boolean _italic,
# boolean _strikethrough,
# int _underline,
# boolean _Subscript,
# boolean _Superscript,
# str _fontname)
#
#
#
#
#{
# ;
# range = excelWorkSheet.Range(_xlRowCol);
# font = range.Font();
# font.Size(_fontSize);
# font.bold(_bold);
# font.italic(_italic);
# font.underline(_underline);
# font.strikethrough(_strikethrough);
# font.Subscript(_Subscript);
# font.Superscript(_Superscript);
# font.name(_fontname);
#
#}
#
ENDSOURCE
SOURCE #xlFormula
#void xlFormula(str _xlRowCol)
#{
# ;
# range = excelWorkSheet.Range(_xlRowCol);
#
# formula = range.formula();
#}
#
ENDSOURCE
SOURCE #xlFormulan
#COM xlFormulan()
#{
# ;
# formula = range.formula();
# return formula;
#}
#
ENDSOURCE
SOURCE #xlGridBorder
#void xlGridBorder(COM _range,int _weight)
#{
# Borders = _range.Borders();
# Border = Borders.Item(2);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(9);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# Borders = _range.Borders();
# Border = Borders.Item(3);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
#}
ENDSOURCE
SOURCE #xlHorizontaltBorder
#void xlHorizontaltBorder(str _row,str _coll,int _weight)
#{
# int rowNum = any2int(strdel(_row,1,1));
# int collNum = any2int(strdel(_coll,1,1));
# str row = strdel(_row,2,strlen(_row));
# str coll = strdel(_coll,2,strlen(_coll));
#
# Com _range;
# // top
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",coll,rownum));
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // left
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",row,collnum));
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // right
# _range = excelWorkSheet.Range(strfmt("%1%2",num2char(char2num(coll,1)+1),rownum),strfmt("%1%2",num2char(char2num(coll,1)+1),collnum));
#
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# // bottom
# _range = excelWorkSheet.Range(strfmt("%1%2",row,collnum+1),strfmt("%1%2",coll,collnum+1));
#
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
# _range = null;
#
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",coll,collnum));
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",coll,collnum));
# Borders = _range.Borders();
# Border = Borders.Item(9);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
# Borders = null;
# border = null;
#
# _range = excelWorkSheet.Range(strfmt("%1%2",row,rownum),strfmt("%1%2",coll,collnum));
# Borders = _range.Borders();
# Border = Borders.Item(3);
# Border.lineStyle(7);
# Border.Weight(_weight);
#
#}
ENDSOURCE
SOURCE #xlInsert
#void xlInsert(Types _types,
# int _row,
# int _col,
# str _value)
#{
# excelcell = excelworksheet.cells();
# this.variant2COM(excelcell, excelcell.item(_row,_col));
# excelcell.value2(_value);
#}
#
#
#
#
ENDSOURCE
SOURCE #xlInsertArr
#void xlInsertArr(Array _arr,
# str _xlRowCol)
#{
# ;
# range = excelWorkSheet.Range(_xlRowCol);
# range.value2(COMVariant::createFromArray(_arr));
#}
ENDSOURCE
SOURCE #xlInsertss
#void xlInsertss(Types _types,
# int _row,
# int _col,
# str _value)
#{
# str xlcol = this.getColChar(_col);;
# arr = new Array(_types);
# arr.value(1,_value);
# range = excelWorkSheet.Range(strfmt("%1%2",xlcol,_row));
# range.value2(COMVariant::createFromArray(arr));
#}
#
#
#
#
ENDSOURCE
SOURCE #xlInsertTblArr
#Array xlInsertTblArr(Common _common,
# int _refFieldId,
# Array _arr,
# int _idx)
#{
# dictIndex dictIndex ;
# ;
#
# dictIndex = new DictIndex(_common.tableId,_refFieldId);
# _arr.value(_idx,_common.(dictIndex.field(_refFieldId)));
#
# return _arr;
#}
ENDSOURCE
SOURCE #xlInterior
#void xlInterior(str _xlRowCol,
# int _Index)
#{
#
# ;
# range = excelWorkSheet.Range(_xlRowCol);
# interior = range.interior();
#
# interior.colorIndex(_Index);
#
#}
ENDSOURCE
SOURCE #xlLeftBorder
#void xlLeftBorder(COM _range)
#{
# Borders = _range.Borders();
# Border = Borders.Item(2);
# Border.lineStyle(7);
# Border.Weight(3);
#}
ENDSOURCE
SOURCE #xlRange
#com xlRange(str _row, str _col)
#{
# ;
# range = excelWorkSheet.Range(_row,_col);
# return range;
#}
ENDSOURCE
SOURCE #xlrightBorder
#void xlrightBorder(COM _range)
#{
# Borders = _range.Borders();
# Border = Borders.Item(1);
# Border.lineStyle(7);
# Border.Weight(3);
#}
ENDSOURCE
SOURCE #xlShow
#void xlShow()
#{
# excelApplication.visible(true);
#}
ENDSOURCE
SOURCE #xlStyle
#void xlStyle(Com _range,Int _color,str _styleName)
#{
# styles = null;
# style = null;
# interior = null;
# styles = excelWorkBook.styles();
# style = styles.add(_styleName);
# interior = style.interior();
# interior.color(_color);//WinApi::RGB2int(246, 233, 206));
# _range.style(_styleName);
#}
ENDSOURCE
SOURCE #xlTopBorder
#void xlTopBorder(COM _range)
#{
# Borders = _range.Borders();
# Border = Borders.Item(8);
# Border.lineStyle(7);
# Border.Weight(3);
#}
ENDSOURCE
SOURCE #xlWorkSheetName
#void xlWorkSheetName(str _name)
#{
# excelWorkSheet.name(_name);
#}
ENDSOURCE
SOURCE #xlWrap
#void xlWrap(COM _range)
#{
# wrapText = _range.wraptext(true);
#}
ENDSOURCE
ENDMETHODS
ENDCLASS

***Element: END

X++ Code to restrict user login multiple times in ax2009

Copy Paste the Following Code in startupPost method of info class in AOT

void startupPost()
{
// To restrict user login form second login
xSession session;
SysClientSessions SysClientSessions;
UserId currentUserId;
int counter;

;

currentUserId = curUserId();

if(currentUserId!="Admin")// Allow Admin User to login multiple time
{
while select SysClientSessions
where SysClientSessions.userId == currentUserId &&
SysClientSessions.Status == 1 // 1 : Login 0 : Logout
{
session = new xSession(SysClientSessions.SessionId, true);
if (session && session.userId())
{
counter++;
}
}

if(counter>=2)
{
Box::stop("Already Logged-in : The same user id can't log in twice.");
infolog.shutDown(true);
}
}
}


Please take backup of your application before copying code

Monday, December 1, 2008

Microsoft Dynamics AX 2009 Application Integration Framework(AIF) Benchmark

Microsoft Dynamics AX 2009 Application Integration Framework Benchmark

Microsoft Dynamics AX Application Integration Framework Benchmark exercises Core Sales Order processing thru Invoicing and GL Creation thru posting with high degree of scale

In June 2008, Microsoft Corporation conducted the Microsoft Dynamics® AX 2009 Application Integration Framework (AIF) benchmark to measure the performance and scalability characteristics of Microsoft Dynamics® AX 2009 in a simulated distribution scenario. This benchmark exercised core Accounts Receivables scenario involving sales order creation thru AIF and invoicing of sales orders thru batch jobs. It also exercised core General Ledger scenario involving journal creation thru AIF and posting of journals thru batch jobs. The scenarios generated load on Application Object Server (AOS)—in this benchmark, each AOS instance was hosted on a separate server. In a Microsoft Dynamics® AX system, the AOS processes business logic in communication with clients and the database; the database server provides data to the AOS.

For more information and download please check the following link AX 2009 Application Integration Framework Benchmark

Microsoft Dynamics Snap sample applications for Microsoft Dynamics AX 2009

Release of Microsoft Dynamics Snap sample applications for use with Microsoft Dynamics AX 2009

These samples show the potential of integrating the 2007 Microsoft® Office system with Microsoft Dynamics® AX by providing functioning end-to-end capabilities in source code form. Partners and customers can build on these samples and use the techniques they employ to build solutions that access the data and processes in Microsoft Dynamics AX from the productivity and collaboration tools of the Microsoft Office system. Two snap applications are now available with Microsoft Dynamics AX 2009:

This release contains the following snap-in applications for use with Microsoft Dynamics AX 2009 and Microsoft Office 2007.

Offline Expense - This snap-in enables expenses to be entered in Excel while disconnected from the corporate network, and then posted to Dynamics AX at a later time. This snap-in uses WCF-based services and LINQ to retrieve data from Dynamics AX, and uses the Application Integration Framework, or AIF to send business documents to Dynamics AX.

Business Data Lookup (BDL) - This snap-in enables information workers to access data from Dynamics AX from within Excel, Word and Outlook. This snap-in is an upgrade of the BDL snap-in that was distributed with Microsoft Dynamics AX 4.0.

These applications require .Net 3.5, Microsoft Office 2007, Microsoft Visual Studio 2008 and Microsoft Dynamics AX 2009. Each snap-in contains a document describing the basic architecture, functional footprint, and deployment steps for exploring the sample code.

For more information and download please check the following link Microsoft Dynamics Snap for Dynamics AX 2009

Microsoft Dynamics AX 2009 Service Pack 1

During EMEA Convergence, the release of Microsoft Dynamics AX 2009 SP1 was announced. You can see the announcement of SP1 availability on the Microsoft Dynamics AX Landing Page on PartnerSource.

Similarly, you can see the announcement on the Microsoft Dynamics AX Landing Page on CustomerSource.

With the download of Microsoft Dynamics AX 2009 SP1 the following materials will be made available:

– Service Pack 1 Downloadable Package

– Downloadable Package for Updated Help Files*

– Release Notes (List of known issues)

– Updated What’s New Document – A section on SP1 is added

- Service Pack 1 Install Guide

For further details on SP1 please take the links to PartnerSource and CustomerSource announcements.

Sunday, August 10, 2008

Rapid Configuration Tool for AX 2009

The new release of Rapid Configuration Tool (RCT) for Dynamics AX2009 is now available for download at Partner Source

The Rapid Configuration Tool is integrated into Microsoft Dynamics® AX and provides key assistance to partners and customers during implementation by providing project management features, easier configuration access, communication support and documentation on how to successfully configure Microsoft Dynamics® AX.

Click here to download. (Requires Partnersource Login Access)

Monday, July 28, 2008

Upgrade from AX 3.0 , AX4.0 to AX 2009

The steps below provide a high-level overview of the tasks that you must complete to upgrade from Microsoft Dynamics AX 3.0 to Microsoft Dynamics AX 2009.

•Back up your existing database and application files.

•Import two .xpo files from the installation media to assist with data upgrade.

• UpgradeColumnList.xpo, for 32-bit to 64-bit RecId field conversion.

• LeftJustified.xpo, for removing any trailing spaces from fields.

* Note: To help improve performance, you can apply the LeftJustified.xpo on the database that you create in step 4 after you’ve used the Microsoft Dynamics AX DB Upgrade Preparation tool but before you start the Microsoft Dynamics AX 2009 AOS.

•(Optional) To help improve performance, remove all user data and logs of Microsoft Dynamics AX 3.0. For example, clean up the SysDatabaseLog table.

•Create an empty database for Microsoft Dynamics AX 2009 in SQL Server 2005.

•(Optional) To help improve performance, set initial data and log file sizes so that they don’t increase while you perform the data upgrade process.

•(Optional) To help improve performance, set the recovery model to Simple for the Microsoft Dynamics AX 2009 Database.

•Run AXDBUpgrade.exe (The Microsoft Dynamics AX DB Upgrade Preparation tool). Note: To help improve performance, you can run this tool in Multithreaded mode. For example, to run this tool in 10 threads, enter AxDbUpgrade.exe P/10 at a command prompt.

•(Optional) Apply the LeftJustify file imported in step 2 to the Microsoft Dynamics AX 2009 database created in step 4.

•Back up your Microsoft Dynamics AX database. Your database is ready to be upgraded. •Run the Microsoft Dynamics AX 2009 Setup file from the installation media. During installation, select the database that you created in step 4.

•Copy your upgraded customized file into the correct application directory.

•Start the AOS.

•Start the Microsoft Dynamics AX 2009 client. The Upgrade checklist is displayed automatically.

•Complete the steps in the Upgrade checklist to finish upgrading.

The steps below provide a high-level overview of the tasks that you must complete to upgrade from Microsoft Dynamics AX 4.0 to Microsoft Dynamics AX 2009.

- Back up your existing database and application files. - (Optional) To help improve performance, remove all user data and logs of Microsoft Dynamics AX 4.0. For example, clean up the SysDatabaseLog table.

- (Optional) To help improve performance, set initial data and log file sizes so that they don’t increase while you perform the data upgrade process.

- (Optional) To help improve performance, set the recovery model to Simple for the Microsoft Dynamics AX 2009 Database. - Back up your Microsoft Dynamics AX database. Your database is ready to be upgraded.

- Run the Microsoft Dynamics AX 2009 Setup file from the installation media. During installation, select your existing Microsoft Dynamics AX database.

- Start the Microsoft Dynamics AX 2009 client. The Upgrade checklist is displayed automatically.

- Complete the steps in the Upgrade checklist to finish upgrading.

Upgrading to Microsoft Dynamics AX 4.0 and Microsoft Dynamics AX 2009 -convergence session please check following link Click Here

Wednesday, July 9, 2008

Demo Data for Microsoft Dynamics AX 2009

The demo data for Dynamics AX 2009 has been released. Its "Contoso Entertainment Systems (CES)" . Now the Demo data comes in 2 flavours... standard dat/def & a SQL backup.

The Demo Data set for Microsoft Dynamics® AX 2009 is no longer based on the Global Trade and Manufacturing Company. Based on market feedback we have created a new Contoso Entertainment systems group of companies. It comes with 2 fiscal years of transactional data that enable us to demo our stronger Business Intelligence story and Role Center pages, while allowing us to easily expand the demo data story in future releases as we expand Microsoft Dynamics® AX’s functionality footprint.
Click the link below to download.
Demo Data for Microsoft Dynamics AX 2009 [Requires Partnersource Logon]

How Do I” Videos — Dynamics AX

On this page you will find videos designed for all Microsoft Dynamics AX developers, from the novice to the professional. New videos are added regularly, so check back often. (click here)
Microsoft has added following Videos
1. Forms Series #1 How Do I: Link Parent and Child Forms by Using Dynamic Links?(6 minutes, 47 seconds)
2. Enterprise Portal Series
#1 How Do I: Use Record Context in Enterprise Portal?(14 minutes, 51 seconds)

#2 How Do I: Create a Simple List Page in Enterprise Portal?(4 minutes, 52 seconds)

#3 How Do I: Create a Simple Task Page in Enterprise Portal?(4 minutes, 39 seconds)

#4 How Do I: Create a Simple Wizard Page in Enterprise Portal?(7 minutes, 39 seconds)

#5 How Do I: Call an X++ Class From an EP User Control?(7 minutes, 26 seconds)

#6 How Do I: Add a Range to a Dataset in an EP List Page?(5 minutes, 13 seconds)
3. User Interface Series #1 How Do I: Navigate the Client User Interface?(8 minutes, 53 seconds)
4. Application Integration Framework (AIF) Series #1 How Do I: Create a Custom AIF Pipeline Component?(7 minutes, 28 seconds)

Monday, July 7, 2008

Installing Ax 2009

Installing Microsoft Dynamics AX 2009 requires more than the installation DVD. This post will provide you with an overview of the software components and their download sources to get you better prepared for the installation.

Following Components are required to install Ax 2009

  • Microsoft Dynamics AX 2009 Release DVD ISO which You may download from download the Microsoft Dynamics 2009 Release May Edition DVD ISO file (1.7 GB in size) from PartnerSource Since it is in ISO format, you may use any Virtual DVD software to mount it as a DVD disc to use it directly or to extract the files to a physical location.

  • Microsoft .NET Framework 3.5 Microsoft Dynamics AX 2009 utilized the latest features from Windows Presentation Foundation, etc. You need to install Microsoft .NET Framework 3.5 before you are able to install Microsoft Dynamics AX 2009. The table bellow shows the options you have to get the .NET Framework 3.5 installed. Pick one that suits your need best

Microsoft .NET Framework 3.5 Live Installer

Microsoft .NET Framework 3.5 Full Package

  • Service Pack 2 for Microsoft SQL Server 2005 If you are hosting your Dynamics AX 2009 data with Microsoft SQL Server 2005, you will need Service Pack 2 or later. This service pack has been released for over a year. In case you have not updated your Microsoft SQL Server 2005 to SP2, you may download the update at Microsoft Download: SQL Server 2005 SP2.

  • Dynamics AX 2009 Demo Data Microsoft has not realeased any official demo data for Dynamics AX 2009 Release yet. but you can download and use Demo data AX 2009 CTP3 VPC Ver02

  • Microsoft Windows Sharepoint Services 3.0 with Service Pack 1 Sharepoint Services 3.0 SP1 is required to host the Role Centers and Enterprise Portal. It is not included in the Dynamics AX 2009 Installation DVD. You have an option to use Microsoft Office Sharepoint Server 2007 or Microsoft Windows Sharepoint Services 3.0. It is available for download at Microsoft Download. Windows SharePoint Services 3.0 with Service Pack 1

  • Microsoft Visual Studio 2008 Shell (isolated mode) Redistributable Package This package is required for the Reporting Extension to work. There are two Microsoft Visual Studio 2008 Shell redistributable package; isolated and integrated. Make sure you are having the isolated package. When you install this package, please note that the executable Microsoft Visual Studio 2008 Shell (isolated mode) Redistributable Package

Thursday, June 26, 2008

The Enterprise Portal team introduces new blog for Microsoft Dynamics AX 2009

The EP team has just created a blog about their stuff. These guys know their stuff, and are heavy users of managed code interoperability with X++.
Check it out http://blogs.msdn.com/epblog/