Business events with examples

// Business event base class


 [BusinessEvents(classStr(BPAADImportFromEmployeeBusinessEventContract),

"Employee AAD import","create AAD user and import as system user",ModuleAxapta::HumanResource)]

public final  class BPAADImportFromEmployeeBusinessEvent  extends BusinessEventsBase

{

    private HCMWorker hcmWorker;

    private HCMWorker parmHCMWorker(HCMWorker _hcmWorker = hcmWorker)

    {

        hcmWorker = _hcmWorker;

        return hcmWorker;

    }


    private void new()

    {

        super();

    }


    public static BPAADImportFromEmployeeBusinessEvent construct()

    {

        BPAADImportFromEmployeeBusinessEvent retVal = new BPAADImportFromEmployeeBusinessEvent();

        return retVal;

    }


    [Wrappable(true), Replaceable(true)]

    public BusinessEventsContract buildContract()

    {

        return BPAADImportFromEmployeeBusinessEventContract::newFromHCMWorker(hcmWorker);

    }


    static public BPAADImportFromEmployeeBusinessEvent newFromHCMWorker(HCMWorker _hcmWorker)

    {

        BPAADImportFromEmployeeBusinessEvent businessEvent =  BPAADImportFromEmployeeBusinessEvent::construct();

        businessEvent.parmHCMWorker(_hcmWorker);

        return businessEvent;

    }


}



// Business event contract  class



[DataContract]

Public class BPAADImportFromEmployeeBusinessEventContract extends BusinessEventsContract

{

    private NameAlias displayName,searchName;

    private HcmWorkerName fullName;

    private FirstName firstName;

    private LastName lastName;

    private MiddleName middleName;

    private Num         customUserId;

    private NoYesId       hasToCreateSysUser;

    private SysSecObjectIdentifier secRole;

    private DMFSecurityRoleName secRoleName;

    private SMTPPassword passWord;

    private str userSubject,sysUserSubject,userApprovalSubject,personalEmailSubject;

    private str userEmailBody,sysUserEmailBody,userApprovalEmailBody,personalEmailBody;

    private HcmPersonnelNumberId   personnelNumber;

    private Email aadUserEmailId;

    private SysAADClientId aadUserGroupId;

    private BPMPAADMultiEmail userSendTo,SysUserSendTo,userApprovalSendTo, personalEmail;

    ///


    /// Initializes the field values.

    ///


    private void initialize(HCMWorker _hcmWorker)

    {

        str emailSenderName,senderEmail;

        DirPersonName personName  = DirPersonName::find(_hcmWorker.DirPerson().RecId) ;

        BPAADEmpImportInegraitonParameters parmetersintegration =   BPAADEmpImportInegraitonParameters::find();

        BPAADHCMWorkerLog workerLog=  BPAADHCMWorkerLog::findByWorker(_hcmWorker.RecId);




        searchName = _hcmWorker.searchName();

        fullName = _hcmWorker.name();

        firstName =  personName.FirstName;

        lastName = personName.LastName;

        personnelNumber = _hcmWorker.PersonnelNumber;


        sysEmailTable  userEmailTable = sysEmailTable::find(parmetersintegration.UserEmailId);

        [userSubject, userEmailBody, senderEmail, emailSenderName] =   BPAADEmailIDSequence::getEmailTemplate(userEmailTable.EmailId,userEmailTable.DefaultLanguage);


        sysEmailTable  userApprovalEmailTable = sysEmailTable::find(parmetersintegration.AADApprovalEmailID);

        [userApprovalSubject, userApprovalEmailBody, senderEmail, emailSenderName] =   BPAADEmailIDSequence::getEmailTemplate(userApprovalEmailTable.EmailId,userApprovalEmailTable.DefaultLanguage);


        sysEmailTable  SysuserEmailTable = sysEmailTable::find(parmetersintegration.SysUserEmailId);

        [sysUserSubject, sysUserEmailBody, senderEmail, emailSenderName] =   BPAADEmailIDSequence::getEmailTemplate(SysuserEmailTable.EmailId,SysuserEmailTable.DefaultLanguage);


        sysEmailTable  personalEmailTable = sysEmailTable::find(parmetersintegration.PersonalEmailId);

        [personalEmailSubject, personalEmailBody, senderEmail, emailSenderName] =   BPAADEmailIDSequence::getEmailTemplate(personalEmailTable.EmailId,personalEmailTable.DefaultLanguage);


        hasToCreateSysUser = workerLog.BPAADHasToCreateSysUser;

        passWord  = parmetersintegration.password();

        secRole = parmetersintegration.DefaultSecRole;

        secRoleName =   parmetersintegration.SecurityRoleName;

        customUserId = workerLog.CustomUserId;

        aadUserEmailId =  workerLog.AADEmailID;

        aadUserGroupId =  parmetersintegration.AzureADUserGroupId;


     


        userEmailBody =  this.parseEmailBody(userEmailBody);

        sysUserEmailBody  =  this.parseEmailBody(sysUserEmailBody);

        userApprovalEmailBody  =  this.parseEmailBody(userApprovalEmailBody);


        personalEmailBody  =  this.parseEmailBody(personalEmailBody);



        userSubject =  this.parseEmailBody(userSubject);

        userApprovalSubject  =  this.parseEmailBody(userApprovalSubject);

        sysUserSubject  =  this.parseEmailBody(sysUserSubject);

        personalEmailSubject =   this.parseEmailBody(personalEmailSubject);


        userSendTo =  parmetersintegration.AADUserCreationRecipient;

        userApprovalSendTo = parmetersintegration.AADUserApprRecipient;

        SysUserSendTo = workerLog.SysUserCreationRecipient;

        personalEmail = workerLog.PersonalEmailId;


    }


    public str parseEmailBody(str _userEmailBody)

    {

        _userEmailBody = strReplace(_userEmailBody,'%fullName%',fullName);

        _userEmailBody = strReplace(_userEmailBody,'%Password%',passWord);

        _userEmailBody = strReplace(_userEmailBody,'%AADEmail%',aadUserEmailId);

        _userEmailBody = strReplace(_userEmailBody,'%SecRole%',secRole);


        return _userEmailBody;


    }


    public static BPAADImportFromEmployeeBusinessEventContract newFromHCMWorker(HCMWorker _hcmWorker)

    {

        var contract =  BPAADImportFromEmployeeBusinessEventContract::construct();

        contract.initialize(_hcmWorker);

       

        return contract;

    }


    [DataMember('personnelNumber'), BusinessEventsDataMember("personnel number")]

    public HcmPersonnelNumberId parmPersonnelNumber(HcmPersonnelNumberId _personnelNumber = personnelNumber)

    {

        personnelNumber = _personnelNumber;


        return personnelNumber;

    }


    [DataMember('SearchName'), BusinessEventsDataMember("Search name")]

    public NameAlias parmSearchName(NameAlias _searchName = searchName)

    {

        searchName = _searchName;


        return searchName;

    }


    [DataMember('FullName'), BusinessEventsDataMember("Full name")]

    public HcmWorkerName parmFullName(HcmWorkerName _name = fullName)

    {

        fullName = _name;


        return fullName;

    }


    [DataMember('FirstName'), BusinessEventsDataMember("First name")]

    public FirstName parmFirstName(FirstName _name = firstName)

    {

        firstName = _name;


        return firstName;

    }


    [DataMember('LastName'), BusinessEventsDataMember("Last name")]

    public LastName parmLastName(LastName _name = lastName)

    {

        lastName = _name;


        return lastName;

    }


    [DataMember('CustomUserId'), BusinessEventsDataMember("Custom user id")]

    public Num parmCustomUserId(Num _userId = customUserId)

    {

        customUserId = _userId;


        return customUserId;

    }


    [DataMember('HasToCreateSysUser'), BusinessEventsDataMember("Has to create Sysem User")]

    public NoYesId ParmIsToCreateSysUser(NoYesId _isToCreate = hasToCreateSysUser)

    {

        hasToCreateSysUser  = _isToCreate;


        return hasToCreateSysUser;

    }


    [DataMember('secRole'), BusinessEventsDataMember("User default security role")]

    public SysSecObjectIdentifier ParmSecRole(SysSecObjectIdentifier _secRole = secRole)

    {

        secRole  = _secRole;


        return secRole;

    }


    [DataMember('secRoleName'), BusinessEventsDataMember("User default security role Name")]

    public DMFSecurityRoleName ParmSecRoleName(DMFSecurityRoleName _secRoleName = secRoleName)

    {

        secRoleName  = _secRoleName;


        return secRoleName;

    }


    [DataMember('passWord'), BusinessEventsDataMember("Password")] 

    public SMTPPassword ParmPassword(SMTPPassword _pwd = passWord)

    {

        passWord  = _pwd;


        return passWord;

    }


    [DataMember('aadUserEmailId'), BusinessEventsDataMember("AAD user email id")]

    public Email ParmAADUserEmailId(Email _aadUserEmailId = aadUserEmailId)

    {

        aadUserEmailId  = _aadUserEmailId;


        return aadUserEmailId;

    }


    [DataMember('aadUserGroupId'), BusinessEventsDataMember("AAD user group id")]

    public SysAADClientId ParmAADUserGroupId(SysAADClientId _aadUserGroupId = aadUserGroupId)

    {

        aadUserGroupId  = _aadUserGroupId;


        return aadUserGroupId;

    }


    [DataMember('userSendTo'), BusinessEventsDataMember("user send to")]

    public BPMPAADMultiEmail ParmUserSendTo(BPMPAADMultiEmail _userSendTo = userSendTo)

    {

        userSendTo  = _userSendTo;


        return userSendTo;

    }


    [DataMember('SysUserSendTo'), BusinessEventsDataMember("System user send to")]

    public BPMPAADMultiEmail ParmSysUserSendTo(BPMPAADMultiEmail _sysUserSendTo = SysUserSendTo)

    {

        SysUserSendTo  = _sysUserSendTo;


        return SysUserSendTo;

    }


    [DataMember('userApprovalSendTo'), BusinessEventsDataMember("AAD user approval send to")]

    public BPMPAADMultiEmail ParmUserApprovalSendTo(BPMPAADMultiEmail _userApprovalSendTo = userApprovalSendTo)

    {

        userApprovalSendTo  = _userApprovalSendTo;


        return userApprovalSendTo;

    }


    [DataMember('userEmailBody'), BusinessEventsDataMember("user email body")]

    public str ParmUserEmailBody(str _userEmailBody = userEmailBody)

    {

        userEmailBody  = _userEmailBody;


        return userEmailBody;

    }


    [DataMember('SysUserEmailBody'), BusinessEventsDataMember("System user email body")]

    public str ParmSysUserEmailBody(str _sysUserEmailBody = SysUserEmailBody)

    {

        sysUserEmailBody  = _sysUserEmailBody;


        return sysUserEmailBody;

    }


    [DataMember('userApprovalEmailBody'), BusinessEventsDataMember("AAD user approval emal body")]

    public str ParmUserApprovalEmailBody(str _userApprovalEmailBody = userApprovalEmailBody)

    {

        userApprovalEmailBody  = _userApprovalEmailBody;


        return userApprovalEmailBody;

    }


    [DataMember('personalEmailBody'), BusinessEventsDataMember("personal email body")]

    public str ParmPersonalEmailBody(str _personalEmailBody = personalEmailBody)

    {

        personalEmailBody  = _personalEmailBody;


        return personalEmailBody;

    }


    [DataMember('userApprovalSubject'), BusinessEventsDataMember("AAD user approval email subject")]

    public str ParmUserApprovalSubject(str _userApprovalSubject = userApprovalSubject)

    {

        userApprovalSubject  = _userApprovalSubject;


        return userApprovalSubject;

    }


    [DataMember('userSubject'), BusinessEventsDataMember("user email subject")]

    public str ParmUserSubject(str _userSubject = userSubject)

    {

        userSubject  = _userSubject;


        return userSubject;

    }


    [DataMember('sysUserSubject'), BusinessEventsDataMember("system user email subject")]

    public str ParmSysUserSubject(str _sysUserSubject = sysUserSubject)

    {

        sysUserSubject  = _sysUserSubject;


        return sysUserSubject;

    }


    [DataMember('personalEmailSubject'), BusinessEventsDataMember("personal email subject")]

    public str ParmPersonalEmailSubject(str _personalEmailSubject = personalEmailSubject)

    {

        personalEmailSubject   = _personalEmailSubject;


        return personalEmailSubject;

    }


    [DataMember('personalEmail'), BusinessEventsDataMember("personal email id")]

    public BPMPAADMultiEmail ParmPersonalEmail(BPMPAADMultiEmail _personalEmail = personalEmail)

    {

        personalEmail  = _personalEmail;


        return personalEmail;

    }


    private void new()

    {

    }


    public static BPAADImportFromEmployeeBusinessEventContract construct()

    {

        BPAADImportFromEmployeeBusinessEventContract retVal = new BPAADImportFromEmployeeBusinessEventContract();

        return retVal;

    }


}

Comments

Popular posts from this blog

Ledger dimensions and financial Dimensions X++

Logistics address, postal address, address phone fax contact information

Consume odata/web api d365fo and parsing json content