Bir transfer emrinde bir satır tamamen bitirilmemişse ve bu satırda
bitirilmeyen kısım bir çıkış emrinden rezerve ise İşlevler->Teslimat
bakiyesi->Miktarı iptal et butonu işe yaramaz. Siparişte tipli
yeterli satır olmadığını söyler ve hata verip çıkar. Bunun sebebi bu
miktarın çıkış emrinden rezerve olmasıdır. Bu satırın rezervasyonu direk kodla kaldırılamaz (yani ben bir yolunu bulamadım) ve menüden kaldırılsa bile bağlantı halen duracağı için hatayı tekrar verir. Çıkış emrinde kalan miktarı
sıfırlamanın bir yolunu bulamadım ve aşağıdaki yöntemi denedim, işe
yarıyor:
InventTransferTable header;
InventTransferLine line;
WMSOrderTrans orderTrans;
InventTrans inventTrans;
;
while select header
where header.TransferId == myTransferId
join forupdate line
where line.TransferId == header.TransferId &&
(line.QtyRemainReceive > 0 || line.QtyRemainShip>0)
{
ttsbegin;
while select orderTrans
where orderTrans.inventTransId == line.InventTransId &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Complete &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Cancelled &&
orderTrans.expeditionStatus != WMSExpeditionStatus::CancelledSW
{
WmsPickingLineCancel::newWMSPickingLineCancel(orderTrans).run();
}
while select forupdate inventTrans
where (inventTrans.StatusIssue == StatusIssue::ReservPhysical ||
(inventTrans.TransChildRefId != "" &&
inventTrans.TransChildType == InventTransChildType::WMSOrder) ) &&
inventTrans.InventTransId == line.InventTransId
{
inventTrans.TransChildRefId = "";
inventTrans.TransChildType = InventTransChildType::None;
inventTrans.update();
InventUpd_Reservation::newInventDim(InventMovement::construct(inventTrans,InventMovSubType::None),
inventtrans.inventDim(),2,false).updateNow();
}
line.QtyRemainReceive = 0;
line.QtyRemainShip = 0;
line.AutoReservation = NoYes::No;
line.update();
ttscommit;
}
Blog Listem
24 Haziran 2016 Cuma
AXAPTA - Transfer emri bakiye kalan satırları temizlemek
Bir transfer emrinde bir satır tamamen bitirilmemişse ve bu satırda
bitirilmeyen kısım bir çıkış emrinden rezerve ise İşlevler->Teslimat
bakiyesi->Miktarı iptal et butonu işe yaramaz. Siparişte tipli
yeterli satır olmadığını söyler ve hata verip çıkar. Bunun sebebi bu
miktarın çıkış emrinden rezerve olmasıdır. Bu satırın rezervasyonu direk kodla kaldırılamaz (yani ben bir yolunu bulamadım) ve menüden kaldırılsa bile bağlantı halen duracağı için hatayı tekrar verir. Çıkış emrinde kalan miktarı
sıfırlamanın bir yolunu bulamadım ve aşağıdaki yöntemi denedim, işe
yarıyor:
InventTransferTable header;
InventTransferLine line;
WMSOrderTrans orderTrans;
InventTrans inventTrans;
;
while select header
where header.TransferId == myTransferId
join forupdate line
where line.TransferId == header.TransferId &&
(line.QtyRemainReceive > 0 || line.QtyRemainShip>0)
{
ttsbegin;
while select orderTrans
where orderTrans.inventTransId == line.InventTransId &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Complete &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Cancelled &&
orderTrans.expeditionStatus != WMSExpeditionStatus::CancelledSW
{
WmsPickingLineCancel::newWMSPickingLineCancel(orderTrans).run();
}
while select forupdate inventTrans
where (inventTrans.StatusIssue == StatusIssue::ReservPhysical ||
(inventTrans.TransChildRefId != "" &&
inventTrans.TransChildType == InventTransChildType::WMSOrder) ) &&
inventTrans.InventTransId == line.InventTransId
{
inventTrans.TransChildRefId = "";
inventTrans.TransChildType = InventTransChildType::None;
inventTrans.update();
InventUpd_Reservation::newInventDim(InventMovement::construct(inventTrans,InventMovSubType::None),
inventtrans.inventDim(),2,false).updateNow();
}
line.QtyRemainReceive = 0;
line.QtyRemainShip = 0;
line.AutoReservation = NoYes::No;
line.update();
ttscommit;
}
InventTransferTable header;
InventTransferLine line;
WMSOrderTrans orderTrans;
InventTrans inventTrans;
;
while select header
where header.TransferId == myTransferId
join forupdate line
where line.TransferId == header.TransferId &&
(line.QtyRemainReceive > 0 || line.QtyRemainShip>0)
{
ttsbegin;
while select orderTrans
where orderTrans.inventTransId == line.InventTransId &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Complete &&
orderTrans.expeditionStatus != WMSExpeditionStatus::Cancelled &&
orderTrans.expeditionStatus != WMSExpeditionStatus::CancelledSW
{
WmsPickingLineCancel::newWMSPickingLineCancel(orderTrans).run();
}
while select forupdate inventTrans
where (inventTrans.StatusIssue == StatusIssue::ReservPhysical ||
(inventTrans.TransChildRefId != "" &&
inventTrans.TransChildType == InventTransChildType::WMSOrder) ) &&
inventTrans.InventTransId == line.InventTransId
{
inventTrans.TransChildRefId = "";
inventTrans.TransChildType = InventTransChildType::None;
inventTrans.update();
InventUpd_Reservation::newInventDim(InventMovement::construct(inventTrans,InventMovSubType::None),
inventtrans.inventDim(),2,false).updateNow();
}
line.QtyRemainReceive = 0;
line.QtyRemainShip = 0;
line.AutoReservation = NoYes::No;
line.update();
ttscommit;
}
8 Haziran 2016 Çarşamba
AXAPTA - Bir malzeme çekme listesi veya satırını iptal
Tüm listenin iptali:
Bir satırın iptali:
WMSPickingRouteCancel::newWMSPickingRoute(wMSPickingRoute).run();
Bir satırın iptali:
WMSPickingLineCancel::newWMSPickingLineCancel(wMSOrderTrans).run();
Kaydol:
Kayıtlar (Atom)