如何调试从 SAP SuccessFactors Employee Central 到 SAP ERP 的员工主数据复制

调试准备

  • 业务集成生成器

    1. 为要分析的相应转换模板组和外部员工标识启动报表 ECPAO_EE_ORG_REPL_QUERY(测试模式)。

       

      图片


       

    2. 转到事务 SRTUTIL,单击“消息监控器”

       

      图片



      并以适当的时间间隔执行搜索。

       

      图片


       

    3. 您应该会看到以下消息模式:

       

      图片



      (如果在 SRTUTIL 中看不到任何消息,请在事务 SXMB_MONI 中进行检查。)要进行调试,我们需要具有接收方接口 EmployeeMasterDataAndOrgAssignmentBundleReplicationRequest_In 的中间请求。其中包含要存储在 ERP 系统中的 SuccessFactors 中的数据。

       

      图片



      双击此消息,然后单击 XML 按钮下载 XML。

       

      图片



      除此之外,首先创建的消息(不含接收方接口的消息)包含发送到 SuccessFactors Compound Employee API 以获取员工数据的查询。您可以通过双击消息行并选择“原始 XML”来查看此查询

       

      图片



      结果将是

       

      图片



      在这里,你可以获得一些有用的信息。
       

    4. 转到事务 SE80,打开包 PA_SE_IN,导航到接口 EmployeeMasterDataAndOrgAssignmentBundleReplicationRequest_In,双击该接口,然后单击“测试”。

       

      图片



      在随即出现的弹出窗口中,选择“执行”而不进行任何更改。

       

      图片


       

    5. 在下一屏幕中,上载在步骤 3 中存储的 XML。

       

      图片



      现在,您应该看到如下内容:

       

      图片



      (请注意,ReferenceID 标记的内容是您在步骤 1 中报表 ECPAO_EE_ORG_REPL_QUERY 的输出中看到的技术查询键值。)
       

    6. 确保刚上载的文件与正确的查询相对应。为此,请复制 ReferenceID 标记的内容, 

       

      图片



      转到表 ECPAO_QRY_ADMDT 的事务 SE16N,在 QRY_UUID 字段中输入复制的 ReferenceID,然后执行。

       

      图片



      在结果表中,您会看到在步骤 1 中用于报表 ECPAO_EE_ORG_REPL_QUERY 的选择参数。因此,您可以仔细检查是否上载了正确的查询。
       

    7. 如果您现在测试服务,您将使用上传的 XML 中包含的有效负载再次复制员工。

       

      图片


       

    8. 现在,您可以设置断点以调试员工复制。设置断点并再次测试服务后,将打开调试程序。 

      通常,您需要设置外部断点以实现有效的调试。通过上述方法,复制将由您的用户完成,而不是标准复制用户。这允许您为用户而不是复制用户设置外部断点。这可确保不会干扰常规复制。

  • 历史复制

    1. 从 SuccessFactors 数据复制监视器手动复制要分析的员工。

    2. 转到事务 SRTUTIL,单击“消息监控器”

       

      图片



      并以适当的时间间隔执行搜索。

       

      图片


       

    3. 您应该会看到接口名称为 EmployeeMasterDataBundleReplicationRequest_In 或 EmployeeMasterDataReplicationRequest_In 的消息,该消息对应于最初触发的复制。

       

      图片



      此消息的有效负载包含从 EC 复制到 ERP 系统的数据。双击此消息,单击“原始 XML”按钮查看有效负载,并确认其包含正确员工的数据。然后,单击 XML 按钮下载有效负载。

       

      图片



       

    4. 转到事务 SE80,打开包 PA_SE_IN,导航到接口 EmployeeMasterDataBundleReplicationRequest_In 或 EmployeeMasterDataReplicationRequest_In(取决于在步骤 3 中遇到的接口),双击该接口,然后单击“测试”。

       

      图片



      在随即出现的弹出窗口中,选择“执行”而不进行任何更改。

       

      图片


       

    5. 在下一屏幕中,上载在步骤 3 中存储的 XML。

       

      图片



      然后,单击“XML 编辑器”

       

      图片



      后按“Pretty Printer”。现在,您应该看到类似

       

      图片


       

    6. 在 CreationDateTime 标记下,添加行 "<TestDataIndicator>true</TestDataIndicator>"。

       

      图片


       

    7. 如果您现在测试服务,您将使用上传的 XML 中包含的有效负载模拟员工复制。

       

      图片


       

    8. 现在,您可以设置断点以调试员工复制。设置后,调试器将在您再次测试服务时打开。
       

  • 点对点复制

    1. 对要分析的员工执行报表 RP_HRSFEC_REPLICATION_STATUS。

       

      图片


       

    2. 在输出表中,单击当前复制包的消息 ID。

       

      图片


       

    3. 现在您到了要复制的有效负载。

       

      图片



      此 XML 包含来自 SuccessFactors 的信息,将在 ERP 系统中映射和存储。如果单击“模拟”,则可以模拟复制并进行调试。

如何设置断点

  • 从最开始调试
     

    • 业务集成构建器 

      在类 CL_ECPAO_EE_MD_ORGAS_BNDL_REQ 的方法 II_ECPAOX_EE_MD_ORGAS_BNDL_REQ~EE_MD_ORGAS_BNDLE_REQ 中设置断点。

       

      图片



       

    • 历史复制

      如果在步骤 3 中遇到接口 EmployeeMasterDataBundleReplicationRequest_In,则在类 CL_PAOCF_EC_EE_MDR_BUNDLE 的方法 II_PAOCF_EC_EE_MDR_BUNDLE~EMPLOYEE_MASTER_DATA_BUNDLE_RE 中设置断点

       

      图片



      或者,如果在步骤 3 中遇到接口 EmployeeMasterDataReplicationRequest_In,则在类 CL_PAOCF_EC_EMPLOYEE_MASTER_DA 的方法 II_PAOCF_EC_EMPLOYEE_MASTER_DA~EMPLOYEE_MASTER_DA 中为 EMPLOYEE_MASTER_DA~EMPLOYEE_MASTER_DA。
       

    • 点对点复制

      在类 CL_HRSFEC_RS_UI_SIMULATE 的方法 SIMULATE_REPLICATION 中设置 breapoint。

       

      图片


       

  • 找出引发特定错误消息的位置

    假设复制后在事务 SLG1 中遇到特定错误。

     

    图片



    如果要快速转到引发此错误消息的编码部分,可以执行以下操作。
     

    • 通过检查 SLG1 错误消息的长文本,您可以派生其标识和编号(比较最后一个屏幕截图)。“消息编号”的最后三位数是编号,即标识前的数字。在上例中,标识为 "00",编号为 "058"。

    • 按之前所述设置断点。(对于 BIB 复制,必须在函数 PROCESS_EE_MD_ORGAS_INB_RFC 的远程功能调用之后。因此,只需在此功能模块本身中设置外部断点。)

    • 打开调试程序后,为此特定消息标识和编号设置一个 brepooint。

       

      图片


       

    • 设置此类断点并在调试程序 (F8) 中继续后,调试程序将在引发此特定消息时停止。 
       

  • 调试分离信息类型框架

    所有复制都有一个共同点,即在创建信息类型内容后调用分离信息类型框架。在此框架中,每个信息类型 xxxx 由类 CL_HRPA_INFOTYPE_xxxx(或 CL_HRPA_INFTY_xxxx)表示。这些类用于初始化数据、执行检查并将数据存储在数据库中。特别是,应用程序日志(事务 SLG1)中显示的用于复制的错误消息通常来自上述检查。因此,需要检查的编码部分是类 CL_HRPA_INFOTYPE_xxxx 的方法 SPECIFIC_INITIAL_COMPUTATIONS、SPECIFIC_INSERT_COMPUTATIONS、SPECIFIC_MODIFY_COMPUTATIONS 和 SPECIFIC_DELETE_COMPUTATIONS。例如,如果您怀疑信息类型 0008 的插入逻辑存在问题,则需要在类 CL_HRPA_INFOTYPE_0008 的方法 SPECIFIC_INSERT_COMPUTATIONS 中设置断点。

    请注意,根据信息类型,可能还存在这些信息类型类的国家特定版本。对于信息类型 xxxx 和国家分组 yy,相应的类将为 CL_HRPA_INFOTYPE_xxxx_yy。因此,如果在复制日志中看到国家/地区特定的错误消息,则可能需要检查此类类。例如,如果信息类型 0002 出现新加坡特定错误,则可以在类 CL_HRPA_INFOTYPE_0002_SG 的合适方法中设置断点。
     

  • 中央编码部分
     

    • 业务集成构建器
       

      • 调试映射

        如果要从视图簇 VC_ECPAO_MAP(事务 SM34)中的定制调试映射或值转换,请在类 CL_ECPAO_IN_PERNR_TRANSFORM 的方法 TRANSLATE_EC_OBJ_TO_INFTY 中设置外部断点。

         

        图片



        (仔细检查是否将为您的用户设置外部断点。为此,转到事务 SE80 中的“实用程序”,点击“设置...”,确保“调试”标签中的用户是您的用户。) 变量 TEMPL_FLDS_TAB 包含需要处理的转换模板。实际映射在方法调用 CL_ECPAO_IN_VALUE_TRANSFORMER=>EC_VALUE_TRANSFORMATION 期间完成。

        在方法 TRANSLATE_EC_OBJ_TO_INFTY 中,将要映射的 SuccessFactors 中的数据包含在变量 EC_PAYLOAD_TAB 中。如果此数据不符合预期,则可能需要在类 CL_ECPAO_IN_EC_OBJECT 的方法 COOK_I_EC_OBJECT、COOK_II_EC_OBJECT 和 COOK_III_EC_OBJECT 中设置外部断点。这些方法在调用 TRANSLATE_EC_OBJ_TO_INFTY 之前调用,并且可以调整 SuccessFactors 中的数据。

      • 调试信息类型生成

        如果要在映射后调试信息类型处理,请在类 CL_ECPAO_IN_INFOTYPE_FACTORY 的方法 FINALIZE_INFOTYPES 中设置外部断点。
         

        图片

        此编码在映射完成并生成信息类型数据后执行。可通过检查表 A_INFOTYPE_REF_TAB 分析信息类型。其中包含要保存在数据库中的信息类型清单。有关详细信息,可以检查此表 A_INFOTYPE_REF_TAB 中的 INFOTYPE_REF 条目。它们包含类实例,其中实际信息类型数据包含在属性 A_INFOTYPE_TAB 的列 INFTY_PRIM_REF 中。

        请注意,这是调用业务加载项 ECPAO_IN_EXT_PROCESS_INFOTYPE 之前信息类型的状态。(在上一屏幕截图中显示的方法调用 WRITE_INFOTYPE_TO_BUFFER 期间进行 BAdI 调用。)在调用业务加载项后,可能需要在此时比较信息类型数据。因此,您可以确保您的业务加载项实施是否负责某些更改。
         

      • 找出更改的字段

        假设您要找出哪些信息类型字段与当前存储在数据库中的内容相比发生了哪些变化。如果遇到错误,如 RP 456(“根据控制记录更改最早回溯日期 xx 到 py 范围 yy,在最早回溯日期之前”),并且您不知道哪个更改实际上触发回溯计算,这可能很有用。在类 CL_ECPAO_IN_SERVICE_ITF_FACADE 的方法 COMPARE_STRUCTS 中设置断点。

         

        图片



        现在为变量 is_equal 设置观察点。当到达观察点时调试器停止时,字段符号 <infty> 包含信息类型,变量 ls_comp-name 包含已更改的字段。
         

      • 检查信息类型记录的开始或结束日期

        如果开始日期与 BEGDA 的非有效日期实体的映射值不同,则可能需要调试类 CL_ECPAO_IN_SERVICE_ITF_FACADE 的方法 SET_FINAL_DATES 并在此时检查逻辑。 

         

        图片


         

    • 历史复制

      类 CL_PAOCF_EC_EE_MDR_IMPL 的方法 PROCESS_EMPLOYEE 是生成信息类型的中心位置,因此是设置断点的理想选择。例如,如果您对地址信息类型 0006 感兴趣,请设置以下断点:

      图片

      可在类 CL_PAOCF_EC_EE_MDR_IMPL 的方法 PROCESS 中查看复制期间引发的潜在错误消息。它们包含在局部变量 LT_MESSAGES 中。

    • 点对点复制

      类 CL_HRSFEC_EE_MDR_MAIN 的方法 PROCESS_EMPLOYEE 是生成信息类型的中心位置。例如,如果您对个人信息信息类型 0002 感兴趣,请设置以下断点:

       

      图片


       

  • 调试工资发放范围状态的评估

    如果应复制属于状态为“已发布以进行更正”(事务 PA03)的工资核算范围的员工,则根据定制,复制将失败或成功(比较知识库文章 2504569)。如果行为不符合预期,您可以分别调试类 CL_ECPAO_IN_PERNR_OF_EMPLOYEE 的方法 CHECK_CORRECTION_PHASE、类 CL_PAOCF_EC_EE_MDR_IMPL 的方法 CHECK_CORRECTION_PHASE 或类 CL_HRSFEC_B2B_MESSAGE_LIST 的方法 ADD_ERROR_PAYROLL_CORRECTION,分别用于业务集成构建器、历史复制和点到点。

分析 SuccessFactors 中的数据

在准备步骤 5(业务集成生成器)、5(历史复制)或 2(PTP 复制)之后,现有 XML 文件,其中包含来自 SuccessFactors 的数据。(对于业务集成构建器,数据包含在 SourceSystemOutputBase64 标记中,但仍以 Base64 编码形式。可以使用标准的第三方软件对其进行解码。)

 

图片



在此,您可以查看与相应 SuccessFactors Portlet 相对应的不同标签。因此,如果使用国民身份证时遇到问题,最好先检查 national_id_card 标记的内容,以查看实际来自 SuccessFactors 的内容。

图片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值