Showing posts with label AX 2012. Show all posts
Showing posts with label AX 2012. Show all posts

Sunday, November 25, 2018

Dynamics 365/AX 2012 Modern/Enterprise POS 'Speed Scanning' feature


I didn't realize that its somewhat unknown that there is a speed scanning feature in the POS for rapid item entry. I was answering some questions at AXUG for some end users and this was brought up. Then again as a use case for a customer. That prompted a post. 

If you are selling multiple units of something in a store (e.g. 4 bottles of wine) and don't want to scan the product, click change qty, and enter qty, you can instead do this handy little trick. 

USE CASE: We need to scan 4 of the same bottle as fast as possible.

SOLUTION: In the number pad, enter 4 and hit the '*' asterisk button. Then scan the barcode or enter the item. BLAM! That item with a qty of 4. 

Some notes to this: 
  • You need to use the number pad control
  • You can use the keyboard or the onscreen numpad. 
  • You must enter a barcode or the item id either with a scanner or through the number pad
  • Searching for an item will not allow this to work.
  • When you enter the quantity and hit asterisk, the entry field clears out all of the fields. Its still there in the background so enter the item
  • This works for all versions from AX 2012 FTP to D365 F&O 8.1
  • Enterprise POS (EPOS) and Modern POS (MPOS) are supported for this

Rock on!


Tuesday, November 20, 2018

DAXDude Top 10 blog posts from last two months

I think its very interesting to read the stats on my blog to see what/who people are doing across the globe on AX/D365. Thought I'd share the top 10 blog posts from last two months. There were ~18k pageviews and about 8.5k unique visitors in the month of October/November as of today.

Overwhelmingly, the top 5 were the most popular in terms of blog post hits specifically. Also, 9 out of the top 10 were all about AX, not Dynamics 365. The one that was about Dynamics 365 was just posted this month and those usually inflate from all of the RSS feeds, twitter posts, etc so its statistically different than the other posts. 


  1. Use X++ wildcard (LIKE and NOT LIKE) in X++ select statement
  2. AX X++ str2Date function deep dive
  3. Dynamics AX 2012 - Reset/Clear your user's usage data
  4. Cycle through container in AX
  5. Compare AX X++ conIns function vs += for container insert
  6. Microsoft 365 vs Dynamics 365 vs Office 365 terminology and branding (hopefully) explained
  7. Retail Modern POS (mPOS) installation and setup via AX 2012 R3 CU8 demo machine
  8. AX 2012 WCF Error: 'The specified client configuration does not contain valid WCF settings'
  9. AX Issue: Cannot edit a record in Sales Orders (SalesTable). An update conflict occured due to another user process deleting the record or changing one or fields in the record
  10. AX Tables: Copy all table data to another table

Saturday, November 17, 2018

Microsoft 365 vs Dynamics 365 vs Office 365 terminology and branding (hopefully) explained

Microsoft brings all of their cloud offerings under the '365' branding. There are many different offerings under 365 but not all of them are truly meant to be used together. What do I mean by that? How do you know what expert is an expert in what product? Do you know what you're licensing? Hopefully this will help explain a little bit more.

When I say Microsoft 365, that technically doesn't encompass Dynamics 365. Microsoft 365 is Office 365, Windows 10, and the Enterprise Mobility + Security. When we say Office 365 then, we're actually saying its part of Microsoft 365. Its a sub-offering under a licensing/branding package.  

When I say Dynamics 365, its all of the Dynamics 365 'for' products, such as D365 for Retail, D635 for Finance and Operations, D365 for Sales, D365 for Marketing, etc. But its also good to know that these Dynamics products are still technically 3 or more 'products' brought together under the Common Data Model which allows all of them to communicate. Its AX, CRM, and new applications such as 'for Talent' if we're looking behind the scenes. Dynamics 365 for Finance and Operations and Dynamics 365 for Retail are really the same code base (AX) but licensed differently.  Dynamics 365 for Sales/Marketing/Customer Service/etc are all traditionally CRM. 

So it can get tricky when people refer to Microsoft Dynamics 365 as Microsoft 365 or Dynamics 365 when the terminology really spans so many different titles. And that can be a problem. When going to a trade show and I ask which Dynamics 365 products their XYZ integrates directly into, they say Microsoft 365: all of it. Thats an interesting response that doesn't tell me anything. Especially when we are talking about business workloads. When we talk about things like a tax engine or rate shopping and they say that it will take care of all my worries, I want to know if its going into the Common Data Model and exposed to other mobile apps, is it natively integrated with Finance and Operations, is it a CRM-side ISV, etc. 

These are massive things to consider when evaluating a solution and sometimes the branding can make things a little more difficult. This post is not meant to solve the issues but hopefully raise a little awareness. Let me know down below if you have any questions about the above!


Monday, September 11, 2017

Find product attributes and values for an item in AX 2012 via X++

In the event you need to see what the product attributes are while debugging some stuff, run the below script.

This is for AX 2012 but probably works for D365, I'm not sure. Give it a shot.

It literally takes an item id and gives you the attributes and values in those attributes. Pretty straight forward

static void DAXGetProductAttributes(Args _args)
{
    EcoResProductAttributeValue ecoResProductAttributeValue;
    EcoResAttribute             ecoResAttribute;
    EcoResValue                 ecoResValue;
    ItemId                      itemId      = 'A10021'; // This is a sample Item Id
    InventTable                 inventTable = InventTable::find(itemId);

    while select RecId from ecoResProductAttributeValue
         where ecoResProductAttributeValue.Product   == inventTable.Product
         join Name from ecoResAttribute
             where ecoResAttribute.RecId                 == ecoResProductAttributeValue.Attribute
             join ecoResValue
               where ecoResValue.RecId                     == ecoResProductAttributeValue.Value
    {
        info(strFmt("%1 - %2 - %3", InventTable.ItemId, ecoResAttribute.Name, ecoResValue.value()));
    }
}

Saturday, January 14, 2017

Dynamics 365 and you for 2017: Helpful hints, insights, and resources

Dynamics ERP friends,

Microsoft is on the move quickly with their ERP systems. Time is changing and so is the Dynamics world. Here are just a few things I want to note for this year. This is my informal, full of information/opinions/suggestions/humor note for 2017. 

Big Milestone
First and foremost, I greatly appreciate everyone who reads my blog even in passing. Its a fun and creative outlet for me to grow and the fact it helps people helps motivate me to keep it going.

I recently hit 1 million page views on my blog. Yay! [smiley face with party hat]. No clue what I'll hit next year but I'm excited to find out.

New Roadmap Portal
For roadmaps in the past, there would be an image that Microsoft would often show at keynotes at Convergence which would get passed around and reposted. It was a static image with Microsoft working being a veil of mystery.

While the above still exists, there is now an interactive roadmap that shows more than just concepts; it provides deep insights into the entire Dynamics 365 suite. https://roadmap.dynamics.com/ You'll want to bookmark this site and keep up to date on what all is going on.

It breaks down 'What's New', 'In Development', and 'Previously Released' features for all of the Dynamics 365 products and modules within those products. Keep in mind there are two editions now: Dynamics 365 Enterprise (D365 for Sales, D365 for Customer Service, D365 for Field Service, D365 for Project Service Automation, D365 for Operations) and Dynamics 365 for Business (Dynamics 365 for Financials [SMB]). The Enterprise/Business is just a way to bundle the products between Enterprise level solutions and solutions for the SMB market.

Searching for things via search engines
Culturally, we have adopted 'Google' for searching much like asking for a 'Kleenex' for a tissue or a 'Coke' for a soda. 'Did you Google it' is significantly more common that 'Did you Bing it?'. I use 'Bing' in my demos and people snicker with the fan boy jokes flying. For better or worse, that's just how it is.   
Rumor has it, you will find more data on Dynamics 365 using Bing vs other search engines due to how Microsoft optimized the search engine and metadata or something. I don't know the details but its what I've heard from multiple people in different departments at Microsoft. My experience over the past 6 months verifies these claims. Maybe I do a side by side analysis post later this year??

Product education resources
While we're on the topic of search results, MSDN and TechNet were great resources for the Dynamics AX products. Give https://ax.help.dynamics.com/ a look. It is where all the newest information is going to be found and maintained. LCS is also a great spot to research potential issues without opening a ticket while also providing valuable tools for the lifecycle of your implementation.

One interesting note is its 'ax.help...' but AX is not the branding anymore, even though it does still cover AX products. I'm ok with that since my alias is DAX Dude and a number of companies have AX embedded in the name. I refuse to become D3FO Dude (pronounced as 'Dee-foh Dude'?). I'm officially DAX Dude, who works on D3FO.

Mobility and resource development
Mobility will be so important going forward. We are already seeing the beginning pushings for it in the Dynamics space. Cloud/browser based ERPs add significantly more value with mobile applications to supplement functionality. 

I'd recommend getting up to speed on how/why companies will use mobility and what technologies to start growing resources for. You can buy great resources for a premium, but if your company wants homegrown experts, the one thing you can't buy is time. Invest in your employees. Give them the resources to grow with the technology and innovate. Its one of the things I really love about the company I work for. Its not cheap but its worth it. Blue Horseshoe is hiring top talent btw ;-) Inquire within

Product Specific naming
Make a resolution to only refer to the products by the full name ('Dynamics 365 for Operations' or some abbreviation like 'Operations', 'D3FO', 'D3 for Ops', 'Ops 1611 (the version)', etc. Just saying Dynamics 365 will not fly. I talked to a sales person last year who really want to talk to me about a great ISV add-in for 'my Dynamics solution'. The conversation was literally: "Great! Which products is it for?" "Y'know, Dynamics... the Microsoft product?" [Looks at me all sketched out] "I'm good thanks! I'll check it out online" [Grabbed branded pen, product flyer, and walked away].

Also, the product should not be called AX 7 or AX when referring to the new version. This is the same transition as from Axapta to Dynamics AX. Now its Dynamics 365 for Operations. All the cool kids are calling it by the new name. You don't want to be the dude who says Axapta 2012 do you? Coincidentally, that's the same guy who orders the gluten-free wine or a gin and root beer with a celery stick at the bar... Don't those sound yummy? Don't be that guy :-)

Thanks everyone and have a wonderful start to 2017!!!

Look forward to seeing old friends and making new ones!


Saturday, September 26, 2015

Compare Microsoft Dynamics AX for Retail, Commerce Essentials, and Retail Realm Essentials: Features and Licensing

Within Dynamics AX, there is the 'Retail' module that everyone is calling AX for Retail. Recently, there is discussion about the 'Retail Essentials' module which is the AX system with just the retail component and a simplified setup. Retail Essentials is marketed towards the small to medium sized businesses market (SMB).

While explaining the different ways to deploy and license AX for certain scenarios, things can get confusing. I was confused as well for a while :-) The goal of this post is to demystify this as well as verbalize the branding that Microsoft is using to help rid the confusion. There were two options for 'Retail Essentials in licensing

We'll look at three different examples of how to use, deploy, and license AX for Retail. Note that the code base for all of this is the exact same regardless of the scenario.

Scenario 1: Full blown AX with AX for Retail module

The licensing for AX Retail is the same as it is for any module in AX. Full access to the modules and modification to the business logic in the application object tree (AOT) are granted. This is what people would consider a 'typical' enterprise level implementation of AX. You'll see all modules but will not see a module called 'Retail Essentials' in the list.

Scenario 2: Commerce Essentials 

This module was formerly labeled 'Retail Essentials' if you looked at the modules list in AX but was re-branded.

The licensing of this is the same as full blown AX but you are able to leverage the simplicity of the Retail Essentials configuration. When the AX system is configured, you'll check the configuration keys for retail essentials and will only see one module in AX (Figure 1 below). All the functionality still exists behind the scene but, again, the system configuration and views are simplified for a targeted type of deployment. Just uncheck the 'Full feature set' check box and you'll be in Commerce/Retail Essentials mode.

Of note, from a developer perspective, you can expose and have access to anything in the back end AOT wise without violating a license agreement. This is because you are paying for a full AX license.

Note that the name in Figure 1 will be 'Commerce Essentials' here shortly to differentiate it from Scenario 3 covered below.

Why would you use this? There are a variety of reasons but one good scenario is where a company is using another ERP as their master and only using the AX Retail components in their deployment. Another could be a phase 1 where its speed to market to get AX live for a customer just in their retail operations. Or you want a simple retail solution but need modifications that aren't in the base product and they don't want to violate their license agreements.

Scenario 3: Retail Realm Essentials

The third scenario is still going to be called 'Retail Essentials'. Functionally it is the same as scenario 2 above but with the very important distinction that larger modification or exposing of other AX functionality past what comes in base will be a violation of the license agreement. So think of this as a static code base with the exception of small changes like adding fields.

The trade off is the licensing is cheaper for Retail Essentials than standard AX licenses. The licensing is purchased through a separate company for this scenario called Retail Realm but they work directly through Microsoft. This software licensing also includes Retail Realm's utilities which contain an additional cost to utilize for scenario 1 and 2.

If the company later decides to go full blown AX or enters phase two where they will need more than what this offers, they can change their licensing to Scenario 1+2 and start that process. All the code and tables behind the scenes are the same so its just a matter of licensing, configuration keys, and data setup/migration.

Why would you use this? It is an ideal solution for the SMB market. A company wanting retail in a phase one approach can also use this model as its cheaper, but they would only be allowed very simple customizations without violating their licensing agreement.

Summary
Hopefully this post shed some light on the new licensing of the AX retail platform and added some clarity to confusion!
Figure 1 - Retail Essentials view. Unselecting 'Full feature set' in retail config key will enable this functionality.

Wednesday, January 28, 2015

Retail Modern POS (mPOS) installation and setup via AX 2012 R3 CU8 demo machine

When you open the AX 2012 R3 CU8 machine, you'll notice that you cannot see the Retail Modern POS (mPOS) application (Figure 1 below). Additionally, if you spend time trying to load it onto the administrator account's Windows 8 profile, you will not be able to run it. The application was specifically designed to not allow the user to run this app. So you will have to log into a different user to access it.

So the whole purpose of this post will be: 'How can I get into the mPOS'.

OPTION 1 - Use an existing user with the mPOS installed and configured
There is a user setup out of the box for this. Literally you can spin up the machine from Lifecycle Services (LCS) and start getting into the mPOS in this version. In previous versions, there were issues but it seems to have been ironed out now.
  1. Log into the RDP session as contoso\Emmah, with the 'standard' AX password with the '@' sign we all know and love .
    1. You will now see a number of POS registers on the desktop. If you navigate to the Start screen, you will see the Retail Modern POS (Figure 1 below) installed.
  2. Click on the Retail Modern POS application
  3. Enter the Device activation information in Figure 2 (or whatever yours is but this is from the demo)
  4. Click 'Activate'. It will take ~15 seconds to activate as seen in Figure 3.
  5. You are in the modern POS now!
Something interesting happened for me testing this route though. I was in the mPOS and poking around very casually. Then got up to get coffee, started documenting this in this blog post and noticed that the screen flashed and the app apparently crashed or something. Now the app can't be found anywhere. That's fun. So onto the second option I guess...

Figure 1 - The Retail Modern POS application
Figure 2 - The mPOS settings needed to log in

Figure 3 - The mPOS processing and activating the device
OPTION 2 - Create a new user, install the mPOS, configure, and go.
I wanted to use my own username instead of Emmah and do the configuration from beginning to end. This includes installing the mPOS on the machine for the user. Since the Emmah mPOS session crashed and apparently uninstalled itself, this option was a natural progression now.
  1. Create the new user and add them to the appropriate permissions (I did admin group because I need to do a bunch of admin tasks in demos)
    1. I believe you need to be an admin to install the mPOS. I haven't confirmed but I have a very strong feeling that you do.
  2. Add the user to AX (not required for mPOS but I have to demo other stuff)
  3. Setup the user in AX as a POS user that will ultimately get into the POS
    1. I won't get into the details of how to do that in this post as that would be off topic.
  4. Install the mPOS app to the user (note that the other components have already been installed on the machine
    1. Navigate out to the Retail Modern POS Tools in Windows Explorer (C:\Microsoft Dynamics AX\60\Retail Modern POS\Tools)
    2. In Windows Explorer, click File->Open Windows PowerShell->Open Windows PowerShell as administrator
    3. UPDATE 6/21/2016: change your directory in powershell to: cd "C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail Modern POS\tools"
    4. Enter the following in PowerShell: .\Install-RetailModernPOS.ps1 -Path "C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail Modern POS"
      1. If you enter the location wrong, obviously you will get an error. If its correct, a bunch of stuff will occur and fly around in the PowerShell script.
      2. When successful, you'll see Figure 5 below.
    5. Create a new Device in AX
      1. You should create a new Device in AX for every new mPOS instance (Dynamics AX->Retail->Setup->Devices)
      2. If you skip this step and you activated the 'Houston-3' device like in Option 1 above, you'll get the error below in Figure 4.
      3. You can skip this step if you deactivate the other device and associate it with this instance. Up to you, but I want a new device setup.
    6. Activate the new device with the new user (Figure 6)
    7. The mPOS will open and you can log in!
    8. The device activations can be seen in Figure 7. All done!
All done! Easy enough!

Figure 4 - The error trying to activate a device that's already been activate

Figure 5 - Last part of the PowerShell script indicating everything installed correctly

Figure 6 - Activating the new device

Figure 7 - The device activations

Friday, July 18, 2014

Dynamics AX - How to make a table an optional parameter in a method

I couldn't remember how to make a table value option for a method. I've done it a ton before but just couldn't recall at the time. Tried doing a few searches and didn't find anything so thought it would be a good post.

Dynamics AX can allow parameters to be optional for a given method. This is accomplished by assigning a parameter to an appropriate value at the top of the method (see below example). If there is no assignment, the parameter is required. The one rule is that all optional parameters must be after the mandatory ones. It is not allowed to have a mandatory following an optional one.

When calling the method, you can see which parameters are mandatory and which are optional as the optional values will show up with a bracket '[' in them in the intellisense.

All that being said, below is how you would accomplish making a table optional with a null value in its place. Simple assign the functions parameter to a value of 'null'.

public void processInbound(Table1 _mandoatoryTableParam, Table2 _optionalTableParam = null)


For additional information about certain data types being null values, see below:

Null Values for Data Types [AX 2012]
http://msdn.microsoft.com/en-us/library/aa846236.aspx
Type
Value treated as null
Date 1900-01-01
Enum Element with its value set to 0.
Integer 0
Real 0.0
String An empty string
Time 00:00:00
Utcdatetime Any value with its date portion as 1900-01-01 is treated as null, regardless of the time portion value. Therefore the value 1900-01-01T22:33:44 is treated as null.
NoteNote
Any utcDateTime value with its date portion as 1900-01-01 is displayed as blank by the X++ print statement. Only the value 1900-01-01T00:00:00 is displayed as blank by the Global::info method. That is the value from the DateTimeUtil::MinValue method.

Wednesday, May 21, 2014

Retailing in the modern world Pt I - Business marketing and sales channels

I'm going to write a series of posts relating to various retail channels and concepts in each. I hope they are informative to you. This is part one but look for the rest of the series to come out in the next few weeks. That being said, here is post one:

People generally specify marketing channels into two classifications: 1) Business to Business (B2B) and 2) Business to Consumer (B2C). Both channels are geared towards enticing increased revenues by optimizing the sales in retail channels via strategic planning for certain customers. They often share the same retail channels types to accomplish this.

What are the 3 big differences between B2B and B2C channels?

Customers: B2B channels are sales avenues between businesses while B2C are typically sales avenues for end-users of a product or service
Marketing: B2B sales are typically marketed through trade shows or mutual business associations while B2C are marketed through advertising, retail channels, or word of mouth.

Revenue: Generally, B2B transactions are larger in revenue and volume. The volume may be higher in this avenue but at the expense of margin (sales price). Quick note: Overhead may be lower in an organization with no brick and mortar and just B2B via portals and catalog sales

What are the different channels of B2B and B2B retailing?
  1. Brick and Mortar stores
  2. Online (E-commerce) stores (including B2B portals)
  3. Call Centers (telephone orders/support)
  4. Mobile stores
  5. Kiosks 
  6. Catalogs
  7. 3rd party direct sales
As the 'Retailing in the modern world' series goes on, we will look into the above channels in deeper detail in regards to increasing revenue, brand awareness, and leveraging technology to optimize these channels (my favorite topic!).  Stay tuned for more in this series!