Saturday, December 1, 2012

Enabling Withhold tax functionality in AX 2012

Some of you might know that Withhold Tax is a country specific (GB, TH, SA, IE) functionality (except for limited functionality available on AP side out of the box) in AX 2012 like AX2009. In AX 2012, if you have opened up an LE with address associated with specific countries and WHT configuration key is on, you will be able to use WHT both on vendor and customer sides. However, there is a price to pay when you want to use WHT functionality in countries other than what MS has already given the localization for. For example, if you want to use WHT functionality for a customer in Egypt, besides enabling the WHT configuration key, open up an LE with Egypt address, you also need to set CountryRegionCodes property for various EDT, table, form control objects with the country code for Egypt. To enable WHT specific business logic, validations in code, you have to add the specific region code in statements like this:

if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoTH, #isoSA, #isoGB, #isoIE, ..)
{

}

Overall, it is really hectic to get the above updated on number of places in the AOT, otherwise you won't be able to leverage the complete WHT functionality in AX 2012.

Friday, November 2, 2012

ISV vertical configuration using Rapid Start Services

In an effort to push data to custom developed functionality (could be an ISV solution) in AX 2012 through rapid start services, I found rapid start really useful and extensible. In order to prove the concept, I used a sample scenario where a health care customer needs to fill in the data into Patients table through rapid start. I created couple of relevant objects in AOT as seen below:


In Rapid Start, I imported the metadata from my current AX instance using the Administer page. In the Design area, created a new functional area in rapid start with a question group and one question of type "Table" in it. As I had to load the Patients data into PatientTable, I used the Table type question that gave me the option to generate a template. Next I published the functional area.

In order to use the functional area, I had to create a template. So created a template named "Patients" and associate the functional area with it. Once this is done, created a new project in Configure area of rapid start as shown below:


Next step was to fill in the base information for my LE as shown below:


After that I was presented with the question that was created earlier for Patients data. On this page, I downloaded the template, filled it with necessary data and uploaded it.

Now the project was 100% complete and the configuration was ready to be loaded into target AX deployment. See the log results below.



For cross verification, below is what I got in the AX Patients form as expected :)



 

Wednesday, October 31, 2012

Partitions in AX 2012 R2

With the announcement of MS Dynamics AX 2012 R2 release on December 1st, 2012, MS has given a powerful feature in R2 called data partitions. Now in AX, there is a element above the company called "Partition". Just like with every new AX installation there is a default company "DAT", now there will also be a default partition called "Initial". This is really powerful feature as the companies now have the leverage to use an installed AX instance across multiple deployment sites. Couple of features associated with partitions are:

  • System data like batch, AIF, workflow is shared between partitions. This has been achieved by introducing a new table property "SaveDataPerPartition" on these tables.
  • Business data like UoM, Address Book is shared among companies within a partition only. A company can be associated with multiple partitions with the same name.
  • Users only belong to a particular partition.
  • Some drawbacks like intercompany does not work across partitions and companies across partitions can not be merged are also there. Cross company queries might not work across partitions.

Wednesday, October 3, 2012

Unpublish standard template or functional area in rapid start services for AX 2012

I recently come across a situation where I had to modify the default data given with Account Categories template in Rapid Start Services. Even with the administrative rights for the user, I was not able to unpublish the template or functional area (GL in this case). I then came to realize that MS has not given permissions to update the contents of default (hidden) templates like account categories. One can unpublish his own custom template of functional area but not the ones that come as default and for which there is no question present in the question group.

Friday, July 20, 2012

AX 2012 Data Migration Framework (beta) Configuration and Execution

Using the data migration tool is fairly simple; however, an understanding of different business entities and their data model is highly required to successfully migrate the data.
In this post, I will take a sample scenario to walk through the configuration and setup of data migration framework. We will consider couple of entities to migrate the data. Let’s assume that we need to migrate customer master data from a source system to AX 2012. Follow these steps to achieve the objective:
Navigate to Data Migration Framework module in AX 2012 application workspace. Open Setup>Target entities form.

The target entities out of the box available are listed in this form. You can select an entity and modify its staging to target mapping if you would like to (in case you have customizations in AX). Here, we are going with what is available out of the box. You can also validate the mapping after modifying it, view the target entity hierarchy, and target fields for any selected entity. You can also create a new record for a custom target entity.
Now we have to define the data format for our source data. Open Source data formats from Setup area and create a new record as shown below:
I have selected File format as Delimited with first row as header and values are separated with comma. Also marked the source file to be Unicode. It is often the case that primary entity might have multiple sub records associated with it. For example, a customer might have two addresses. In such situation, you can use the Role Separator to distinguish these multiple records.
Now the next step is to create processing group (Common>Processing group) for customer data migration. By definition, processing group is a logical grouping of entities that need to be imported in sequential order.
 
Add the entities into the processing group.
At this point, let’s use the generate source file wizard to generate the source customer file for import. You can also create your own source file as per the format specified in Source data formats.

Click Next. On the screen below, you have the option to only use the fields present in source for customer import or include other fields.
Click Generate sample file and the wizard will provide you a file as shown below. Save the file in a folder as later we will need to refer to that location.

Once the file is generated and saved, put some data in it and provide its location in the Sample file path field.



Our next step is to generate the source to staging mapping. Note that you get the infolog “Mapping has completed successfully”. At this point, you can also modify the source to staging mapping. In our case, we don’t have to.

Target mapping with corresponding staging table can also be viewed. You also have the option to run the business logic or validations in entity’s insert update or validateWrite methods at the time of import. Data preview for staging table can also be analyzed in the preview pane. This is how the data will look like in the staging table.
Next step is to push the data from source file to staging table.

A dialog will appear with auto generated job Id. Click OK and Staging data execution screen will appear.

Click Run. You can also run this job on AOS if you would like to. You can also preview the staging data here. After the job is executed, an infolog will appear mentioning that a record has been successfully created in the staging table.
Once the data is in staging table, it just the matter of pushing it to target (AX) entity’s table.
A dialog will appear asking for the job that was executed previously to push the data from source to staging. Select ‘Customer-6’ in this case.
Click OK. Target data processing screen will appear.
Click Run. After the job is executed, an infolog will appear mentioning the record is created in the target entity.



You can cross verify in ‘CustTable’ and corresponding staging table ‘DMFCustomerEntity’ for customer entity.
The framework gives really cool feature of exception logging. You can see any errors that might have occurred during the source-staging or staging-target job execution.
With this I close the post and hope it will give you a kick start leveraging other really powerful features of DMF.


Wednesday, July 18, 2012

AX 2012 Data Migration Framework (beta) Installation

In this post, I would like to shed some light on the Data Migration Framework recently published by Microsoft as beta. I will start with installation and configuration of the tool and later would like to share the experience of using the tool using development environment.

Open up the installation wizard using Setup.exe file that comes up with the tool.

As I am installing the tool on development machine, I have selected both Client and Server components. If you have AOS on different server and client on another, you will have to install the components separately on respective machines.

Select the file location where the setup has to put the files. I will leave it as default selected.



The installation wizard is now completed and setup log file is opened. Good to take a look at the setup log file at the end.

Now you have to update the buffer size in AOS configuration utility. The reason mentioned by MS is that the staging table (for corresponding target entity) used by the tool is highly normalized and the migration process takes extra processing capacity, so recommended to have the buffer size increased from default 24K to 48K. Please do remember to revert it back to 24K after the data migration is done.



After the AOS is restarted, you will have to import the model file (DataMigrationFramework.axmodel) found in “C:\Program Files\Microsoft Dynamics AX 2012 Data Migration Framework (Beta)” to target AX 2012. I will use AX 2012 Management Shell to import the file:


As recommended, restart the AOS. Open AX 2012 client and you will be presented with a checklist as we just imported a new model into model store. Again as suggested by AxUtil, we will select the option of “Compile and synchronize” from the checklist and click OK. This will take some time, so have a cup of tea until it gets finished (I had my lunch thoughJ).

After the compile and synchronize is completed, you should see a new module in AX named “Data migration framework”. In my next post, I will take a sample scenario to start configuring the framework and use it to import some data from a source system.

Friday, June 15, 2012

Retail Solution for AX 2012 - Deployment (Part 1)

Scenario

Big Chain Stores is opening up a retail store in City Center and they want to consume Retail solution comes with MS Dynamics AX 2012. At this point, they only have one POS terminal in the store and they do not want to have an offline database for that terminal. All they need is to have a shared database residing on Store SQL machine. In this scenario, it is assumed that all the required information like customers, items, prices, sales tax etc. are already there in AX. 

Store


·         Make sure that SQL Server 2008 R2 is installed on Store machine
·         Install Retail Store Connect on Store machine (in my case same machine as the SQL is installed)
o   Retail Salt Utility will automatically be installed
·         Install Database Utility on Store machine
o   Create Store DB by providing names in SQL database and machine fields
o   Fill in Store ID, Terminal ID and Data Area ID fields with dummy values for now. However, later you should add records in Retail HQ (in AX) for the same values.
·        Please note that no “Microsoft Dynamics AX for Retail Offline Sync Service” is available on Store machine. This service is used to synchronize POS terminal offline database with Store database and get installed on POS terminal machine when POS terminal component is installed
·        Now you need to create the Store Connect message database in Store SQL server. For that, open up the Retail Store Connect Settings utility and click on Add. The system will ask you for server name and database name. Enter the server name and message database name (that will be created). Enter the account details which in my case were the user through which I accessed the Store machine. Make sure to enter the user name as domain\user
·       Once the message database is created in SQL, make sure the tables are there. Now select the Store Connect Service instance from Retail Store Connect Settings dialog and start the service.

HQ


·         Initialize the Retail HQ from Retail Parameters in AX



·       On both profiles, select the Retail Transaction Service profile and Retail Store Connect Upload options. You can create one upload option for both profiles, however, select different Retail Transaction Service profile in both store connect profiles. After you do this, send the configuration to respective servers. In Store Connect message database under SQL server, check the SCMMonitoringConfig table and it should have a record. This must be true for both HQ and Store SQL message databases.
·       Now you need to create the Store Connect message database in HQ SQL server. For that, open up the Retail Store Connect Settings utility and click on Add. The system will ask you for server name and database name. Enter the server name and message database name (that will be created). Enter the account details which in my case were the user through which I accessed the Store machine. Make sure to enter the user name as domain\user.
·        Once the message database is created in SQL, make sure the tables are there. Now select the Store Connect Service instance from Retail Store Connect Settings dialog and start the service.
·        Create AOS profile and use the Retail Store connect profile for HQ that you created in previous step in Retail Store Connect field. Make sure that you test the connection.
·        Create Database profile, select Store SQL machine name as Server name and Store database you created earlier as Database name. Select Store Connect profile that you created earlier for the Store in Retail Store Connect field. After creating the profile, test the connection.

·        Create the Store record using Retail Stores listpage in Retail module of AX. Name of the store should match with the Store ID that you specified in Database utility on Store machine.
·        Create hardware and visual profiles in Retail module. Use F1 help to create these profiles and more information.
·        Create POS Terminal record using Retail>Setup>POS>POS terminals form. The Terminal Number must match with what you have provided in the Terminal ID field specified in Database utility on Store machine.
·        Enter any other required information in HQ like hardware profiles, card type, till layouts etc. as mentioned in the official deployment guide by MS.
·       Check that a Distribution location (Retail > Setup > Retail scheduler > Distribution locations) is created corresponding to the Store record. Make sure to select the connection profile of type “Database” for the distribution location record. From Functions, select “Read design with Retail Store Connect” and accept the default values in following dialog. Click Ok. This will list down the tables in the Location tables form for this particular location. Now test the connection and send the configuration to Store server.
·       Access Distribution location list from Retail>Setup>Retail scheduler>Distribution location list and add the distribution location created in the previous step in Distribution locations grid.
·        Now open up Distribution schedule form from Retail>Periodic>Retail scheduler>Distribution schedule. By default, you should get the ‘A’, ‘N’ and ‘P’ jobs listed in the form.  Run all the ‘N’ jobs directly one by one. After all the jobs are executed, you should get the store database populated with data from HQ. Make sure you select the correct AOS connection profile against each job before running it. You will get a success message when a particular job is executed as shown below:


After the jobs are executed, the store database is populated with required information. Next step is to deploy the POS terminal on a separate machine (other than store). Wait for part 2 of this post...............

Friday, June 1, 2012

Domains in AX are no longer used

In AX2009 and previous versions, domains were used by administrators to group multiple companies and then assign user permissions to those companies. In AX 2012, the concept of Domains has been deprecated. Instead an Organization Hierarchy whose Purpose is Security is used.

Wednesday, May 23, 2012

Dynamic Role Assignment

Another very powerful feature of AX2012 is the automatic assignment of security roles to users based on certain criteria. A security administrator can select rule in "Assign users to roles" form against a particular role. A rule is actually an AOT query that can be created with the help of a developer. An special thing about the query is that the it is modeled with UserInfo table as the first datasource. Dynamic role assignment helps in scenarios where employees are promoted to a different title or designation, in case of inter departmental transfers or when new employees are taken on board.

Tuesday, May 8, 2012

Management Reporter Services

You might have noticed installation wizard asking for two services while installing Management Reporter server component. The application service is used by MR clients to connect with server and access the MR data. While the process service is used to generate reports that MR clients push to report queue.

Thursday, May 3, 2012

Cannot logon to Dynamics AX...getting this error when trying to consume Customer AIF service..Cont

Alright, so the second exception I was getting on Customer service create() method was due to the fact that I did not set the correct Delivery mode in Sales and marketing module of AX 2012.

If anyone needs the customer AIF service code that takes data from a CSV file and load it to AX, please feel free to contact me. I do have the code available for Vendor and Item master.

Wednesday, May 2, 2012

Disable development workspace - AX 2012

In order to disable the development workspace in MS Dynamics AX 2012, you need to delete the license codes for the following:

1. Remove Product Builder's license code in Feature sets tab.

2. X++ Source Code

3. Enable license code authoring and editing

4. Windows Morphx Development Suite

It will synchronize on closing the license info form. Let it do it. Then re-launch the client which will present disabled Dev workspace. Make sure to back up the CUS and USR layer code as removing the license codes will also remove any custom code on these layers.

Cannot logon to Dynamics AX...getting this error when trying to consume Customer AIF service

Today, I was writing C# code to consume out of the box customer service to create customers from a CSV file. Everything worked quite ok but when the create() method of customer service was called, I got the logon failure message. Further, the event viewer gave the following information:


    Object Server 01:
    An error has occurred in the services framework.  Method: AifMessageInspector::AfterReceiveRequest.  Error: System.ServiceModel.FaultException: Failed to logon to Microsoft Dynamics AX.
   at Microsoft.Dynamics.Ax.Services.AxServiceOperationContext.InitializeSession()
   at Microsoft.Dynamics.Ax.Services.AxServiceOperationContext.InitializeContext()
   at Microsoft.Dynamics.Ax.Services.AxServiceOperationContext.Attach(OperationContext owner)
   at System.ServiceModel.ExtensionCollection`1.InsertItem(Int32 index, IExtension`1 item)
   at System.Collections.Generic.SynchronizedCollection`1.Add(T item)
   at Microsoft.Dynamics.Ax.Services.AifMessageInspector.AfterReceiveRequest(Message& request, IClientChannel channel, InstanceContext instanceContext)

 


After I looked at some blog posts, I tried to refresh the WCF services from client configuration. After applying the changes, I ran the C# code and luckily this time the Logon failure was no longer there. However, I got another exception with the following details:

System.ServiceModel.FaultException`1 was unhandled
  Message=Request Failed. See the Exception Log for details.
  Source=mscorlib
  Action=http://schemas.microsoft.com/dynamics/2008/01/services/CustomerService/createAifFaultFault
  StackTrace:
    Server stack trace:
       at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at CustomerServices.ServiceReference1.CustomerService.create(CustomerServiceCreateRequest request)
       at CustomerServices.ServiceReference1.CustomerServiceClient.CustomerServices.ServiceReference1.CustomerService.create(CustomerServiceCreateRequest request) in c:\users\imran.rana\documents\visual studio 2010\Projects\CustomerServices\CustomerServices\Service References\ServiceReference1\Reference.cs:line 9063
       at CustomerServices.ServiceReference1.CustomerServiceClient.create(CallContext CallContext, AxdCustomer Customer) in c:\users\imran.rana\documents\visual studio 2010\Projects\CustomerServices\CustomerServices\Service References\ServiceReference1\Reference.cs:line 9070
       at CustomerServices.Program.Main(String[] args) in c:\users\imran.rana\documents\visual studio 2010\Projects\CustomerServices\CustomerServices\Program.cs:line 139
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:

At this point, I am trying to figure out what went wrong. Readers may try the first option as they might not be getting the second exception as I am.

Tuesday, April 24, 2012

Derived financial hierarchies - For Adhoc Financial Analytics

Derived financial hierarchies in MS Dynamics AX 2012 Public Sector solution are very useful for adhoc analytics and gives you the provision to associate the financial dimensions (including main accounts) with financial categories. This avoids entering the financial categories at the transaction level. In other words, these financial categories are sort of virtual dimensions. The derived financial hierarchies feature was developed in AX 2012 considering the CGAC requirements for US.

As far as using the derived hierarchies is concerned, you can use it either from AX rich client (GL>Financial dimensions>Set up hierarchies button>View filter results button) or from the Ledger cube (OLAP reporting).

Sunday, April 22, 2012

Signing limits in AX 2012

Efficient management of expenditures is the key to financial risk management for an organization. Organizations can now strengthen their internal controls on expenses using signing limits feature of Microsoft Dynamics AX 2012. Signing limits is an integral part of expenditure management where organizations can assign certain limits to their workers to spend a maximum amount on a purchase or gives authority to specific employees to authorize a certain amount of purchase initiated by their sub ordinates. Signing limits are based on either employee's job or compensation level. An organization can assign the signing limits automatically to an employee when taking on board or the employee can raise the request to assign signing limits through employee self service portal.

Out of the box, two types of signing limits are provided by AX, spending limit and approval limit. Spending limits are invoked at the time of purchase while approval limits at the time of approving a business document as part of approval workflow.

Friday, April 13, 2012

Advice to ISVs: How to license your solution developed on AX 2012

With new licensing Server/CAL model that MS has introduced for MS Dynamics AX 2012, it becomes really easy for resellers and customers to purchase AX leaving behind the old AX2009 licensing complexities. For ISVs now, they need to be very aware of the new licensing model and how it relates with new AX role based security framework in order to do the licensing for their custom developed solutions on AX 2012.

An ISV can follow the top-down or bottom-up approach to model the licensing for their solution. MS recommends top-down approach, where an ISV needs to think of who (users) will be using their solution, identify the potential roles, anticipate the expected duties and then further down to privileges, permissions, entry points (menu items). Finally, at the menu item level, they should think about what level of access is required to view or maintain the functionality exposed by this menu item and what should be the user CAL type assigned to view and maintain user licenses (menu item properties). This makes it easy to correctly assign the user CAL types to menu items.

In the bottom-up approach, an ISV will be directly assigning the user CAL types to menu items that will be exposed by privileges to roles to users. This is rather more error prone and hectic approach.

How an ISV can actually generate a license for custom solution using new licensing feature that comes with AX 2012, I will try to post an step by step guide for that.

Monday, April 9, 2012

Trace parser giving "Access deined" error when trying to save trace file

Using Trace Parser with MS Dynamics AX 2012 gave me "Access denied" error when I tried to save the file name in local folder. I was able to get rid of this by starting AX client as an administrator. You can also turn off the UAC in Windows to get rid of this.

Wednesday, April 4, 2012

Relationships on GL Account Structure in MS Dynamics AX2012

Further to my last post on Relationship types in Organization administration module of AX2012, I came to know that in GL, on Account Structures, the Relationships form not only displays the relationships from Relationship types in Organization administration module, but it also shows you the relations developed as Organization hierarchies. Following procedure illustrates this:

In CEU Company of Contoso dataset, I created an organization hierarchy named “Test”:

Viewing the hierarchy, I then selected CEU as the LE and Administration (UK), Administration (US) as departments under this LE. Under each respective department, I then selected Advertising (UK) and Advertising (US) as cost centers as shown below:

Publishing the hierarchy makes it available to appear in the Configure account structure form:

I then edited the account structure and selected on Test record (Party A = Department, Party B = Cost Center). At this point, do select both Test records as it will end up showing no matches while doing the transaction entry. Activate the account structure.

For transaction entry, I used the General Journal and selected a Sales account (4***) on line. Now when I selected the Department segment on journal line as Administration (UK), the next segment which is Cost Center gives me only one value as shown below:



The system has automatically filtered out the cost center value for me considering the relationship that exists in the organization hierarchy where Cost Center “Advertising (UK)” comes under Department “Administration (UK)”. Same would have happened if I selected Administration (US) as Department on journal line where Advertising (US) would be the only choice to select from available cost centers.
This is really a powerful feature in AX2012, where organizations can leverage the operational hierarchy to control the transaction entry and draw a border line between accounting and operational aspects of the business.

Monday, April 2, 2012

Email templates for employee recruitment process in AX2012

In AX2012 HRM module, there are default email templates available to be used during the employee recruitment process. The templates can be used to send interview invitation, rejection, on board confirmation etc. emails. More flexibility has been provided using the application bookmark variables that can be used within the email body.

You can access the email templates from Human resources>Setup>Recruitment>Application email templates and the bookmark variables from Human resoruces>Setup>Recruitment> Application bookmarks.

Thursday, March 29, 2012

Relationship types in MS Dynamics AX2012

A very powerful feature has been added into AX2012 to maintain relationships between different party records in the form of parent child relations. One can access the relationship types form from Organization administration>Setup>Global address book>Relationship types. For example, if I have created a relationship type using the following information:

ID = Child, Party A type = Person, Party B type = Person, Relationship A to B = Child of, Relationship B to A = Parent of

I can now use this relationship while maintaining the Personal Contact information for an Employee record in HRM module. In the personal contacts form, I can specify a person who is the child of my employee. The system will allow you to define the relationship of this employee with contact person using the relationship type.

There are other application areas where relationship type can be used to define relationships between party records like GAB in Home module, Configure chart of accounts in GL etc.

Tuesday, March 27, 2012

Vendor master data upload using office add ins

I was having really hard time importing the vendor master records using office Adonis for AX2012. Also sent a query to Microsoft to find out how I can use out of box service VendVendTableService in Excel, but I got the feedback that unfortunately one cannot use this service as GAB services are not yet supported with add ins.

I then used the individual tables like DirPartyTable, LogisticsLocation, DirPartyLocation, DirPartyLocationRole, and VendTable in Excel. I also had to create replacement key in respective tables before I could have used them in Excel to populate with data.

After couple of hiccups, it worked really well for me and I was able to create a multiple records of Type "Person" and "Organization" in AX using Excel data publishing. I will try to compile a working document and publish it in my next post.

Tuesday, March 20, 2012

Management Reporter for MS Dynamics AX2012 - The operation could not be completed due to a failure on the server

If you have Windows Azure AppFabric SDK is installed on the machine where MR installed, the report designer gives error when trying to create a new company. The temporary solution is to uninstall the SDK. MR services are confused by the WSDL point that SDK adds into machine.config.

Please see http://support.microsoft.com/kb/2660994/en-us?sd=rss&spid=14927 for more details.

Saturday, January 14, 2012

Configuration Technologies for Products in AX2012

With the move from Manufacture-to-Stock to Configure-to-Order philosophy, companies are looking for a way in their ERP system to accomodate product variants while keeping a balance between stock levels with lead time. In AX2012, Constraint based configuration technology allows to configure products based on customer preferences at the time taking the order. This is different from the previous Product Model functionality in AX2009 as product designner does not have to be aware of X++, rather MS Solver can be used to develop the constraints. As the dependency on X++ is gone along with product model compilation, one does not have to purchase AX development license to configure the products.