数据模板:招聘到退休-员工全生命周期
您的从招聘到退休——员工全生命周期数据模板
- 用于全面分析的建议属性
- 贯穿全流程需跟踪的关键活动与里程碑
- 面向 SAP SuccessFactors Onboarding 的数据提取指南
从雇用到退休 - 员工全生命周期属性
| 名称 | 描述 | ||
|---|---|---|---|
员工ID EmployeeId | 用于标识员工在组织内完整生命周期的唯一标识符。 | ||
描述 Employee ID作为主要案例标识符,将从最初求职申请到最终离职的所有事件串联起来。该ID是贯穿员工各阶段旅程、进行全程追踪的关键。 在流程挖掘分析中,每一项活动(如“Offer已接受”或“绩效评估已完成”)都会关联到唯一的Employee ID。借此可端到端重建每位员工的生命周期,并对单个案例的流程路径、时长与变体开展细致分析。 为何重要 这是将所有相关事件串联为一个完整流程实例的基础属性,使端到端生命周期分析成为可能。 获取方式 这通常是 SAP SuccessFactors 核心 HR 模块中的主要员工标识符。 示例 100234510098762001567 | |||
开始时间 EventTime | 指示某项活动或事件开始的时间戳。 | ||
描述 此属性为员工生命周期中每个活动提供精确的日期与时间,用于按时间顺序排列事件,并计算各步骤之间的持续时间。 准确的时间戳对绩效分析至关重要。借此可计算诸如“Time-to-Hire”(从“Job Requisition Created”到“Offer Accepted”的时间)和“Onboarding Cycle Time”等关键指标。对时间戳的分析有助于定位延迟,并将流程效率与服务级别协议(SLA)对标。 为何重要 提供事件的时间顺序,是所有基于时间的分析(包括周期时间计算与瓶颈识别)的必要条件。 获取方式 在SAP SuccessFactors的相关记录中,该信息通常以创建日期、完成日期或状态变更的时间戳形式提供。 示例 2023-01-15T09:00:00Z2023-03-20T14:35:10Z2023-11-05T11:21:00Z | |||
活动 ActivityName | 员工生命周期某一节点发生的具体事件或任务名称。 | ||
描述 此属性用于捕捉“从招到退”流程中的离散步骤与里程碑。事件日志中的每条记录对应一项活动,例如“职位需求已创建”“入职已启动”或“员工已离职”。 分析这些活动的先后顺序与发生频次是流程挖掘的核心。它有助于自动发现真实的流程路径、识别与标准流程的偏差,并定位瓶颈或冗余步骤。例如,分析可揭示“薪资设置完成”是否经常晚于目标日期。 为何重要 用于定义流程步骤,构成流程图的骨架,支撑所有基于流向的分析。 获取方式 源自 SAP SuccessFactors 各模块(Onboarding、Recruiting、Employee Central)中的事件类型、状态变更或任务完成记录。 示例 已接受 Offer入职流程已启动已开展绩效评估员工已离职 | |||
最后数据更新 LastDataUpdate | 表示此事件数据上次从源系统刷新或提取时间的时间戳。 | ||
描述 此属性记录从源系统最后一次抽取数据的日期与时间。它并非事件发生的时间,而是在流程挖掘数据集中该记录最后一次被更新的时间。 这是数据治理和可靠性方面至关重要的元数据属性。它帮助用户了解所分析数据的时效性,确保分析基于最新信息;同时也用于管理增量数据加载。 为何重要 让数据新鲜度一目了然,帮助分析师信任结论与洞察的时效性。 获取方式 该时间戳在数据摄取(ETL/ELT)过程中生成,并写入每条记录。 示例 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
源系统 SourceSystem | 标识事件数据生成的来源系统。 | ||
描述 此属性指明数据抽取的源应用。在本流程视图中,通常为“SAP SuccessFactors Onboarding”,也可能包含其他集成系统。 在复杂的IT环境中,员工生命周期数据可能来自多个系统(如Recruiting、Core HR、Payroll)。该属性有助于追溯数据血缘、排查数据质量问题,并明确流程分析范围。 为何重要 提供数据来源的关键信息,有助于数据校验、治理以及界定流程范围。 获取方式 这通常是在 data 提取和 transformation 过程中添加的静态值,用于标记 dataset 的来源。 示例 SAP SuccessFactors OnboardingSAP SuccessFactors Employee CentralSAP Fieldglass | |||
入职周期时间 OnboardingCycleTime | 从候选人接受 offer 到入职完成的计算时长。 | ||
描述 该指标衡量从“Offer Accepted”到某个定义的入职完成事件(如“Employee Profile Activated”或“Payroll Setup Completed”)之间的总用时。它不是来源系统的直接字段,而是基于事件时间戳计算得出。 该属性直接对应“Onboarding Cycle Time”KPI,也是相关仪表板的核心度量。通过分析这段时长,HR 可识别入职流程中的瓶颈,并跟踪改进举措对新员工更快投入工作、创造价值的影响。 为何重要 这是衡量入职流程效率的关键KPI,直接影响新员工体验和上手时间。 获取方式 在流程挖掘工具中,取“Offer Accepted”和“Onboarding Completed”活动的时间戳差值。 示例 10天4小时15天2小时7天8小时 | |||
岗位角色 JobRole | 员工的具体职位名称或岗位角色。 | ||
描述 此属性指员工的职位名称,如“软件工程师”“客户经理”或“财务分析师”,用于说明员工在组织中的具体职能。 按岗位分析有助于理解不同员工类型的流程差异。例如,可在“培训分配缺口”仪表板中查看某些岗位是否缺少必修培训,或评估资深或技术岗位的Time-to-Hire是否更长。 为何重要 可按不同员工职能进行细粒度分析,从而为特定角色量身定制流程改进。 获取方式 该信息存放在SAP SuccessFactors Employee Central的员工岗位或职位信息记录上。 示例 高级软件工程师产品经理HR业务伙伴 | |||
招聘用时 TimeToHire | 从创建职位需求到候选人接受录用的时长。 | ||
描述 该指标通过衡量从“Job Requisition Created”到“Offer Accepted”的时间,量化招聘流程效率。 作为核心 KPI,“招聘用时”用于评估人才获取的速度与表现。招聘用时过长可能导致优秀候选人被竞争对手抢走,并拖延项目进度。该指标也是“Time-to-Hire Performance”仪表板的核心内容,通常会与目标值进行对比跟踪。 为何重要 这一招聘关键 KPI 衡量企业获取人才的速度,直接影响其竞争力和战略执行能力。 获取方式 在流程挖掘工具中,取“Job Requisition Created”和“Offer Accepted”活动的时间戳差值。 示例 35天52天28天 | |||
招聘经理 HiringManager | 负责新入职员工或正在经历生命周期事件的员工的经理姓名。 | ||
描述 此属性标识与员工案例关联的经理。招聘经理在诸多生命周期事件中都是关键干系人,涵盖审批、入职任务和绩效评估。 按经理维度分析数据对“经理审批瓶颈分析”仪表板至关重要。它有助于找出审批用时较长的经理,以判断是否需要培训或流程支持;也便于横向对比绩效并识别可推广的最佳实践。 为何重要 用于标识流程中的关键参与者,支持分析特定经理的绩效、审批延误以及团队层面的规律。 获取方式 该信息通常存放在SAP SuccessFactors Employee Central中的职位需求或员工档案上。 示例 约翰·史密斯Maria Garcia陈伟 | |||
招聘需求ID JobRequisitionId | 触发招聘流程的职位需求的唯一标识符。 | ||
描述 该ID把员工的生命周期关联到其被录用对应的具体职位需求,为角色、部门和招聘要求提供关键的上下文信息。 在分析中,职位需求ID用于聚合并比较招聘流程。比如,可按职位需求、部门或招聘人员分析Time-to-Hire,了解招聘在何处最为高效、何处效率较低,并回答“哪类岗位最难招满?”之类的问题。 为何重要 将员工旅程与最初的业务需求关联起来,便于对招聘阶段进行有效的细分与分析。 获取方式 该标识位于SAP SuccessFactors Recruiting模块,并与候选人以及后续的员工档案关联。 示例 REQ-2023-05-101REQ-2024-01-235REQ-2023-11-088 | |||
结束时间 EndTime | 表示持续性活动或事件完成时刻的时间戳。 | ||
描述 StartTime表示事件开始,EndTime表示结束。对于有持续时长的活动尤为有用,如“新员工信息收集”或经理审批步骤。 同时记录开始和结束时间,可精确计算单个活动的处理时长,从而准确定位在更大周期中哪些步骤最耗时,相比仅看案例层面的周期时长更细致。 为何重要 可精确计算单个活动时长,这对识别具体的流程低效与瓶颈至关重要。 获取方式 这通常是 SAP SuccessFactors 中与某个任务或流程步骤关联的“Completed Date”或“Last Modified Date”时间戳。 示例 2023-01-15T11:30:00Z2023-03-21T09:00:15Z | |||
部门 Department | 员工所属的组织部门。 | ||
描述 此属性为业务部门名称,如“销售”“工程”或“人力资源”,是与岗位角色关联的基础组织数据点。 部门是对比分析的主维度,可用于切分“入职周期”“员工流失率”等KPI,观察不同部门的流程差异,从而定位部门层面的具体问题,例如工程部门入职推进缓慢或销售部门流失率偏高。 为何重要 这是划分数据的重要维度,可用于对比业务各板块的流程表现和结果。 获取方式 该数据属于SAP SuccessFactors Employee Central中的员工核心档案,并与员工的岗位关联。 示例 工程部销售与市场财务客户支持 | |||
业务单元 BusinessUnit | 员工所属的更高一级业务单元或事业部。 | ||
描述 此属性代表高于部门的一层组织结构,如“消费品”或“企业软件”,为员工的角色提供更广泛的业务背景。 以业务单元维度分析流程,有助于管理层了解公司各主要板块的绩效。它既能揭示某个业务单元的系统性问题,也能凸显高绩效业务单元并推广其最佳实践,这对人力资源战略规划与资源配置十分有价值。 为何重要 提供高层级分析维度,便于在公司各大事业部之间对比流程效率和结果。 获取方式 这是 SAP SuccessFactors Employee Central 中的标准组织结构元素,与员工职位关联。 示例 全球技术部零售银行制药 | |||
候选人ID CandidateId | 在转为员工之前分配给求职者的唯一标识。 | ||
描述 在分配Employee ID之前,该ID用于跟踪个体在招聘阶段的全程,关联所有入职前活动,如“候选人已申请”“面试已安排”。 尽管Employee ID是端到端流程的主要案例标识,Candidate ID对于细致分析入职前漏斗至关重要。它支持跟踪某一职位需求的全部应聘者,而不仅是最终录用者,从而开展招聘转化率分析。 为何重要 通过跟踪所有候选人,可对招聘漏斗进行详细分析,洞察转化率与入职前流程效率。 获取方式 这是SAP SuccessFactors Recruiting模块中的主要标识。 示例 CAND-84392CAND-91034CAND-79831 | |||
国家/地区 Country | 员工所在地或岗位所在国家。 | ||
描述 此属性指明员工工作地点所属国家,是关键的地理和组织信息。 流程差异往往与地域相关,受不同劳动法、监管要求与经营惯例影响。按国家维度分析有助于揭示这些差异,例如某些地区招聘周期更长、合规步骤不同。这样既能保障全球流程标准化,又能兼顾本地要求。 为何重要 支持按地域对流程进行分段,这对于理解绩效、合规与成本的区域差异至关重要。 获取方式 这是 SAP SuccessFactors Employee Central 中员工工作地点或岗位信息的一部分。 示例 美国德国印度巴西 | |||
在职状态 EmploymentStatus | 员工当前雇佣状态,例如在职、已离职或休假。 | ||
描述 此属性表示员工在公司的当前状态,通常在生命周期的关键节点发生变化,尤其是在开始(“Active”)与结束(“Terminated”)时。 这是分析“员工生命周期吞吐量”仪表板的关键维度。通过按状态筛选,分析人员可以追踪在职员工的流动,监控不同时段的离职量,并了解休假员工的流程变体是否存在差异。它为每个案例提供结果层面的概览。 为何重要 为每位员工提供明确的处理结果,是开展队列分析、人员流失分析并理解流程吞吐量的基础。 获取方式 这是SAP SuccessFactors Employee Central中员工职位信息记录上的标准字段。 示例 在职已终止带薪休假无薪休假 | |||
处理时间 ProcessingTime | 单个活动的时长,按开始到结束的时间差计算。 | ||
描述 该指标表示某项任务的实际工作时长,计算方式为活动的 EndTime 与 StartTime 的差值。 相较于整体 cycle time,Processing Time 能提供更细粒度的流程绩效视角。例如,它能区分实际处理薪资设置所花的时间与等待信息的时间,不仅能识别任务间的等待,还能定位效率低下的具体任务。 为何重要 用于衡量某项活动的实际处理时长,帮助区分有效工作时间与等待时间,更精准定位瓶颈。 获取方式 在流程挖掘工具中,按每个活动的 EndTime 减去 StartTime 计算。 示例 2小时15分钟45分钟1天3小时 | |||
执行人 PerformedByUser | 执行该活动的用户姓名或ID。 | ||
描述 此属性用于标识在流程中实际执行某项任务或事件的个人,例如HR专员、招聘人员或经理,用于追踪人员在工作流中的参与情况。 按执行人分析活动是理解资源分配、工作量分布和绩效的关键。它有助于识别表现突出的招聘人员、审批较慢的经理,或处理任务最多的HR团队成员;也可用于区分由员工完成的任务与由自动化完成的任务。 为何重要 可将流程活动归属到具体个人,支持工作量分析、资源绩效管理以及培训需求识别。 获取方式 该信息通常可在SAP SuccessFactors中与任务或记录关联的审计日志,或“last modified by”字段中找到。 示例 asmithjdoebchen | |||
招聘来源 RecruitmentSource | 候选人来源渠道,例如招聘网站、员工内推或直接申请。 | ||
描述 此属性用于追踪求职申请的来源渠道,帮助洞察哪些招聘渠道更有效。 该数据对“薪酬设置完成度与准确性”仪表板很有价值,可判断某些来源的候选人是否更容易出现问题。更广泛地,它用于评估不同渠道的招聘质量与速度。例如,分析可能显示员工内推的Time-to-Hire最短且留任率最高。 为何重要 用于衡量各招聘渠道的效果,帮助优化招聘策略和预算分配。 获取方式 候选人提交申请时,该信息会在SAP SuccessFactors Recruiting模块中被采集。 示例 LinkedIn员工内推公司官网Indeed | |||
是否返工 IsRework | 一个布尔标记,用于指示在同一案例中某项活动是否为第二次或后续执行。 | ||
描述 此计算型属性会标记员工生命周期内重复发生的活动。例如,若“合规表单已签署”出现两次,因首次提交有误,则第二次将被标记为返工。 该属性是“活动返工与冗余”仪表板的核心。它有助于量化流程浪费,找出未能一次通过的任务。高比例的返工通常意味着培训、系统可用性或流程清晰度存在问题。 为何重要 通过识别重复作业量化低效,找出改进流程质量并减少浪费的机会。 获取方式 由流程挖掘工具通过分析每个流程实例的活动序列,并标记重复活动后计算得出。 示例 truefalse | |||
离职原因 TerminationReason | 员工离职原因。 | ||
描述 此属性记录员工离职的具体原因,可为自愿(如“辞职—更好机会”)或非自愿(如“非自愿—绩效”)。 该属性是“高流失模式分析”仪表板的关键维度。将离职原因与特定流程路径关联,企业即可追溯流失根因。例如,分析可能发现,入职流程耗时过长的员工更容易在第一年离职。 为何重要 为员工离职原因提供关键背景,支持对人员流失的根因分析并制定针对性的保留策略。 获取方式 该信息会在离职或解聘流程中记录于SAP SuccessFactors Employee Central。 示例 主动离职—辞职非自愿 - 绩效退休非自愿 - 组织调整 | |||
从雇用到退休 - 员工全生命周期活动
| 活动 | 描述 | ||
|---|---|---|---|
入职流程已启动 | 在 Onboarding 模块中为新员工创建记录,其入职任务正式启动。当为该新员工触发入职流程时会明确记录此事件。 | ||
为何重要 这是入职旅程的正式起点,可作为衡量入职效率与新员工参与度的基准。 获取方式 当候选人从 Recruiting 模块流转过来时,SAP SuccessFactors Onboarding 2.0 会为该新员工创建一个流程实例,并记录具体的开始日期和时间戳。 捕获 新员工入职流程记录的创建时间戳。 事件类型 explicit | |||
员工已离职 | 员工在最后一个工作日,系统中的员工记录正式转为非活动状态。这标志着员工生命周期的终结。 | ||
为何重要 这是“招聘到退休”(Hire to Retire)流程实例的最终结束事件。“Termination Initiated”和该事件之间的时间用于计算离职流程的总时长。 获取方式 记录于 SAP SuccessFactors Employee Central。该事件对应员工“职位信息”历史中离职动作的生效日期。 捕获 Employee Central中离职记录的生效日期。 事件类型 explicit | |||
员工档案已激活 | 新员工数据从 Onboarding 正式转入 Employee Central,并在入职当天激活其员工档案。在核心 HRIS 中创建并激活该员工记录时记录该事件。 | ||
为何重要 这意味着员工被正式纳入公司记录,这是招聘流程的最后一步,也标志着其在职生命周期的开始。 获取方式 该事件发生在SAP SuccessFactors Employee Central中,通常取自入职日期或员工雇佣记录的创建日期。 捕获 Employee Central中员工主雇佣记录的入职日期时间戳。 事件类型 explicit | |||
已发起离职 | 员工离职流程启动,可由直线经理或HR发起。在 Employee Central 中录入离职操作时记录该事件,通常会设置未来的生效日期。 | ||
为何重要 这标志着离职流程的开始。分析该事件之后的活动,对于评估离职效率与合规性至关重要。 获取方式 这是记录在 SAP SuccessFactors Employee Central 中的显式操作。该事件的时间取自员工离职记录的创建日期。 捕获 员工任职历史中终止记录的创建时间戳。 事件类型 explicit | |||
已接受 Offer | 指候选人正式接受 offer 的时刻,标志流程从招聘进入入职阶段。通常可依据 Recruiting 模块中候选人申请的状态变化来推断。 | ||
为何重要 这是一个关键里程碑,标志着“Time-to-Hire”的结束与“Onboarding Cycle Time”的开始。此节点之前的延迟影响招聘效率,此节点之后的延迟影响新员工的入职体验。 获取方式 可根据SAP SuccessFactors Recruiting模块中候选人申请流程的状态变化进行推断,例如状态变更为'Offer Accepted'或类似状态。 捕获 基于申请状态更新为“Offer Accepted”或等同状态时的时间戳。 事件类型 inferred | |||
已设置可录用状态 | 入职首日前的所有 Onboarding 活动均已完成,系统将候选人标记为可在核心HR系统中办理入职。通常依据 Onboarding 流程的整体状态进行判定。 | ||
为何重要 该里程碑确认员工正式入职所需的前提条件已就绪,是激活员工档案与薪资前的重要检查点。 获取方式 当SAP SuccessFactors Onboarding模块中的入职流程实例到达'Ready to Hire'等最终步骤时,可据此推断。 捕获 入职流程状态变更为“已完成”或“准备入职”时的时间戳。 事件类型 inferred | |||
招聘需求已创建 | 新岗位获批并开放应聘时,招聘流程正式启动。该事件通常在 SAP SuccessFactors Recruiting 模块中保存并发布新的招聘需求表单时记录。 | ||
为何重要 这是衡量“招聘用时”KPI 的主要起点。分析从该事件开始的用时,有助于识别人才获取早期阶段的延误。 获取方式 记录于 SAP SuccessFactors Recruiting 模块。该事件对应职位需求实体的创建日期与时间戳。 捕获 来源于 Recruiting 模块中职位需求记录的创建时间戳。 事件类型 explicit | |||
候选人已申请 | 候选人正式提交该招聘需求的申请。当系统针对某一具体需求单成功接收到新的候选人申请时,即记录此事件。 | ||
为何重要 跟踪投递量以及自职位需求创建以来的耗时,有助于评估人才寻源渠道与招聘营销的效果。 获取方式 记录于 SAP SuccessFactors Recruiting 模块。每条应聘记录均含创建日期,可作为事件时间戳。 捕获 候选人申请记录上的提交时间戳。 事件类型 explicit | |||
合规表单已签署 | 新员工完成并电子签署必填的合规文件,如 I-9、税务表单或政策确认书。完成相应合规文档任务时记录该事件。 | ||
为何重要 合规是入职过程中不可妥协的关键环节。跟踪此活动有助于监控HR合规一致性率并规避法律风险。 获取方式 记录于 SAP SuccessFactors Onboarding 模块的合规表单部分。每次表单完成都会生成时间戳,可用于事件日志。 捕获 特定合规表单任务的完成时间戳,例如“I-9第1部分”或“W-4”。 事件类型 explicit | |||
已开展绩效评估 | 员工的一轮正式绩效评估周期完成。当绩效与目标模块中的评估表单最终定稿并进入“Completed”状态时,记录该事件。 | ||
为何重要 该活动是分析“绩效评估节奏遵循率”KPI的关键,有助于确保全组织的员工发展与反馈持续、按节奏开展。 获取方式 记录于 SAP SuccessFactors Performance & Goals 模块。该事件为绩效评估表单完成时的时间戳。 捕获 员工绩效评估表单的完成时间戳。 事件类型 explicit | |||
新员工资料收集完成 | 新员工完成首批信息采集任务,如个人信息、银行账户和紧急联系人等。当入职清单中的某些任务或任务组被标记为完成时记录该事件。 | ||
为何重要 及时完成资料收集对后续的薪资设置与 IT 开通至关重要。此处延误会在下游形成瓶颈,并对新员工的首日体验产生负面影响。 获取方式 在 SAP SuccessFactors Onboarding 模块中跟踪。相关资料收集步骤或表单的完成时间戳即为事件时间。 捕获 入职流程中“Personal Data Collection”或类似标准步骤的完成时间戳。 事件类型 explicit | |||
晋升已批准 | 经理发起的员工晋升申请在系统中获批。保存带有晋升事由的“Job Information”变更事务时,会显式记录此事件。 | ||
为何重要 跟踪晋升是洞察内部流动与职业发展路径的关键。审批耗时可暴露管理环节的瓶颈。 获取方式 记录于 SAP SuccessFactors Employee Central。这是一次“职位信息”记录的变更,事件原因为“晋升”,并包含生效日期。 捕获 当“Job Information”发生变更且事件原因为“Promotion”时的创建时间戳。 事件类型 explicit | |||
离职任务完成 | 所有必需的离职任务(如资产归还、知识交接、最终薪资处理)均已完成。当离职流程清单达到最终状态时,记录此事件。 | ||
为何重要 确保离职流程的所有步骤都已完成,可降低安全风险并确保法律合规。此活动是衡量离职周期时长的关键。 获取方式 在 SAP SuccessFactors Offboarding 模块中跟踪。该事件通过员工离职清单中最后一项任务的完成时间推断得出。 捕获 离职流程状态变更为“已完成”时的时间戳。 事件类型 inferred | |||
经理任务完成 | 招聘经理完成其分配的入职职责,例如确认设备需求或制定第一周目标。当经理清单或相关任务被标记为完成时记录该事件。 | ||
为何重要 经理参与度决定入职体验的成败。分析这些任务的前置时间,有助于识别由经理引起的瓶颈。 获取方式 在 SAP SuccessFactors Onboarding 模块中跟踪。记录分配给招聘经理的任务的完成时间戳。 捕获 入职流程中经理分配任务的完成时间戳。 事件类型 explicit | |||
薪资设置完成 | 新员工信息已成功录入并在薪资系统中确认。该事件可通过 SuccessFactors 中某项任务的完成直接记录,或从同步至薪资系统的数据复制日志中推断。 | ||
为何重要 准确及时的薪资设置对新员工的正面体验至关重要。跟踪此项有助于衡量薪资设置错误率与完成及时性。 获取方式 此项很难直接追踪。它可能是入职清单中的手工任务,或可从Employee Central与薪酬系统之间的数据集成日志中推断。 捕获 可根据完成'Notify Payroll'任务或出现成功的数据同步日志来推断。 事件类型 inferred | |||
提取指南
步骤
- 前提条件:确保你在 SAP SuccessFactors 中对“Integration Center”具备基于角色的权限(RBP)以及管理员访问权,并对所需的 OData API 拥有读取权限(例如:JobRequisition、JobApplication、ONB2Process、EmpJob)。同时准备好用于存放输出文件的 SFTP 服务器凭据。
- 实施思路:“从雇佣到退休”(Hire to Retire)流程横跨多个 SuccessFactors 模块。请按主要数据源分别创建多条独立集成(如 Recruiting、Onboarding、Employee Central)。这些集成导出的 CSV 随后将在系统外合并为一份供 ProcessMind 使用的事件日志。
- 进入 Integration Center:在 Admin Center 中通过 Tool Search 查找并进入“Integration Center”。
- 创建招聘事件集成:点击“My Integrations”,选择“Create”,再选择“Scheduled Simple File Output Integration”。
- 搜索并选择 JobApplication 实体作为起点,可命名为 ProcessMind_Recruiting_Events。
- 在“Configure Fields”选项卡中,勾选所需字段。使用“Add”按钮新建计算字段,将状态映射到 ActivityName,并选择合适的日期字段作为 EventTime。
- 为来源于该实体的各类活动分别创建计算列,例如“Candidate Applied”“Offer Accepted”。使用条件逻辑(如:若状态为“Hired”,则事件为“Offer Accepted”)。
- 另外,基于 JobRequisition 再创建一条独立集成,用于采集“Job Requisition Created”事件。
- 创建 Onboarding 事件集成:使用 ONB2Process 实体创建另一条集成。它将作为“Onboarding Initiated”“New Hire Data Collection Completed”“Manager Tasks Completed”“Ready To Hire Status Set”等活动的来源。
- ONB2Process 实体包含与上述活动对应的多种状态与日期字段。你需要创建多个计算字段以检查流程或任务状态,并输出相应的活动名称与时间戳。
- 对于“Compliance Form Signed”等特定事件,可能需要基于 ONB2DataCollectionUserConfig 或相关合规表单实体单独创建集成。
- 创建 Employee Central(EC)事件集成:以 EmpJob(Job Information)实体创建第三条主要集成。该实体为时间切片结构,是大多数员工生命周期事件的来源。
- “Employee Profile Activated”“Promotion Approved”“Termination Initiated”“Employee Terminated”等活动均可从 EmpJob 记录派生。
- 通过 eventReason 字段筛选具体活动(如“HIRE”“PROMO”“TERML”“TERM”)。
- 使用 EmpJob 记录的 startDate 或 createdDate 作为 EventTime。
- 配置过滤条件:在每条集成的“Filter”选项卡中,基于 lastModifiedDateTime 添加过滤条件,将运算符设为“Greater Than”,值设为“Last Run Time”。这样可确保每次仅抽取新增或更新记录,保障性能。
- 配置目标与调度:在“Destination Settings”中填写 SFTP 服务器信息;在“Scheduling”中设置周期性运行,例如每日执行。
- 检查并运行:保存并运行各集成。首次运行会依据日期过滤执行全量加载,此后均为增量。
- 合并与转换数据:从 SFTP 下载各 CSV 文件。使用外部脚本(如 Python)或 ETL 工具合并为单一事件日志。脚本需:
- 合并所有文件(Union)。
- 处理招聘前事件与入职后 EmployeeId 的关联。
- 按员工或需求单维度计算 TimeToHire 与 OnboardingCycleTime 等复杂属性。
- 上传前格式化:确保最终合并文件为 CSV,且包含所需列(EmployeeId、ActivityName、EventTime、SourceSystem、LastDataUpdate 等),并在上传至 ProcessMind 前完成格式检查。
配置
- 集成类型:Scheduled Simple File Output Integration。用于按计划将基于文件的导出发送至 SFTP 服务器的标准选项。
- 来源:SuccessFactors OData V2 API,这是 Integration Center 用于数据检索的标准 API。
- 关键来源实体:需要为多个实体配置集成,包括 JobRequisition、JobApplication、ONB2Process、EmpJob(职位信息)、PMForm(绩效管理表单),以及可能用于合规表单的 ONB2DataCollectionUserConfig。
- 目标:需要 SFTP 服务器用于接收导出的平面文件。请在 'Destination Settings' 选项卡中配置主机地址、端口和凭据。
- 文件格式:建议输出 CSV 格式,并选择 UTF-8 编码以支持特殊字符。
- 过滤:最重要的筛选条件是在 lastModifiedDateTime 字段上使用 'Last Run Time' 值,以实现增量抽取,从而显著提升性能并减少后续运行的文件大小。若仅抽取某一业务单元,可按 Company/Legal Entity 进行过滤。
- 调度:建议每日定时运行,既保证数据新鲜,又避免给源系统带来过大压力。
- 前置条件:执行集成的用户需对 Integration Center 拥有完整权限,并具备对所查询实体及其导航属性的 OData API 读取权限。以上权限可在 SuccessFactors 的 'Manage Permission Roles' 中配置。
a 查询示例 config
/*
Integration Center does not use a single script. Instead, you configure multiple integrations through a graphical interface.
The following describes the configuration for each required integration to produce the final event log.
*/
// ======== Integration 1: Job Requisition Created ========
Integration.Name: "ProcessMind_JobRequisition_Created"
Starting.Entity: JobRequisition
Output.Columns:
- ActivityName = "Job Requisition Created" (Calculated, Fixed String)
- EventTime = jobReqGUId.createdDateTime (Source Field)
- JobRequisitionId = jobReqId (Source Field)
- EmployeeId = NULL (Calculated, Empty String)
- HiringManager = hiringManager.usersSysId (Navigated Field)
- Department = department.name (Navigated Field)
- JobRole = jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 2: Recruiting Application Events ========
Integration.Name: "ProcessMind_Recruiting_Application_Events"
Starting.Entity: JobApplication
Output.Columns:
- ActivityName = IF(jobApplication.status.statusName CONTAINS 'Applied', 'Candidate Applied', IF(jobApplication.status.statusName CONTAINS 'Offer Accepted', 'Offer Accepted', NULL)) (Calculated Field)
- EventTime = IF(ActivityName == 'Candidate Applied', jobApplication.createdDateTime, jobApplication.offerResponseDate) (Calculated Field)
- JobRequisitionId = jobApplication.jobReqId (Source Field)
- EmployeeId = jobApplication.candidate.usersSysId (Navigated Field, Note: this is the Candidate User ID, needs mapping to Employee ID post-hire)
- HiringManager = jobApplication.jobRequisition.hiringManager.usersSysId (Navigated Field)
- Department = jobApplication.jobRequisition.department.name (Navigated Field)
- JobRole = jobApplication.jobRequisition.jobTitle (Navigated Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- ActivityName != NULL
// ======== Integration 3: Onboarding & Offboarding Process Events ========
Integration.Name: "ProcessMind_Onboarding_Events"
Starting.Entity: ONB2Process
Output.Columns:
// Multiple rows can be generated from one ONB2Process record. This logic is best handled in the post-processing script.
// This example flattens it for simplicity, assuming one activity per record based on current status.
- ActivityName = CASE(ONB2Process.processStatus.code, 'READY_TO_HIRE', 'Ready To Hire Status Set', 'COMPLETED', 'Onboarding Initiated', 'ONB_TASKS_COMPLETED', 'New Hire Data Collection Completed', 'MNGR_TASKS_COMPLETED', 'Manager Tasks Completed', 'OFF_COMPLETED', 'Offboarding Tasks Completed') (Calculated Field)
- EventTime = ONB2Process.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2Process.personId (Source Field)
- JobRequisitionId = ONB2Process.requisitionId (Source Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 4: Employee Central Lifecycle Events ========
Integration.Name: "ProcessMind_EmployeeCentral_Events"
Starting.Entity: EmpJob
Output.Columns:
- ActivityName = CASE(EmpJob.eventReason, 'HIRE', 'Employee Profile Activated', 'PROMO', 'Promotion Approved', 'TERML', 'Termination Initiated', 'TERM', 'Employee Terminated', 'PAYSETUP', 'Payroll Setup Completed') (Calculated Field)
- EventTime = EmpJob.startDate (Source Field for most events) OR EmpJob.createdDate (For 'Termination Initiated')
- EmployeeId = EmpJob.userId (Source Field)
- EndTime = IF(ActivityName == 'Employee Terminated', EmpJob.endDate, NULL) (Calculated Field)
- JobRequisitionId = [Configure if custom field exists]
- HiringManager = EmpJob.managerId (Source Field)
- Department = EmpJob.department (Source Field)
- JobRole = EmpJob.jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Employee Central"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDate > [Last Run Time]
- eventReason IN ('HIRE', 'PROMO', 'TERML', 'TERM', 'PAYSETUP')
// ======== Integration 5: Performance Management Events ========
Integration.Name: "ProcessMind_Performance_Events"
Starting.Entity: FormHeader
Output.Columns:
- ActivityName = "Performance Review Conducted" (Calculated, Fixed String)
- EventTime = FormHeader.formLastModifiedDate (Source Field)
- EmployeeId = FormHeader.formSubject.userId (Navigated Field)
- HiringManager = [Configure based on your system, often a form participant]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Performance & Goals"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModified > [Last Run Time]
- formTemplateType = 'Review'
- formStatus = 'Completed' // Use the numeric value for completed status
// ======== Integration 6: Compliance Form Events ========
Integration.Name: "ProcessMind_Compliance_Events"
Starting.Entity: ONB2DataCollectionUserConfig // Or specific compliance entity
Output.Columns:
- ActivityName = "Compliance Form Signed" (Calculated, Fixed String)
- EventTime = ONB2DataCollectionUserConfig.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2DataCollectionUserConfig.process.personId (Navigated Field)
- JobRequisitionId = ONB2DataCollectionUserConfig.process.requisitionId (Navigated Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- status == 'COMPLETED'步骤
- 前提条件:确保你在 SAP SuccessFactors 中对“Integration Center”具备基于角色的权限(RBP)以及管理员访问权,并对所需的 OData API 拥有读取权限(例如:JobRequisition、JobApplication、ONB2Process、EmpJob)。同时准备好用于存放输出文件的 SFTP 服务器凭据。
- 实施思路:“从雇佣到退休”(Hire to Retire)流程横跨多个 SuccessFactors 模块。请按主要数据源分别创建多条独立集成(如 Recruiting、Onboarding、Employee Central)。这些集成导出的 CSV 随后将在系统外合并为一份供 ProcessMind 使用的事件日志。
- 进入 Integration Center:在 Admin Center 中通过 Tool Search 查找并进入“Integration Center”。
- 创建招聘事件集成:点击“My Integrations”,选择“Create”,再选择“Scheduled Simple File Output Integration”。
- 搜索并选择 JobApplication 实体作为起点,可命名为 ProcessMind_Recruiting_Events。
- 在“Configure Fields”选项卡中,勾选所需字段。使用“Add”按钮新建计算字段,将状态映射到 ActivityName,并选择合适的日期字段作为 EventTime。
- 为来源于该实体的各类活动分别创建计算列,例如“Candidate Applied”“Offer Accepted”。使用条件逻辑(如:若状态为“Hired”,则事件为“Offer Accepted”)。
- 另外,基于 JobRequisition 再创建一条独立集成,用于采集“Job Requisition Created”事件。
- 创建 Onboarding 事件集成:使用 ONB2Process 实体创建另一条集成。它将作为“Onboarding Initiated”“New Hire Data Collection Completed”“Manager Tasks Completed”“Ready To Hire Status Set”等活动的来源。
- ONB2Process 实体包含与上述活动对应的多种状态与日期字段。你需要创建多个计算字段以检查流程或任务状态,并输出相应的活动名称与时间戳。
- 对于“Compliance Form Signed”等特定事件,可能需要基于 ONB2DataCollectionUserConfig 或相关合规表单实体单独创建集成。
- 创建 Employee Central(EC)事件集成:以 EmpJob(Job Information)实体创建第三条主要集成。该实体为时间切片结构,是大多数员工生命周期事件的来源。
- “Employee Profile Activated”“Promotion Approved”“Termination Initiated”“Employee Terminated”等活动均可从 EmpJob 记录派生。
- 通过 eventReason 字段筛选具体活动(如“HIRE”“PROMO”“TERML”“TERM”)。
- 使用 EmpJob 记录的 startDate 或 createdDate 作为 EventTime。
- 配置过滤条件:在每条集成的“Filter”选项卡中,基于 lastModifiedDateTime 添加过滤条件,将运算符设为“Greater Than”,值设为“Last Run Time”。这样可确保每次仅抽取新增或更新记录,保障性能。
- 配置目标与调度:在“Destination Settings”中填写 SFTP 服务器信息;在“Scheduling”中设置周期性运行,例如每日执行。
- 检查并运行:保存并运行各集成。首次运行会依据日期过滤执行全量加载,此后均为增量。
- 合并与转换数据:从 SFTP 下载各 CSV 文件。使用外部脚本(如 Python)或 ETL 工具合并为单一事件日志。脚本需:
- 合并所有文件(Union)。
- 处理招聘前事件与入职后 EmployeeId 的关联。
- 按员工或需求单维度计算 TimeToHire 与 OnboardingCycleTime 等复杂属性。
- 上传前格式化:确保最终合并文件为 CSV,且包含所需列(EmployeeId、ActivityName、EventTime、SourceSystem、LastDataUpdate 等),并在上传至 ProcessMind 前完成格式检查。
配置
- 集成类型:Scheduled Simple File Output Integration。用于按计划将基于文件的导出发送至 SFTP 服务器的标准选项。
- 来源:SuccessFactors OData V2 API,这是 Integration Center 用于数据检索的标准 API。
- 关键来源实体:需要为多个实体配置集成,包括 JobRequisition、JobApplication、ONB2Process、EmpJob(职位信息)、PMForm(绩效管理表单),以及可能用于合规表单的 ONB2DataCollectionUserConfig。
- 目标:需要 SFTP 服务器用于接收导出的平面文件。请在 'Destination Settings' 选项卡中配置主机地址、端口和凭据。
- 文件格式:建议输出 CSV 格式,并选择 UTF-8 编码以支持特殊字符。
- 过滤:最重要的筛选条件是在 lastModifiedDateTime 字段上使用 'Last Run Time' 值,以实现增量抽取,从而显著提升性能并减少后续运行的文件大小。若仅抽取某一业务单元,可按 Company/Legal Entity 进行过滤。
- 调度:建议每日定时运行,既保证数据新鲜,又避免给源系统带来过大压力。
- 前置条件:执行集成的用户需对 Integration Center 拥有完整权限,并具备对所查询实体及其导航属性的 OData API 读取权限。以上权限可在 SuccessFactors 的 'Manage Permission Roles' 中配置。
a 查询示例 config
/*
Integration Center does not use a single script. Instead, you configure multiple integrations through a graphical interface.
The following describes the configuration for each required integration to produce the final event log.
*/
// ======== Integration 1: Job Requisition Created ========
Integration.Name: "ProcessMind_JobRequisition_Created"
Starting.Entity: JobRequisition
Output.Columns:
- ActivityName = "Job Requisition Created" (Calculated, Fixed String)
- EventTime = jobReqGUId.createdDateTime (Source Field)
- JobRequisitionId = jobReqId (Source Field)
- EmployeeId = NULL (Calculated, Empty String)
- HiringManager = hiringManager.usersSysId (Navigated Field)
- Department = department.name (Navigated Field)
- JobRole = jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 2: Recruiting Application Events ========
Integration.Name: "ProcessMind_Recruiting_Application_Events"
Starting.Entity: JobApplication
Output.Columns:
- ActivityName = IF(jobApplication.status.statusName CONTAINS 'Applied', 'Candidate Applied', IF(jobApplication.status.statusName CONTAINS 'Offer Accepted', 'Offer Accepted', NULL)) (Calculated Field)
- EventTime = IF(ActivityName == 'Candidate Applied', jobApplication.createdDateTime, jobApplication.offerResponseDate) (Calculated Field)
- JobRequisitionId = jobApplication.jobReqId (Source Field)
- EmployeeId = jobApplication.candidate.usersSysId (Navigated Field, Note: this is the Candidate User ID, needs mapping to Employee ID post-hire)
- HiringManager = jobApplication.jobRequisition.hiringManager.usersSysId (Navigated Field)
- Department = jobApplication.jobRequisition.department.name (Navigated Field)
- JobRole = jobApplication.jobRequisition.jobTitle (Navigated Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- ActivityName != NULL
// ======== Integration 3: Onboarding & Offboarding Process Events ========
Integration.Name: "ProcessMind_Onboarding_Events"
Starting.Entity: ONB2Process
Output.Columns:
// Multiple rows can be generated from one ONB2Process record. This logic is best handled in the post-processing script.
// This example flattens it for simplicity, assuming one activity per record based on current status.
- ActivityName = CASE(ONB2Process.processStatus.code, 'READY_TO_HIRE', 'Ready To Hire Status Set', 'COMPLETED', 'Onboarding Initiated', 'ONB_TASKS_COMPLETED', 'New Hire Data Collection Completed', 'MNGR_TASKS_COMPLETED', 'Manager Tasks Completed', 'OFF_COMPLETED', 'Offboarding Tasks Completed') (Calculated Field)
- EventTime = ONB2Process.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2Process.personId (Source Field)
- JobRequisitionId = ONB2Process.requisitionId (Source Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 4: Employee Central Lifecycle Events ========
Integration.Name: "ProcessMind_EmployeeCentral_Events"
Starting.Entity: EmpJob
Output.Columns:
- ActivityName = CASE(EmpJob.eventReason, 'HIRE', 'Employee Profile Activated', 'PROMO', 'Promotion Approved', 'TERML', 'Termination Initiated', 'TERM', 'Employee Terminated', 'PAYSETUP', 'Payroll Setup Completed') (Calculated Field)
- EventTime = EmpJob.startDate (Source Field for most events) OR EmpJob.createdDate (For 'Termination Initiated')
- EmployeeId = EmpJob.userId (Source Field)
- EndTime = IF(ActivityName == 'Employee Terminated', EmpJob.endDate, NULL) (Calculated Field)
- JobRequisitionId = [Configure if custom field exists]
- HiringManager = EmpJob.managerId (Source Field)
- Department = EmpJob.department (Source Field)
- JobRole = EmpJob.jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Employee Central"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDate > [Last Run Time]
- eventReason IN ('HIRE', 'PROMO', 'TERML', 'TERM', 'PAYSETUP')
// ======== Integration 5: Performance Management Events ========
Integration.Name: "ProcessMind_Performance_Events"
Starting.Entity: FormHeader
Output.Columns:
- ActivityName = "Performance Review Conducted" (Calculated, Fixed String)
- EventTime = FormHeader.formLastModifiedDate (Source Field)
- EmployeeId = FormHeader.formSubject.userId (Navigated Field)
- HiringManager = [Configure based on your system, often a form participant]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Performance & Goals"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModified > [Last Run Time]
- formTemplateType = 'Review'
- formStatus = 'Completed' // Use the numeric value for completed status
// ======== Integration 6: Compliance Form Events ========
Integration.Name: "ProcessMind_Compliance_Events"
Starting.Entity: ONB2DataCollectionUserConfig // Or specific compliance entity
Output.Columns:
- ActivityName = "Compliance Form Signed" (Calculated, Fixed String)
- EventTime = ONB2DataCollectionUserConfig.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2DataCollectionUserConfig.process.personId (Navigated Field)
- JobRequisitionId = ONB2DataCollectionUserConfig.process.requisitionId (Navigated Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- status == 'COMPLETED'