Monday, August 26, 2013

Creating an AX 2012 eCommerce sales order

When creating an order in the SharePoint 2013 based eCommerce site for AX 2012 for Retail R2, there are a few things that need to occur for the AX sales order to actually get created. Additionally, there is another step needed for a customer to be able to pick up an order in the store.  Note: There are two types of delivery methods that can be assigned to an order: delivery and pickup.
When an order is created from the ecomm site the order IS NOT an AX sales order at that point in time. It is created locally on the online store's DB. The user is presented with an order confirmation number, not a sales order number.

To bring an online store order into AX to create a sales order, the user must do the following in order:
  1. Run the appropriate transaction job for P-job that links to that retail channel (P-0001_OC for contoso data)
  2. Run the 'Synchronize online orders' job from under Retail -> Periodic -> 'Synchronize online orders'

While I'm not sure why this approach was taken, I can take a few guesses as to why:
Pros to this approach in my opinion (IMO)
  1. To allow the website to be independently available if the headquarters (AX) is down
    1. This allows POS users to still be able to take orders via the web from the stores if the system is down
  2. Faster responses to order creation
  3. To allow the web front ends to scale
  4. To mitigate the risk of security vulnerabilities
Cons to this approach IMO
  1. The Retail Transaction Services 'createCustomerOrder' static method is not used like the POS currently does. 
    1. Be extra vigilant about where logic placed for orders now. There appears to be a disconnect in logic now with Omni-channel sales. The data part is correct but I'd like to see the logic part also covered.
  2. The order is not instantaneous.
    1. Think of booking a car while on the rental car bus and, upon arriving with a confirmation number, not having it show up in the system until a few back office jobs are run. I get that you can set it to run every 5 minutes but still...
  3. The user is presented with an order confirmation number, not a sales order number. With that in mind, customers will always reference this when referencing their order.
    1. The base sales order form doesn't have this field. You have to navigate to it via a join to the RetailTransactionTable record that has it. Kinda a pain to point a user to go to two different places...
    2. I believe you can reference this number in the POS to pull up the order though
Notes to my cons
  1. You can change the way the sales orders process works through a customization. 
    1. I'll need to tinker more with real scenarios to determine if I'll need to do this or this approach is good.
For pickups, an additional step of running the A/N job for pushing the customers to the appropriate online channel (A-1010_OC and N-1010_OC for contoso data) if the order was for a new customer. This way, the user will exist in the POS when the order is brought up.

Hopefully there will be good discussions going on around this post below. Still pretty new functionality...

Thursday, August 15, 2013

How to: Find previous remote desktop protocol (RDP) addresses (history) via regedit

Often times I will not use third party Remote Desktop Protocol (RDP) apps (like Terminals or Remote Desktop Manager) when working on a computer that is not my own or a loner or something. I'll use the Windows RDP client instead (mstsc.exe). What sucks is sometimes I'll need to go back to a previous IP address but didn't save a link to it somewhere and it doesn't appear in the dropdown. 
Thankfully, there is a way to look up previous IP addresses via the Windows registry. It's easy. Just do the below.
  1. Navigate to the windows run prompt (In Windows 8, press 'Windows button + R')
  2. type 'regedit' -> click OK (Figure 1)
  3. Navigate to '\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\'
  4. From here there are two options you can select
    1. 'Default' (Figure 2) - Under this folder, you will see the IPs that are available in the RDP dropdown (Figure 3)
    2. 'Servers' (Figure 4) - This will have a list of all of the servers that the user connected to via the RDP.
Ultimately, you can find the history by just going to the 'Servers' folder and finding the IP/server name as the registry's folder name and the settings used inside that folder.  
Figure 1 - Getting to the registry via Windows Run 'regedit'
Figure 2 - The 'Default' folder with the RDP defaults
Figure 3 - The default ip addresses in the RDP program (correlating to the 'Default' regedit folder)

Figure 4 - The 'Servers' folder with the RDP history

Friday, August 2, 2013

Dynamics AX 2012 performance boost tip: Windows Server 2008 R2 Power Management (PPM) feature

I've been asked about 'tricks' to increasing performance of AX instances. While there are several things that can be looked at, part of this to look at the server itself to see how things can be configured to make the machine itself run faster.

One super easy trick is to look at the Power Management setting on the server (Figure 1). If its set to 'Balanced', the server has known degradation issues. I first found this out here Microsoft Support - Degraded overall performance on Windows Server 2008 R2 back in late 2011.

By default, the 'Balanced' settings is used instead of 'High performance'. Why? Most computers will operate with highs and lows during the day instead of constantly being pegged at a high load. Windows Server dynamics performance scaling functionality is only active when in 'Balanced' so the power to performance ratio is optimized and is the 'greener' choice. As I understand, its a battle of efficiency vs being top of the game all the time and utilizing a lot of power unnecessarily. For a server like an AOS, I would almost always recommend 'High Performance.

About power manager feature:
MSDN - PPM in Windows 7 and Windows Server 2008 R2
Windows Server Blog - Power Management in Windows Server 2008 R2 – Improving your “gas mileage”

Some more ways to enhance performance on the server

Figure 1 - The PPM selection feature in Windows Server 2008 R2