Перейти к основному содержимому

Scenario "Integration of Business Central and HRIS systems"

Extension - SMART Payroll HRIS Integration Core (add-on to SMART Payroll)

The system allows you to configure integration between Business Central and Human Resource Information Systems (HRIS). Currently, API-based integration is implemented for the HiBob system, and the HiBob integration scenario is described below. At the same time, the SMART Payroll HRIS Integration Core add-on enables the processing of data received from other systems and the creation of corresponding processes in Business Central, namely: Creating Persons, maintaining data on Person documents, addresses, disabilities, and relatives. Automatically creating entries in the Personal Information Codes and Grounds for Application master data. Creating the organizational structure, namely Departments, Job Titles, and Positions. Creating Employment Contracts and HR transactions, namely Hiring, Transfer (due to changes in job title, department, FTE/rate, or base salary), employee Termination, and Rehiring. Maintaining information on employee Bank Accounts.

Step 1: Integration Setup

Path: HRIS Integration Setup

On the HRIS Integration Setup page, you can configure the following parameters/processes that will be executed during integration with Human Resource Information Systems (HRIS).

General FastTab

FieldDescription
Service TypeSelect the HRIS system that the API integration will work with. Currently, API-based integration is implemented for the HiBob system.
EnabledIf enabled, integration will take place between the systems.
Service API URLSpecifies the URL of the API service that the integration will work with.

Templates FastTab

FieldDescription
Organization Unit Nos.Specifies the number series to be assigned to Departments created during integration. This field is required.
Template Organization Unit CodeSpecifies the department to be used as a template for Departments created during integration. Leave this field blank if departments should not be created automatically during integration.
Match Org. Unit by FieldSelect the field number from the "Department" table to determine whether such a department already exists in the system or is missing. For example, if the field value is set to "2" ("Name"), then during integration, when creating a position for an employee and determining the department code, the system will look up the value from the employee's HRIS card "Department" field in the department list by the "Name" field. If no match is found, the system will either create a new one (if the "Template Department Card" field is filled) or throw an error during the integration process. Note that the search is performed only for records with the "Approved" status that are not blocked.
Job Title Nos.Specifies the number series to be assigned to Positions created during integration. This field is required.
Template Job Title CardSpecifies the position to be used as a template for Positions created during integration. Leave this field blank if positions should not be created automatically during integration.
Match Job Title by fieldSelect the field number from the "Position" table to determine whether such a position already exists in the system or is missing. Note that the search is performed only for records with the "Approved" status that are not blocked.
Firstly Validate Department for PositionBy default, when creating a position, the position code is specified first with validation, followed by the department code. This means that if the Payroll Control Group Code and Employee Posting Group are specified on both the position and department cards, the default validation sequence will insert values into the corresponding fields on the position card from the Department card. If you need to override this sequence and validate the department first, followed by the position, set the "Validate Department First for Position" field to Yes.
Personal Address Nos.Specifies the number series to be assigned to Personal Addresses created during integration. This field is required.
Employee Bank Nos.Specifies the number series to be assigned to employee bank accounts created during integration. This field is required.

Enabled Processes FastTab

This section allows you to configure the processes to be created in Business Central during integration with HRIS systems. The process of creating Persons (Personal Cards) always runs by default.

FieldDescription
Update PersonIf set to Yes, when information about a Person is updated in the HRIS system, a task will be created in Business Central to update the Person's information in the system.
Labor HireIf set to Yes, tasks for hiring employees will be created in the system.
Labor TransferIf set to Yes, tasks for transferring employees due to changes in position, department, FTE rate, or salary will be created in the system.
Labor DismissIf set to Yes, tasks for terminating employees will be created in the system.
Address InformationIf set to Yes, tasks for creating and updating personal addresses will be created in the system.
Bank InformationIf set to Yes, tasks for creating and updating employee bank accounts will be created in the system.
Person DocumentIf set to Yes, tasks for creating and updating personal identity documents will be created in the system.
Disability InformationIf set to Yes, tasks for creating and updating Medical Records with the "Disability" type for a Person will be created in the system.
Relative InformationIf set to Yes, tasks for creating and updating information in the Employee Relatives directory will be created in the system.

Step 2: Configuring Integration with HiBob

Extension: SMART Payroll Connector for HiBob (Add-on to SMART Payroll)

Path: HRIS Integration Setup

To configure the integration with the HiBob HRIS system, perform the following setup steps.

  1. On the HRIS Integration Setup page, on the HiBob FastTab, fill in the HiBob API User Name and HiBob API User Token fields (these service credentials must be provided by the client).
  2. On the HRIS Integration Setup page, on the General FastTab, select HiBob in the Service Type field and specify the Service API URL.
  3. On the HRIS Integration Setup page, go to Actions and select HiBob Tables. On the page that opens, click: Actions -> Import Tables. During the import, the system will automatically create all tables (both standard and custom) that exist in the respective client's HiBob system.

For the created tables, you must configure the field mapping with the main table SMA HRIS Employee (71732322) in the system. The HRIS Employee is a card where all information specified in the setup is recorded from the external HRIS system. For each created table, define the fields to be transferred from the HiBob system and assign them to the corresponding fields from the SMA HRIS Employee (71732322) table where the values should be stored.

Please note that for HiBob fields with the List type, you must create and specify a Transformation Rule in the corresponding column of the HiBob Tables. This is required because values in such list fields are maintained in separate list directories. These can be viewed from the HRIS Integration Setup page by selecting the HiBob Lists action. List values are imported by executing the Import Lists action on the HiBob Lists page. When creating a transformation rule, you must fill in the following fields:

FieldDescription
CodeThe code of the transformation rule.
Transformation TypeHiBob List Lookup. After selecting this type, you must reopen the page so that the HiBob List field becomes visible on the Transformation Rule card.
HiBob ListSelect the list for the corresponding HiBob field.
  1. During integration, you can apply import filters for employees transferred from the HiBob system to Business Central. To do this, go to the People table at the bottom of the page and set the required filters in the Table Import Filters area. Filtering is configured based on the values of the relevant HiBob fields:
FieldDescription
IdThe ID of the HiBob field by which records should be filtered during integration.
ComparisonThe logical comparison operator. Available values: 1) Equal 2) Not Equal 3) Starts With 4) Ends With
Field FilterThe filter value.

Step 3: Using Position Templates

To enable the creation and approval of transactions within the Employment Contract through integration with HRIS systems, you must create position templates (Path: Position Templates) and configure filters for these position templates to ensure their correct selection when creating positions for a specific employee. To do this, go to the HRIS Filters area (FastTab) on the position template card and specify the parameters to determine how positions are matched when creating transactions in Employment Contracts. Please note that filters can be applied not only to the main table SMA HRIS Employee (71732322) but also to other tables that contain the Person No. or Employee No. fields.

FieldDescription
Table IDThe ID of the table containing the field used for filtering.
Table NameThe name of the table containing the field used for filtering.
Field IDThe ID of the field used for filtering.
Field CaptionThe caption (name) of the field used for filtering.
ComparisonThe logical comparison operator. Available values: 1) Equal 2) Not Equal 3) Less Than 4) Greater Than 5) Starts With 6) Ends With
Field FilterThe filter value.

Step 4: HRIS Employees

Information that is transferred to Business Central from HRIS systems according to the field mapping settings for the respective service is stored in the HRIS Employee Card (table SMA HRIS Employee (71732322). The HRIS Employee Card contains the following fields:

General FastTab

FieldDescription
Code
First NameEmployee's first name. Populated according to the field mapping settings for the respective service.
Last NameEmployee's last name. Populated according to the field mapping settings for the respective service.
Middle NameEmployee's middle name. Populated according to the field mapping settings for the respective service.
StateEmployee's status. For employees with a Termination Date specified, the status is set to Terminated. For employees without a termination date, the status is set to Active. Please note that all processes created during the integration are generated for employees whose Termination Date is blank or is not earlier than the current month.
Full NameEmployee's full name. Populated according to the field mapping settings for the respective service.
First Name (Second Language)Employee's first name in the second language. Populated according to the field mapping settings for the respective service.
Last Name (Second Language)Employee's last name in the second language. Populated according to the field mapping settings for the respective service.
Middle Name (Second Language)Employee's middle name in the second language. Populated according to the field mapping settings for the respective service.
Full Name (Second Language)Employee's full name in the second language. Populated according to the field mapping settings for the respective service.
Birth DateEmployee's date of birth. Populated according to the field mapping settings for the respective service.
VAT Registration NoEmployee's Taxpayer Identification Number. Populated according to the field mapping settings for the respective service.
Mobile PhoneEmployee's mobile phone number. Populated according to the field mapping settings for the respective service.
Phone No.Employee's phone number. Populated according to the field mapping settings for the respective service.
EmailEmployee's email address. Populated according to the field mapping settings for the respective service.
Private EmailEmployee's private email address. Populated according to the field mapping settings for the respective service.
GenderEmployee's gender. Populated according to the field mapping settings for the respective service.
Marital StatusEmployee's marital status. Populated according to the field mapping settings for the respective service and matched by the Name field in the Personal Information Codes registry under the "Marital Status" group. If no such value is found in the registry, the system automatically creates a new record.
Marital Status TypeEmployee's marital status (selection from a predefined list of options rather than a registry). Populated according to the field mapping settings for the respective service.
NationalityEmployee's nationality. Populated according to the field mapping settings for the respective service and matched by the Name field in the Personal Information Codes registry under the "Nationality" group. If no such value is found in the registry, the system automatically creates a new record.
Employee IDEmployee ID. Populated according to the field mapping settings for the respective service.
Creation DateCreation date. Populated according to the field mapping settings for the respective service.
Native LanguageIndividual's native language. Populated according to the field mapping settings for the respective service and matched by the Code field in the Languages registry. If no such value is found in the Languages registry, the system automatically creates a new record.
Citizenship Country/RegionCountry/region code of the individual's citizenship. Populated according to the field mapping settings for the respective service and matched by the Code field in the Countries/Regions registry. If no such value is found in the Countries/Regions registry, the system automatically creates a new record.

Work FastTab

FieldDescription
Work Start DateEmployment start date. Populated according to the field mapping settings for the respective service.
Work Effective DateThe date when employment conditions (position, department, FTE rate) changed. Populated according to the field mapping settings for the respective service.
DepartmentEmployee's department. Populated according to the field mapping settings for the respective service.
Job TitleEmployee's position. Populated according to the field mapping settings for the respective service.
Contract TypeValue from the "Employment Contracts" registry. The logic for assigning values to this field must be defined individually for each client based on their business requirements.
FTE %Full-Time Equivalent (FTE) rate of the employee. Populated according to the field mapping settings for the respective service. If this field equals 0, the FTE value will be automatically set to "1" in all related processes.
Salary Effective DateThe date when the base salary changed. Populated according to the field mapping settings for the respective service.
Base SalaryEmployee's salary amount. Populated according to the field mapping settings for the respective service.
Base Salary Currency CodeCurrency of the employee's salary. Populated according to the field mapping settings for the respective service.
Termination DateEmployee's termination date. Populated according to the field mapping settings for the respective service.
Termination ReasonEmployee's termination reason. Populated according to the field mapping settings for the respective service and matched by the Description field in the Grounds for Termination registry. If no such value is found in the registry, the system automatically creates a new record.
Person NoPopulated automatically with the unique code of the Individual (Personal Card) created for this specific HRIS Employee.
Manager IDEmployee's manager code. Populated according to the field mapping settings for the respective service. When creating or updating an employee's position, if the Manager Code field is filled on their HRIS Employee card, the system will locate the employee corresponding to this manager code and assign their current position to the "Parent Position No." field of the current employee.
Use Trial PeriodSpecifies the presence of a probation period. Populated according to the field mapping settings for the respective service.
Trial Period FormulaSpecifies the probation period formula (e.g., "3M"). Populated according to the field mapping settings for the respective service using standard date formula format.
RehiringSpecifies whether the employee's hiring is a rehire (value "Yes") or an initial hire (value "No"). Populated according to the field mapping settings for the respective service. This field can only be populated if an Individual record has already been created for this HRIS Employee.

Bank FastTab

FieldDescription
Bank NameEmployee's bank name. Populated according to the field mapping settings for the respective service.
IBANEmployee's bank account IBAN details. Populated according to the field mapping settings for the respective service.
SWIFTEmployee's bank account SWIFT details. Populated according to the field mapping settings for the respective service.

Address FastTab

Note: The Address FastTab is populated with the employee's registered address information. The address with the Registered type will be created by default using the information from this FastTab.

FieldDescription
Address Effective DateThe date from which the employee's registered address is effective. Populated according to the field mapping settings for the respective service.
AddressEmployee's registered address line. Populated according to the field mapping settings for the respective service. This field can be left blank; in this case, the field of the same name on the created address card will be compiled automatically from the street, building number, building unit, and apartment fields (following the same logic as manual address creation in the system).
CityEmployee's registered city. Populated according to the field mapping settings for the respective service.
Country CodeEmployee's registered country. Populated according to the field mapping settings for the respective service.
Post CodePost code of the employee's registered address. Populated according to the field mapping settings for the respective service.
CountyDistrict of the employee's registered address. Populated according to the field mapping settings for the respective service.
Admin TypeAdministrative category (City/Village) of the employee's registered address. Populated according to the field mapping settings for the respective service.
StreetStreet of the employee's registered address. Populated according to the field mapping settings for the respective service.
HouseBuilding number of the employee's registered address. Populated according to the field mapping settings for the respective service.
BuildingBuilding unit/block of the employee's registered address. Populated according to the field mapping settings for the respective service.
ApartmentApartment number of the employee's registered address. Populated according to the field mapping settings for the respective service.

Fact Address FastTab

Note: The Actual Address FastTab is populated with the employee's residential address information. The address with the Permanent type will be created by default using the information from this FastTab.

FieldDescription
Fact Address Effective DateThe date from which the employee's residential address is effective. Populated according to the field mapping settings for the respective service.
Fact AddressEmployee's residential address line. Populated according to the field mapping settings for the respective service. This field can be left blank; in this case, the field of the same name on the created address card will be compiled automatically from the street, building number, building unit, and apartment fields (following the same logic as manual address creation in the system).
Fact Address CityEmployee's residential city. Populated according to the field mapping settings for the respective service.
Fact Address Country CodeEmployee's residential country. Populated according to the field mapping settings for the respective service.
Fact Address Post CodePost code of the employee's residential address. Populated according to the field mapping settings for the respective service.
Fact Address CountyDistrict of the employee's residential address. Populated according to the field mapping settings for the respective service.
Fact Address Admin TypeAdministrative category (City/Village) of the employee's residential address. Populated according to the field mapping settings for the respective service.
Fact Address StreetStreet of the employee's residential address. Populated according to the field mapping settings for the respective service.
Fact Address BuildingBuilding unit/block of the employee's residential address. Populated according to the field mapping settings for the respective service.
Fact Address ApartmentApartment number of the employee's residential address. Populated according to the field mapping settings for the respective service.

Document FastTab

FieldDescription
Document TypeValue from the "Identity Document Types" registry. It can be populated according to the field mapping settings for the respective service using data transformation rules.
Person Document TypeThe document type for the Individual record (selection from a predefined list of options rather than the "Identity Document Types" registry). Populated according to the field mapping settings for the respective service.
Document Valid DateThe date from which the employee's document is valid. Populated according to the field mapping settings for the respective service.
Document SeriesDocument series of the employee. Populated according to the field mapping settings for the respective service.
Document No.Document number of the employee. Populated according to the field mapping settings for the respective service.
Document Issue AuthorityThe authority that issued the employee's document. Populated according to the field mapping settings for the respective service.
Document Issue DateThe issue date of the employee's document. Populated according to the field mapping settings for the respective service.
Document Valid DateThe date until which the employee's document is valid (expiration date). Populated according to the field mapping settings for the respective service.

Disability FastTab

FieldDescription
Disability Start DateThe date when the employee's disability status began. Populated according to the field mapping settings for the respective service.
Disability GroupEmployee's disability group. Populated according to the field mapping settings for the respective service.

Employee Relatives FastTab

FieldDescription
Relative IDRelative's code. Populated according to the field mapping settings for the respective service.
Relationship CodeCode of relationship with the relative. Populated according to the field mapping settings for the respective service. Please note that this field is used to search for the required value for the "Relative Code" field when creating a record in the "Employee Relatives" table. For the value to be determined correctly, the records in the "Relatives" registry must have corresponding values specified in the "Type" field.
GenderRelative's gender. Populated according to the field mapping settings for the respective service.
HRIS Relative IDRelative's code in the external system. Populated according to the field mapping settings for the respective service.
First NameEmployee's relative's first name. Populated according to the field mapping settings for the respective service.
Last NameEmployee's relative's last name. Populated according to the field mapping settings for the respective service.
Middle NameEmployee's relative's middle name. Populated according to the field mapping settings for the respective service.
Birth DateEmployee's relative's date of birth. Populated according to the field mapping settings for the respective service.
Phone No.Employee's relative's phone number. Populated according to the field mapping settings for the respective service.
Relationship Start DateThe date when the relationship with the relative began. Populated according to the field mapping settings for the respective service.
Relationship End DateThe date when the relationship with the relative ended. Populated according to the field mapping settings for the respective service.
First Name (Second Language)Employee's relative's first name in the second language. Populated according to the field mapping settings for the respective service.
Last Name (Second Language)Employee's relative's last name in the second language. Populated according to the field mapping settings for the respective service.

Note: When creating records in the "Employee Relatives" table, only the values from the following fields on the HRIS Employee page are automatically transferred to the corresponding fields on the "Employee Relatives" page:

  • Relationship Code
  • First Name
  • Last Name
  • Middle Name

If necessary, the transfer of values from all other fields must be configured via the "Template Tables" functionality (described in Step 6). The HRIS Employees list page contains the following actions:

ActionDescription
Import Employee IDsImports all record IDs from the HiBob system. During the ID import, only the Termination Date is populated on the HRIS Employee cards, and the status for all of them is set to Terminated by default. After executing this action, you must run either the "Update Fields from HRIS" or "Update All Active Employees" action.
Update Fields from HRISUpdates information on the HRIS Employee card with data from the HRIS system only for the selected employee. At the moment of execution, the status changes to Active for employees with a blank termination date. The data update is triggered only for employees with the Active status, as well as those with the Terminated status and a termination date in the current month.
Update All Active EmployeesUpdates information on the HRIS Employee card with data from the HRIS system for all employees. At the moment of execution, the status changes to Active for employees with a blank termination date. The data update is triggered only for employees with the Active status, as well as those with the Terminated status and a termination date in the current month.

Step 5: HRIS Integration Processes

Processing information on the HRIS Employee card and subsequently creating related processes in the Business Central system is managed by creating and executing tasks on the HRIS Integration Processes page. The HRIS Integration Processes page contains the following fields:

FieldDescription
HRIS IDThe ID from the HRIS Employee card for which the task was created.
Employee Full NameThe full name from the HRIS Employee card for which the task was created.
Creation Date TimeThe date and time when the task was created.
Task TypeThe type of the task.
StatusThe execution status of the task.
Completed Date TimeThe date and time when the task execution was completed.
Error TextIf an error occurs during task execution, its description is recorded in this field.
Error Call StackTechnical information and call stack details regarding the occurred error.
IndentationFor the "Create Individual" task, this field equals 0. For all other tasks, it equals 1.

The page contains the following actions:

ActionDescription
Show Related RecordOpens the latest system record created during the execution of the task.
Process Records ManuallyTriggers the manual execution of the selected task.
Complete ManuallyForcefully completes the task, changing its status to Completed without creating any corresponding records in the system.
Update All EmployeesUpdates information on the HRIS Employee card with data from the HRIS system for all active employees.
Create TaskTriggers the creation of tasks for all employees.
Delete SelectedDeletes the selected records. Please note that records can only be deleted if no Individual record has been created in the system for the corresponding HRIS Employee.

When executing the Create Task action, the following Task Types are generated in the HRIS Integration Processes. Please note that tasks are created only for HRIS Employees with the Active status, or those with the Terminated status if their termination date falls within the current month or later.

Task TypeConditions for Successful Task Creation
Create PersonNo Individual record has been created yet for the HRIS Employee.
Update Person1) The "Update Individual" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "General" FastTab has been updated on the HRIS Employee card, or the "Manager Code" field within the "Employment" FastTab has been updated. 3) An Individual record already exists in the system for this HRIS Employee.
Address Information1) The "Address" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Address" FastTab has been updated on the HRIS Employee card. 3) An Individual record already exists in the system for this HRIS Employee.
Actual Address Information1) The "Address" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Actual Address" FastTab has been updated on the HRIS Employee card. 3) An Individual record already exists in the system for this HRIS Employee.
Bank Information1) The "Bank Information" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Bank" FastTab has been updated on the HRIS Employee card. 3) An Employee record has been created in the system for this HRIS Employee.
Identity Document1) The "Identity Document" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Document" FastTab has been updated on the HRIS Employee card. 3) An Individual record already exists in the system for this HRIS Employee.
Disability Information1) The "Disability Information" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Disability" FastTab has been updated on the HRIS Employee card. 3) An Individual record already exists in the system for this HRIS Employee.
Relatives Information1) The "Relatives Information" process is enabled on the "HRIS Integration Setup" page. 2) Information in one of the fields within the "Employee Relatives" FastTab has been updated on the HRIS Employee card for one or more records. 3) An Individual record already exists in the system for this HRIS Employee.
Hire1) The "Hire" process is enabled on the "HRIS Integration Setup" page. 2) The required information is populated within the "Employment" FastTab on the HRIS Employee card. 3) An Individual record has been created in the system for this HRIS Employee. 4) No Employee record has been created yet for this HRIS Employee.
Transfer1) The "Transfer" process is enabled on the "HRIS Integration Setup" page. 2) Information has been updated in one of the following fields within the "Employment" FastTab on the HRIS Employee card: Department, Position, FTE %, Base Salary, or Base Salary Currency Code. 3) An Employee record already exists in the system for this HRIS Employee.
Termination1) The "Termination" process is enabled on the "HRIS Integration Setup" page. 2) Information is populated in the "Termination Date" field within the "Employment" FastTab on the HRIS Employee card. 3) An active (not terminated) Employee record exists in the system for this HRIS Employee.
Rehire1) The "Hire" process is enabled on the "HRIS Integration Setup" page. 2) The "Rehire" field on the HRIS Employee card is set to "Yes".

After the tasks are created, the Process Manually action must be executed. During task execution, the following processes are generated in the system:

Task TypeResult of Successful Task Execution
Create IndividualCreates an Individual card and populates all the information contained within the "General" FastTab of the HRIS Employee card. During the initial creation of the Individual, if the information within the "Address" and "Document" FastTabs is populated on the HRIS Employee card, corresponding records will also be created in the Individual's addresses and documents tables as part of this task.
Update IndividualUpdates information in the corresponding fields on the Individual card, and on the Employee card as well (if the employee record has already been created). When the Manager Code is updated, the Parent Position No. on the employee's current position is updated accordingly. Please note that if an employee's name changes, the name must be updated manually via the standard "Change Name" action on the Individual card. After doing so, the task on the "HRIS Integration Processes" page must be forcefully closed using the "Complete Manually" action.
Address InformationIf there is no record for the Individual in the "Alternative Address List" table with the "Registered" address type and the same date specified in the "Address Effective Date" field on the HRIS Employee card, a new address record with the "Registered" type is created. If a record with this specific date already exists, the information in the existing record is updated.
Actual AddressInformation If there is no record for the Individual in the "Alternative Address List" table with the "Permanent" address type and the same date specified in the "Actual Address Effective Date" field on the HRIS Employee card, a new address record with the "Permanent" type is created. If a record with this specific date already exists, the information in the existing record is updated.
Bank InformationIf there is no record for the Employee in the "Employee Bank Account List" table with the same IBAN specified in the "IBAN" field on the HRIS Employee card, a new bank account record is created. If a record with this IBAN already exists, the information in the existing record is updated.
Identity DocumentIf there is no record for the Individual in the "Identity Documents" table with the same date specified in the "Document Valid From" field and the same type specified in the "Document Type" field on the HRIS Employee card, a new document record is created. If a record with these exact values already exists, the information in the existing record is updated.
Disability InformationIf a record with the "Disability" type and the same date specified in the "Disability Start Date" field on the HRIS Employee card already exists for the Individual in the "Medical Information" table, the information is updated in the existing record. If no record matches these filters, but there is another record with the "Disability" type and a start date earlier than the "Disability Start Date" specified on the HRIS Employee card, the system checks the Ending Date of that record. If the Ending Date is blank or later than the "Disability Start Date" on the HRIS Employee card, the Ending Date in the previous record is updated and set to -1D from the "Disability Start Date" on the HRIS Employee card. Then, a new record is created with the "Disability Start Date" specified on the HRIS Employee card. If the Ending Date in the previous record is earlier than the "Disability Start Date" specified on the HRIS Employee card, a new record is created in the Medical Information table. Additionally, if an Employee record already exists in the system for this HRIS employee, a transfer is triggered to move this worker to a position flagged with a disability indicator. If there is no record at all with the "Disability" type for the Individual in the "Medical Information" registry, a new record is created. Additionally, if an Employee record already exists in the system for this HRIS employee, a transfer is triggered to move this worker to a position flagged with a disability indicator.
Relatives InformationIf a record for this relative already exists for the Individual in the "Employee Relatives" table (the search is performed using the unique system identifier in the SystemId field), the information is updated in the existing record. If no record for this relative is found, a new record is created.
HireCreates an employment contract with the start date specified in the "Employment Date" field on the HRIS Employee card. Generates an Actual Position based on template positions and defined filters. If the required department or position does not exist in the system, new ones are created based on templates and settings specified on the "HRIS Integration Setup" page. Creates an entry in the employment contract with the "Hire" type, defines the Employment Contract Conditions, approves the Hire process, and finally creates and populates the Employee card.
TransferCreates an entry in the employment contract with the "Transfer" type. The transfer date is determined by comparing the dates in the "Job Terms Change Date" and "Salary Change Date" fields on the HRIS Employee card, selecting the later of the two dates. Generates an Actual Position based on template positions and defined filters. If the required department or position does not exist in the system, new ones are created based on templates and settings specified on the "HRIS Integration Setup" page. Defines the Employment Contract Conditions, approves the Transfer process, and closes the employee's previous position.
TerminationCreates an entry in the employment contract with the "Termination" type, using the termination date specified in the "Termination Date" field on the HRIS Employee card. If the termination reason specified in the "Grounds for Termination Code" field does not exist in the system, a new record is automatically created in the Grounds for Termination registry. Approves the Termination process and closes the position.
RehireDetaches the previously terminated employee from the current HRIS Employee record. Separate tasks are generated and processed to Update the Individual (if the personal card information was changed), as well as other tasks if changes occurred (e.g., addresses, documents, disability). Finally, a "Hire" task is created and processed to generate and approve a new Employment Contract for the employee.

Note: When creating an Actual Position for the "Hire" and "Transfer" tasks, the following priority rules apply for determining position information:

  • Highest Priority (Priority 1): Information specified on the HRIS Employee card. For example, if a position is specified both on the HRIS Employee card and in the Template Position, the value from the HRIS Employee card will be applied to the created actual position. If the position is blank on the HRIS Employee card, the value from the Template Position will be used instead.
  • Second Priority (Priority 2): Information specified on the Template Position card. For example, if a calculation group is specified both on the Template Position card and on the Department or Position card, the value from the Template Position card will be applied to the created actual position. If the calculation group is blank on the Template Position card, the value from the Department or Position card will be used instead.

Step 6: Template Tables

Note: By default, when tasks are executed, information from the HRIS Employee card is populated into the fields of the same name on the corresponding pages in the system. At the same time, it is possible to override the field population logic on the required pages. You can also configure the population of fields that are missing from the HRIS Employee card or fields for which automatic value transfer is not hardcoded in the system (for example, most fields within the "Employee Relatives" FastTab). This can be achieved using the following functionality.

On the HRIS Integration Setup page, navigate to the Actions menu and select Template Tables. On the page that opens, you must create a template for the table to which the alternative or additional field population logic should be applied:

FieldDescription
CodeTemplate code.
DescriptionTemplate description.
Table IDID of the table for which the template is created.
Table CaptionName of the table for which the template is created (populated automatically).

To configure the template, click the Edit action, and then populate the Lines section on the template card that opens:

FieldDescription
Field No.The field from the target table to which the template applies, and for which the population logic needs to be defined.
Field Caption
Validate FieldSpecifies whether the value should be validated when it is inserted into the field.
Const ValueIf the table field should be populated with a fixed value, specify that value in this field.
Map-from Table IDSpecify the table from which the value should be transferred, for example, 71732329 (HRIS Employee Relative), 71732322 (HRIS Employee), or another system table.
Map-from Table NameThe name of the table specified in the "Mapped Table ID" field.
Map-from Field IDThe field of the table defined in the "Mapped Table ID" field from which the value should be transferred.
Map-from Field CaptionThe name of the field specified in the "Mapped Field ID" field.
Transformation RuleIf necessary, specify a data transformation rule to convert the value from the source field into the target result.

Step 7: Job Queue Entries for Integration

For automatic, regular import of records from the HRIS system and the subsequent creation of corresponding tasks in Business Central, the following Job Queue Entries are available for use:

Object IDObject Type to RunDescription
71732323CodeunitImports record IDs and updates information in the HRIS Employees table.
71732322CodeunitCreates tasks in the HRIS Integration Processes table.
71732321CodeunitTriggers the execution of created tasks in the HRIS Integration Processes table.

The frequency of running these Job Queue Entries must be defined individually for each client project.

Step 8: Updating Records via Webhook

To avoid updating information for absolutely all employees every time, you can configure updates via a Webhook so that only employees with changes made in the HRIS system are updated.

To do this, enable the Webhook in the respective HRIS system and apply the following settings in Business Central for the Job Queue Entries running codeunit 71732323:

  1. Create a Job Queue Entry for codeunit 71732323 and enter "Import New Employees" in the Parameter String field. This is required for the system to import new employees upon their creation.
  2. Create a Job Queue Entry for codeunit 71732323 and enter "Update Employees From Queue" in the Parameter String field. This ensures that the system updates information only for employees whose data was modified in the HRIS system.

For both of these Job Queue Entries, a daily run frequency can be set.

  1. To double-check and ensure that information has been synchronized for all employees, you can create an additional Job Queue Entry for codeunit 71732323, set its Parameter String field to "Update All Employees", and configure it to run, for example, only on weekends. During execution, the system will trigger a full information update for all workers.

When changes are made in the HRIS system, the IDs of the employees with recorded modifications are written to the HRIS Employee Update Queue table. When the Job Queue Entry for codeunit 71732323 with the "Update Employees From Queue" parameter string is executed, only the employees whose IDs exist in this table will be updated. Once the job queue execution is complete, the processed records are deleted from the HRIS Employee Update Queue table.

Step 9: Integration of Absences from the HiBob System

As part of the integration with the HiBob system, it is possible to transfer absence information. The integration is implemented as follows: the absences received from the HiBob system are posted through the Timesheet Journal, subsequently creating a record only in the employee's Timesheet.

To import the information, a series of configurations must be performed:

  1. On the HRIS Integration Setup page, within the Absences FastTab, populate the following fields:
FieldDescription
Timesheet Journal TemplateThe timesheet journal template through which absences imported during the integration will be posted.
Timesheet Journal BatchThe timesheet journal batch through which absences imported during the integration will be posted.
Absence Posting Start DateSpecifies the earliest start date for absences that should be posted in the system. For example, if this field is set to 01.01.2025, any absences imported during the integration with a start date earlier than 01.01.2025 will not be posted in the system.
  1. On the Causes of Absence page, for the absence codes that should be processed by the integration, you must specify the corresponding HiBob absence type in the HRIS Policy Type field. The available types can be viewed via the HRIS Integration Setup page -> HiBob Lists, selecting the list with ID = policyType.
  2. On the HiBob Tables page, configure the field mapping for the Absence type, specifying which fields from the HiBob system should transfer data into the system table fields of the HRIS Absence List. For the information to import correctly, mapping must be established for the following fields of the SMA HRIS Time Off (71732328) table:
  • HRIS Request ID (10)
  • HRIS Employee ID (20)
  • Time Activity Code (30)
  • Starting Date (40)
  • Ending Date (50)

To correctly determine the cause of absence in the Time Activity Code (30) field, which corresponds to the absence type in HiBob, you must use a data transformation rule with the Field Lookup type, specifying the following Lookup Parameters:

  • Table ID = 5206
  • Source Field No. = 71732320
  • Target Field No. = 1
  • Lookup Rule = Target

Additionally, if the integration should not process all absences managed in the HiBob system, but only specific ones, you can set a filter for the policyType you want to import on the HiBob Tables page (for the Absence type) within the Table Import Filters FastTab.

To configure the periodic import and posting of absences, you can create the following Job Queue Entries:

Object IDObject Type to RunDescription
71732323CodeunitYou must enter "Import TimeOff Requests" in the Parameter String field. This job imports and updates information in the HRIS Time Offs List. Data is imported for the current month, with a start date no later than the Work Date.
71732331CodeunitPosts the imported absences from the HRIS Time Offs List page through the Timesheet Journal. Posting is executed only for records whose status is not equal to Error, with a start date not earlier than specified in the Absence Posting Start Date field on the HRIS Integration Setup page, and for which no Timesheet Detail records have been created yet.

The frequency of running these Job Queue Entries must be defined individually for each client project.

Absence information imported from the HiBob system according to the mapping is recorded in the HRIS Time Offs List table:

FieldDescription
Time Activity CodeThe time activity code of the imported absence.
Starting DateThe start date of the absence.
Ending DateThe end date of the absence.
StatusUpon import, the record status is set to Created. If an error occurs during absence posting, the record status changes to Error. Upon successful posting, the status is set to Posted.
Error TextFor records with errors, the error message text during posting is displayed here.
Timesheet Qty. RecordsSpecifies the number of records created in the Timesheet Detail table for the imported absence.
Timesheet DifferenceCalculated as the difference between the duration of the absence (the difference between the Starting Date and Ending Date) and the number of created timesheet entries.
HRIS Employee Full NameThe full name of the HRIS employee.

The HRIS Time Offs List page contains the following actions:

ActionDescription
Timesheet DifferenceRunning the "Set Filter by Timesheet Difference" action filters the list to display only records where the Timesheet Difference field is not equal to 0. You can clear this filter by using the "Clear Filter by Timesheet Difference" action.
Post Time OffTriggers the posting of the selected records through the Timesheet Journal. Posting is executed only for records whose status is not equal to Error, with a start date not earlier than specified in the Absence Posting Start Date field on the HRIS Integration Setup page, and for which no Timesheet Detail records have been created yet.
Delete SelectedDeletes the selected records from the list.
Update Error RecordsResets the status for records currently in the Error status. After resolving the underlying errors and running this action, the status will be reset to Created, allowing you to trigger the posting process again.

Note: Error records that have not been posted remain in the Timesheet Journal, where they can be viewed and reviewed.

Additionally, absences can be imported manually for a specific employee. To do this, select the "Import Time Off" action on the HRIS Employee card. Please note that when running this specific import, the system will pull absences with a start date no later than the last day of the current month. You can view the imported absences for a worker directly in the Absences FactBox/section on the HRIS Employee card, or via the related page by navigating to Related -> HRIS Absence.

© 2008 - 2026 SMART business