Topic: ‘Dynamics AX’

 

Budgeting with Period Allocation Keys in Dynamics AX 2009

Posted July 30th, 2010 / No Comments

This post will introduce the concept of period allocation keys, show how they are setup with the Period Allocation Key Wizard, and how they are integrated with the budget.  

Budgeting is important because companies need to know their actual versus predicted forecasts for the year. Period allocation keys in Dynamics 2009 make the budgeting process easier by allowing users to create budget models that can be used over several budget time frames. Not only do period allocation keys duplicate the allocation data for multiple budgets, they can also help reflect fluctuations brought on by season. 

Read the rest of this entry »

Continue Reading

 

It’s Not Too Late To Register! Advanced Distribution Partner Webinar: More to the Bottom Line, featuring Brent Grover!

Posted July 14th, 2010 / No Comments

Discover how to drive More to the Bottom Line with Brent Grover, six-time bestselling distribution management author and 20+ year veteran/executive in the distribution industry, presented by Advanced Distribution Partners (ADP).

Move beyond the analysis paralysis to drive More to the Bottom Line!

Join us for this exclusive webinar with distribution industry expert, Brent Grover.  He provides insight on how to outperform the pack, providing distributors with practical advice to:

  • Optimize margins with more accurate costing
  • Make more money in this muddled economy
  • Achieve a new level of sustainable people productivity

Read the rest of this entry »

Continue Reading

 

Possible Bug in AX 2009 WorldShip Integration

Posted June 29th, 2010 / No Comments

We have, at a client, integrated WorldShip with AX via the export map in WorldShip writing to the ShipCarrierStaging interface table.  The ShipCarrierStaging table is an existing table in AX – its part of the standard shipping integration with AX2009 – and is designed to accept any incoming freight record from a shipping package (like WorldShip).  When you invoice a packing slip, it pulls the tracking number and freight charges from this table.  So, this table is never populated with MorphX commands – it is always being populated via a SQL insert or via an ODBC update. 

The insert trigger that intercepts the record does certain things to the inserted record, then writes it to the table.  One of the things it does, at the top of the trigger, is "set @recid = select max(recid) from ShipCarrierStaging" to set a unique value for the RECID field in the table.

All of the above is standard AX.

Here’s the problem.  Between when the "select max(recid)…" command issues and when it actually inserts the record can be anywhere from immediately to a second or two depending on the size of the table, the state of the server, etc.  When you have multiple WorldShip stations inserting records simultaneously, it is possible for Station 1 to deliver a record to the table, then have Station2 deliver a record, then the trigger writes Station1′s record, and then the trigger writes Station2′s record.  However, since the read for Station2 on the select max() happened before the Station1 write, both records get exactly the same RECID.  Therefore, the Station2 record fails on a primary key violation, since the RECID is the primary key.  I can easily replicate this as follows:

1. Write a simple insert statement to the table enclosed in a do while loop with a counter set to 10,000

declare @counter as int

set @counter = 1

While @counter <10000

begin

insert into Shipcarrierstaging (column name list) values (value list)

set @counter = @counter +1

end

You’ll have to edit the column name list to match the table (without the RECID field included) and the value list must be provided.

2.  Copy the insert statement to another query window

3.  Start the first query, go to the next window, start that one.

4.  See the error in the second window.

I can solve this in SQL by changing the RECID to an identity column and letting it increment, then modifying the trigger to avoid the RECID field entirely. I haven’t yet talked to the dev team on how to modify the trigger via AX’s development environment (if we don’t, any sync to the database will overwrite the trigger modifications).

This error is a critical issue if you have more than one shipping machine.  Its been reported to MS via the OTC and they have submitted it to queue, but no resolution has been promised.

Cheers,

Dwight

Continue Reading

 

Adjusting a Closed Invoice in Dynamics AX 2009

Posted May 4th, 2010 / 1 Comment

While it is technically impossible to edit a closed invoice in DAX2009, there are a few options for crediting your customers.  One popular method (and one I don’t recommend) is to issue a free text invoice.  This will credit your customer, but it will not tie back to the original invoice, and it will create havoc if you are using commissions in any way.  Remember, FTI’s were created for service items, not item items.

Instead, try one of the following:

Process a credit note for the already invoiced line in question.  (Sales Order > Functions > Create Credit Note)  Once the credit is created, you can run an invoice (Post Qty > All if you do not wish to actually return) and then rerun the invoice (again, post Qty > All if you do not wish to actually return).

Create a new service type item for each Item Group.  This will not impact inventory, and then when you need to adjust, add a new SO line for the service item on it, use the correct sale price, and post the invoice.  Then enter a FTI credit against the originally posted amount.  A bit of a work around, but may meet your requirements.

Continue Reading

 

Using Alternate Quotes for Different Relations within the Same Opportunity in Dynamics AX 2009

Posted April 7th, 2010 / No Comments

Dynamics AX provides the ability to quote to prospective business relations or existing customers.  When quoting within Dynamics AX, you can easily create an activity or opportunity during the quotation process.   This functionality feeds back to the CRM module and allows an opportunity to be tracked using standard lead tracking criteria (i.e. anticipated close, probability % of close, etc.). 

Providing visibility to alternate quotations for the same opportunity is standard functionality within Dynamics AX through both CRM and Trade & Logistics quotations.  The basic use of this function is to create the original quotation, tied to the opportunity / lead.  The second quotation, or alternate quote, is then ‘linked’ to the original quotation using the Alternate Quote functionality.  The screen provides a list of existing quotes for the same business prospect or customer to select from.  Once selected, both quotations become very visible from the CRM opportunity. 

 The ability to manage multiple / alternate quotations for the same opportunity (despite the business relation or customer) is necessary to avoid inaccurate results when providing management analysis for open opportunities.  The standard Dynamics AX alternate quotation functionality cleanly provides this data. 

 But, what happens in the case where the alternate quotation can be a quote to a different business prospect or customer but for the same opportunity?  When using the standard functionality of an Alternate Quotation quotes, other than to the original quote business prospect or customer, will not be selectable in the drop down that appears (as stated above).  To work around this limitation, select the original quote, access the Alternate quotation function, and type the quotation number of the alternate quotation in the quotation field.  Two things occur when this process is completed. 

  1. The opportunity ID is tied to the alternate quotation and,
  2. All quotes, regardless of whether it is tied to the same business prospect or customer, will appear in the list of quotations for the opportunity / lead.  Note:  The original opportunity will carry the original business prospect or customer.

 When completed, regardless of the business relation or customer, multiple quotations for the same opportunity can be linked together to provide accurate management reporting.

Continue Reading

 

Find the First Empty Location in a Warehouse in Dynamics AX 2009

Posted March 31st, 2010 / No Comments

joe3

Continue Reading

 

Sales Force Segmentation in AX2009

Posted March 24th, 2010 / No Comments

There are a few ways to slice and dice your sales personnel in Dynamics AX.  Some are in the CRM module and some are in the AR module.

The Sales Unit: In order to report sales by department, team or individual, you must group sales personnel into sales units.  Units can be defined by an area of responsibility such as geographical area, customer size, and customer type.  From this form you can create a team or unit, staff it and assign managers, and assign activities.  Sales targets are set by Sales units and Sales unit members.
CRM > Setup > Sales management > Sales unit/team

The Sales Group: Also known as the Sales Commission group, this is where you assign employees to the “commission groups” that have employee and commissions set to them.  First you set up the group, then assign employees and their share of commissions.
AR > Setup > Commission > Sales group
Capture2
On question I get from clients is “Can I assign a sales person to a customer?”.  Well yes and no.  You can assign a Sales group to a customer (NOTE! This is actually the Sales Commission Group).  Since the sales group is tied to employees, then you are in effect tying employees to a customer.  If you need to tie one employee to a customer, then create a one employee team with 100% of the distribution.  It is important to note that both the Sales group and the Sales unit can both be designated on the sales order form.

Continue Reading

 

Using #InventdimJoin Macro in AX 2009 to Extract Records

Posted March 20th, 2010 / No Comments

The code snippet below demonstrates how to use the #InventdimJoin macro within AX 2009 to extract records from a table that have an InventDimId in them, and join to the proper InventDim record by InventDimId without having to write the entire SQL statement to create the join and ensure that the join is coded properly.  The #InventDimJoin macro will insert the necessary lines needed during execution to ensure that the join is done properly.

joe2

Continue Reading

 

Estimate Projects and Eliminations in Dynamics AX 2009

Posted March 17th, 2010 / No Comments

Revenue recognition against an AX project is accomplished through the setup of an estimate project associated with the project.  Sub-projects can also have separate estimate projects created and associated with them to allow for the estimation and elimination at various levels of a project.  Standard revenue recognition methods (completed contract or percentage of completion) still applies to the estimate project regardless of the level within the project. 

When using project templates in the creation of a new project, if the template is setup with estimate projects (set at applicable levels), the new project will also be created with estimate projects setup on the same levels as the originating template.  Adjustments can be made on the new project once created.

Continue Reading

 

Production II Training Materials Available for AX2009

Posted March 12th, 2010 / No Comments

The Production II training is finally available on Partnersource/Customersource (login required).  It is a deeper dive and builds on some of the concepts from Production I.  Included are subcontracting, advance scheduling, production and the GL, and inventory dimensions.

Continue Reading