clsImportMARIUser Class |
User bImportMARIUser(clsImportMARIUser, clsImportBaseeImportMode) to import a new or update an existing user.
Namespace: MARIInterface
The clsImportMARIUser type exposes the following members.
| Name | Description | |
|---|---|---|
| clsImportMARIUser | Initializes a new instance of the clsImportMARIUser class |
| Name | Description | |
|---|---|---|
| AccountingMode | visibility flag for different dimensions (hours, cost, revenue) | |
| Company | Company link. Only for UserType = CustomerPortalUser | |
| CustomerCardCode | CustomerCardCode Only for UserType = CustomerPortalUser | |
| DMSPWD | Password for the DMS user, when using an DMS Add On | |
| DMSUser | Special user, when using an Add On to authenticate to the DMS System. | |
| ERPUserByCompany | Flag, if passwords are differenz by each SBO database linked. This is not supported in the MARIInterface class. | |
| ERPUserName | User code for SAP Business One | |
| ERPUserPassword | Password to be used, when the DI-API or Service Layer will push to SBO. Set a new password in clear text. | |
| FrontEndLanguage | Front End language for the user. Stored in a user setting table | |
| Groups | Groups binary flags | |
| LoginActive | Login Active | |
| Modules | Linked license to a standard user, 0 for portal user. See clsImportMARIUsereLicenseModule | |
| Password | Password in clear text. if empty MARIPRoject will create a new password. | |
| UserCode | intenral code for each user. Will be created automatically. To not use. | |
| UserLevel | Internal level to manage the content driven authorizations. See clsImportMARIUsereAuthUserLevel | |
| UserName | Login name for the user. Should be the domain user, if integrated authentification is activated. For Customer Portal User use his/her the e-mail address | |
| UserType | UserType 1=User, 2=CustomerSupportLogin. See clsImportMARIUsereMPUserType |
| Name | Description | |
|---|---|---|
| bSaveRSToMDB | (Overrides clsImportBasebSaveRSToMDB(MPInterface, DataRow, DataTable).) |
private string CreateEmployee(bool IncludeSubClasses = true) { string EmployeeNumber = oMPInterface.sGetNewEmployeeNumber(); //next free number based on the given Format E100*.. string EmployeeName = "Marc Import"; string SurName = "Import"; Log($"EmployeeNumber={EmployeeNumber}, EmployeeName={EmployeeName}, SurName={SurName}"); string UserCode; MARIInterface.clsImportMARIUser NewUser = CreateUser(SurName); if (!oMPInterface.bImportMARIUser(NewUser, MARIInterface.clsImportBase.eImportMode.ValidateAndImport)) { LogFail(oMPInterface.oErrors.PrintErrors()); return null; } else { UserCode = NewUser.UserCode; Log($"UserCode={UserCode}"); } MARIInterface.clsImportEmployeeMaster NewEmployee = CreateEmployeeMaster(EmployeeNumber, EmployeeName, SurName, UserCode, IncludeSubClasses); if (!oMPInterface.bImportEmployeeMaster(NewEmployee, MARIInterface.clsImportBase.eImportMode.ValidateAndImport)) { LogFail(oMPInterface.oErrors.PrintErrors()); return null; } else { return NewEmployee.EmployeeNumber; } } private MARIInterface.clsImportEmployeeMaster CreateEmployeeMaster(string EmployeeNumber, string EmployeeName, string SurName, string UserCode, bool IncludeSubClasses = true) { Log($"CreateEmployeeMaster(EmployeeNumber={EmployeeNumber}, EmployeeName={EmployeeName}, SurName={SurName}, UserCode={UserCode})"); MARIInterface.clsImportEmployeeMaster NewEmployee = new MARIInterface.clsImportEmployeeMaster(); // MARIEmployeeMaster NewEmployee.EmployeeNumber = EmployeeNumber; // oMPInterface.sGetNewEmployeeNumber(); NewEmployee.EmployeeName = EmployeeName; NewEmployee.Matchcode = EmployeeName; //Field for search and display NewEmployee.Salutation2 = $"Dear Mr. {SurName}"; NewEmployee.Salutation = "Mr."; NewEmployee.FirstName = "Marc"; NewEmployee.Surname = SurName; NewEmployee.OfficeAddrStreet = "Cupertino Drive"; NewEmployee.OfficeAddrStreetNum = "1"; NewEmployee.OfficeAddrZIP = "59000"; NewEmployee.OfficeAddrCountry = "US"; NewEmployee.OfficeAddrCounty = "Cupertino"; NewEmployee.OfficeAddrCity = "Cupertino"; NewEmployee.OfficePhone = "+1 212 456 798"; NewEmployee.DateOfBirth = new DateTime(1985, 8, 12); NewEmployee.PDAKey = "98654631"; // Code of the RFID Chip NewEmployee.UserCode = UserCode; //MARIEmployeesPeriod MARIInterface.clsImportEmployeePeriod EmployeePeriod = new clsImportEmployeePeriod(); NewEmployee.ListOfEmployeeValidFrom.Add(EmployeePeriod); EmployeePeriod.ValidFrom = 2020001; //SELECT Period FROM MARIPeriods EmployeePeriod.PoliticalCostRateType = clsImportEmployeePeriod.eEmployeeCostRateType.OneCostRate; EmployeePeriod.PoliticalCostRateOne4All = 50m; EmployeePeriod.AccountingCostRate1 = 45.46m; //MARIEmployeesCostRates >MARIEmployeesPeriod EmployeePeriod.EmployeeStatus = clsImportEmployeePeriod.eEmployeeMasterStatus.FixedEmployee; // 1 EmployeePeriod.OvertimeInitialValue = 0m; EmployeePeriod.CalendarID = 100000; //SELECT CalendarID FROM MARICalendar EmployeePeriod.PlanningCapacity = 100; //100% //MARIEmployeesOrganisation >MARIEmployeesPeriod MARIInterface.clsImportEmployeeOrganisation NewOrga = new clsImportEmployeeOrganisation(); EmployeePeriod.ListOfOrganisationSettings.Add(NewOrga); NewOrga.BusinessUnitID = 1; // SELECT BusinessUnitID FROM MARIBusinessUnitMaster NewOrga.Creditor = "71004"; // travel expense creditor SELECT CardCode FROM OCRD WHERE CardType='S' NewOrga.EmployeeSuperior = "0001"; //SELECT EmployeeNumber FROM MARIEmployeeMaster if (IncludeSubClasses) { //MARIEmployeeAnnualVacation MARIInterface.clsImportEmployeeAnnualVacation VacationSettings = new clsImportEmployeeAnnualVacation(); NewEmployee.ListOfEmployeeAnnualVacation.Add(VacationSettings); VacationSettings.CalendarYear = 2020; VacationSettings.EntitlementCurrYear = 25; //MARIEmployeesService NewEmployee.ServiceHandling = clsImportEmployeeMaster.eServiceHandling.AllServicesSelectFirst; NewEmployee.ListOfServiceLinks.Add(new clsImportEmployeeServiceLink() { ServiceNumber = "1000", Prio = 1 }); NewEmployee.ListOfServiceLinks.Add(new clsImportEmployeeServiceLink() { ServiceNumber = "1010", Prio = 2 }); //MARIEmployeesPool clsImportEmployeePoolLink PoolLink = new clsImportEmployeePoolLink(); EmployeePeriod.ListOfPoolLinks.Add(PoolLink); PoolLink.EmployeeNumber = EmployeeNumber; PoolLink.ResourcePool = "00001"; PoolLink.ValidPeriodFrom = 2020001; PoolLink.PlanningType = clsImportEmployeePoolLink.ePoolLinkPlanningType.PlanningInvolvement; PoolLink.Priority = 1; PoolLink.Capacity = 30; //MARIEmployeesProjectLinks NewEmployee.ListOfProjectLinks.Add(new clsImportEmployeeProjectLink() { ProjectTemplateType = clsImportEmployeeProjectLink.eProjectTemplateType.VacationProject, ProjectNumber = "P100001" //SELECT [Projectnumber] FROM MARIProjectMaster WHERE ProjectType=3 clsImportProject.eProjectType.VacationProjects }); NewEmployee.ListOfProjectLinks.Add(new clsImportEmployeeProjectLink() { ProjectTemplateType = clsImportEmployeeProjectLink.eProjectTemplateType.SickLeaveProject, ProjectNumber = "P100003"//SELECT [Projectnumber] FROM MARIProjectMaster WHERE ProjectType=8 clsImportProject.eProjectType.AbsenseProjects }); //MARIEmployeeSkills clsImportEmployeeSkillLink SkillLink = new clsImportEmployeeSkillLink(); NewEmployee.ListOfSkillLinks.Add(SkillLink); SkillLink.EmployeeNumber = EmployeeNumber; SkillLink.SkillID = 100001; SkillLink.Priority = 100; } return NewEmployee; } private clsImportMARIUser CreateUser(string UserName) { Log($"CreateUser(UserName=\"{UserName}\")"); //MARIUser MARIInterface.clsImportMARIUser NewUser = new clsImportMARIUser(); NewUser.UserType = clsImportMARIUser.eMPUserType.InternalMARIProjectUser; NewUser.UserName = UserName; NewUser.Password = string.Empty; // Interface will create a new pasword. NewUser.LoginActive = true; NewUser.UserLevel = clsImportMARIUser.eAuthUserLevel.ProjectManager; NewUser.Groups = 2052; //SELECT Groups FROM MARIUser. Flags depending on the defined user groups NewUser.AccountingMode = 1; //See only hours NewUser.Modules = clsImportMARIUser.eLicenseModule.Professional; return NewUser; }