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.