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

Práce s MemoryStream v MS Dynamics AX 2009

Od verze 2009 (5.0) je jižné možné používat nasledující konstrukci ke konverzi .NET objektu MemoryStream do container. V předchozích verzích se stejné muselo řešit cyklem nebo použitím externího DLL. container memoryStream2container(System.IO.MemoryStream _memoryStream) { str s; System.Byte[] byteArray; ; byteArray = _memoryStream.ToArray(); s = System.Convert::ToBase64String(byteArray); return BinData::loadFromBase64(s); } Karel F


Jak zjistit status Windows service v X++?

Pokud potřebujete zjistit stav jakékoli služby v systému Windows, můžete jako inspiraci použít následující kód:{ InteropPermission interopPermission = new InteropPermission(InteropKind::DllInterop); str machineName = “machineName”; str serviceName = “Browser”; DLL dll; DLLFunction dllFunction; int hSCM; Binary binMachineName; Binary binDBName = new Binary(“ServicesActive”); // Opens default database, works also in AX 3.0 DLLFunction openServiceFunction; DLLFunction queryServiceStatusFunction; DLLFunction…


Začínáme

Vítejte na blogu českého týmu technické podpory produktu Dynamics AX. Zde vás budeme seznamovat nejen s novinkami ve světě Dynamics AX, ale také s řešeními různých problémů, na které můžete během své práce narazit. Váš český tým technické podpory produktu Microsoft Dynamics AX