Навигатор по разделу:
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": [ ] } }