Wednesday, October 20, 2021

Delivery Date Modification sending Email Alerts

 Based on Delivery Date Filed Modified by user will send email to concern department head

using Email template to send email 

FormName - PurchTable

Path -PurchTable /DataSource-PurchTable/DeliveryDate/ModifiedMethod





added the below code in PurchTable-Methods

//</Kavin Sending notification to Supplier>

public static void sendEmailVendor(PurchTable     purchTable)

{  str positionName,finalResult;

    int found = 0;

    int found1 = 0;

    FromDate                        fromDate;

    SecurityRole                    securityRole;

    SecurityUserRole                securityUserRole;

    DirPersonUser                   personUser;

    DataAreaId                      employeeEntity;

    Name                            entityName;

    SysMailer                       mailer;

    UserId                          _sendingUserId;

    str                             mailAppendTo,Person,mailSubject,body,MgrdBody,

                                    sendMailTo,sendMailCc,Employee,BccMailto,

                                    BccMailID,mailServer,s,HRManager,SendFrom;

    int                             mailServerPort;

    int64                           StartWorkerId;

    str                             NoofDays;

    str                             IsAnnual,subject;

    str                             OveralJudgement;

    Query                           query;

    QueryRun                        qr;

    QueryBuildDataSource            qbd1;

    List                            list,listForBcc;

    ListEnumerator                  listEnumerator,listEnumerator1;


    Name FromName = HcmWorker::find(HcmWorker::userId2Worker(curUserId())).name();

    SysMailer mail;

    SysOutgoingEmailTable outgoingEmailTable;

    SysEmailItemId nextEmailItemId;

    System.Net.Mail.SmtpClient          mailClient;

    System.Net.NetworkCredential        credentials;

    System.Net.Mail.MailMessage         mailMessage;

    Email email;

    SysEmailParameters parameters = SysEmailParameters::find();

    str pwd;

    Map map;


    SysEmailTable        sysEmailTable        = SysEmailTable::find('POChanged');

    SysEmailMessageTable sysEmailMessageTable = SysEmailMessageTable::find(sysEmailTable.EmailId, sysEmailTable.DefaultLanguage);


    mailer         = new SysMailer();

    mailServer     = SysEmaiLParameters::find(false).SMTPRelayServerName;

    mailServerPort = SysEmaiLParameters::find(false).SMTPPortNumber;

    SendFrom       = SysEmaiLParameters::find(false).SMTPUserName;

    fromDate       = systemDateGet();

    if(purchTable)

    {

        Person = smmParametersTable::find().GH_EmailCC;

        s = date2Str(today(),213,DateDay::Digits2, DateSeparator::Hyphen, DateMonth::Digits2, DateSeparator::Hyphen, DateYear::Digits4);

        subject = "Delivery date changed Notification";

        if(SendFrom && Person)

        {

            mailSubject = subject ;


            body =  strFmt(sysEmailMessageTable.Mail,strFmt("%1: %2",purchTable.PurchId,purchTable.PurchName),

            strFmt("%1- %2",purchTable.OrderAccount,VendTable::find(purchTable.OrderAccount).name()),PurchTable.orig().DeliveryDate,PurchTable.DeliveryDate,HcmWorker::find(HcmWorker::userId2Worker(curUserId())).name());

            mailClient = new System.Net.Mail.SmtpClient();

            mailClient.set_DeliveryMethod(System.Net.Mail.SmtpDeliveryMethod::Network);

            mailClient.set_Host(parameters.SMTPRelayServerName);

            mailClient.set_Port(SysEmaiLParameters::find(false).SMTPPortNumber);

            mailClient.set_DeliveryMethod(System.Net.Mail.SmtpDeliveryMethod::Network);

            //mailClient.set_EnableSsl(true);

            pwd=SysEmaiLParameters::password();

            credentials = new System.Net.NetworkCredential(parameters.SMTPUserName, pwd);

            mailClient.set_UseDefaultCredentials(false);

            mailClient.set_Credentials(credentials);

            mailClient.set_Timeout(30000000);

            mailMessage = new System.Net.Mail.MailMessage(SendFrom, Person);

            mailMessage.set_Subject(mailSubject);

            mailMessage.set_Body(body);

            mailMessage.set_IsBodyHtml(true);

            try

            {

                mailClient.Send(mailMessage);

            }

            catch (Exception::CLRError)

            {

                info("Event:" + AifUtil::getClrErrorMessage());

            }

            _sendingUserId = "Administ";

            //Inserting History in Outgoing Email Table here ***

            nextEmailItemId = EventInbox::nextEventId();

            outgoingEmailTable.EmailItemId = nextEmailItemId;

            outgoingEmailTable.IsSystemEmail = NoYes::No;

            outgoingEmailTable.Sender = SendFrom;

            outgoingEmailTable.SenderName = "Administ";

            outgoingEmailTable.Recipient  = Person;

            outgoingEmailTable.Subject    = SysEmailMessage::stringExpand(subject, map);

            outgoingEmailTable.Priority   = eMailPriority::Normal ;

            outgoingEmailTable.WithRetries = false;

            outgoingEmailTable.RetryNum = 0;

            outgoingEmailTable.UserId = _sendingUserId;//curUserId();

            outgoingEmailTable.Status = SysEmailStatus::Sent;

            outgoingEmailTable.Message = body;

            outgoingEmailTable.Origin  = sysEmailTable.Description;

            outgoingEmailTable.LatestStatusChangeDateTime = DateTimeUtil::getSystemDateTime();

            outgoingEmailTable.insert();

        }

      info(strFmt("PO has been changed and  email sent to - %1",Employee));

    }

}

//</Kavin End>






Dear All,

PO Number: %1 delivery date is changed . please have  a check and take the action

Supplier : %2

Old delivery date: %3

Modified delivery date: %4

Modified by: %5

For your reference & information.


Best regards,


Dynamics AX .
This is an automatically generated message. Please do not try to reply to this E-Mail.