HOWTO: Sending mail from AX using .NET Framework.

Sometimes happen that SysMailer class (using CDO) is not the right solution for sending mails with attachments. There is a little sample of X++ Job that is using System.Net.Mail namespace to achieve same. static void JobNETSendMail(Args _args) { System.Net.Mail.MailMessage mailMessage; System.Net.Mail.Attachment attachment; System.Net.Mail.AttachmentCollection attachementCollection; System.Net.Mail.SmtpClient smtpClient; System.Net.Mail.MailAddress mailAddressFrom; System.Net.Mail.MailAddress mailAddressTo; str strBody; str strSMTPServer; str…

2

Casting .NET objects in X++

To cast any .NET object it is necessary to first assign the value you need to cast to an instance of CLRObject and then you can assing the instance of CLR object into an instance you need, like assinging System.Net.WebRequest instance into System.Net.HttpWebRequest in following code sample. static void Job_1(Args _args) { System.Net.HttpWebRequest httpRequest =…


Client Crash "The license information can not be decoded"

When trying to Import the License file in Axapta 2009, the client crashes. In the Event Logs, you will find the Error 110. Description: Object Server 01: The license file can not be decoded. Cause: This is caused due to missing security privileges of the AOS Service, which by default runs under Network Authority Solution:…


Novinka v AX 2009 – byref – předávání parametrů odkazem pro CLR Interop.

Novinkou v Dynamics AX 2009 je klíčové slovo byref. To umožní předat odkaz na proměnou do CLR tříd. Třída v .NET musí mit pak před parametrem uvedeno ref. Velmi pěkně zpracované příklady jsou k dispozici na stránkách MSDN. http://msdn.microsoft.com/en-us/library/cc603944.aspx http://msdn.microsoft.com/en-us/library/cc586700.aspx   Přikládám malou ukázku volání v X++: static void JobCallingNETByRef(Args _args) { str name; SampleNET.SamplePublicClass…


Volání .NET tříd z X++

Někdy je zapotřebí použít objekty z prostředí .NET. Vytrovřil jsem proto jednoduchou ukázku jak se toho dá dosáhnout v Dynamics AX (4.0 nebo 2009). Nejprve je potřeba vytvořit .NET projekt ve Visual Studiu 2005 (NET Framework 2.0). Zvolíme tedy: New Project Visual C# Windows Class Library V tomto projetku vytvoříme třídy podobnou přílkladu using System;…


XppCompiler – volání externího X++ kódu s parametrem.

Zde je ukázka kódu jak používat třídu XppCompilator. static void ExecuteCodeFromFile(Args _args) { #File AsciiIo asciiIo = new AsciiIo("c:\\findCustomer.xpp",#io_read); XppCompiler xppCompiler = new XppCompiler(); Source sourceXppCode; str sourceXppLine; CustTable sampleReturnValue; ; if (asciiIo) { asciiIo.inFieldDelimiter(#delimiterEnter); [sourceXppLine] = asciiIo.read(); while (asciiIo.status() == IO_Status::Ok) { sourceXppCode += #delimiterEnter; sourceXppCode += sourceXppLine; [sourceXppLine] = asciiIo.read(); } if (!xppCompiler.compile(sourceXppCode))…


How to read out a Windows user SID and replace it in USERINFO table

This is needed if you are unable to log into the Axapta Client due to the following error message: “You are not a recognized user of Microsoft Dynamics AX”  Use the following Script to find the Windows user SID you want to change:strComputer = “.”Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”) Set objAccount = objWMIService.Get _   …

3

Kde běží můj kod?

Někdy je velice užitečné vědět, kde běží právě daný kod. Lehce se lze na to dotázat AX voláním: static void WhereIsRunning(Args _args) { str s; ; s = strfmt("%1",xGlobal::clientKind()); info(s); } Karel F


Práce s container sloupci v T-SQL

Někdy je nutné přistupovat ke container datům v AX z uložené procedury přimo v T-SQL. Bohužel, není možné pro tento přístup využít Business Connector, proto se musíme spokojit pouze s COM connectorem. Z tohoto důvodu nelze tento přistup využít v AX 2009, protože ten již COM connector nepodporuje. Jak tedy přistoupit ke container datům v…

1