Dynamics AX Blog - Dynamics AX 2012 - Beiträge vom Dezember 2014

RSS-Feed dieser Version
Arbeitsplanliste eines Produktionsauftrags prüfen/buchenDer nachstehende Job prüft (bzw. bucht) eine Arbeitsplanliste eines Produktionsauftrages. Über den Enum JournalCheckPostType kann festgelegt werden, ob geprüft oder gebucht werden soll. static void checkPostProdJournalTableRoute(Args _args) { JournalCheckPost journalCheckPost; ProdJournalTable prodJournalTable = ProdJournalTable::find("00943", true); // Check/Post journal journalCheckPost = ProdJournalCheckPostRoute::newJournalCheckPost(false, true, JournalCheckPostType::Check, prodJournalTable.TableId, prodJournalTable.JournalId); journalCheckPost.run(); } |
Einzelvorgangsliste eines Produktionsauftrags prüfen/buchenDer nachstehende Job prüft (bzw. bucht) eine Einzelvorgangsliste eines Produktionsauftrages. Über den Enum JournalCheckPostType kann festgelegt werden, ob geprüft oder gebucht werden soll. static void checkPostProdJournalTableRouteJob(Args _args) { JournalCheckPost journalCheckPost; ProdJournalTable prodJournalTable = ProdJournalTable::find("00943", true); // Check/Post journal journalCheckPost = ProdJournalCheckPostRouteJob ::newJournalCheckPost(false, true, JournalCheckPostType::Check, prodJournalTable.TableId, prodJournalTable.JournalId); journalCheckPost.run(); } |
Fertigmeldung eines Produktionsauftrags prüfen/buchenDer nachstehende Job prüft (bzw. bucht) eine Fertigmeldung eines Produktionsauftrages. Über den Enum JournalCheckPostType kann festgelegt werden, ob geprüft oder gebucht werden soll. static void checkPostProdJournalTablePostProd(Args _args) { JournalCheckPost journalCheckPost; ProdJournalTable prodJournalTable = ProdJournalTable::find("00943", true); // Check/Post journal journalCheckPost = ProdJournalCheckPostProd::newJournalCheckPost(false, true, JournalCheckPostType::Check, prodJournalTable.TableId, prodJournalTable.JournalId); journalCheckPost.run(); } |
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(); } |
|
|
|
|
|
|
Der nachstehende Job prüft (bzw. bucht) eine Kommissionierliste eines Produktionsauftrages. Über den Enum JournalCheckPostType kann festgelegt werden, ob geprüft oder gebucht werden soll.