Personalized Community is here!
Quickly customize your community to find the content you seek.
Have questions on moving to the cloud? Visit the Dynamics 365 Migration Community today! Microsoft’s extensive network of Dynamics AX and Dynamics CRM experts can help.
2022 Release Wave 1 PlanDynamics 365 release plan for the 2022 release wave 1 describes all new features releasing from April 2022 through September 2022.
2022 release wave 1 plan
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Community | FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Upcoming TechTalks | All TechTalks
How do I customize the code in a class which belongs to "Application suite" (sys). I want to comment a line of code and replace it with a new logic.
I tried creating new model in var and sys but when I customize the class and save it and error is thrown "Unauthorized to modify model <modelname> "
Have you created your model in Application Suite package?
That’s what the beauty of AX7, which is not allowing to customize an object, outside a Suite.
If, you want to customize a class of “Application suite”, make sure, your current project belong to a model, which has access to “Application suite package”
In other words,
• Create a new model,
• go for choice ”Select existing package”
• Select “Application suite” as existing package
• Create a project that must belong to your created Model
Here you can customize an object of Application suite in your Model.
that was actually a trial. I can create a Sys layer model referencing to "application suite" but cannot use it.
You mean I cannot create a new package for my model and reference the "Application Suite" package for customizing any of it's objects?
should I always create a model and select and existing package "Application suite" ?
If you create a new package referencing Application Suite, you can extend Application Suite, but you can't change its code. If you want to overlayer something, you have to work on the same package.
You should prefer extensions., therefore you definitely shouldn't always create models in existing packages.
Please learn the basics in Customization: Overlayering and extensions on AX 7 Wiki, for example. You can also watch great recordings from the Technical conference.
I was customizing a class InventdimCtrl_Frm_OnHand. I wanted to comment a line of code and write a new line below that.
In such a case, is there anyway other than over layering?
The question should be whether you can implement your logic without actually modifying code of the class. Maybe you can create a child class and override the method, you can perform your logic in a post-method event or so. If so, you don't need overlayering.
If must modify the class, well, it's obviously not an extension.
You question in a previous statement
Should I always create a model and select and existing package "Application suite”?
No. Not Always.
It depends what element you want to work with. If that element belongs to “XYZ Package”, you need to decide if your work is doable by extensions etc. or else, if overlaying is must, you have to create model by “Selecting existing package”, which must be having same Package(XYZ), as the element belongs to, as you are going for OverLayring.
In a typical implementation, you may need to create multiple models each one by “Selecting existing package”, so you can have multiple projects, in your solution each one linked to different package.
Overall you should try to isolate your code, as much as you can, by creating your own package, while using extensions, delegates and pre-post event handlers.
DO you have sample code for this?
But customization that is Overlayering of standard objects like classes have been eliminated from AX 7 PU15.
If I create my new model and click on existing package I don't see standard packages as below,
Please suggest how do we modify classes in AX7 PU15, as we can create extensions of tables, forms but not of classes.
The Application Suite package was locked in application version 8.0, not in platform update 15. Application Suite isn't a part of the platform.
One approach to extensions is using the usual object-oriented techniques - inheritance & polymorphism, composition, events...
Nevertheless, you can extend classes too. Actually, the same approach is when dealing with business logic of classes, forms and tables. For example, a table extension allows you to add fields, but if you want to change behavior, you need a class (either an extension or event handlers). The documentation pages you need are Class extension model in X++ and Class extension via method wrapping and Chain of Command (CoC).
Business Applications communities