SuccessFactors OData API purgeType = full无法正常工作。 如何替换EmpEmployment/EmpJob实体

2020-09-06 17:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在系统中有一个员工,我正在尝试删除/替换其EmpEmployment和EmpJob信息。 雇员记录具有开始日期和结束日期-因为该雇员被任命。

当我尝试更改此记录时,请执行以下操作:

我正在呼叫网址:

 https://api4preview.sapsf.com:443/odata/v2/upsert?purgeType=full
 内容类型为application/atom + xml 
 <?xml版本=" 1.0"编码=" utf-8"?>
 <提要
     xmlns =" http://www.w3.org/2005/Atom"
     xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
     xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base =" https://api4preview.sapsf.com:443/odata/v2/">
     就业
     <条目>
          https://api4preview.sapsf.com:443/odata/v2/EmpEmployment(personIdExternal ='810202',userId ='810202')
         
             
                  810202 
                  810202 
                  2018-04-01T00:00:00 
                  2018-04-01T00:00:00 
                  2018-04-01T00:00:00 
                  26121 
                  2018-04-02T00:00:00 
             
         
     
 
 

我收到错误消息-开始日期不能大于结束日期。

 <?xml版本=" 1.0"编码=" utf-8"?>
 <提要
     xmlns =" http://www.w3.org/2005/Atom"
     xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
     xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices">
     <条目>
         
             
                  EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202 
                 错误
                  
                 开始日期不能大于结束日期。
  失败的记录信息:{EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202,EmpEmployment/startDate = 2018-04-01T00:00:00.000-04:00,EmpEmployment/benefitsEligibilityStartDate = 2018-04-01T00:00:00.000-04  :00,EmpEmployment/originalStartDate = 2018-04-01T00:00:00.000-04:00,EmpEmployment/customString7 = 26121,EmpEmployment/seniorityDate = 2018-04-02T00:00:00.000-04:00}。
   关键EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202,索引为0 
                  0 
                  500 
                  
             
         
     
 
 

与雇员记录中的开始日期和结束日期相比,我要传递的是将来的开始日期-但我仍然遇到此错误。 我预计SuccessFactors API会清除此EmpEmployment记录,并使用purgeType = full选项添加一个新记录,但这似乎没有做任何事情。

以下是SuccessFactors Data API帮助的文档:

 1.14.5 Upsert的处理参数


 Employee Central Upsert API使用参数支持完全清除和增量更新。 如果未提供任何参数,则系统将检查要更新的实体是否支持增量更新。 如果是这样,将执行增量更新。 否则,系统将对记录进行完全清除。


 1.14.5.1完全清除
 如果将处理参数设置为"完全清除",则当
 执行upsert操作。 然后使用有效负载中指定的数据创建一个新记录。 在SOAP中,
 purgeType指定如下:
 
 
  清除类型
  
  

 在OData中,通过URL参数指定purgeType。 典型的请求如下所示:
 odata/v2/upsert?purgeType = full


 

我确实有EmpJob记录-与EmpEmployment记录相关的雇用和离职事件,所以我想知道这是否是问题。

基本上,我需要删除/替换EmpEmployment和EmpJob记录,以反映新的开始日期和新的终止日期。

任何帮助将不胜感激。

谢谢

周杰伦

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在系统中有一个员工,我正在尝试删除/替换其EmpEmployment和EmpJob信息。 雇员记录具有开始日期和结束日期-因为该雇员被任命。

当我尝试更改此记录时,请执行以下操作:

我正在呼叫网址:

 https://api4preview.sapsf.com:443/odata/v2/upsert?purgeType=full
 内容类型为application/atom + xml 
 <?xml版本=" 1.0"编码=" utf-8"?>
 <提要
     xmlns =" http://www.w3.org/2005/Atom"
     xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
     xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base =" https://api4preview.sapsf.com:443/odata/v2/">
     就业
     <条目>
          https://api4preview.sapsf.com:443/odata/v2/EmpEmployment(personIdExternal ='810202',userId ='810202')
         
             
                  810202 
                  810202 
                  2018-04-01T00:00:00 
                  2018-04-01T00:00:00 
                  2018-04-01T00:00:00 
                  26121 
                  2018-04-02T00:00:00 
             
         
     
 
 

我收到错误消息-开始日期不能大于结束日期。

 <?xml版本=" 1.0"编码=" utf-8"?>
 <提要
     xmlns =" http://www.w3.org/2005/Atom"
     xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
     xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices">
     <条目>
         
             
                  EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202 
                 错误
                  
                 开始日期不能大于结束日期。
  失败的记录信息:{EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202,EmpEmployment/startDate = 2018-04-01T00:00:00.000-04:00,EmpEmployment/benefitsEligibilityStartDate = 2018-04-01T00:00:00.000-04  :00,EmpEmployment/originalStartDate = 2018-04-01T00:00:00.000-04:00,EmpEmployment/customString7 = 26121,EmpEmployment/seniorityDate = 2018-04-02T00:00:00.000-04:00}。
   关键EmpEmployment/personIdExternal = 810202,EmpEmployment/userId = 810202,索引为0 
                  0 
                  500 
                  
             
         
     
 
 

与雇员记录中的开始日期和结束日期相比,我要传递的是将来的开始日期-但我仍然遇到此错误。 我预计SuccessFactors API会清除此EmpEmployment记录,并使用purgeType = full选项添加一个新记录,但这似乎没有做任何事情。

以下是SuccessFactors Data API帮助的文档:

 1.14.5 Upsert的处理参数


 Employee Central Upsert API使用参数支持完全清除和增量更新。 如果未提供任何参数,则系统将检查要更新的实体是否支持增量更新。 如果是这样,将执行增量更新。 否则,系统将对记录进行完全清除。


 1.14.5.1完全清除
 如果将处理参数设置为"完全清除",则当
 执行upsert操作。 然后使用有效负载中指定的数据创建一个新记录。 在SOAP中,
 purgeType指定如下:
 
 
  清除类型
  
  

 在OData中,通过URL参数指定purgeType。 典型的请求如下所示:
 odata/v2/upsert?purgeType = full


 

我确实有EmpJob记录-与EmpEmployment记录相关的雇用和离职事件,所以我想知道这是否是问题。

基本上,我需要删除/替换EmpEmployment和EmpJob记录,以反映新的开始日期和新的终止日期。

任何帮助将不胜感激。

谢谢

周杰伦

付费偷看设置
发送
2条回答
亦是此间程序员
1楼-- · 2020-09-06 18:26

嗨,这个问题解决了吗? 在用现有的personid雇用员工时,我也面临着同样的问题。

ZJXianG
2楼-- · 2020-09-06 18:14

您好,我也在寻找具有相同PersonnelNumber的Rehire Employee的解决方案,当我这样做时,会收到上述帖子中所述的错误消息。

在这里期待答案。

一周热门 更多>