Skip to main content

Posts

Showing posts from November, 2016

MS Dynamics 365 - Create Model and Project - Development Part 1

This post describes how to create model with correct selection of package which leads to correct development approach either Extension or Overlayering (Customization) Go to Dynamics 365 or AX7 | Deploy | Create model Enter required information as shown Choose correct package If you decided to go with overlayering, existing package will be selected from dropdown.   Select referenced packages For this example; I will go with extension development approach, it is easy to upgrade with new versions or updates coming from MS. Marked all required packages (models) which can be referenced through your new created model. Through these references, you can actually use the element living in those packages (models), without these references you cannot access any element belongs to a different model. Lets' say you want to access CustTable which belongs to Application Suite package then you have to checked  Application Suite package in referen...

MS Dynamics 365 - Configure Visual Studio for better expereince

Few settings to configure in Microsoft Visual Studio to make the development experience with AX a little smoother. Go to Dynamics 365 Options Set Projects Options - organize project by element type Set Text Editor Options - Line number and word wrap Set Best practice options The definition of best practice rules set is per model, by default it is set to Application Common model and can be switched between different models from the combo box in the upper right corner. Let's say if you are working with Customization Analysis you have to check Microsoft.Dynamics.AX.Framework.CustomizationAnalysisRules best practice rule. Set BP rules at Build level Build process itself does BP checking - there is an option to enable it. To take this into effect you might have to rebuild the solution/project rather build it.

MS Dynamics 365 - Configure Visual Studio for better expereince

Few settings to configure in Microsoft Visual Studio to make the development experience with AX a little smoother. Go to Dynamics 365 Options Set Projects Options - organize project by element type Set Text Editor Options - Line number and word wrap Set Best practice options The definition of best practice rules set is per model, by default it is set to Application Common model and can be switched between the different model from the combo box in the upper right corner. For example; to work with Customization Analysis you have to check Microsoft.Dynamics.AX.Framework.CustomizationAnalysisRules best practice rule.  Build process itself does BP checking - there is an option to enable it. [To take into effect you might have to rebuild the solution/project in contrast to we usually do - build] .

AX 2012: How to use JumpRef method

JumpRef method is mostly used with fields which are not linked with an EDT however,  this depends on the design of the code and the requirement. I got a requirement to show 'View Details' options to the field of type notes (memo). There can be multiple ways to accomplish it but its always better to have your code at a central location (best to have it in Class or at table level) to reuse it. JumpRef method can be overridden at form level under control itself but we are not going to do [avoid code changes at form level] Better to override JumpRef method at datasource field level and call method from table. JumpRef  Method: public void jumpRef() {     JumpRef::peformJumpRef(JumpRef.Notes); } PerformJumpRef  method at table static   void  peformJumpRef(Notes _notes) {     MenuFunction    menuFunction;     Args       ...

AX 2012: StrFind and StrScan functions

Two standard functions strFind and strScan can be used based on business requirement for find a special character from an input string. Here is an example with both functions; Both functions return integer value. StrScan Function Int found = 0; Str target= "Dynamics AX 365 operation"; found = strScan(target, "365", 0, strLen(target)); where parameters are; 1. string 2. string 3. position 4. number StrFind Function Int found = 0; Str target= "Dynamics AX 365 operation"; found = strFind(target, "X", 0, strLen(target)); where parameters are; 1. string 2. character 3. position 4. number

AX 2012: Access Denied: ***Controller

Recently I came across the following exception while opening batch job via a menu item which has been written using sysOperation framework. It was happening only with non-admin users so the first thing I could think of permission/access issue. I checked all properties on menu  item, everything seems to be set properly as required. Solution:  Created   a new server method under security privilege which is created for menu item used to called this import routine.  Select required class, Under method dropdown type your required method [by default it list static methods], and set EffectiveAccess to Invoke.

AX 2012: Convert string to TitleCase using str2CapitalWord function

Requirement: Show customer name on report in TitleCase e.g. faisal fareed should display as Faisal Fareed Solution:  str2CapitalWord function does the trick and accomplished the requirement. input string: "faisal fareed" output string: "Faisal Fareed" P.S. There is another function str2Capital which just converts the first letter of the first word e.g. "faisal fareed" will be converted to "Faisal fareed"