Как рекурсивно искать ближайшего активного менеджера - PullRequest
0 голосов
/ 10 мая 2019

Сценарий получает идентификационный номер сотрудника и должен распечатать информацию о ближайшем «ACTIVE» менеджере запрашиваемого сотрудника.Не все менеджеры являются «АКТИВНЫМИ», некоторые из них могут быть «НЕАКТИВНЫМИ», поэтому мне нужно рекурсивно искать ближайшего активного менеджера.

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Я думаю, что мой ответ, вероятно, похож на ответ Лит, но чтение его ответа меня смутило, поэтому я пишу свой.

$employee = $item
$manager = Get-UserActiveManager -searchType ID -searchString $item.ManagerId

# If the manager is not active, get that manager's manager until we find an active one
While($Manager.WorkStatusTypeCd -ne 'Active'){
    $manager = Get-UserActiveManager -searchType ID -searchString $Manager.ManagerId
}
0 голосов
/ 10 мая 2019

Здесь действительно не так много вопросов в этом вопросе.Get-UserActiveManage, вероятно, более удачно назвали бы Get-Employee.Естественно, я не проверял это, но что-то в этом роде может работать.Продумайте шаги для каждого условия цикла.

$employee = $item
$manager = $null

while (($item.WorkStatusTypeCd -ne $null) -and ($item.WorkStatusTypeCd -eq "ACTIVE")) {
    $managerId = $item.ManagerId
    $item = Get-UserActiveManager -searchType ID -searchString $managerId
    if (($item.WorkStatusTypeCd -ne $null) -and ($item.WorkStatusTypeCd -eq 'ACTIVE')) {
        ### This is the manager.
        $manager = $item
    } elseif ($item.ManagerId -eq $null) {
        ### The end. No manager can be found.
    }
}

'{0} is the manager of {1}' -f $($manager.EmployeeId, $employee.EmployeeId)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...