Erstellen einer Entität - beispielsweise eines Debitoren - per Code unter Verwendung von AX<Table>-Klassen
12.11.2013Microsoft Dynamics AX (Axapta)
|
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012
Dynamics AX 2012
|
|
|
|
|
|
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Folgender Job soll veranschaulichen, wie man unter Verwendung von sog. AX<Table>-Klassen Entitäten in Dynamics AX per Code anlegen kann, ohne dabei - wie in diesem Beitrag beschrieben - direkt in die Tabellen zu schreiben.
Solche AX<Table>-Klassen stehen bereits für zahlreiche Tabellen von Haus aus zu Verfügung und es ist möglich, sich jederzeit für weitere Tabellen solche Klassen generieren zu lassen (siehe hier).
Vorteile:
Nachteile:
static void CreateCustomerAXClass(Args _args) { AxCustTable axCustTable; AxDirPartyTable AxDirPartyTable; CustTable CustTable; DirPartyTable DirPartyTable; AccountNum accountNum = "4711"; Name name = "Debitor 4711"; currencyCode currencyCode = "EUR"; custGroupId custGroupId = "DINL"; taxGroup taxGroup = "DINL"; languageId languageId = "de-AT"; ttsBegin; // Create or update Customer axCustTable = axCustTable::construct(); axCustTable.validateInput(true); axCustTable.continueOnError(true); // Validate fields without stopping error CustTable = CustTable::find(accountNum, true); if(CustTable) { axCustTable.custTable(CustTable); // Don't use this for new records to get initValue() called } axCustTable.parmAccountNum(accountNum); axCustTable.parmCustGroup(custGroupId); axCustTable.parmTaxGroup(taxGroup); axCustTable.parmCurrency(currencyCode); axCustTable.save(); // Create or update Global address book AxDirPartyTable = AxDirPartyTable::construct(); AxDirPartyTable.validateInput(true); AxDirPartyTable.continueOnError(true); // Validate fields without stopping error DirPartyTable = DirPartyTable::findRec(axCustTable.custTable().Party, true); if(DirPartyTable) { AxDirPartyTable.dirPartyTable(DirPartyTable); } AxDirPartyTable.parmName(name); AxDirPartyTable.parmLanguageId(languageId); AxDirPartyTable.save(); ttsCommit; }