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
//</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.

