So I haven't been able to blog about AX7 as often as I had hoped to. As usual, life gets in the way. In fact, so much has happened since my last post that we can't even call it AX anymore! Welcome to the world of Dynamics 365 for Operations. D365FO? That's a seriously ugly acronym.
I wanted to post a warning today. It's a small thing, but it just caused us a couple of days of hair-pulling and confusion. In your D365FO development environment, you will see multiple packages that are suffixed with FormAdaptor. According to Microsoft, "Form adaptors are wrapper classes over forms which provide strongly typed API that can be used to test form functionality." (https://ax.help.dynamics.com/en/wiki/tst101-testing-and-validations-in-microsoft-dynamics-ax-7/). I'm not going to go into detail about what Form Adaptors are, other than to highlight the fact that they only exist in development environments! If you log into a non-development server, and look in your PackagesLocalDirectory folder, you will notice that there are no *FormAdaptor sub-folders. This is a crucial difference, and something that must be understood when setting your model's referenced packages. In short, any model that you intend to promote to a non-development environment must never reference a FormAdaptor package. If it does, when it is deployed into a non-development environment (with a software deployable package) it will cause the deployment to fail in LCS because the referenced package will not exist. The same thing would happen if you had a reference to any other package that doesn't exist in the target environment. But in this case, since the FormAdaptor packages are part of the standard platform, we need to be careful not to assume that they exist everywhere - they don't.
So when choosing which packages your model should reference, it is better to start small - only select the packages that you know you need. You can always add additional references later, as the need arises. But steer clear of the FormAdaptor packages!
At the time this post was written, this is a list of the FormAdaptor packages: