x++ code for Sending Email Notification whenever sales order is confirmed, cancelled, delivered or invoiced

 

  • please use this account Details:-


User ID :- svc_admin@basofa.onmicrosoft.com

Password : - Zac00247



[ExtensionOf(tableStr(SalesTable))]

final class BASSalesTable_Extension

{

    public void update()

    {

        SalesTable salesTable = this.orig();

        next update();

        if(salesTable.DocumentStatus != this.DocumentStatus || (this.SalesStatus == SalesStatus::Canceled && this.SalesStatus != salesTable.SalesStatus))

        {        

            SysEmailParameters _SysEmailParameters;

            var builder = new SysMailerMessageBuilder();

            select SMTPUserName from _SysEmailParameters;    

            builder.setFrom(_SysEmailParameters.SMTPUserName);

            builder.addTo("reddychandrashekar567@gmail.com");

            builder.setSubject("Sales order Details");

            str r =  strFmt("%1 Order is %2",this.SalesId,(enum2Str(this.DocumentStatus)));

            builder.setBody(r);

            if(this.SalesStatus == SalesStatus::Canceled)

            {

                str r1 =  strFmt("%1 Order is %2",this.SalesId,(enum2Str(this.SalesStatus)));

                builder.setBody(r1);

            }

            var message = builder.getMessage();

            SysMailerFactory::getNonInteractiveMailer().sendNonInteractive(message);

            Info("Email Sent Successfully");

        }

    }

}


                                                    or


[ExtensionOf(tableStr(SalesTable))]

final class BASSalesOrderInsert_Extension

{

    void insert(boolean _skipMarkup)

    {

        SalesTable salesTable =  this.orig();

        next insert();

        SysEmailParameters _SysEmailParameters;


        var builder = new SysMailerMessageBuilder();


        select SMTPUserName from _SysEmailParameters;


        builder.setFrom(_SysEmailParameters.SMTPUserName);


        builder.addTo("sarathbunny75@gmail.com");


        builder.setSubject("Sales order Details");


        str r =  strFmt("%1 Order is %2",this.SalesId,(enum2Str(this.SalesStatus)));


        builder.setBody(r);


        var message = builder.getMessage();


        SysMailerFactory::getNonInteractiveMailer().sendNonInteractive(message);


        Info("Email Sent Successfully");

    }


}



                                                            or

x++ code to send email notification in table format from dynamics 365

[ExtensionOf(tableStr(SalesTable))]
final class BASSalesTable_Extension
{
    public void update()
    {
       // orig() method refers to the last saved state of the current table buffer .
        SalesTable salesTable = this.orig();

 

        next update();
        if(salesTable.DocumentStatus != this.DocumentStatus || (this.SalesStatus == SalesStatus::Canceled && this.SalesStatus != salesTable.SalesStatus))
        {

 

            SysEmailParameters _SysEmailParameters;
            SysInfoLogStr   emailBodyWithHtml;

 

            var builder = new SysMailerMessageBuilder();

 

            select SMTPUserName from _SysEmailParameters;    

 

            builder.setFrom(_SysEmailParameters.SMTPUserName);

 

            builder.addTo("reddychandrashekar567@gmail.com");

 

            builder.setSubject("Sales order Details");

 

            emailBodyWithHtml = "<table border = '1'><tr><td><b>ItemId<b></td><td><b>Quantity<b></td><td><b>SalesStatus<b></td><td><b>InvoiceRemainder<b></td></tr>";
            SalesLine salesLine;
           while select * from salesTable join salesLine
                where salesTable.SalesId == salesLine.SalesId && salesTable.SalesId == this.SalesId
            {
                emailBodyWithHtml += "<tr><td>"+salesLine.ItemId+"</td><td>"+any2Str(salesLine.SalesQty)+"</td><td>"+any2Str(salesLine.SalesStatus)+"</td><td>"+any2Str(salesLine.RemainInventFinancial)+"</td></tr>";
            }
            emailBodyWithHtml += "</Table>";

 

            builder.setBody(strFmt("Sales order %1 is %2  %3",this.SalesId,this.DocumentStatus,strRem(emailBodyWithHtml, '\r')),true);
            //str r =  strFmt("%1 Order is %2 , ItemId is %3 , Product name is %4 ,  %5 Quantity , Deliver remainder Qty is %6 , Invoice remainder Qty is %7 ",this.SalesId,(enum2Str(this.DocumentStatus)),salesLine.ItemId,salesLine.Name,salesLine.SalesQty,salesLine.RemainInventPhysical,salesLine.RemainInventFinancial);
            //builder.setBody(r);

 

     
           //if(this.SalesStatus == SalesStatus::Canceled)
           // {
           //     str r1 =  strFmt("%1 Order is %2 , ItemId is %3 , Product name is %4 ,  %5 Quantity",this.SalesId,(enum2Str(this.SalesStatus)),salesLine.ItemId,salesLine.Name,salesLine.SalesQty);
           //     builder.setBody(r1);
           // }

 

            var message = builder.getMessage();

 

            SysMailerFactory::getNonInteractiveMailer().sendNonInteractive(message);

 

            Info("Email Sent Successfully");
        }

 

    }

 

}

Comments

Popular posts from this blog

How to Create a wizard in x++ d365

how to post trade agreement journals automatically using x++ code

x++ code to submit and approve and reject the invent movement workflow in d365 F&O