April 26, 2015

How to delete AUC files

During many development we face some cache related issues. There is no error in code and still changes are not reflecting. Even after performing CIL, Compile and Sych but issue still existing. All these are happened due to ax_{GUID}.auc files. We need to clear(delete) these files from Appdata folder.
To delete AUC(Application Unicode Cache) files we need to perform below steps.
1. Stop AOS
2. Delete AUC files from below path
C:\Users\<UserId>\AppData\Local
image
3. Restart AOS.
PS: AOS restart is not mandatory. Its better to do it in this way however it will work without AOS restart.
More details on AUC
-Harry

April 20, 2015

How to send Email through X++ code

Hi All,

Use below code to sent emails from X++ code. Below code is written in a Job you can reuse the same in your logic. 

static void dpk_TestEmail(Args _args)
{
    // Set these variables.
    str                                   sender = “sender@dnaitservices.com”;
    str                                   recipient = 'rcpt@dnaitservices.com';
    str                                   cc = 'cc@dnaitservices.com';
    str                                   subject = 'TheAxapta_Subject';
    str                                   body = 'TheAxapta_Msg';
    str                                   fileName = @'D:\test.txt';
    List                                  toList;
    List                                  ccList;
    ListEnumerator                        le;
    Set                                   permissionSet;
    System.Exception                      e;
    str                                   mailServer;
    int                                   mailServerPort;
    System.Net.Mail.SmtpClient            mailClient;
    System.Net.Mail.MailMessage           mailMessage;
    System.Net.Mail.MailAddress           mailFrom;
    System.Net.Mail.MailAddress           mailTo;
    System.Net.Mail.MailAddressCollection mailToCollection;
    System.Net.Mail.MailAddressCollection mailCCCollection;
    System.Net.Mail.AttachmentCollection  mailAttachementCollection;
    System.Net.Mail.Attachment            mailAttachment;
    ;
    try
    {
        toList = strSplit(recipient, ';');
        ccList = strSplit(cc, ';');
        permissionSet = new Set(Types::Class);
        permissionSet.add(new InteropPermission(InteropKind::ClrInterop));
        permissionSet.add(new FileIOPermission(filename, 'rw'));
        CodeAccessPermission::assertMultiple(permissionSet);
        mailServer = SysEmaiLParameters::find(false).SMTPRelayServerName;
        mailServerPort = SysEmaiLParameters::find(false).SMTPPortNumber;
        mailClient = new System.Net.Mail.SmtpClient(mailServer, mailServerPort);
        le = toList.getEnumerator();
        le.moveNext();
        mailFrom = new System.Net.Mail.MailAddress(sender);
        mailTo  = new System.Net.Mail.MailAddress(strLTrim(strRTrim(le.current())));
        mailMessage = new System.Net.Mail.MailMessage(mailFrom, mailTo);
        mailToCollection = mailMessage.get_To();
        while (le.moveNext())
        {
            mailToCollection.Add(strLTrim(strRTrim(le.current())));
        }
        le = ccList.getEnumerator();
        mailCCCollection = mailMessage.get_CC();
        while (le.moveNext())
        {
            mailCCCollection.Add(strLTrim(strRTrim(le.current())));
        }
        mailMessage.set_Priority(System.Net.Mail.MailPriority::High);
        mailMessage.set_Subject(subject);
        mailMessage.set_Body(body);
        mailAttachementCollection = mailMessage.get_Attachments();
        mailAttachment = new System.Net.Mail.Attachment(fileName);
        mailAttachementCollection.Add(mailAttachment);
        mailClient.Send(mailMessage);
        mailMessage.Dispose();
        CodeAccessPermission::revertAssert();
        info("Email sent.");
    }
    catch (Exception::CLRError)
    {
        e = ClrInterop::getLastException();
        while (e)
        {
            info(e.get_Message());
            e = e.get_InnerException();
        }
        CodeAccessPermission::revertAssert();
    }
}

-Harry

April 13, 2015

System trade line number increment is not specified.

Hi Friends,

I faced one Error while creating Purchase Order from Approved Purchase Requisition
Error Message:
System trade line number increment is not specified.
Purchase order creation has been cancelled due to errors

clip_image001

Reason: As mentioned in error message there is one parameter missing.'

Possible Solution:Click on “System Parameter” from infolog window or go to
System administration -> Setup -> System Parameter
Under System Line Number, Change the increment from 0 to 1.

clip_image002

Now try again to create PO.

clip_image003

Double click on purchase order number to open PO from.

- Harry

April 08, 2015

How to deploy Dynamics AX instance on Azure through LifeCycle Service (LCS)- Part II

Hi All,

In my previous post we discussed how to configure your Azure account with LCS services and how upload LifecycleServicesDeployment certification on Azure portal.
In this post i will show you how to deploy the AX using LCS on Azure.
Step: 1 Login into your LCS account, select the project you want to deploy. Go to environment and click on ‘+’ symbol

image

In next screen you need to choose topology to deply.
DEMO: for demo purpose
DEVTEST: For development or testing
Here we will use DEMO topology, click on DEMO
image ‘'

On next screen you need to choose Product version. Click on “Demo AX 2012 R3 CU8”
image

On the next screen give a name for this instance. (You can select a different size). Click on next.
image

It will ask for a confirmation for deployment. Click on deploy.
Now LCS will deploy the environment on Azure, this may take some time to complete this step.
image


Now on right side tile click on VM Name “DEMO####”
image

It will download a RDC file. Save this file and open with user name and Password.
image

Your Cloud VM is ready for use.
- Harry

April 01, 2015

New book released Microsoft Dynamics AX 2012 R3 Reporting Cookbook

Hi Folks,
I am very happy to share with all of you that my new book just released in market.
Microsoft Dynamics AX 2012 R3 Reporting Cookbook
image

This book is recommended for Dynamics AX developers and .NET-based SSRS developers looking to familiarize themselves with the new AX reporting framework.
This book contain 10 chapters 

1: UNDERSTANDING AND CREATING SIMPLE SSRS REPORTS
2: ENHANCING YOUR REPORT – VISUALIZATION AND INTERACTION
3: REPORT PROGRAMMING MODEL
4: REPORT PROGRAMMING MODEL – RDP
5: INTEGRATING EXTERNAL DATASOURCES
6: BEYOND TABULAR REPORTS
7: UPGRADING AND ANALYZING REPORTS
8: TROUBLESHOOTING AND OTHER ADVANCED RECIPES
9: DEVELOPING REPORTS WITH COMPLEX DATABASES
10: UNIT TEST CLASS AND BEST PRACTICES USED FOR REPORTS

For details check on web stores to get your copy.
- Harry