Blog Listem
22 Temmuz 2015 Çarşamba
AXAPTA - Hesaplanan miktarı kullanılan birime göre yuvarlama
ProdBOM.QtyCalc = DecRound(calculatedQty, Unit::find(ProdBOM.UnitId).UnitDecimals);
20 Temmuz 2015 Pazartesi
AXAPTA - Stok rezervasyonu kaldırma ve ekleme
Volkan Şişman'dan öğrendiğim bu kodla stok rezervasyonu kaldırabilir ve ekleyebilirsiniz:
InventUpd_Reservation invUpdReservation;
...
//rezervasyon kaldır
invUpdReservation = InventUpd_Reservation::newInventDim(InventMovement::construct(invTrans,InventMovSubType::None),myInventDim,200,false);
invUpdReservation.updateNow();
...
//rezervasyon ekle
invUpdReservation = InventUpd_Reservation::newInventDim(InventMovement::construct(invTrans,InventMovSubType::None),myInventDim,400,false);
invUpdReservation.updateNow();
Ya da:
//rezervasyon ekle
InventUpd_Reservation::updateReserveBuffer(journalTrans, journalTrans.Qty);
//rezervasyon kaldır
InventUpd_Reservation::updateReserveBuffer(journalTrans, abs(journalTrans.Qty));
Ya da:
//rezervasyon kaldır
InventUpd_Reservation::newInventDim(InventTrans.inventMovement(true),InventTrans.inventDim(),-InventTrans.qty,true).updateNow();
InventUpd_Reservation invUpdReservation;
...
//rezervasyon kaldır
invUpdReservation = InventUpd_Reservation::newInventDim(InventMovement::construct(invTrans,InventMovSubType::None),myInventDim,200,false);
invUpdReservation.updateNow();
...
//rezervasyon ekle
invUpdReservation = InventUpd_Reservation::newInventDim(InventMovement::construct(invTrans,InventMovSubType::None),myInventDim,400,false);
invUpdReservation.updateNow();
Ya da:
//rezervasyon ekle
InventUpd_Reservation::updateReserveBuffer(journalTrans, journalTrans.Qty);
//rezervasyon kaldır
InventUpd_Reservation::updateReserveBuffer(journalTrans, abs(journalTrans.Qty));
Ya da:
//rezervasyon kaldır
InventUpd_Reservation::newInventDim(InventTrans.inventMovement(true),InventTrans.inventDim(),-InventTrans.qty,true).updateNow();
AXAPTA - Formu açık olan invent journal kaydını post etmek
Eğer böyle bir kaydı post etmeye kalkarsanız, kaydın kullanıldığını söyleyerek size izin vermeyecektir. Volkan Şişman'dan öğrendiğim bu kod parçası kullanılan kaydın da post edebilmesine izin veriyor:
InventJournalCheckPost journalCheckPost;
JournalForm journalForm;
;
...
journalForm = JournalForm::fromArgs(args);
journalCheckPost = InventJournalCheckPost::newFromForm(args,journalForm);
journalForm.runbaseMainStart();
journalCheckPost.run();
journalForm.runbaseMainEnd(journalCheckPost,false);
InventJournalCheckPost journalCheckPost;
JournalForm journalForm;
;
...
journalForm = JournalForm::fromArgs(args);
journalCheckPost = InventJournalCheckPost::newFromForm(args,journalForm);
journalForm.runbaseMainStart();
journalCheckPost.run();
journalForm.runbaseMainEnd(journalCheckPost,false);
Etiketler:
ax,
AXAPTA,
form,
inventjournal,
kilitli,
kullanılan,
lock,
post
15 Temmuz 2015 Çarşamba
AXAPTA - InventDimExistsJoin makrosuyla InventDim tablosuyla esnek join
InventDim tablosuyla esnek joinler yapmak için fazla kasmanıza gerek bırakmayan bir makro var:
InventDimParm dimParm;
InventDim dimValues,dimJoin;
;
...
//Join where ile kullanacağımız alanları dolduruyoruz
dimvalues.wMSLocationId = inventdim.wMSLocationId;
if (inventdim.InventSiteId)
dimvalues.InventSiteId = inventdim.InventSiteId;
if (inventdim.configId)
dimvalues.configId = inventdim.configId;
//InventDimParm bu alanlara göre ayarlanacak
dimparm.initFromInventDim(dimValues);
while select lclInventSum
where lclInventSum.ItemId == itemId && leftQty > 0
#InventDimExistsJoin(lclInventSum.InventDimId,dimJoin,dimValues,dimParm)
İlk parametre join yapılan tablonun ilgili InventDimId alanı, ikinci parametre InventDim tablosunun tanımlanan adı, Üçüncü paremetre ile değerler gidiyor. Dördüncü paremetre de parametre tablosu. Bu tablonun değişik kullanımları da mevcut.
InventDimParm dimParm;
InventDim dimValues,dimJoin;
;
...
//Join where ile kullanacağımız alanları dolduruyoruz
dimvalues.wMSLocationId = inventdim.wMSLocationId;
if (inventdim.InventSiteId)
dimvalues.InventSiteId = inventdim.InventSiteId;
if (inventdim.configId)
dimvalues.configId = inventdim.configId;
//InventDimParm bu alanlara göre ayarlanacak
dimparm.initFromInventDim(dimValues);
while select lclInventSum
where lclInventSum.ItemId == itemId && leftQty > 0
#InventDimExistsJoin(lclInventSum.InventDimId,dimJoin,dimValues,dimParm)
İlk parametre join yapılan tablonun ilgili InventDimId alanı, ikinci parametre InventDim tablosunun tanımlanan adı, Üçüncü paremetre ile değerler gidiyor. Dördüncü paremetre de parametre tablosu. Bu tablonun değişik kullanımları da mevcut.
Etiketler:
ax,
AXAPTA,
esnek,
InventDimExistsJoin,
inventdim,
join,
kolay,
parametrik
Kaydol:
Kayıtlar (Atom)