O código abaixo é destinado a desenvolvedores iniciantes e o objetivo é ajudar a criação de uma ordem de venda bem simples via X++, ou seja, apenas para dar uma noção de como deve ser feita.

Alguns objetos importantes que serão usados:

-Tables\SalesTable
-Tables\SalesLine
-Tables\InventDim
-Tables\CustTable
-Tables\InventTable
-Classes\SalesTableType {The InventType Hierarchy}

Código [muito básico]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
static void SalesOrderCreation(Args _args)
{
  SalesTable salesTable;
  NumberSeq NumberSeq;
  SalesLine salesLine;
  InventDim IDim;
  ; 
 
  ttsbegin;
  NumberSeq = NumberSeq::newGetNumFromCode(SalesParameters::numRefSalesId).numberSequence); 
 
  //=======Table=======
  salesTable.SalesId = NumberSeq.num();
  salesTable.initValue();
  salesTable.CustAccount = "4000"; //Enter Customer Acount
  salesTable.initFromCustTable();
  salesTable.InventLocationId = "GW";
  salesTable.insert(); 
 
  //========Line=======
  salesLine.clear();
  salesLine.SalesId = salesTable.SalesId;
  salesLine.ItemId = "IS2082SAIL"; //Enter Item ID
  IDim.InventColorId ="CU"; //Enter Item Dimensions
  IDim.InventLocationId = "GW";
  IDim = InventDim::findOrCreate(IDim);
  salesLine.InventDimId = IDim.inventDimId;
  salesLine.createLine(NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes); 
 
  //===================
  ttscommit;
  Info(salesTable.SalesId);
}

O código acima é muito basico, mas ajudará você com os conceitos.

Clique aqui para ver o post original.