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

Importing from an XML file


The exporting to an XML file recipe has already explained the importance of XML in Dynamics AX, and how XML documents could be used for exporting data from the system.

In this recipe, we will continue about XML. We will create a piece of code that reads XML files. As a source file, we will use the previously created accounts.xml file.

How to do it...

  1. Open AOT, and create a new class called ReadXmlFile with the following code. Replace <documents> with your own path (use double backslashes for folder separation, i.e. \\):

    class ReadXmlFile 
     {
     }
     
     public static void main(Args _args)
     {
         XmlDocument doc;
         XmlNodeList data;
         XmlElement  nodeTable;
         XmlElement  nodeAccount;
         XmlElement  nodeName;
         #define.filename('<documents>\\accounts.xml')
         ;
     
         doc  = XmlDocument::newFile(#filename);
     
         data = doc.selectNodes('//'+tablestr(LedgerTable));
     
         nodeTable = data.nextNode();
         
         while (nodeTable)
         {
             nodeAccount = nodeTable.selectSingleNode(
                 fieldstr(LedgerTable, AccountNum));
     
             nodeName = nodeTable.selectSingleNode(
                 fieldstr(LedgerTable, AccountName));
                 
             info(strfmt(
                 "%1 - %2",
                 nodeAccount.text(),
                 nodeName.text()));
     
             nodeTable = data.nextNode();
         }
     }
  2. Run the class. Infolog should display the contents of the accounts.xml file on the screen:

How it works...

In this recipe, we first create a new XmlDocument. We create it from the file and hence we have to use newFile(). Then we get all the document nodes of the table as XmlNodeList. We also get its first element by calling nextNode().

Next, we loop through all the list elements and do the following:

  • Get an account number node as an XmlElement.

  • Get an account name node as an XmlElement.

  • Display the text of both nodes in Infolog. Normally, this should be replaced with more sensible code to process the data.

  • Get the next list element.

In this way, we retrieve the data from the XML file. A similar approach could be used to read any other XML file.