Dynamics AX Blog - Dynamics AX 2012 - Seite 16

RSS-Feed dieser Version
Erstellen einer Lieferadresse per Code
21.12.2014Microsoft Dynamics AX (Axapta)
Die nachstehenden Zeilen Code zeigen ein Beispiel, wie man per X++ eine (nicht primäre) Adresse für eine vorhandene Partei im Globalen Adressbuch erstellen kann. Dabei wird gleichzeitig über den Base Enum LogisticsLocationRoleType der Typ der Adresse als Lieferadresse angegeben, natürlich ist es auch möglich, der Adresse einen anderen Typ zuzuweisen. static void createPartyDeliveryAddressNonPrimary(Args _args) { DirPartyTable dirPartyTable = DirPartyTable::findByNum("?100000??"); DirParty dirParty; DirPartyPostalAddressView dirPartyPostalAddressView; // Create instance of dirParty dirParty = DirParty::constructFromCommon(dirPartyTable, DirUtility::getCurrentDateTime(), DirPartyType::Organization); // Create primary address dirPartyPostalAddressView.LocationName = "Delivery"; dirPartyPostalAddressView.City = "Vienna"; dirPartyPostalAddressView.Street = "Kärtnerring"; dirPartyPostalAddressView.StreetNumber = "21"; dirPartyPostalAddressView.CountryRegionId = "AUT"; dirPartyPostalAddressView.IsPrimary = NoYes::No; dirParty.createOrUpdatePostalAddress(dirPartyPostalAddressView, [LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Delivery).RecId]); } |
AX 2012: Erstellen einer DefaultDimension/LedgerDimensionNachstehend ein Code-Beispiel, wie man eine RecId vom Typ DefaultDimension für mehrere Dimensionen generieren kann. static void buildDefaultAndLedgerDimension(Args _args) { DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage; DimensionAttribute dimensionAttribute; DimensionAttributeValue dimensionAttributeValue; DimensionDefault dimensionDefault; LedgerDimensionAccount ledgerDimensionAccount; dimensionAttributeValueSetStorage = new DimensionAttributeValueSetStorage(); // BusinessUnit dimensionAttribute = DimensionAttribute::findByName('BusinessUnit'); if(dimensionAttribute) { dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, '069', false, true); dimensionAttributeValueSetStorage.addItem(dimensionAttributeValue); } // CostCenter dimensionAttribute = DimensionAttribute::findByName('CostCenter'); if(dimensionAttribute) { dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, '010', false, true); dimensionAttributeValueSetStorage.addItem(dimensionAttributeValue); } // Department dimensionAttribute = DimensionAttribute::findByName('Department'); if(dimensionAttribute) { dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, '024', false, true); dimensionAttributeValueSetStorage.addItem(dimensionAttributeValue); } dimensionDefault = dimensionAttributeValueSetStorage.save(); // Merge main account and source dimension values and return RecId which can be used as ledgerDimension ledgerDimensionAccount = DimensionDefaultingService::serviceCreateLedgerDimension(DimensionStorage::getDefaultAccountForMainAccountNum("110110"), dimensionDefault); info(strFmt("Default dimension recId: %1", dimensionDefault)); info(strFmt("DefaultDimension (Source RecId): %1 LedgerDimension (Merged RecId): %2", dimensionDefault, ledgerDimensionAccount)); } Notiz: Aufmerksamen Lesern ist sicherlich nicht entgangen, daß ich beides bereits in anderen Beiträgen geposted habe. Dieser Beitrag ist lediglich eine Kombination davon. |
Kommissionierlisten-Kopf eines Produktionsauftrages erstellenDer folgende Job erstellt eine "Kopfdatensatz" für eine Kommissionierliste eines Produktionsauftrages. static void createProdJournalTable_PickingList_III(Args _args) { ProdJournalCreate prodJournalCreate; prodJournalCreate = new ProdJournalCreate(); prodJournalCreate.parmProdId('P000188'); prodJournalCreate.parmJournalNameId( ProdJournalName::standardJournalName( ProdJournalType::Picklist, prodJournalCreate.parmProdId())); prodJournalCreate.initProdJournalTableData(ProdJournalType::Picklist); prodJournalCreate.usedProdJournalTable().insert(); prodJournalCreate.run(); } |
Bestellung per Code buchenMit Hilfe der folgenden Zeilen möchte ich zeigen, wie man eine Bestellung per Code buchen kann. static void postPurchaseOrder(Args _args) { PurchTable purchTable = PurchTable::find("000025"); PurchFormLetter purchFormLetter; purchFormLetter = PurchFormLetter::construct(DocumentStatus::PurchaseOrder); purchFormLetter.update(purchTable, "", systemDateGet(), PurchUpdate::All); } |
Auftragsbestätigung per Code buchenMit Hilfe der folgenden Zeilen möchte ich zeigen, wie man eine Auftragsbestätigung per Code buchen kann. Wer etwas mehr Kontrolle über die zu buchenden Daten haben möchte, sollte sich die verfügbaren Parameter der salesFormLetter.update() näher ansehen. static void postSalesConfirmation(Args _args) { SalesTable salesTable = SalesTable::find("000747"); SalesFormLetter salesFormLetter; salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation); salesFormLetter.update(salesTable, systemDateGet(), SalesUpdate::All); } |
Lieferschein per Code buchenMit Hilfe der folgenden Zeilen möchte ich zeigen, wie man einen Lieferschein per Code buchen kann. static void postSalesPackingslip(Args _args) { SalesTable salesTable = SalesTable::find("000747"); SalesFormLetter salesFormLetter; salesFormLetter = SalesFormLetter::construct(DocumentStatus::PackingSlip); salesFormLetter.update(salesTable, systemDateGet(), SalesUpdate::All); } |
|
|
|
|
|
|
Der nachstehende Job prüft (bzw. bucht) eine Fertigmeldung eines Produktionsauftrages. Über den Enum JournalCheckPostType kann festgelegt werden, ob geprüft oder gebucht werden soll.