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
Post a Comment