courtesy:
http://www.andesoft.net/creating-bom-journal-using-x-code-ax-2009-ax-2012/
https://community.dynamics.com/ax/f/33/t/96262.aspx
http://learnax.blogspot.com/2010/01/x-code-to-create-and-post-inventory.html
static void createBomJournal_working(Args _args)
{
InventJournalTable journalTable;
InventJournalTrans journalTrans;
InventJournalTableData journalTableData;
InventJournalTransData journalTransData;
InventTable inventTable;
InventDim inventDim;
Counter cnt;
InventJournalCheckPost journalCheckPost = new InventJournalCheckPost();
InventTransId inventTransId, inventTransIdFather;
InventBatch inventBatch;
;
journalTableData = JournalTableData::newTable(journalTable);
journalTransData = journalTableData.journalStatic().newJournalTransData(journalTrans,journalTableData);
// Init JournalTable
journalTable.clear();
journalTable.JournalId = journalTableData.nextJournalId();
journalTable.JournalType = InventJournalType::BOM;
journalTable.JournalNameId = 'BomJrnl';//journalTableData.journalStatic().standardJournalNameId(journalTable.JournalType);
journalTableData.initFromJournalName(journalTableData.journalStatic().findJournalName(journalTable.JournalNameId));
// Init JournalTrans
for(cnt=1; cnt<3; cnt++)
{
if (cnt == 1)
{
select firstonly inventTable
where inventTable.ItemId == 'itemName';
}
else if (cnt == 2)
{
select firstonly inventTable
where inventTable.ItemId == 'itemName2';
}
journalTrans.clear();
journalTransData.initFromJournalTable();
journalTrans.TransDate = systemdateget() + 1 div 2;
journalTrans.ItemId = inventTable.ItemId;
if (cnt == 1)
{
journalTrans.Qty = 26;
inventDim.clear();
inventDim.InventColorId = 'color';
inventDim.InventStyleId = 'style';
inventDim.InventSizeId = 'size';
inventDim.InventSiteId = 'site';
inventDim.InventLocationId = 'whs';
inventDim.wMSLocationId = InventLocation::find(inventDim.inventLocationId).WMSLocationIdDefaultReceipt;
if(!inventDim.inventBatchId)
{
select firstOnly inventBatch where inventBatch.itemId == journalTrans.ItemId;
inventDim.inventBatchId = inventBatch.inventBatchId;
}
}
else if (cnt == 2)
{
journalTrans.Qty = qty * -1;
inventDim.clear();
inventDim.InventColorId = 'clr';
inventDim.InventStyleId = 'sty';
inventDim.InventSizeId = 'sz';
inventDim.InventSiteId = 'st';
inventDim.InventLocationId = 'lct';
inventDim.wMSLocationId = 'loc';
//InventLocation::find(inventDim.inventLocationId).WMSLocationIdDefaultReceipt;
if(!inventDim.inventBatchId)
{
select firstOnly inventBatch where inventBatch.itemId == journalTrans.ItemId;
inventDim.inventBatchId = inventBatch.inventBatchId;
}
}
inventDim = InventDim::findOrCreate(inventDim);
journalTrans.InventDimId = inventDim.InventDimId;
if (cnt == 2)
{
journalTrans.BOMLine = true;//NoYes::Yes;
journalTrans.LineNum = -1;
journalTrans.InventTransIdFather = inventTransIdFather;
}
journalTrans.setCostPrice(journalTrans.InventDimId);
journalTransData.create();
inventTransId = journalTrans.InventTransId;
if (cnt == 1)
{
inventTransIdFather = inventTransId;
}
//this.pickItem(salesLine.SalesId,salesLine.InventTransId,tmp.QtySelected,inventDim.inventBatchId,inventDim.wMSLocationId);
//journalTrans.clear();
}
journalTable.insert();
// Call the static method to post the journal
if(InventJournalCheckPost::newPostJournal(journalTable).validate())
{
InventJournalCheckPost::newPostJournal(journalTable).run();
}
}
http://www.andesoft.net/creating-bom-journal-using-x-code-ax-2009-ax-2012/
https://community.dynamics.com/ax/f/33/t/96262.aspx
http://learnax.blogspot.com/2010/01/x-code-to-create-and-post-inventory.html
static void createBomJournal_working(Args _args)
{
InventJournalTable journalTable;
InventJournalTrans journalTrans;
InventJournalTableData journalTableData;
InventJournalTransData journalTransData;
InventTable inventTable;
InventDim inventDim;
Counter cnt;
InventJournalCheckPost journalCheckPost = new InventJournalCheckPost();
InventTransId inventTransId, inventTransIdFather;
InventBatch inventBatch;
;
journalTableData = JournalTableData::newTable(journalTable);
journalTransData = journalTableData.journalStatic().newJournalTransData(journalTrans,journalTableData);
// Init JournalTable
journalTable.clear();
journalTable.JournalId = journalTableData.nextJournalId();
journalTable.JournalType = InventJournalType::BOM;
journalTable.JournalNameId = 'BomJrnl';//journalTableData.journalStatic().standardJournalNameId(journalTable.JournalType);
journalTableData.initFromJournalName(journalTableData.journalStatic().findJournalName(journalTable.JournalNameId));
// Init JournalTrans
for(cnt=1; cnt<3; cnt++)
{
if (cnt == 1)
{
select firstonly inventTable
where inventTable.ItemId == 'itemName';
}
else if (cnt == 2)
{
select firstonly inventTable
where inventTable.ItemId == 'itemName2';
}
journalTrans.clear();
journalTransData.initFromJournalTable();
journalTrans.TransDate = systemdateget() + 1 div 2;
journalTrans.ItemId = inventTable.ItemId;
if (cnt == 1)
{
journalTrans.Qty = 26;
inventDim.clear();
inventDim.InventColorId = 'color';
inventDim.InventStyleId = 'style';
inventDim.InventSizeId = 'size';
inventDim.InventSiteId = 'site';
inventDim.InventLocationId = 'whs';
inventDim.wMSLocationId = InventLocation::find(inventDim.inventLocationId).WMSLocationIdDefaultReceipt;
if(!inventDim.inventBatchId)
{
select firstOnly inventBatch where inventBatch.itemId == journalTrans.ItemId;
inventDim.inventBatchId = inventBatch.inventBatchId;
}
}
else if (cnt == 2)
{
journalTrans.Qty = qty * -1;
inventDim.clear();
inventDim.InventColorId = 'clr';
inventDim.InventStyleId = 'sty';
inventDim.InventSizeId = 'sz';
inventDim.InventSiteId = 'st';
inventDim.InventLocationId = 'lct';
inventDim.wMSLocationId = 'loc';
//InventLocation::find(inventDim.inventLocationId).WMSLocationIdDefaultReceipt;
if(!inventDim.inventBatchId)
{
select firstOnly inventBatch where inventBatch.itemId == journalTrans.ItemId;
inventDim.inventBatchId = inventBatch.inventBatchId;
}
}
inventDim = InventDim::findOrCreate(inventDim);
journalTrans.InventDimId = inventDim.InventDimId;
if (cnt == 2)
{
journalTrans.BOMLine = true;//NoYes::Yes;
journalTrans.LineNum = -1;
journalTrans.InventTransIdFather = inventTransIdFather;
}
journalTrans.setCostPrice(journalTrans.InventDimId);
journalTransData.create();
inventTransId = journalTrans.InventTransId;
if (cnt == 1)
{
inventTransIdFather = inventTransId;
}
//this.pickItem(salesLine.SalesId,salesLine.InventTransId,tmp.QtySelected,inventDim.inventBatchId,inventDim.wMSLocationId);
//journalTrans.clear();
}
journalTable.insert();
// Call the static method to post the journal
if(InventJournalCheckPost::newPostJournal(journalTable).validate())
{
InventJournalCheckPost::newPostJournal(journalTable).run();
}
}
Comments
Post a Comment