Ivan (Vanya) Kashperuk blog

Ivan (Vanya) Kashperuk blog
  • Microsoft Dynamics Salary Survey 2013

    The time of the annual Microsoft Dynamics Salary survey is again upon us. Here's the official invite. Please participate, so we can make the data accurate statistically. They also have prizes for people participating.. :) ...
  • Inside Microsoft Dynamics AX 2012 is available for Pre-Order

    With the release of AX 2012 the market was in need of an updated book on the development aspects in X++/.NET for the purposes of extending the AX application functionality. As some of you might know, I translated 2 of the MS Press books on AX development...
  • Tutorial: Determine if a string is a valid UtcDateTime

    In my post about UtcDateTime in Dynamics AX , I recently received a question about determining if a specific string is a valid UtcDateTime in X++.I've spent some time looking into it and could not find an available method that could be used for that...
  • Tip: Illegal 'closing bracket' character when defining a macro

    Just a very quick tip today, related to macros: As you all know, there are multiple ways to define and use macros in X++. For those that need a refresher, please look up the corresponding section on MSDN (Direct link: http://msdn.microsoft...
  • Microsoft Dynamics Salary Survey 2012 - Please participate

    I don't usually make posts like this, but this is one of those things I always look forward to reading when it comes out, so I decided helping the guys out won't hurt :) What I am asking from you guys is some time (2 minutes or so) to fill...
  • Tutorial: Debugging AX while still using restricted roles (non-admin)

    Saw this on our internal forum today, and thought it's a nice thing to share with all of you. 1. Close All AX instances 2. Open AX Development Environment (ax32.exe -development) 3. Open AX Application (ax32.exe) 4. Add Role that...
  • Tutorial: AX 2012 - Invalid field access or Accessing unretrieved fields

    Read the post all the way until the end - there's an ask for you guys there! As many of you have already seen in the new AX 2012 release, there are a lot more tables present in the application, because we went through an exercise of normalizing...
  • Temporary Post Used For Theme Detection (238b575c-9032-4890-967a-9c08e7828d90 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

    This is a temporary post that was not deleted. Please delete this manually. (20535746-a561-481a-a50d-52a43c2b8153 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  • Tutorial: AX2012 - A new way of accessing the QueryBuildDataSource for a particular FormDataSource

    When playing with some X++ code, I found an interesting addition that happened in AX 2012 related to form development. There are 2 new methods that were added to the FormDataSource class, which allow you to very easily and error-free access the underlying...
  • Tool: Updating a field value for all selected records on a form

    Problem statement: During a recent customer visit we received a suggestion from the developers working on customizing the customer application to their needs. The suggestion was about being able to modify the value of a certain field on a form for...
  • Help content for Microsoft Dynamics AX 2012 is now available on TechNet

    As you might have heard, AX 2012 has RTM'ed recently. Now, the question you might ask is - OK, I have read the What's new in AX 2012, but that's not enough. The changes are too vast and I need more detailed information about them. Well...
  • Tutorial: Table Relation properties in AX 2012

    As many of you already know, Microsoft has put in a lot of effort into normalizing the tables in AX 2012 and consolidating all the data modeling tools in one place - the table itself. As part of this effort, a number of new properties have been introduced...
  • Tutorial: lockWindowUpdate() vs. lock()/unlock()

    There are two method pairs in X++, that are used throughout the application by everyone writing some processing on application forms. These are: element.lock(); element.unLock(); and element.lockWindowUpdate(true); element.lockWindowUpdate(false); Now...
  • Microsoft Dynamics AX 2012 Beta now available for download - please share your feedback

    As some might have noticed, I was quiet for quite some time now. I won't go into much detail as to why. What I want to say is that I along with a number of dedicated people have been hard at work on the release of a solution for Process Manufacturing...
  • Tutorial: Undocumented behavior of kernel functions min()/max()

    I was recently reviewing some code written to be shipped with AX6, and noticed an unfamiliar pattern being used in it. I investigated a bit deeper, and turns out it actually works fine on previous versions of AX as well. I am talking about 2 kernel functions...
  • Advertisement: MDCC is looking for talent!

    Hello, all. Microsoft Development Center in Copenhagen has a number of open positions for Software Development Engineers in Test (SDETs), to work in the team responsible for shipping the latest version of the Microsoft Dynamics AX product. Below is a...
  • Tutorial: Brief description of ways to close a form in AX

    We had this question asked on one of the internal AX forums, and Michael Fruergaard wrote a short description of each method you can use. Re-posting it here with some extra comments, so that new developers can read and understand, when to use what method...
  • Tool: DEV_SysTableBrowser and DEV_CreateNewProject tools now on AX 2009

    3 or so years ago I created a couple of tools that provide extra capabilities for AX developers, specifically, ease up the creation of a new project with a predefined structure and name pattern, and add functionality to the way we browse tables with the...
  • Tool: User preferred startup menu for Dynamics AX 2009

    In AX 2009, the user has no control over which menu is opened in the navigation pane and address bar when AX client is started. Most of the time you simply get the Home page, which is frustrating for a number of users. Another thing that is frustrating...
  • Tutorial: refresh, reread, research, executeQuery - which one to use?

    X++ developers seem to be having a lot of trouble with these 4 datasource methods, no matter how senior they are in AX. So I decided to make a small hands-on tutorial, demonstrating the common usage scenario for each of the methods. I have ordered the...
  • Highlighting your code on Blogger

    A couple of people have now asked me for the tool that I use for pasting the source code on my blog. In order to use the same, you will have to change the template of your blog and include the following scrips: <script src='http://amalafe.googlecode...
  • Casing and text search/comparison tutorial

    I have recently received a question from one of my blog readers. He was asking about the possibility of doing case-sensitive search in AX. I would like to reply to that by creating a small tutorial on search in AX. It is definitely not going to cover...
  • UtcDateTime in Dynamics AX 2009

    In Dynamics AX 2009, Microsoft introduced a new data type, UtcDateTime , that is going to eventually replace the 2 existing types, Date and Time , which are still present in the application right now. Obviously, the introduction of this new type requires...
  • Performance optimization: Deleting inventory journal lines

    Preamble As a developer, you should always consider performance implications of the code you write. In an ERP application like Microsoft Dynamics AX, the main focus should be on query execution, since it takes up the overwhelming part of the servers'...
  • Lookup form returning more than one value

    I have been posted with the question of creating a lookup that would return more than 1 value into the calling record, filling in a number of fields and populating the selected control with the corresponding value at the same time. I will try to answer...