如何同步生命週期工作流程的屬性
工作流程包含特定工作,可根據指定的執行條件,自動對使用者執行。 可根據 Microsoft Entra ID 中的 employeeHireDate 和 employeeLeaveDateTime 使用者屬性,支援自動工作流程排程。
若要充分利用生命週期工作流程,應將使用者佈建自動化,並同步處理排程相關屬性。
排程相關屬性
下表顯示排程 (觸發) 相關屬性和支援同步處理的方法。
屬性 | 類型 | HR 輸入佈建可支援 | Microsoft Entra Connect 雲端同步支援 | Microsoft Entra Connect 同步支援 |
---|---|---|---|---|
employeeHireDate | DateTimeOffset | Yes | .是 | Yes |
employeeLeaveDateTime | DateTimeOffset | Yes | .是 | 是 |
注意
手動為僅限雲端的使用者設定 employeeLeaveDateTime 需要特殊權限。 如需詳細資訊,請參閱:為使用者設定 employeeLeaveDateTime 屬性
本文件說明如何針對所需屬性,從內部部署 Microsoft Entra Connect 雲端同步和 Microsoft Entra Connect 設定同步處理功能。
注意
Active Directory 中沒有對應的 EmployeeHireDate 或 EmployeeLeaveDateTime 屬性。 如果您要從內部部署 AD 同步,請務必在 AD 中識別可使用的屬性。 此屬性必須為字串。
了解 EmployeeHireDate 和 EmployeeLeaveDateTime 的格式
EmployeeHireDate 和 EmployeeLeaveDateTime 包含必須使用特定格式的日期和時間。 這表示您可能需要使用運算式,將來源屬性的值轉換為 EmployeeHireDate 或 EmployeeLeaveDateTime 可接受的格式。 下列表格概述預期的格式,並提供如何轉換值的範例運算式。
案例 | 運算式/格式 | Target | 相關資訊 |
---|---|---|---|
Workday 到 Active Directory 使用者佈建 | FormatDateTime([StatusHireDate], ,"yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ") | 內部部署 AD 字串屬性 | Workday 的屬性對應 |
SuccessFactors 到 Active Directory 使用者佈建 | FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyyMMddHHmmss.fZ") | 內部部署 AD 字串屬性 | SAP 成功因素的屬性對應 |
自訂匯入至 Active Directory | 必須為「yyyyMMddHHmmss.fZ」格式 | 內部部署 AD 字串屬性 | 記錄任何其他系統的屬性對應 (部分機器翻譯) |
Microsoft Graph 使用者 API | 必須為「YYYY-MM-DDThh:mm:ssZ」格式 | EmployeeHireDate 和 EmployeeLeaveDateTime | |
Workday 至 Microsoft Entra 使用者佈建 | 可以使用直接對應。 不需要運算式,但可用來調整 EmployeeHireDate 和 EmployeeLeaveDateTime 的時間部分 | EmployeeHireDate 和 EmployeeLeaveDateTime | |
SuccessFactors 至 Microsoft Entra 使用者佈建 | 可以使用直接對應。 不需要運算式,但可用來調整 EmployeeHireDate 和 EmployeeLeaveDateTime 的時間部分 | EmployeeHireDate 和 EmployeeLeaveDateTime |
如需運算式的詳細資訊,請參閱在 Microsoft Entra ID 中撰寫屬性對應的運算式 (部分機器翻譯)。
表格運算式範例在 SAP 中使用 endDate,在 Workday 中則使用 StatusHireDate。 不過,您可以選擇使用不同的屬性。
例如,您可以在 Workday 中使用 StatusContinuousFirstDayOfWork,而非 StatusHireDate。 在此執行個體中,您的運算式為:
FormatDateTime([StatusContinuousFirstDayOfWork], , "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ")
下表列出推薦的屬性及其案例建議。
HR 屬性 | HR 系統 | 案例 | Microsoft Entra 屬性 |
---|---|---|---|
StatusHireDate | 工作日 | 加入者 | EmployeeHireDate |
StatusContinuousFirstDayOfWork | 工作日 | 加入者 | EmployeeHireDate |
StatusDateEnteredWorkforce | 工作日 | 加入者 | EmployeeHireDate |
StatusOriginalHireDate | 工作日 | 加入者 | EmployeeHireDate |
StatusEndEmploymentDate | 工作日 | 離開者 | EmployeeLeaveDateTime |
StatusResignationDate | 工作日 | 離開者 | EmployeeLeaveDateTime |
StatusRetirementDate | 工作日 | 離開者 | EmployeeLeaveDateTime |
StatusTerminationDate | 工作日 | 離開者 | EmployeeLeaveDateTime |
startDate | SAP SF | 加入者 | EmployeeHireDate |
firstDateWorked | SAP SF | 加入者 | EmployeeHireDate |
lastDateWorked | SAP SF | 離開者 | EmployeeLeaveDateTime |
endDate | SAP SF | 離開者 | EmployeeLeaveDateTime |
如需了解更多屬性,請參閱 Workday 屬性參考和 SAP SuccessFactors 屬性參考。
時間的重要性
為確保已排程工作流程的時間正確性,請務必考慮以下各項:
- 必須根據情況設定屬性的時間部分,例如:
employeeHireDate
應該有一天開始的時間,例如 1AM 或 5AM,而employeeLeaveDateTime
應該有一天結束的時間,例如 9PM 或 11PM - 該工作流程不會在屬性指定的時間前執行,不過租用戶排程 (預設為 3 小時) (部分機器翻譯) 可能會延遲工作流程的執行。 例如,如果您將
employeeHireDate
設定為 8AM,但租用戶排程要到 9AM 後才會執行,那麼系統將在該時間點後才會處理工作流程。 如果新進員工的入職時間是 8AM,請將時間設定為類似「開始時間 - 租用戶排程」,確保員工到職前執行工作流程。 - 如果您使用臨時存取密碼 (TAP),建議您將存留期上限設定為 24 小時。 這樣做有助於確保 TAP 傳送給位於不同時區的員工後不會過期。 如需詳細資訊,請參閱在 Microsoft Entra ID 中設定臨時存取密碼,以註冊無密碼驗證方法。
- 匯入資料時,您應該了解來源是否可為使用者提供時區資訊,方便進行調整並確保時間的正確性,以及來源要用何種方法達成上述目標。
如何在 Microsoft Entra Connect 雲端同步中為 EmployeeHireDate 建立自訂同步處理規則
下列步驟引導您使用雲端同步建立同步處理規則。
- 在 Microsoft Entra 系統管理中心,瀏覽至 > [混合式管理] > [Microsoft Entra Connect]。
- 選擇 [管理 Microsoft Entra Connect 雲端同步]。
- 在 [設定] 底下,選取您的設定。
- 選取 [按一下以編輯對應]。 此連結會開啟 [屬性對應] 畫面。
- 選取 [新增屬性]。
- 填寫下列資訊︰
- 對應類型:直接
- 來源屬性:msDS-cloudExtensionAttribute1
- 預設值:保留空白
- 目標屬性:employeeHireDate
- 套用此對應:一律套用
- 選取套用。
- 回到 [屬性對應] 畫面,您應該會看到新的屬性對應。
- 選取 [儲存結構描述]。
如需屬性的詳細資訊,請參閱 Microsoft Connect 雲端同步中的屬性對應 (機器翻譯)。
如何在 Microsoft Entra Connect 中為 EmployeeHireDate 建立自訂同步處理規則
下列範例逐步引導您設定自訂同步處理規則,可將 Active Directory 屬性同步至 Microsoft Entra ID 中的 employeeHireDate 屬性。
- 以系統管理員身分開啟 PowerShell 視窗,然後執行
Set-ADSyncScheduler -SyncCycleEnabled $false
以停用排程器。 - 前往 Start\Microsoft Entra Connect\,然後開啟 [同步處理規則編輯器]
- 確定頂端的方向已設定為 [輸入]。
- 選取新增規則。
- 在 [建立輸入同步處理規則] 畫面上,輸入下列資訊,然後選取 [下一步]。
- 名稱:從 AD - EmployeeHireDate 輸入
- 連接的系統:contoso.com
- 連接的系統物件類型:使用者
- Metaverse 物件類型:人員
- 優先順序:20
- 在 [範圍篩選器] 畫面上,選取 [下一步]。
- 在 [加入規則] 畫面上,選取 [下一步]。
- 在 [轉換] 畫面的 [新增轉換] 底下,輸入下列資訊。
- FlowType:直接
- 目標屬性:employeeHireDate
- 來源:msDS-cloudExtensionAttribute1
- 選取 [新增]。
- 在 [同步處理規則編輯器] 中,確定頂端的方向已設定為 [輸出]。
- 選取新增規則。
- 在 [建立輸出同步處理規則] 畫面上,輸入下列資訊,然後選取 [下一步]。
- 名稱:輸出至 Microsoft Entra ID - EmployeeHireDate
- 連接的系統:<您的租用戶>
- 連接的系統物件類型:使用者
- Metaverse 物件類型:人員
- 優先順序:21
- 在 [範圍篩選器] 畫面上,選取 [下一步]。
- 在 [加入規則] 畫面上,選取 [下一步]。
- 在 [轉換] 畫面的 [新增轉換] 底下,輸入下列資訊。
- FlowType:直接
- 目標屬性:employeeHireDate
- 來源:employeeHireDate
- 選取 [新增]。
- 關閉 [同步處理規則編輯器]
- 執行
Set-ADSyncScheduler -SyncCycleEnabled $true
重新啟用排程器。
注意
- msDS-cloudExtensionAttribute1 是範例來源。
- 從 Microsoft Entra Connect 2.0.3.0 (部分機器翻譯) 開始,
employeeHireDate
會新增至預設的「輸出至 Microsoft Entra ID」規則,因此不需要步驟 10-16。 - 從 Microsoft Entra Connect 2.1.19.0 (部分機器翻譯) 開始,
employeeLeaveDateTime
會新增至預設的「輸出至 Microsoft Entra ID」規則,因此不需要步驟 10-16。
如需詳細資訊,請參閱如何自訂同步處理規則,以及變更預設設定。
在佈建應用程式中編輯屬性對應
設定佈建應用程式之後,您就可以編輯其屬性對應。 建立應用程式時,您會取得 HRM 與 Active Directory 之間的預設對應清單。 您可以從該處編輯現有的對應,或新增對應。
若要更新此對應,您必須執行下列步驟:
瀏覽至 [身分識別] > [應用程式] > [企業應用程式]。
開啟佈建的應用程式。
選取 [佈建],然後選取 [編輯屬性對應]。
選取 [顯示進階選項],然後選取 [編輯內部部署 Active Directory 屬性清單]。
新增建立為 Type String 的來源屬性或屬性,然後在 CheckBox 上選取為必要。
注意
新增的來源屬性數目和名稱將取決於您從 Active Directory 同步處理的屬性。
選取 [儲存]。
您必須從該處將 HRM 屬性對應至新增的 Active Directory 屬性。 若要這樣做,請使用運算式新增對應。
您的運算式必須符合了解 EmployeeHireDate 和 EmployeeLeaveDateTime 格式一節中找到的格式。
選取 [確定]。
如何在 Microsoft Entra ID 中驗證這些屬性值
若要檢閱在 Microsoft Entra ID 中使用者物件上設定的值,您可以使用 Microsoft Graph PowerShell SDK (英文)。 例如:
# Import Module
Import-Module Microsoft.Graph.Users
# Define the necessary scopes
$Scopes =@("User.Read.All", "User-LifeCycleInfo.Read.All")
# Connect using the scopes defined and select the Beta API Version
Connect-MgGraph -Scopes $Scopes
# Query a user, using its user ID, and return the desired properties
$user = Get-MgUser -UserID "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" -Property EmployeeLeaveDateTime
$User.EmployeeLeaveDateTime