It's easy to change company with code. But there are two small points to care; if select/SQL used, buffer table name should be make null at every reuse. IF query used query should be create again in every loop. Query.reset() doesn't work for clear query:
Query:
changeCompany(dataArea.Id)
{
qRun = new QueryRun(q);
while (qRun.next())
{
custTable = qRun.get(tablenum(CustTable));
...
}
}
Select/SQL:
changeCompany(dataArea.Id)
{
custTable = null;
subSegmentGroup = null;
while select AccountNum from custTable
...
code etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
code etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
16 Kasım 2015 Pazartesi
13 Kasım 2015 Cuma
AXAPTA - Security check with X++ code
Sometimes we need security check with code (Display method etc...):
SecurityKeySet securityKeys = new SecurityKeySet();
;
securityKeys.loadUserRights(curuserid());
if (securityKeys.access(securitykeynum("KRC_CrossCompany")) == AccessType::NoAccess)
chkCrsCompany.value(NoYes::No);
SecurityKeySet securityKeys = new SecurityKeySet();
;
securityKeys.loadUserRights(curuserid());
if (securityKeys.access(securitykeynum("KRC_CrossCompany")) == AccessType::NoAccess)
chkCrsCompany.value(NoYes::No);
31 Ocak 2013 Perşembe
AXAPTA - Create Sales Order with X++
...
SalesTable salesTable;
NumberSeq NumberSeq;
SalesLine salesLine;
AxSalesLine axSalesLine = new axSalesLine();
AxSalesTable axsalesTable = new axSalesTable();
;
...
ttsbegin;
axsalesTable.parmSalesId();
if (ServiceOrder.CustName == "")
axsalesTable.parmCustAccount(ServiceOrder.CustAccount);// Cust Account
else
axsalestable.parmOneTimeCustomer(Dialog_OneTime.value());
axsalesTable.parmDlvMode(Dialog_DLVMode.value());
axsalesTable.parmDlvTerm(Dialog_DLVTerm.value());
axsalesTable.save();
while select forupdate Lines where Lines.RepairJournalId == _RepairJournalId && Lines.SalesId == "" &&
Lines.CSApproval == B_Approval::Approved && Lines.ItemId != "" && Lines.Qty > 0
{
axSalesLine = AxSalesLine::construct();
axSalesLine.parmSalesId(axsalesTable.parmSalesId());
axSalesLine.parmItemId(Lines.ItemId);
axSalesLine.parmSalesQty(Lines.Qty);
axSalesline.parmSalesPrice(Lines.ProjSalesPrice);
axSalesline.parmCurrencyCode(Lines.ProjCurrencyCode);
axSalesline.parmSalesUnit(Lines.Unit);
Lines.SalesId = axsalesTable.parmSalesId();
Lines.update();
axSalesLine.save();
}
ttscommit;
...
SalesTable salesTable;
NumberSeq NumberSeq;
SalesLine salesLine;
AxSalesLine axSalesLine = new axSalesLine();
AxSalesTable axsalesTable = new axSalesTable();
;
...
ttsbegin;
axsalesTable.parmSalesId();
if (ServiceOrder.CustName == "")
axsalesTable.parmCustAccount(ServiceOrder.CustAccount);// Cust Account
else
axsalestable.parmOneTimeCustomer(Dialog_OneTime.value());
axsalesTable.parmDlvMode(Dialog_DLVMode.value());
axsalesTable.parmDlvTerm(Dialog_DLVTerm.value());
axsalesTable.save();
while select forupdate Lines where Lines.RepairJournalId == _RepairJournalId && Lines.SalesId == "" &&
Lines.CSApproval == B_Approval::Approved && Lines.ItemId != "" && Lines.Qty > 0
{
axSalesLine = AxSalesLine::construct();
axSalesLine.parmSalesId(axsalesTable.parmSalesId());
axSalesLine.parmItemId(Lines.ItemId);
axSalesLine.parmSalesQty(Lines.Qty);
axSalesline.parmSalesPrice(Lines.ProjSalesPrice);
axSalesline.parmCurrencyCode(Lines.ProjCurrencyCode);
axSalesline.parmSalesUnit(Lines.Unit);
Lines.SalesId = axsalesTable.parmSalesId();
Lines.update();
axSalesLine.save();
}
ttscommit;
...
22 Aralık 2011 Perşembe
AXAPTA invent journal
When we were working with forms we just select InventJournalName and default parameters come. At working with code we have to put our parameters (or that is the way just I can found):
InventJournalTrans inventJournalTrans;
InventJournalTable inventJournalTable;
InventJournalName inventJournalName;
InventDim toInventDim;
InventDim tempInventDimTo;
;
// Process Journal Header
inventJournalName = "MyJournalName"
inventJournalTable.initValue();
inventJournalTable.JournalId = NumberSeq::newGetNum(InventParameters::numRefInventJournalId()).num();
inventJournalTable.Description = InventJournalName.Description;
inventJournalTable.Reservation = ItemReservation::Automatic;
inventJournalTable.JournalType = inventJournalType::Transfer;
inventJournalTable.BlockUserGroupId = inventJournalName.BlockUserGroupId;
inventJournalTable.JournalNameId = inventJournalName.JournalNameId;
inventJournalTable.ApprUserGroup = inventJournalName.ApprUserGroup;
inventJournalTable.ApprFromSiteId = inventJournalName.ApprFromSiteId;
inventJournalTable.ApprFromLocationId = inventJournalName.ApprFromLocationId;
inventJournalTable.ApprFromWMSLocationId= inventJournalName.ApprFromWMSLocationId;
inventJournalTable.ApprFromBatchId = inventJournalName.ApprFromBatchId;
inventJournalTable.ApprToSiteId = inventJournalName.ApprToSiteId;
inventJournalTable.ApprToLocationId = inventJournalName.ApprToLocationId;
inventJournalTable.ApprToWMSLocationId = inventJournalName.ApprToWMSLocationId;
inventJournalTable.ApprToBatchId = inventJournalName.ApprToBatchId;
inventJournalTable.VoucherSeqId = inventJournalName.VoucherSeqId;
inventJournalTable.insert();
toInventDim.clear();
toInventDim.initValue();
toInventDim.wMSLocationId = inventJournalName.ApprtoWMSLocationId;
toInventDim.InventLocationId = inventJournalName.ApprtoLocationId;
toInventDim.InventSiteId = inventJournalName.ApprtoSiteId;
// Process journal lines
inventJournalTrans.initValue();
inventjournaltrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.Voucher = NumberSeq::newGetNum(InventParameters::numRefInventJournalVoucherId()).num();
inventJournalTrans.ItemId = "MyItem001";
InventJournalTrans.initFromInventTable(Inventtable::find(InventJournalTrans.ItemId));
inventJournalTrans.TransDate = systemDateGet();
inventJournalTrans.Qty = -1;
inventJournalTrans.InventDimId = tempInventDimto.inventDimId;
// reservation check
if (!InventMoveMent::setAutoReserving(InventJournalTrans))
{
inventJournalTable.delete();
return;
}
inventJournalTrans.insert();
InventJournalTable inventJournalTable;
InventJournalName inventJournalName;
InventDim toInventDim;
InventDim tempInventDimTo;
;
// Process Journal Header
inventJournalName = "MyJournalName"
inventJournalTable.initValue();
inventJournalTable.JournalId = NumberSeq::newGetNum(InventParameters::numRefInventJournalId()).num();
inventJournalTable.Description = InventJournalName.Description;
inventJournalTable.Reservation = ItemReservation::Automatic;
inventJournalTable.JournalType = inventJournalType::Transfer;
inventJournalTable.BlockUserGroupId = inventJournalName.BlockUserGroupId;
inventJournalTable.JournalNameId = inventJournalName.JournalNameId;
inventJournalTable.ApprUserGroup = inventJournalName.ApprUserGroup;
inventJournalTable.ApprFromSiteId = inventJournalName.ApprFromSiteId;
inventJournalTable.ApprFromLocationId = inventJournalName.ApprFromLocationId;
inventJournalTable.ApprFromWMSLocationId= inventJournalName.ApprFromWMSLocationId;
inventJournalTable.ApprFromBatchId = inventJournalName.ApprFromBatchId;
inventJournalTable.ApprToSiteId = inventJournalName.ApprToSiteId;
inventJournalTable.ApprToLocationId = inventJournalName.ApprToLocationId;
inventJournalTable.ApprToWMSLocationId = inventJournalName.ApprToWMSLocationId;
inventJournalTable.ApprToBatchId = inventJournalName.ApprToBatchId;
inventJournalTable.VoucherSeqId = inventJournalName.VoucherSeqId;
inventJournalTable.insert();
toInventDim.clear();
toInventDim.initValue();
toInventDim.wMSLocationId = inventJournalName.ApprtoWMSLocationId;
toInventDim.InventLocationId = inventJournalName.ApprtoLocationId;
toInventDim.InventSiteId = inventJournalName.ApprtoSiteId;
// Process journal lines
inventJournalTrans.initValue();
inventjournaltrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.Voucher = NumberSeq::newGetNum(InventParameters::numRefInventJournalVoucherId()).num();
inventJournalTrans.ItemId = "MyItem001";
InventJournalTrans.initFromInventTable(Inventtable::find(InventJournalTrans.ItemId));
inventJournalTrans.TransDate = systemDateGet();
inventJournalTrans.Qty = -1;
inventJournalTrans.InventDimId = tempInventDimto.inventDimId;
// reservation check
if (!InventMoveMent::setAutoReserving(InventJournalTrans))
{
inventJournalTable.delete();
return;
}
2 Aralık 2011 Cuma
AXAPTA another way to get number sequence at create record with code
ExtendedTypeId id = TypeID2ExtendedTypeId(TypeId(SMAServiceObjectId));
NumberSeq num = NumberSeq::newGetNum(NumberSequenceReference::find(id));
NumberSeq num = NumberSeq::newGetNum(NumberSequenceReference::find(id));
;
...
...SMAServiceObjectTable.ServiceObjectId = num.num();
30 Kasım 2011 Çarşamba
AXAPTA use number sequence at insert record with code
Kaydol:
Kayıtlar (Atom)