Навигатор по разделу:
1. Общие сведения
CSV-коннектор позволяет использовать в качестве источника данных файлы, столбцы в которых разделены символом-разделителем. Данные файлы могут быть подготовлены вручную, например, в Microsoft Excel или автоматически выгружены из кадровых систем, поддерживающих экспорт в CSV.
1.1. Требования к файлам
Для корректной работы коннектора необходимо подготовить три CSV-файла, содержащих информацию о структуре подразделений, сотрудниках и должностях организации:
Position.csv— информация о должностях;Division.csv— информация о подразделениях;Person.csv— информация о сотрудниках.
1.2. Основные правила
- Все файлы должны быть подготовлены в соответствии с форматом, описанным ниже;
- В качестве разделителя столбцов используется символ
";"; Первая строка файла служит заголовком и может быть проигнорирована при импорте, если в настройках коннектора параметр
HasHeaderустановлен в значениеtrue. Рекомендуется оставить эту строку для упрощения понимания содержимого столбцов. ЕслиHasHeader=false, первая строка будет обработана как данные.- Файлы должны содержать нормализованные данные;
- Должны быть соблюдены зависимости между файлами, описанные ниже.
2. Структура файлов и зависимости
Файлы связаны между собой и содержат нормализованные данные. Зависимости между файлами представлены в таблице ниже:
Таблица — Зависимости файлов
| Файл | Зависимости |
|---|---|
| Не содержит зависимостей |
Division.csv |
Филиал АО Концерн (Id = 77796514) ├── Дирекция (Id = 77796515, ParentId = 77796514) │ └── Отдел кадров (Id = 77796517, ParentId = 77796515) └── Управление закупок (Id = 77796516, ParentId = 77796514)
|
Person.csv |
|
В файлах не должно быть ссылок на несуществующие идентификаторы. Например, если в Person.csv указан PositionId, то он должен существовать в Position.csv
3. Подготовка файла Position.csv
Файл Position.csv содержит информацию о должностях. Структура файла:
Таблица — Структура файла Position.csv
| Поле | Описание |
|---|---|
Id | Идентификатор должности Пример значения: 1081 |
Name | Наименование должности Пример значения: Дежурный поста наблюдения |
Пример файла Position.csv
1 |
|
4. Подготовка файла Division.csv
Файл Division.csv содержит информацию о структуре подразделений. Структура файла:
Таблица — Структура файла Division.csv
| Поле | Описание |
|---|---|
Id | Идентификатор подразделения Пример значения: 77796515 |
Name | Наименование подразделения Пример значения: Дирекция |
ManageId | Идентификатор руководителя, существующий в атрибуте Пример значения: 580035930 |
ParentId | Идентификатор родительского подразделения, существующий в атрибуте Пример значения: 77796514 |
Пример файла Division.csv
1 |
|
5. Подготовка файла Person.csv
Файл Person.csv содержит информацию о сотрудниках. Структура файла:
Таблица — Структура файла Person.csv
| Поле | Описание |
|---|---|
Id | Идентификатор сотрудника Пример значения: |
BirthDate | Дата рождения сотрудника в формате: Пример значения:
|
DivisionId | Идентификатор подразделения, в котором работает сотрудник. Значение должно точно соответствовать полю Пример значения: |
EmailAddress | Адрес электронной почты сотрудника Пример значения:
|
FirstName | Имя сотрудника Пример значения: |
LastName | Фамилия сотрудника Пример значения: |
Patronymic | Отчество сотрудника Пример значения: |
PersonId | Идентификатор физического лица. Может быть общим для всех должностей одного человека. Если значение отсутствует, используется 0 Пример значения: |
PersonnelNumber | Табельный номер сотрудника, если есть Пример значения: |
PositionId | Указывает на должность сотрудника. Значение должно точно соответствовать полю Пример значения: |
Status | Статус сотрудника. Возможны следующие значения:
Пример значения: |
Пример файла Person.csv:
1 |
|
6. Параметры конфигурации
Коннектор поддерживает настройку через файл конфигурации Config.json. Файл позволяет задать параметры для работы с CSV-файлами, содержащими информацию о подразделениях, сотрудниках и должностях.
6.1. Расположение файла конфигурации
Расположение указывается в строке подключения коннектора. Пример строки подключения:
C:\work\csvConnector\Config.json
6.2. Структура файла конфигурации
Структура файла включает следующие основные параметры:
Таблица — Параметры конфигурационного файла:
Delimiter | Разделитель, используемый в CSV-файле Пример значения: ; |
PathToDivisions | Путь к файлу CSV, содержащему информацию о подразделениях Пример значения: TestData\\Division.csv |
PathToEmployees | Путь к файлу CSV, содержащему информацию о сотрудниках Пример значения: TestData\Person.csv |
PathToPositions | Путь к файлу CSV, содержащему информацию о должностях Пример значения: TestData\Position.csv |
HasHeader | Наличие заголовочной строки в CSV-файлах Пример значения: true(первая строка будет проигнорирована и использована как заголовок), false(первая строка будет обработана как данные) |
IgnoreEmptyPosition | Должность по умолчанию для сотрудников, у которых не указана должность Пример значения: true(должность сотрудника останется пустой, если о ней нет информации), false (будет использовано значение из параметра DefaultPosition) |
DefaultPosition | Значение должности, которое присваивается сотрудникам, если информация о должности отсутствует. Используется только при Пример значения: Position not specified |
Division | Определяет порядок следования атрибутов подразделений в файле
Пример значения:
"Division": {
"Attributes": [
{ "Field": "Id", "Index": 0 },
{ "Field": "Name", "Index": 1 },
{ "Field": "ManagerId", "Index": 2 },
{ "Field": "ParentId", "Index": 3 }
],
"AdditionalProperties": []
}
|
Employee | Определяет порядок следования атрибутов подразделений в файле
Пример значения:
"Employee": {
"Attributes": [
{ "Field": "Id", "Index": 0 },
{ "Field": "BirthDate", "Index": 1 },
{ "Field": "DivisionId", "Index": 2 },
{ "Field": "FirstName", "Index": 4 },
{ "Field": "LastName", "Index": 5 },
{ "Field": "Patronymic", "Index": 6 },
{ "Field": "PersonId", "Index": 7 },
{ "Field": "PersonnelNumber", "Index": 8 },
{ "Field": "PositionId", "Index": 9 },
{ "Field": "Status", "Index": 10 }
],
"AdditionalProperties": [
{ "Field": "EmailAddress", "Index": 3 }
]
}
|
Position | Определяет порядок следования атрибутов должностей в файле
Пример значения:
"Position": {
"Attributes": [
{ "Field": "Id", "Index": 0 },
{ "Field": "Name", "Index": 1 }
],
"AdditionalProperties": []
}
|
6.3. Пример конфигурационного файла (Config.json)
{
"Id": "#1",
"Delimiter": ";",
"PathToDivisions": "TestData\\Division.csv",
"PathToEmployees": "TestData\\Person.csv",
"PathToPositions": "TestData\\Position.csv",
"HasHeader": "True",
"IgnoreEmptyPosition": "False",
"DefaultPosition": "Position not specified",
"Division": {
"Attributes": [
{
"Field": "Id",
"Index": 0
},
{
"Field": "Name",
"Index": 1
},
{
"Field": "ManagerId",
"Index": 2
},
{
"Field": "ParentId",
"Index": 3
}
],
"AdditionalProperties": [
]
},
"Employee": {
"Attributes": [
{
"Field": "Id",
"Index": 0
},
{
"Field": "BirthDate",
"Index": 1
},
{
"Field": "DivisionId",
"Index": 2
},
{
"Field": "FirstName",
"Index": 4
},
{
"Field": "LastName",
"Index": 5
},
{
"Field": "Patronymic",
"Index": 6
},
{
"Field": "PersonId",
"Index": 7
},
{
"Field": "PersonnelNumber",
"Index": 8
},
{
"Field": "PositionId",
"Index": 9
},
{
"Field": "Status",
"Index": 10
}
],
"AdditionalProperties": [
{
"Field": "EmailAddress",
"Index": 3
}
]
},
"Position": {
"Attributes": [
{
"Field": "Id",
"Index": 0
},
{
"Field": "Name",
"Index": 1
}
],
"AdditionalProperties": [
]
}
}