Logo
programming4us
programming4us
programming4us
programming4us
Home
programming4us
XP
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone
 
Windows Server

Microsoft Dynamics AX 2009 : Processing Business Tasks - Creating purchase orders

1/1/2012 6:12:15 PM
Creating purchase orders from code is one of the many things that are required when building custom functionality. Normally, the user selects only a few bits of information like vendor account, item number, delivery date, etc. and the rest is created by the system. It is also possible that purchase orders may be created as part of some process in custom modules.

In this recipe, we will learn how to create a purchase order from X++ code. We will use a standard method provided by the application.

How to do it...

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

    class PurchaseOrderCreate

    {
    }
    public static void main(Args _args)

    {
    NumberSeq numberSeq;
    PurchTable purchTable;
    PurchLine purchLine;
    ;
    ttsbegin;
    numberSeq = NumberSeq::newGetNumFromCode(
    PurchParameters::numRefPurchId().numberSequence,
    true);
    purchTable.PurchId = numberSeq.num();
    purchTable.initValue();
    purchTable.initFromVendTable(VendTable::find('1001'));
    if (!purchTable.validateWrite())
    {
    throw Exception::Error;
    }
    purchTable.insert();
    purchLine.PurchId = purchTable.PurchId;
    purchLine.ItemId = '1205';
    purchLine.createLine(true, true, true, true, true, true);
    ttscommit;
    }


  2. 2. Run the class to create a new purchase order.

  3. 3. Open Accounts payable | Purchase Order Details to view the created purchase order:

How it works...

First we create a new class, which will run our code using its main(). Here we place all the code into a ttsbegin/ttscommit pair to make sure everything is rolled back if something goes wrong.

The method starts with generating the next number for a new purchase order.

Next, we call initValue() and initFromVendTable() to initialize various purchTable fields. Normally, the argument of initFromVendTable() should come from a user selection screen or other source. For demonstration purposes, here we simply use the first vendor number from the list.

If we pass validation of validateWrite() successfully, we create a purchase order header by calling purchTable.insert().

The next thing to do is to create purchase order lines. Here we need minimal information. First, we assign a purchase order number and then we set the item number. As previously the item number should come from user input or some other source. For demonstration purposes, we use item 1205 from the inventory list.

And finally, we call createLine() on the purchLine table to create a line. This method could be called a number of times depending on the number lines that need to be created. This method accepts a number of optional boolean arguments:

  • Perform data validations before saving? The default is false.

  • Initialize from PurchTable table? The default is false.

  • Initialize from InventTable table? The default is false.

  • Calculate inventory quantity? The default is false.

  • Add miscellaneous charges? The default is true.

  • Use trade agreements to calculate item price? The default is false.

Other -----------------
- Active Directory Domain Services 2008 : Delete a Computer Object
- Active Directory Domain Services 2008 : Create a Computer Object
- Windows Server 2008 Server Core : Managing the System Time with the W32Tm Utility
- Microsoft Dynamics CRM 4.0 Accelerators : Analytics Accelerator (part 2) - Analytics Accelerator Installation
- Microsoft Dynamics CRM 4.0 Accelerators : Analytics Accelerator (part 1)
- Microsoft Dynamic CRM 4.0 : Google Maps Integration
- Microsoft Systems Management Server 2003 : Disaster Recovery - Backing Up the Site Through Systems Management Server
- Microsoft Systems Management Server 2003 : Disaster Recovery - Backup Process Flow
- InfoPath with Sharepoint 2010 : Create a Master or Detail Display Form for SharePoint Lists
- Add an InfoPath Form Web Part to a SharePoint Web Part Page
 
 
Top 10 video Game
-   Super Smash Bros: Ryu tritt dem Kampf bei (Wii U)
-   Splatoon ~ First U.S. Splatfest announcement
-   Broken Sword 5 | PS4 and Xbox One Announcement Trailer
-   Earthbound Beginnings (Wii U)
-   Counter-Strike: Source - E3 2004-Trailer
-   Half-Life 2 - E3 2003 Gameplay-Trailer
-   Half-Life 2 - E3 2003 Tech-Demo
-   DOOM 4 | Single Player Gameplay from Bethesda Press Conference
-   Dishonored 2 | Announcement trailer from Bethesda Press Conference
-   The Elder Scrolls Legends | Debut Trailer from Bethesda Press Conference
-   Fallout 4 Gameplay Clip
-   Earthbound Beginnings | Debut Trailer for Virtual Console
Popular tags
Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 windows Phone 7 windows Phone 8
programming4us programming4us
 
Popular keywords
HOW TO Swimlane in Visio Visio sort key Pen and Touch Creating groups in Windows Server Raid in Windows Server Exchange 2010 maintenance Exchange server mail enabled groups Debugging Tools Collaborating
programming4us programming4us
PS4 game trailer XBox One game trailer
WiiU game trailer 3ds game trailer
Trailer game
 
programming4us
Women
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone