Showing posts with label AX 2012 R3. Show all posts
Showing posts with label AX 2012 R3. 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!


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()));
    }
}

Wednesday, March 15, 2017

Dynamics 365 for Operations - Determine table/field/datasource name on form and query of data

Things have changed since AX 2012 R3 in regards to navigation. The days of navigating to the AOT from the front end are over. The fluid connection before front and back has been separated, for good reason. But that has created some challenges in the new navigation.

If you see a field in Dynamics 365 for Operations and need to navigate out to it, you can do the process in Figure 1 below. You right click on the field of interest, hover over 'Form information' option, and then click the 'Form Name: ....' option.

You'll see the 'Form name' window appear which contains a wealth of information. It shoudl be fairly similar but you will notice a few additions. In Figure 2 below, you'll see:

  • Control Information
    • Datasource = the name of the datasource (not the table name but generally is. The table name 'should' be fairly similar. You'll want to look for the query statement to confirm)
    • Data field = the name of the datasource field (generally table field name)
  • Form Information
    • Form name = the form that the menu item is tied to
    • Menu item name = the name of the menu item as it is in the AOT
    • Menu item display = the type of the menu item (display/output/action)
  • Query Statement
    • The query for the datasource. This is nice to see on the front end. No need to dig for it in the back end with the QueryBuildDataSource in code. 

Hope this helps!

Figure 1 - Navigation to the form information 

Figure 2 - The information on the form information

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!


Thursday, December 15, 2016

AX Retail - Require the user to enter in a price for a zero priced item

In the event you have a zero priced item (intentionally or unintentionally), you may want the user to key in the price if its zero. This can be setup store by store and is located in the POS Functionality Profiles record.

Requiring the zero priced item to have a new price can be helpful at the beginning of a project, but can also create a lot of headaches so make sure you have a process in place to identify zero priced items rather than rely on this setting. It shouldn't be used as a catch all magic button for those issues.

I always struggle to remember where the setting is so I'm posting about it for next time I put it in the search engine.



Wednesday, October 26, 2016

A guide to debugging the Microsoft Dynamics AX Debugger

Debugging the AX Debugger can be a little bugger'. Here are a few things to check for as to why you aren't able to debug some code.
  • Make sure your user is added to the Debugger group on the instance your in
    • IMPORTANT: You'll want to log out and back into your instance. This means actually logging out and not just close and reopen AX and/or the RDP session. 
    • This might be the issue if the debugger pops up but is greyed out and AX seems to have acknowledged the breakpoint but breezed right past it
  • Make sure your breakpoints are set and enabled and not 'disabled'. 
    • There is a button next to the set breakpoints in the toolbar that allow enable/disable
  • Assure the code where your breakpoint is is actually being hit.
    • This is a make sure its plugged in type response but you'd be surprised how common it is...
  • In your user options under Development tab, make sure the 'Debug mode' is set to 'When Breakpoint'
  • The breakpoint might be set in a spot that the debugger can't hit. For example, the clicked method on a button.
    • adding a line of code for 'breakpoint;' rather than using the red dot breakpoints will allow you to debug these methods
  • If the code is running in the CIL, you may need to make the code run on the client. 
    • Go to your user options > 'Development' tab and uncheck 'Execute business operations in CIL'. 
  • If the code is running in batch, you'll need to debug this process via Visual Studio. The breakpoints in AX are for client processes only generally. 
  • You may need to adjust the breakpoint check boxes in the Dynamics AX Configuration Utility under the Developer tab. There are two settings there: 'Enable user breakpoints to debug code in the business connector' and 'Enable global breakpoints to debug code running in the Business Connector or client'
  • Check the AOS debugger settings. Dont remember what this check box(es) are called but there is something on the AX AOS config that can be a factor. 

Thursday, August 11, 2016

AX 2012 R3 Retail Error when running a retail distribution job: 'Failed to create a session; confirm that the user has the proper privileges to log on to Microsoft Dynamics'

[Going through old notes in my retail folder and posting here]
I was attempting to run a Retail Data Distribution job in AX 2012 R3 to a POS and got the below error. It was 'Failed to create a session; confirm that the user has the proper privileges to log on to Microsoft Dynamics'. I recently ran the generate classes and create staging tables functions so there was new code in place. 

I did a little debugging as the error was not retail specific and it was odd it was being thrown where it was. Sure enough, the CIL wasn't recognizing my current user which is why it wasn't working... Obviously this isn't a bug but rather something within AX. Come to find out, I had previously built the classes and staging tables for the jobs in the USR layer, deleted them, then rebuilt them in the proper layer/model. That threw some issues into the system.

A compile, usage data clear allowed me to get the new error in Figure 3. Obviously that told me to do a full CIL build. I did that, problem solved!

 Figure 1 - The error in question

 Figure 2 - Line 51 is where the error was being thrown.

Figure 3 - The actual error in question. Its actually quite helpful!

Tuesday, August 9, 2016

Dynamics AX 2012 R3 Retail Error when running Distribution schedule job: 'Class RetailCDXChannelSpecificData_AX63 does not exist

Are you getting an error when attempting to run an AX 2012 R3 Retail data distribution scheduler job (Figure 1)? Is it 'Class RetailCDXChannelSpecificData_AX63 does not exist'? Does it look like the one in Figure 2 below? Do you like things actually working correctly? Hey, friend! If your answer was Yes to the questions above, I might be able to hook you up.

To fix the issue, navigate to the Retail Channel Schema (hint: its on the Scheduler job setup in the field 'Retail Channel Schema'. You can right click on this field for the job in question and go straight to the record and form to generate those magic classes the error has told you all about.

NOTE: This process will generate code in AX AOT so you'll want to be in the correct layer/model for this process

When you click 'Generate classes' (Figure 3), you'll be prompted to what it will do (Figure 4) so make sure you are in the right layer and it will generate the classes you need as you'll see in the AOT (Figure 5).

You will need to do the Incremental CIL build after this or you may get weird issues, but I always do a full as I still don't trust the incrementals from earlier experiences.

Figure 1 - Running the Data Distribution Scheduler job manually

Figure 2 - A delightful little nugget of goodness raining on your parade

Figure 3 - The 'Generate classes' button in the Retail Channel Schema form

Figure 4 - The confirmation for generating the scheduler job classes

Figure 5 - The classes generated in the AOT

Figure 6 - Go grab a beer and celebrate. Or get back to work...


Monday, August 8, 2016

Dynamics AX 2012 R3 Retail Error when syncing metadata: 'The table [Table] does not exist'

You may see the error 'The table NoSaleFiscalDocumentTransaction_BRT does not exist' when attempting to sync the metadata via the 'Sync Metadata' (Figure 1) in AX 2012 R3 Retail (Figure 2)

This is because the temporary table for the tables in question need to be run. The '...T' at the end of the error (.._BRT in this case) indicates its temporary for the main table. The tables where these are created are determined through the subjobs for that PJob. So you'll need to do this when you add tables to sync back/forth between the POS and AX.

You generate these temporary tables by clicking on the 'Create staging table' button in the scheduler job form (Figure 3). You only need to do this for 'Pull' type schedule jobs. You can determine which these are via the 'Is Upload' check box. Best practices dictates that your Pjobs should always be named with the prefix 'P-...' if the 'Is Upload' box is checked.

NOTE: When you click 'Create staging table', there are AOT objects created. Make sure you are in the correct layer/model where you want these created.

Upon clicking on the 'Create staging table' button, you will see the information in Figure 4. The tables are created in the AOT. You can verify if you want. Then go back and hit the 'Sync metadata' button and you'll see the successful sync in Figure 5.

Figure 1 - 'Sync metadata' button on the Retail Scheduler parameters

 Figure 2 - The Error thrown when attempting to sync the metadata

Figure 3 - The P-Job with 'Create Staging table' button

Figure 4 - The TempDB tables created from 'Create Staging table' button

Figure 5 - What you see when you successfully sync metadata

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.

Thursday, September 24, 2015

AX 2012 Modern POS error: "Device Activiation Error Application Error"

I restarted an old Azure instance of the Modern POS (mPOS) that was once working, and when it was loaded back up, the mPOS loaded up like it had not yet been activated. I'd actually activated it and used the install setup for this instance in a previous post: Retail Modern POS (mPOS) installation and setup via AX 2012 R3 CU8 demo machine.

When attempting to reactivate it, I was getting the error 'Device Activation Error' with the detail 'Application error' (Figure 1 below).

Figure 1 - MPOS activation error: 'Device Activation Errror: Application error"'

I used the normal debugging techniques to try to figure out the issue (Event viewer and Fiddler primarily) to no avail. I also pushed all of the data from AX down to the retail channel again to make sure nothing was out of sync. Note: when using Fiddler, make sure there is a Win8 Loopback Exemption for the MPOS (Fiddler>Tools>'Win8 Loopback Exemptions>'Microsoft Dynamics Retail Modern POS application' [AS OF 9/24/2015]).

After digging more and more, I found out that a setting had been changed in AX for the channel profile of the store where the Retail server URL was reaching out to an Azure address rather than the localhost I was specifying on the Service URL for the Device Activation screen from Figure 1 above. The setup for the wrong setting is in Figure 2 below. The correct setting is in Figure 3 below as well as where you can validate what channel profile the store is using.

The setup in Figure 2 was not necessarily wrong but the setup was not complete hence the error. So I changed it back to what was working locally. To note, the MPOS was installed locally on the same instance as the AX instance. 

Hope this helps!


Figure 2 - The non-working configuration for the retail server channel
Figure 3 - The working configuration for the mPOS. This resolved the error





Wednesday, April 1, 2015

When does my Dynamics AX version support expire? Microsoft Dynamics AX Version Support Explained

Often people will ask 'When will my Dynamics AX version no longer be supported?' This basically means, when will I be forced to upgrade or face the situation where we're 'on our own' in regards to fixing issues, security, and hotfix-able bugs.

As of 3/28/2015, there are four types of  'End Dates' when looking at the support information: 'Regular Support', 'Mainstream Support', 'Extended Support', and 'Self-help online support'.

For Regular Support, Microsoft will offer a minimum of 10 years of support for Business, Developer, and Desktop Operating System (consumer or business) Software Products. Mainstream Support for Business, Developer, and Desktop Operating Systems will be provided for 5 years or for 2 years after the successor product (N+1) is released, whichever is longer. Extended Support will exist for the 5 years following Mainstream support or for 2 years after the second successor product (N+2) is released, whichever is longer.

Extended Support is not offered for Customer software and Multimedia products with the exception of Windows Desktop Operating system which follows the Business, Developer, and Desktop Operating System Software Products policy as outlined above.

https://support.microsoft.com/en-us/lifecycle/search/default.aspx?sort=pn&alpha=dynamics%20ax

There are 6 columns that are used in determining the support information:
  1. Products Released (Figure 1)
    1. The Dynamics AX product version (overall version [3.0, 4.0, 2009, 2012] and sub-release [SPX = Service Pack 'X', RX = Release 'X'])
  2. Lifecycle Start Date (Figure 1)
    1. When the product is officially released. This is also called being "GA'ed" or General Availability-ed.
    2. Also known as when customers who aren't a part of the Microsoft 'TAP' program are able to buy and start implementing the version
  3. Mainstream Support End Date (Figure 1/2)
    1. When in mainstream support, requests to change product designs and features are considered and implemented up until this date.
    2. Security updates are applied
    3. Hardware warranty claims are honored
  4. Extended Support End Date (Figure 1/2)
    1. Product design and feature requests are no longer considered in the current release
    2. Non-security update support requests are only considered through Microsoft Premier Support
    3. Complimentary Support will not be honored except through exception
  5. Service Pack Support End Date (Figure 1)
    1. When the service packs are no longer supported
  6. Notes (Figure 1)
    1. Important information in regards to the product release.
    2. I normally skip the 'notes' sections of stuff but I'd highly recommend reading this part...
    3. If Microsoft determines they need to clarification for the above 5 points, like an extension or something, the explanation will be displayed in here
I  hope this sheds a bit of light on this common question. Just make sure to keep checking Microsoft's site to make sure you have the updated information. The information below is from a point in time and will not be updated when changes are available.
 
Figure 1 - Current support for Dynamics AX as of 3/28/2015. This may change so check for most recent updates: https://support.microsoft.com/en-us/lifecycle/search/default.aspx?sort=pn&alpha=dynamics%20ax!!!
 
Figure 2 - Features of the various types of support

Friday, March 6, 2015

AX 2012 R3 Product Attributes Not Showing up

For some reason, when it comes to adding attributes to products, I can never remember how to get them to actually show up under the products (Figure 1).

Its easy to setup the attribute types, then the attributes, then assign the attributes to attribute groups but now how do you make those show up?

This is a quick post to help me (yes me!) remember that the product attributes should be assigned to the procurement categories hierarchy (Figure 2), not the retail product category hierarchy or the one used for sales. I always set everything up and go to enter the data and always get a punch in the face when they don't show up (Figure 1).

So add the products and product attributes to the appropriate spot in the procurement categories and you're all good!


Figure 1

Figure 2