26.10.2007, 03:34 | #1 |
Участник
|
jinx: Microsoft Dynamics AX API – Teil 3 „Buchen von Auftr?gen“
Das Buchen von Auftr?gen in Microsoft Dynamics AX geschieht ?ber die Klasse „SalesFormLetter“bzw. einer ihrer konkretisierten (abgeleiteten) Klassen. Jeder Buchungstyp (z.B. Best?tigung,Lieferschein, Rechnung) ist durch eine eigene Klasse abgebildet, welche von der Basisklasse„SalesFormLetter“ abgeleitet ist (siehe Abbildung).
Um einen Auftrag per Programmcode zu buchen, muss ein Objekt der Klasse „SalesFormLetter“erstellt werden. salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation); Dies geschieht, wie Allgemein in Microsoft Dynamics AX ?blich, ?ber die “construct”Methode der Klasse. Als Parameter muss dieser Methode die gew?nschte Art der Buchung(z.B. Best?tigung, Lieferschein, Rechnung) angegeben werden. Die „construct“ Methodeerzeugt ein,der Buchungsart entsprechendes, Objekt und gibt dieses zur?ck (In diesemFall wird ein „SalesFormLetter_Confirm“ Objekt erzeugt). Die eigentliche Buchung wird ?ber die Methode „update“ aufgerufen. Da dieser Methodealle f?r die Buchung notwendigen Daten als Parameter ?bergeben werden k?nnen, isteine einzelne Zuweisung von z.B. dem Auftrag, welcher gebucht werden soll, nicht notwendig. Hierzu ein Beispiel: //--- Buchen ohne Ausdruck --- static void PostingConfimation(Args_args) { SalesFormLetter salesFormLetter; SalesTable salesTable; SalesId salesId; PrintJobSettings printJobSettings; ; //Angabedes Auftrags, welcher gebucht werden soll. salesId = "00423_036"; salesTable = SalesTable::find(salesId); //Bestimmen des Buchungstyps durch Angabe des DocumentStatus salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation); //Buchendes Auftrags (aber nicht Drucken). salesFormLetter.update(salesTable, SystemDateGet(), SalesUpdate::All, AccountOrder::None, NoYes::No, NoYes::No); } Bei diesem Beispiel ist gut zu sehen, dass f?r die Buchung eines Auftrags im Wesentlichennur zwei Schritte notwendig sind.
Damit es nicht zu komplex wird, kurz noch ein Beispiel zum Buchung und gleichzeitigenausdrucken entsprechender Dokumente. //--- Buchen mit Ausdruck --- static void PostingConfimation(Args_args) { SalesFormLetter salesFormLetter; SalesTable salesTable; SalesId salesId; PrintJobSettings printJobSettings; ; //Angabedes Auftrags, welcher gebucht werden soll. salesId = "00423_036"; salesTable = SalesTable::find(salesId); salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation); //Buchendes Auftrags und drucken (Druckmedium aus Std. Einstellung). salesFormLetter.update(salesTable, SystemDateGet(), SalesUpdate::All, AccountOrder::None, NoYes::No, NoYes::Yes); //2terAusdruck. printJobSettings = new PrintJobSettings(salesFormLetter.printerSettingsFormletter( PrintSetupOriginalCopy::Original)); //Wohinm?chten wir drucken (hier Datei). printJobSettings.setTarget(PrintMedium::File); //Inwelches Format soll gedruckt werden (hier PDF). printJobSettings.format(PrintFormat::PDF); printJobSettings.fileName(@"C:\Test_Order.pdf"); //?bergabeder Druckoptionen an das SalesFormLetter Objekt. salesFormLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings()); salesFormLetter.printJournal(); } Es wird keine Haftung oder Gew?hrleistung auf die Richtigkeit der gemachten Angaben gegeben. Die Verwendung erfolgt auf eigene Gefahr. Copyright © Axel K?hn (Aku's AX Blog, http://blog.ak-home.net) and Mathias F??ler (jinx's AX Blog, http://starside.eu) More... |
|
|
|