Book Image

Microsoft Dynamics AX 2009 Development Cookbook

By : Mindaugas Pocius
Book Image

Microsoft Dynamics AX 2009 Development Cookbook

By: Mindaugas Pocius

Overview of this book

Microsoft Dynamics AX provides a comprehensive Enterprise Resource Planning (ERP) solution for mid-size and larger organizations. Dynamics AX implementations are used worldwide by thousands of customers. With the new version - Dynamics AX 2009 - the system is due to expand even more rapidly. Every new implementation requires some level of customization, and all organizations want this to be done to the highest standards using proven approaches. This step-by-step guide will help you manage your company's ERP information and operations efficiently, and solve your business process problems in an effective and quick way. This book focuses on commonly used custom modifications in major Dynamics AX modules. This book contains commonly used bits of code which were real-world tested in at least one successful Dynamics AX implementation. Many of the recipes were deployed in many implementations and even across several versions of Dynamics AX. The examples in this book cover various areas of Dynamics AX to help developers not only learn about programming, but also about the functional side of Dynamics AX. The book should help developers who already know the basics of Dynamics AX programming to step up to the next level. The recipes allow you to look at the development from the perspective of business processes. You will learn to enhance your user interface using various Dynamics AX UI elements. Managing your data and functions will become easier. You will also get numerous development tips and tricks from a Dynamics AX development expert.
Table of Contents (12 chapters)
Microsoft Dynamics AX 2009 Development Cookbook
Credits
About the Author
About the Reviewers
Preface
Index

Using a normal table as temporary table


Standard Dynamics AX contains numerous temporary tables, which are used by the application and could be used in custom modifications too. Although new temporary tables could also be easily created using AOT, sometimes it is not effective. One of the cases could be when the temporary table is very similar or exactly the same as an existing "real" one. The goal of this recipe is to demonstrate an approach to how standard non-temporary tables could be used as temporary.

As an example, we will use the vendor table to insert and display a couple of temporary records without affecting actual data.

How to do it...

  1. In AOT, create a new class called VendTableTmp with the following code:

    class VendTableTmp
     {
     }
     server static void main(Args _args)
     {
         VendTable   vendTable;
         ;
     
         vendTable.setTmp();
     
         vendTable.AccountNum = '1000';
         vendTable.Name       = 'Vendor 1';
         vendTable.PartyId    = '1';
         vendTable.doInsert();
     
         vendTable.clear();
         vendTable.AccountNum = '1002';
         vendTable.Name       = 'Vendor 2';
         vendTable.PartyId    = '2';
         vendTable.doInsert();
     
         while select vendTable
         {
             info(strfmt(
                 "%1 - %2",
                 vendTable.AccountNum,
                 vendTable.Name));
         }
     }
  2. Run the class to see results:

How it works...

The principle of this recipe is in the setTmp() method. It is available on all tables, and it declares the current table instance to behave as a temporary table in the current scope. So in this recipe, we first call setTmp() on the vendTable table to make it temporary in the scope of this method. That means any data manipulations will be lost once the execution of this method is over and actual table content will not be affected.

Next, we insert couple of test records. Here, we use doInsert() to bypass any validation rules that are not required in this recipe.

The last thing to do is to check for newly created records by listing the vendTable table. We can see that although the table contains many actual records, only the ones which we have inserted here are listed.

See also

Working with Data in Forms, Creating default data wizards