Showing posts with label Axapta. Show all posts
Showing posts with label Axapta. Show all posts

Monday, July 1, 2013

Microsoft Dynamics Lifecycle Services

Microsoft recently launched a new Lifecycle Services site to help partners and customers manage and optimize their Dynamics AX implementations.
https://lifecycleservices.dynamics.com/

From the TechNet description:
Microsoft Dynamics Lifecycle Services provides a cloud-based collaborative workspace that customers and their partners can use to manage Microsoft Dynamics AX projects from pre-sales to implementation and operations. Based on the phase of your project and the industry vertical, the site provides checklists and tools that you can use to help you manage the project. It also provides a dashboard so that you have a single place to get up-to-date project information.
Lifecycle Services is available to customers and partners as part of their support plans. You can access it with your CustomerSource or PartnerSource credentials. Go to the site.



Monday, May 20, 2013

Dynamics AX Inventory cube now present in AX 2012 R2

It was recently brought to my attention that Microsoft Dynamics AX finally ships with an inventory value cube out of the box in version 2012 R2. You can find details on the measures available in the cube here, which even includes some KPI's for inventory turns and other indicators. I'm looking forward to cracking this open and comparing it to the home grown inventory cube I built on AX 2009. The primary issue is that you can't simply look at inventtrans records because those statuses are updated over time as postings occur.

Other cubes added in AX 2012 R2 include Budget control, Budget plan (my team worked on this), Profit tax, and Retail. 

AX 2012 Cubes AX 2012 R2 Cubes
Accounts payable cube (VendCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Accounts payable cube (VendCube) for Microsoft Dynamics AX 2012 R2
Accounts receivable cube (CustCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Accounts receivable cube (CustCube) for Microsoft Dynamics AX 2012 R2
Budget control cube (BudgetControlCube) for Microsoft Dynamics AX 2012 R2
Budget plan cube (BudgetPlanCube) for Microsoft Dynamics AX 2012 R2
Environmental sustainability cube (EMSCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Environmental sustainability cube (EMSCube) for Microsoft Dynamics AX 2012 R2
Expense management cube (TrvCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Expense management cube (TrvCube) for Microsoft Dynamics AX 2012 R2
General ledger cube (LedgerCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack General ledger cube (LedgerCube) for Microsoft Dynamics AX 2012 R2
Invent value cube (InventValueCube) for Microsoft Dynamics AX 2012 R2
Production cube (ProdCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Production cube (ProdCube) for Microsoft Dynamics AX 2012 R2
Profit tax totals cube (RTax25OLAP) for Microsoft Dynamics AX 2012 R2
Project accounting cube (ProjCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Project accounting cube (ProjCube) for Microsoft Dynamics AX 2012 R2
Purchase cube (PurchCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Purchase cube (PurchCube) for Microsoft Dynamics AX 2012 R2
Retail cube (RetailCube) for Microsoft Dynamics AX 2012 R2
Customer relationship management cube (smmCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Sales and marketing cube (smmSalesMarketingCube) for Microsoft Dynamics AX 2012 R2
Sales cube (SalesCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Sales cube (SalesCube) for Microsoft Dynamics AX 2012 R2
Workflow cube (WorkflowCube) for Microsoft Dynamics AX 2012 and Microsoft Dynamics AX 2012 Feature Pack Workflow cube (WorkflowCube) for Microsoft Dynamics AX 2012 R2

Thursday, May 2, 2013

Using Record Info and the importance of field groups on a form

I've often wondered about the Best Practice check in AX that requires all fields to be in a field group and why that is there. I assumed it was some sort of encouragement to use field groups on forms and reports, but today it occurred to me that there is another very valuable tool that uses this information (there are probably many others as well).

If you have the appropriate permissions in Dynamics AX you can right click on any field on a form, select record info, and then select "Show all fields" to open a new form which displays all of the fields in the table and their values regardless of if the field is on the form or not. This is useful for some power users if they are interested in knowing when a record was created or when it was last modified for instance.


Show all Fields
Show all Fields
 
I shared this functionality with a user this week, but it wasn't until today that I realized how this form organizes fields into groups based on field groups to help the user find them. So in the future take some time and consideration when creating field groups or adding fields to groups so that users can find these more easily on the Record info screen.

Wednesday, April 10, 2013

Slow Inventory Reports

A user over on the AXUG Community recently posted a question about poor performance on the standard AX Inventory reports, specifically Physical Inventory by Dimension. It turns out the fix ended up being to clear the records in two tables in the database that are used only for building this report. Normally the records are created, the report run, and then the records are deleted. However if the process is cancelled the records can be left behind. Multiple users reported the same issue.

If you are having this issue or even minor performance issues with these reports, look into deleting all of the records in the InventSumDateTable and InventSumDateTrans tables via SQL.

If you haven't joined the AXUG Community forum yet go check it out. It's a great free resource for users.

Wednesday, March 27, 2013

Using secondary currency and exchange adjustments

If you are using secondary currency (also called reporting currency) in Dynamics AX you might not be aware that the ledger exchange adjustment program does not update AmountMSTSecond values in Dynamics AX 2009.

One reason to use the secondary currency in a company is to report on both your primary currency and your secondary currency.

Say you have a company in Canada that does transactions in both US Dollars and Canadian Dollars. If your master currency is set to USD your ledger transactions will have the USD equivalent in the AmountMST field and the amount in the transaction currency in the AmountCur field. For transactions that are in CAD then will have both the USD and CAD values, but for transactions in USD both fields will be in USD. Setting your secondary currency in the company to CAD means that all transactions will have the USD amount in AmountMST and the CAD amount in AmountMSTSecond.

Currency Code Master currency amount Transactional currency amount Secondary/Reporting currency amount
USD $100 USD $100 USD $98 CAD
CAD $100 USD $98 CAD $98 CAD


Tuesday, March 5, 2013

Saturday, March 2, 2013

Microsoft Advanta campus

Most people know that Redmond, Washington is home of the Microsoft Corporate campus, but the offices for Dynamics AX are actually in Bellevue, Washington. I took a few photos today for my online photography class at Proud Photography and I thought I'd share one of the images here.

Microsoft Advanta Campus

The other offices where Microsoft has major Dynamics AX development that I know about and have worked with teams from are Fargo, North Dakota and Vedbaek, Denmark.

Friday, February 22, 2013

Adding a color bar per company

A common question users often ask for is to change the color of AX forms when logged in to a different company. This comes from may legacy systems having this behavior. It turns out changing the background color on AX form results in a pretty ugly experience due to the many different layouts of form, group and subgroups, and other controls that would all have to have their backgrounds changed.

However one interesting way I found to provide similar behavior to this is to add a color bar across the top of forms similar to the workflow status bar indicating the company logged in to.


Wednesday, February 20, 2013

Customs integration with Dynamics AX for EDITrade and CANData

I just wanted to give a quick update on what I've been working on recently. We import product into both the US and to Canada, so we have a need to supply data to both US and Canadian customs.
There are two companies we are working with on this: EDITrade from Descartes for US Customs and CANData Systems for Canadian customs.

I know everyone is gearing up for Convergence 2013, but I'll be back here in Seattle working away. I'd be interested in knowing if anyone finds any other companies that have integrated EDITrade or CANData with Dynamics AX.

Ultimately I plan on providing more details on our integration and some examples.

Friday, December 28, 2012

Costing items multiple different ways per item in Dynamics AX 2009

Background

In AX 2009 inventory costing is controlled by the Dimensions group assigned to an Item when using the weighted avg costing method.

Dimension group setup is found under "Inventory Management > Setup > Dimensions > Dimension groups" and the dimension group is assigned to an item under "Item details > General tab > Dimension group field".

On the dimension group inventory dimensions can be marked as Active to become available for entry and selected for "Financial inventory" to be considered for costing purposes.

Imagine if you setup your inventory dimension group to have Size (inventsize), Color (inventcolor), Site (inventsiteid), and Warehouse (inventlocationid) to be active and financial inventory. This means that when inventory is issued (sold) the cost of the inventory is calculated based on all existing inventory that matches the combination of size, color, site, and warehouse. Another way of saying this is that the inventory is averaged by these dimensions.

Example

Inventory is purchase at a cost of $10 per unit for a specific item, size, color, site, and warehouse. Then the same quantity is also purchases for $20 per unit with the same combination of item, size, color, site, and warehouse. If the inventory is now sold, it will be taken out of inventory at a cost of $15 per unit. Any inventory receipts that match this specific combination of item and dimensions will therefor effect the issue cost.

Problem

One problem with this approach is that an item can only be assigned to one inventory dimension group. An example of when this can be an issue is when we want to cost items of one color one way and items of a different color another way. It would be possible to setup up additional items to accomplish this, but if this is a common practice you would not want to have to duplicate items to handle this.

Solution

One work around for this problem is to modify the code where the dimension group is found and used to use a different dimension group based on a dimension value. The way we handled this was to add a new field to the dimension group table (inventDimGroup) which references another dimGroupId on the same table. In this way we can assign one dimension group to an item, but then also assign special purpose dimension groups.

Once this is done the class InventOnHand::newFinancialUpdate() method should be updated to first inspect the inventDim passed in and then choose whether to initFinancialInvent with the passed in _movement.dimGroupId or with the new field we added to that table.

Example code

//Find the dimGroupId for RED items
redGroupId = inventDimGroup::find(_movement.dimGroupId()).dimGroupIdRed;

if(_inventDim.InventColorId == inventparameters.redColor && asnGroupId != "")
{
    inventDimParm.initFinancialInvent(redGroupId);
}
else
{
    inventDimParm.initFinancialInvent(_movement.dimGroupId());
}
//End

Monday, May 28, 2012

Enabling a new inventory dimension and the AllBlank dimension Id

I recently explored the idea of enabling a new inventory dimension to track a new type of inventory in Dynamics AX. There were a few goals that I wanted to stick to.
  1. Use one of the existing inventory dimensions rather than adding a new dimension. InventColor, InventSizeId, InventBatchId, and InventSerialId were all candidates.
  2. While technically we would allow blank values, I wanted to have two explicit values to use rather than assuming blank was a meaningful value.
  3. Due to #2, update all existing transactions in the system to be one of the explicit values.
The steps necessary to complete this are straight forward, but there are some words of caution I want to add along the way which I discovered in my investigation.

Tuesday, April 3, 2012

Aggregate, Group by, and Having functions in SysQueryForm

Have you ever wanted to use the SysQueryForm in Microsoft Dynamics AX to define a query that had an aggregate (sum, min, max, etc.) and a group by clause? In Microsoft Dynamics AX 2012 this is now possible. Read on to learn more about this little known feature.


Saturday, March 17, 2012

ParseXPOs

Many people may be familiar with the CombineXPOs.exe utility for Dynamics AX that mfp has shared on his blog. This utility is useful to take many individual xpo files and create a single large xpo file that can be imported into Microsoft Dynamics AX either from the command line or manually in the client. I recently had a scenario where I wanted to do the opposite, export a large project from Dynamics AX and then parse the project into individual XPO's. This was useful to compare all of the objects installed in a layer in multiple enviroments. Hit the jump for the source code and binaries.

Friday, March 16, 2012

Migrating from MorphX version control to TFS version control - Part 2

In Part 1 of this article I described a method to migrate MorphX version control data into TFS version control using the TF.exe command line utility and an x++ job. In Part 2 I will touch on some of the difficulties I faced and give a little more detail on how I overcame them.

Saturday, February 25, 2012

Migrating from MorphX version control to TFS version control - Part 1

There are quite a few good topics on the web about how to use TFS for source control in Dynamics AX but one thing I couldn't find was anyone with a way to migrate from MorphX version control to TFS version control.

Wednesday, February 22, 2012

Welcome

Welcome to my new blog about Dynamics AX.

I've spent the last 5 years working for a vendor for Microsoft helping build the public sector solution for Dynamics AX. I worked on versions of AX before 2009, on the entire release for 2012, and also on the start of the next yet to be released version of AX.

Recently I started working as the Sr. Dynamics AX developer for a private company that uses Dynamics AX internally.

Most of my prior experience working on AX was admittedly in the financials module but in my new job I will be getting very familiar with the inventory module. I'm also very interested in architecture and the build environment so some of my initial posts will be in the area of setting up a development environment for a private company.

I hope you enjoy my posts and that I'm able to offer some of my unique insights to the online discussion of Dynamics AX.