AX projelerinde herhangi bir işlem sonrasında otomatik olarak transfer günlüğü oluşturma ve deftere nakletme işlemine ihtiyaç duyabiliriz. Transfer günlüğü formu üzerinden yapılan bu işlemi aşağıdaki örnek kodu kullanarak kolayca X++ ile de yapabiliriz.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
static void CreateTransferJournal(Args _args)
{
    
InventJournalTable inventJournalTable;
InventJournalTrans inventJournalTrans;
JournalCheckPost journalCheckPost;
NumberSeq num;
boolean _throwserror=true;
boolean _showinforesult=true;
InventDim frominventDim,ToinventDim;
;
ttsbegin;
inventJournalTable.clear();
num = new NumberSeq();
num = NumberSeq::newGetNum
(InventParameters::numRefTransferId());
    
//Transfer günlüğünün başlık kaydı
inventJournalTable.initFromInventJournalName(InventJournalName::find
(InventParameters::find().TransferJournalNameId));
inventJournalTable.Description = "Inventory transfer journal";
inventJournalTable.SystemBlocked = true;
inventJournalTable.insert();
    
//Trasfer günlüğü satır kaydı
inventJournalTrans.clear();
inventJournalTrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.ItemId = "I-SD-F";
frominventDim.InventLocationId="11";
frominventDim.inventSiteId ="1";
ToinventDim.InventLocationId = "13";
ToinventDim.InventSiteId = "1";
ToinventDim = InventDim::findOrCreate(ToinventDim);
frominventDim = InventDim::findOrCreate(frominventDim);
inventJournalTrans.InventDimId = frominventDim.inventDimId;
inventJournalTrans.initFromInventTable(InventTable::find("I-SD-F"));
inventJournalTrans.Qty = 8;
inventJournalTrans.ToInventDimId = ToinventDim.inventDimId;
inventJournalTrans.TransDate = SystemDateget();
inventJournalTrans.insert();
    
//Transfer günlüğü deftere nakli
journalCheckPost = InventJournalCheckPost::newJournalCheckPost(JournalCheckPostType::Post, inventJournalTable);
journalCheckPost.parmThrowCheckFailed(_throwserror);
journalCheckPost.parmShowInfoResult(_showinforesult);
journalCheckPost.run();
inventJournalTable.SystemBlocked = false;
inventJournalTable.update();
ttscommit;
    
}

Bu örnekte tek satırlı bir günlük oluşturduk. İstenirse “Transfer günlüğü satır kaydı” kısmında birden fazla satırlı kayıt oluşturulabilir.