如何递归搜索最近的活动经理

时间:2019-05-10 19:33:15

标签: powershell

该脚本获取员工的ID号,它需要打印所请求员工的最接近的“活动”经理的信息。 并非所有经理都是“主动的”,其中有些可能是“不活跃的”,因此我需要递归搜索最接近的主动经理。

2 个答案:

答案 0 :(得分:0)

在这个问题上,实际上没有什么可做的。 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)

答案 1 :(得分:0)

我认为我的答案可能与lit的答案相似,但是阅读他的答案对我来说很混乱,所以我正在编写自己的答案。

$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
}