Saturday, March 20, 2010
Sunday, March 14, 2010
The XPO and the video is also uploaded in SkyDrive . You need to have internet connection to make this work.
Happy DAX-ing :-)
Labels: How To's
Friday, March 12, 2010
Big bang - Implementation happens in a single instance. All users move to the new system on a given date.
Phased rollout - Changeover occurs in phases over an extended period of time. Users move onto new system in a series of steps.
Parallel adoption - Both the legacy and new ERP system run at the same time. Users learn the new system while working on the old.
Tuesday, March 9, 2010
Recently I was working on a POC which required me to insert 1,00,000 records into AX 2009 from an external LOB application and post these lines in AX. Well that got me thinking since it was a huge amount of import. .NET BC would be very slow, excel import would not be feasible. Direct SQL inserts seemed to be the feasible solution but I had to deal with RecId, RecVersionId & Company. Well after much R&D I hit upon using SSIS and some custom scripts to get the data inside AX. My test environment was:
Environment: WIN 2008 Enterprise 32 Bit, 4 GB RAM, MSSQL 2008 Developer SP1, AX 2009 SP1.
Test Dataset: 1,00,000 records into a table in a separate database in SQL 2008.
Objective: Insert these records in AX 2009.
Results: Inserted 1,00,000 records inside AX 2009 in 13.6 seconds (along with RecId, RecVersionId & DataAreaId). Used SSIS to bulk insert the records.
So how I went forward??
1. Created a sample database & sample table and populated with demo data.
The script for sample table create is as follows.
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[tbl_PortalTrans]( [TransactionId] [nvarchar](20) NOT NULL, [TransactionReference] [nvarchar](30) NULL, [TransactionAmount] [numeric](28, 13) NULL) ON [PRIMARY]
The script for sample data in the above table is as follows.
declare @counter int
set @counter = 0
while @counter <>
set @counter = @counter + 1
insert into tbl_PortalTrans values ('TRID-'+cast(@counter as char),'Transaction Ref : ' + cast(@counter as char),
2. Created a sample target table & form in AX 2009.
This would be the ultimate target of these 1,00,000 records from the source table. The source xpo is attached in the download url.
3. Created a SSIS package to extract, transform & load data in AX 2009.
This was the meat of the application. I creates a SSIS package which reads the source tables, uses a few transformations to add extra columns to the data, use the custom script to generate the recid’s on the fly and finally push it inside AX 2009. I have also uploaded the VS 2008 SSIS package.
SSIS Control Flow objects.
SSIS Data Flow objects.
I’m also attaching a video on how this works :-)
The source files are present below at Sky drive. In case you want to use the package, you need to have a good understanding about SSIS 2008 in order to modify the package. To use it, please modify the package. The upload also contains the AX 2009 XPO files and scripts for creating the Source Table & demo data. The files also contain a detailed video.
Happy DAX-ing :)
Labels: How To's
Sunday, March 7, 2010
This is one book I wish was published a few years back when I was learning Dynamics AX. During that time there was a real crisis for AX related literature that I had to learn everything the hard way and it would have been really good had I got this book then :). This book is the first one of its class in the Dynamics AX Technology Books family and is a must read resources for new or experienced developers.
Mindaugas has done a really good job of compiling technical 'how to's' in this book. It has 6 chapters and each chapter focusses on how to do simple things in X++. What I like most it apart from just X++ codes, it also explains how it works and some sections on 'There's more'. The book covers the following chapters:
Chapter 1: Processing Data
Chapter 2: Working with Forms
Chapter 3: Working with Data in Forms
Chapter 4: Building Lookups
Chapter 5: Processing Business Tasks
Chapter 6: Integration with Microsoft Office
My favourite is Chapter # 5 which explains and demonstrates the Ledger, Purch & Sales API's which helps a developer to integrate with base AX. This is one area where I have seen developers struggle and this chapter does a good job of demonstrating the intricacies.
You can also view a Free Chapter here.
Code Download for the book is available here.
Click on the image below to go to Packt Site.
This is a really super(); book and I recommend it for new developers and also for advanced developers as a ready reference guide. I hope in the next release of this book (AX 6) additional topics like .NET integration, Reald world X Platform integration , AIF samples are also covered. Great work Mindaugas.