Automate your AX 2012 Sales Order Processing

The first stage of the fulfillment cycle is the way in which your business processes a customer’s order. How your business handles orders has a major impact on customer service, from encouraging initial interest to prompting repeat business. Factors such as price, quality of product or service, range of goods, stock availability are vital to achieving sales in the first place, but a responsive, fully automated order-fulfillment procedure plays a key part in overall customer satisfaction.

Improving how you handle orders

You need to know exactly how well your business deals with order handling before you can make improvements. You should evaluate how orders are processed by doing the following:

  1. Identify the connections between sales, planning, purchasing, etc. Flow charts and activity diagrams can help you map out your processes and highlight the links. There are simple software tools like (Microsoft Visio) available to help you do this.
  2. Consider linking your systems to those of your customers if you operate in a business-to-business environment. Find out what systems they use and determine if yours are compatible.
  3. Ask staff for their input – they may be able to help you identify problems and solutions.
  4. Encourage customers to give you feedback on how their orders were handled.

Automating your Dynamics AX system can help achieve the speed and efficiency you need from order processing. It brings together all departments that handle the order, from website or sales reps to warehouse staff. Tie in your website with other facets of your business, such as planning, manufacturing and distribution. Connect your suppliers and customers to your Dynamics AX 2012 system. Integrate your sales order processing closely to your website, and when customer orders arrive in your system they can be automated, and even transformed into purchase orders to your suppliers. With this they can benefit from more timely, accurate order information, with invoices sent and processed automatically.

Automating your internal systems may speed up order processing, but remember that some customers may still prefer personal interaction to maintain the customer service experience.

Ensuring that customer orders are delivered quickly and efficiently is integral to any e-commerce service. Delivering what you promised relies on seamless interaction between your business processes and the actual fulfillment service that you have. For those products requiring a physical delivery, the issues associated with conventional logistics need to be addressed alongside the technology needed to manage the process.

Dynamics AX 2012 do have many processes that can be automated, and many companies have already done this. Pretty much can be done without making customizations or choosing an ISV solution.

Let’s say we have the following simplified process:


I will not go through the recommended setup for automation, because this varies for very implementation

The first place we can automate is on the generation of confirmation. You can find the menu item under Sales and Marketing\Periodic\Sales Update\”Sales order confirmation”

Use the late selection option to make sure that the query specified is used every time the batch is executed, and also use the print management destination to control the printout or destination of the form letter. Then set the job into batch, and let it execute once a day, or as often as required.

Picking route

When the shipping date is closing, then release the picking route. You have several options here, but I’ll focus on the simple one. You can find the menu item under Sales and Marketing\Periodic\Sales Update\”Picking list”.

In addition to what is described on the confirmation, make sure that only confirmed sales orders are sent to picking. Also, if backorder handling is allowed, then enable the “Reduce quantity” so that the picking route is only released of items you have on hand. There is another option under the “other”-tab, called “Reservation”, that I would recommend checking that it is enabled, because then the items will be reserved against the order. When the picking route is printed, then pick the items. Put it into batch, and let it run as often as required.

Picking route registration (The manual step)

The next step in the process is that actual picking. Some companies choose to release picking routes, where the items already transactional picked, and this is a setup on the parameters. But I prefer and recommend the picking route registration screen, available as a menu item under “Sales and Marketing”\Journals\Sales orders\”Picking list registration“.

In AX 2012 the picking route can be printed with a barcode version of the picking route id, that can be scanned into the picking route field on top. The next step is to finalize the picking, and make the necessary adjustments on quantity, dimensions (like serial, batch, pallet id etc), and then use the “UpdatesàUpdate all/selected” to actually pick the items, and therefore also updating the on hand values correctly.

Packing slip update

The next step in the automated process is the packing slip update, that is available under “Sales and Marketing\Periodic\Sales update\”Packing slip”.

Choose only to packing slip update the picking sales orders, and print out the packing slip either send it automatically on email as a PDF to the customer, or even electronically as a ASN/XML to the customer. Depending on how the process is, the packing slip batch job can automatically be printed or sent electronically.

Invoice update

The last step in this automation of sales order processing is the invoicing. The menu item is placed at “Accounts receivable\Periodic\Sales Update\Invoice“.

Set the Quantity parameter to “Packing slip”, and the invoicing will invoice all packing slip updated sales orders. Set up the printout and use the print management destination setup to control where and what should happen with the form letter. Set up the batch-job to run periodically for automation.


There are many more options available in Dynamics AX 2012, for consolidation of picking, packing and invoicing, but my main message is to start to look into automating these processes to speed up, and reduce the time spent on routine tasks. Let your Dynamics AX 2012 be the engine that pulls the processes, instead of valuable people that needs to push the processes. This will free up time to other important tasks.

What I also want to mention is that when the requirements to automation increases, and you cannot find the solution to your problem in the standard functionality of Dynamics AX, then please evaluate the To-Increase Warehouse Management and Distribution. Here the automation has been lifted a few steps to support mass transactional processes and the integration to warehouse equipment and to freight forwarders.


28 thoughts on “Automate your AX 2012 Sales Order Processing

  1. Hi Kurt: Was trying to set up automatic sales order confirmation batch job (D365 10.0.10) and found your article. It helped me go through the basic set up so thank you so much for this. I need your help some more though:
    1) For SO Confirmation batch job, my query is looking for Sales orders with status Open and a specific customer group. So batch job would be picking up all the matching sales orders to confirm (I also have late selection ON so its picking up all new sales orders) however I found out that it is also picking up all sales orders which have been previously confirmed everytime the batch job runs. How can I avoid picking the same sales order every time batch job runs? I want it to only pick orders that are not previously confirmed. Thank you again for your help.


  2. If my warehouse completes shipping at 11:59 Pm at the end of the month and my accounting staff doesn’t invoice until Monday on the first of the month, how do I have the invoice date and financial posting, post to the prior month?


  3. Hi, We are preparing Sales Orders in our HO and we need to send the delivery information to our warehouse which is located in different city. Sometimes we do have a partial delivery against that particular Sales Order. Does anyone has any idea about informing them through the system so they will understand it?


  4. Kurt, great post and even better feedback. I want to automatically register the pick. I thought it was in the Sales or inventory parameters, but can’t seem to find it. Can you help?


  5. Hi, I want to post sales invoices automatically overnight in Ax 2009, But system does not post any lines and gives message ‘No lines to update….’. Please help.


  6. Hi Kurt I have a question dont know if you have any idea of how to solve this….. we have a customer who make the invoice of sales order before the shipment. Wich means they select the warehouse and batch number at the time the invoice, but they keep the goods sometimes for 15 days more in their warehouse….. so after those days they want to make the shipment to the customer but they want chose the goods from another batch number, the real one…… any idea how to solve this?.
    Thanks a lot in advance


    • Hi Melissa, we have a similar requirement. Our customer wants to send a Proforma invoice with the goods but they aren’t happy that the proforma invoice has no number. So we are thinking of modifying the confirmation journal and calling it a ‘Proforma invoice’ and then use the same document number when we post the real invoice, later.


    • Hi Melissa. Yes, I can help on this, and I know how to set up the system to make this happen. In AX, there are two systems for keeping track. You have the Inventory transaction and you have the shippinglines(WMSOrderTrans). Each of theese systems have their own statuses. But the shippingline statuses (Expedition status) is very seldom used to the extent that is possible. The trick is the following:
      1. Pick the goods from the Warehouse, and then stage the picking lines.
      2. Then invoice the customer er expected.
      3. The items are still “staged” at the outbound dock
      4. After 15 days, then deliver the shipment (Send), and job is done 🙂

      You then have correct onhand, and overview of the shipment. The downsite is that you cannot change the batch number after it is picked, but I’m sure this can be handled though process. (A small customization is also a option)

      Standard AX do not expose and show this functionality clearly, but all code and features are available in standard AX. In the PDA solution I have created, I utilize theese available features in standard AX.

      If you would like a small voice chat on this, you are welcome contact me on skype (kurt.hatlevik).


      • Hi Kurt thanks a lot for your quick answer! what Im using now is the shipments functionality, using output orders, but as I comment to u, Customer want to invoice the sales order and after when we they make the shipment select the batch number where they are taking out the goods…… so I think for sure will have some customization as you mention, so I would like to ur opinion about it, so I contact u in a minute by skype, tha nks in advance.


  7. In the picking list registration form
    Is it possible to make multiple selection of the picking lists and still get 1 picking list document for each picking route (not consolidated), you know how this can be done? Because now in standard AX you can only select 1 picking list and print it, as soon you select 2 the print functionalaity is disabled.


    • Hi Claes. Microsoft has “hard-coded” in this restriction, so in standard AX, the answer is no. But a Developer should quickly be able to remove this restriction.


  8. I have a question, I don’t know why picking list is not activated although I done for posting on SO with confirmation. When I click PICK AND PACK TAB… Icon not activated, can anyone knows to activate that process pick & pack together the registration… thanks in advance.


    • Hi Willie.
      Check if your customer is blocked.

      Else also check in the method SalesTableType.mayPickingListBeRegistered(). This is related to the sales Cycle setup. You can also see this on CustTable–>Tab sell–>Setup–>Sales cycle.
      Here you can enable/disable the picking registration process for this customer/all customers

      Happy Daxing.


  9. Hi Kurt,

    our logistic department wants to send ASN to the European sales offices from the central warehouse for shipments which are send to the sales offices.

    In AX 2012 in the shipment form is an function Send ASN. But I have the feeling this requires some setup or customization to work.

    Unfortunately, I can’t find any information on technet how to do this.

    Can you point me in the right direction?

    Thanks in advance.

    Marc Claasen


  10. Hi Kurt,
    I’m having the same issue as Dawson, did you have time for an answer on this?
    If you did please forward the answer to me.


    • Hi Søren.

      Yes, you are right about the issues related to Automatic sending invoices and formletters automatically. What we did at a customer Project, was to expend this feature by customization.
      The trick is to make some changes in the \Classes\SalesFormLetter_Invoice.printJournal(). Just make sure that the invoice is saved as a PDF-document, and then attach it to a email. But you need to code this:-)

      In relation to the “Send invoice”, this is just triggering to send the invoice as a XML through the AIF (Application Integration Framework), so that will not generate a email.


  11. Hi Kurt,
    Thanks for your wonderful post. I need some help as i am trying to send invoice directly to customer via email. I can see one option when we goto CEU/Accounts receivable/Common/Customer invoices/Open customer invoices then on invoice tab there is an option which says send an invoice electronically to the customer.

    NOt Sure how does this works.
    i tried doing it through print mangement settings as well. But when i do that outlook pops up with no receipient email address.

    Any help would be highly appreciated


  12. Hi Kurt. Nice post. Thank you. However your suggestion for automating the posting of the Packing slip update is a little weak, because in all of the implementations I’ve worked on the warehouse staff require a physical packing slip to be printed and this is sent with the goods. So we oftern customise the Picking list registration form so that it includes a check-box ‘Post packing slip’ and if the user ticks that checkbox then the system automatically posts (and prints) the packing slip. But I think that it would be great if that was part of the standard system and we did not have to do that customisation.

    Also, last year I was working with a small importer/distributor. They wanted to send the invoice with the goods (for some of their customers), and we were using the DAX Shiping carrier interface – by the way that would be a great subject for a blog post for you.
    This meant that the process was like:
    1) Picking list registration update.
    2) Post packing slip (automatically). Prints packing slip and creates shipping carrier interface records
    3) Use courier’s system to print courier lables – updates shipping carrier interface with charges
    4) Print invoice (manually), invoice includes shipping carrier charges (the customer is payng frieght).
    I could just not figure out how to get the invoice to post automatically.


    • Hi Tim, and thank you for the valuable feedback. It is really appriciated. My idea with the automation of the packingslip, was to have a batch-job that ran as often as possible, so that as soon as you had updated the pickinglist, the packingslip would be printed out automatically. But in all implementations I have made, we have done customizations on this area to improve the usability. The most common one is to use a “packingstation”, that I have described on other blogposts, that takes care of pickingroute update, packingslip posting, invoice, SSCC identification of outbound cargo’s/pallets, and also printing carrier approved labels. My intention with this post was to highlight how far is there actually possible to automate theese processes. Thank you again for sharing your experience with us.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.