Click or drag to resize

clsImportMARIUser Class

Import a user to login to MARIPRoject (internal user, customer portal user)

User bImportMARIUser(clsImportMARIUser, clsImportBaseeImportMode) to import a new or update an existing user.

Inheritance Hierarchy
SystemObject
  MARIInterfaceclsImportBase
    MARIInterfaceclsImportMARIUser

Namespace:  MARIInterface
Assembly:  MARIInterface (in MARIInterface.dll) Version: 8.0.0.100
Syntax
public class clsImportMARIUser : clsImportBase

The clsImportMARIUser type exposes the following members.

Constructors
  NameDescription
Public methodclsImportMARIUser
Initializes a new instance of the clsImportMARIUser class
Top
Properties
  NameDescription
Public propertyAccountingMode
visibility flag for different dimensions (hours, cost, revenue)
Public propertyCompany
Company link. Only for UserType = CustomerPortalUser
Public propertyCustomerCardCode
CustomerCardCode Only for UserType = CustomerPortalUser
Public propertyDMSPWD
Password for the DMS user, when using an DMS Add On
Public propertyDMSUser
Special user, when using an Add On to authenticate to the DMS System.
Public propertyERPUserByCompany
Flag, if passwords are differenz by each SBO database linked. This is not supported in the MARIInterface class.
Public propertyERPUserName
User code for SAP Business One
Public propertyERPUserPassword
Password to be used, when the DI-API or Service Layer will push to SBO. Set a new password in clear text.
Public propertyFrontEndLanguage
Front End language for the user. Stored in a user setting table
Public propertyGroups
Groups binary flags
Public propertyLoginActive
Login Active
Public propertyModules
Public propertyPassword
Password in clear text. if empty MARIPRoject will create a new password.
Public propertyUserCode
intenral code for each user. Will be created automatically. To not use.
Public propertyUserLevel
Public propertyUserName
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
Public propertyUserType
Top
Methods
Remarks
Examples
Import a new employee and create a user
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;
}
See Also