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