I have tried to rewrite the code, I have found til AX2009:
Static void TEST_InventTransMarking(Args args)
{
InventTransOrigin purchLineTransOrigin;
InventTrans purchLineTrans;
InventTransOrigin salesLineTransOrigin;
InventTrans salesLineTrans;
TmpInventTransMark tmpInventTransMark;
TmpInventTransMark tmpInventTransMarkNow;
Map mapMarkNow;
InventDimId inventDimId;
InventDim inventDim;
MapEnumerator mapEnumerator;
container con;
Qty qty;
;
ttsbegin;
salesLineTransOrigin = InventTransOrigin::findByInventTransId(‘000362_300’, true);
salesLineTrans = InventTrans::findByInventTransOrigin(salesLineTransOrigin.RecId);
purchLineTransOrigin = InventTransOrigin::findByInventTransId(‘000321_300’, false);
purchLineTrans = InventTrans::findByInventTransOrigin(purchLineTransOrigin.RecId);
inventDimId = salesLineTrans.inventDimId;
inventDim = InventDim::find(inventDimId);
[con, qty] = TmpInventTransMark::packTmpMark(salesLineTransOrigin, inventDim, salesLineTrans.Qty);
mapMarkNow = Map::create(con);
mapEnumerator = mapMarkNow.getEnumerator();
while (mapEnumerator.moveNext())
{
tmpInventTransMark = mapEnumerator.currentValue();
if (tmpInventTransMark.InventTransOrigin == purchLineTransOrigin.RecId)
{
break;
}
}
buf2buf(tmpInventTransMark, tmpInventTransMarkNow);
tmpInventTransMarkNow.qtyMarkNow = -1;
tmpInventTransMarkNow.insert();
mapMarkNow = new Map(Types::Integer, Types::Record);
mapMarkNow.insert(tmpInventTransMarkNow.RecId, tmpInventTransMarkNow);
TmpInventTransMark::updateTmpMark(salesLineTrans.InventTransOrigin, inventDim, salesLineTrans.Qty, mapMarkNow.pack());
ttscommit;
}
All is doing well until I execute the last statement: updateTmpMark(…
It returns with following infolog:
Warning Message (…) Transaction has been changed.
Error Message (…) Update has been canceled.
Can anyone explain these two messages?
Ebbe