adsenseheader

Thursday, September 26, 2024

Send Email in D365 FO

public static boolean SendSimple(str toEmail, str subject, str bodyHtml, boolean setPriortiy = false)
{
    try
    {
        UserInfo uinfo;
        var mailMsgbuilder = new SysMailerMessageBuilder();
        
        select uinfo where uinfo.id == 'Admin';

        if (_setPriortiy)
        {
            mailMsgbuilder.setFrom(uinfo.networkAlias);
            mailMsgbuilder.addTo(_toEmail);
            mailMsgbuilder.setSubject(_subject);
            mailMsgbuilder.setBody(_bodyHtml);
            mailMsgbuilder.setPriority(System.Net.Mail.MailPriority::High);
        }
        else
        {
            mailMsgbuilder.setFrom(uinfo.networkAlias);
            mailMsgbuilder.addTo(_toEmail);
            mailMsgbuilder.setSubject(_subject);
            mailMsgbuilder.setBody(_bodyHtml);
        }


        SysMailerFactory::getNonInteractiveMailer().sendNonInteractive(mailMsgBuilder.getMessage());

        return true;
    }
    catch
    {
        return false;
    }
}


Example for html body:

body += strFmt("<b>%1</b> <br> %2 <br> <br>", date2str(runForDate,321,2,DateSeparator::Hyphen,2,DateSeparator::Hyphen,4)

Check if user is assigned with privilege in D365 FO

public static boolean checkIfUserAssignedWithPrivilege(str _privilege)
    {
        UserInfo userInfo;
        SecurityUserRole securityUserRole;
        SecurityPrivilege securityPrivilege;
        SecurityRolePrivilegeExplodedGraph securityRolePrivilegeExplodedGraph;

        select firstonly Id, RecId from userInfo
            exists join securityUserRole
                where securityUserRole.User         == userInfo.Id
            exists join securityRolePrivilegeExplodedGraph 
                where securityRolePrivilegeExplodedGraph.SecurityRole == securityUserRole.SecurityRole
            exists join securityPrivilege 
                where securityPrivilege.RecId       == securityRolePrivilegeExplodedGraph.SecurityPrivilege
                    && securityPrivilege.Identifier == _privilege 
                    && userInfo.id                  == curUserId();
        return userInfo.RecId;
    }