У меня есть две конечные точки API для доступа и получения информации о пользователе и записи данных в таблицу SQL. Конечная точка использует идентификатор сотрудника в URL-адресе, поэтому я перебираю каждого пользователя, чтобы получить его данные. Endpoint #2 содержит настраиваемые поля для пользователя. Я пытаюсь объединить результаты обеих конечных точек и записать их в виде одной строки для каждого пользователя в таблице SQL.
Они возвращают PSCustomObject в виде хэш-таблицы. Конечная точка № 1: cat6 NoteProperty string cat6=NONE
Конечная точка № 2: CustomText94 NoteProperty System.Management.Automation.PSCustomObject CustomText94=@{description=; значение=}
function Export-Feed {
Begin {
$serverInstance = ""
$database = ""
$tableName = ""
$employees = Get-Directory | Where-Object eestatus -eq A
}
Process {
$result = $employees | ForEach-Object -Parallel {
$params = @(
'firstname',
'middlename',
'lastname',
@{n='ADID';e={(Connect-Api -apiEndpoint "/api/v1/employee/$($_.eecode)/customfield").CustomText04.value}},
'hire_date',
'rehire_date',
'position_title',
'termination_date',
'work_email',
'employee_code',
'clocksequencenumber',
'department_code',
'department_description',
'employee_status',
'supervisor_primary',
'supervisor_primary_code',
'supervisor_secondary',
'supervisor_secondary_code',
'supervisor_tertiary',
'supervisor_tertiary_code',
'supervisor_quaternary',
'cat1',
'cat1desc',
'cat2',
'cat2desc',
'cat3',
'cat3desc',
'cat4',
'cat4desc',
'cat5',
'cat5desc',
'cat6',
'cat6desc',
'cat7',
'cat7desc',
'cat8',
'cat8desc',
'cat9',
'cat9desc'
)
Connect-Api -apiEndpoint "/api/v1/employee/$($_.eecode)" | Select-Object $params
}
}
End {
$result | Out-File c:\temp\test.txt
#Write-SqlTableData -DatabaseName $database -TableName $tableName -ServerInstance $serverInstance -SchemaName dbo -InputData $result -force
}
}