HR_INFOTYPE_OPERATION EDQ操作找不到已读取的记录

2020-08-27 23:08发布

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

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


嗨,

我正在尝试锁定现有的信息类型0014记录。 我使用HR_READ_INFOTYPE读取记录,然后将其直接传递给HR_INFOTYPE_OPERATION,操作为'EDQ',Dialog_mode ='1'并且Nocommit ='X',并且出现错误"在选定的时间段内没有存储0014的数据" ,因此永远不会调用COMMIT WORK。 代码看起来像这样。

有什么想法会出问题吗?

数据:p0014的lt_0014类型表,
         ls_return TYPE bapireturn1。

   调用功能" HR_PSBUFFER_INITIALIZE"。

   通话功能'HR_READ_INFOTYPE'
     出口
       Pernr = is_p9050-pernr
       infty ='0014'
       begda = is_p9050-begda
       endda = is_p9050-endda
     桌子
       infty_tab = lt_0014
     例外情况
       infty_not_found = 1
       其他= 2。

   检查sy-subrc EQ 0。
   删除lt_0014在endda NE gc_endda处。
   中频线(lt_0014)GT 0 AND
      line_exists(lt_0014 [lgart ='5504'
                            endda = gc_endda])。

       DATA(ls_0014)= lt_0014 [lgart ='5504'
                                endda = gc_endda]。

       通话功能" HR_INFOTYPE_OPERATION"
         出口
           infty = ls_0014-infty
           数= ls_0014-pernr
           有效性开始= ls_0014-begda
           有效性结束= ls_0014-endda
           记录= ls_0014
           操作='EDQ'
           dialog_mode ='1'
           nocommit = abap_true
         输入
           return = ls_return。
     如果ls_return是INITIAL。
       提交工作并等待。
     万一。
   万一。
 

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

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


嗨,

我正在尝试锁定现有的信息类型0014记录。 我使用HR_READ_INFOTYPE读取记录,然后将其直接传递给HR_INFOTYPE_OPERATION,操作为'EDQ',Dialog_mode ='1'并且Nocommit ='X',并且出现错误"在选定的时间段内没有存储0014的数据" ,因此永远不会调用COMMIT WORK。 代码看起来像这样。

有什么想法会出问题吗?

数据:p0014的lt_0014类型表,
         ls_return TYPE bapireturn1。

   调用功能" HR_PSBUFFER_INITIALIZE"。

   通话功能'HR_READ_INFOTYPE'
     出口
       Pernr = is_p9050-pernr
       infty ='0014'
       begda = is_p9050-begda
       endda = is_p9050-endda
     桌子
       infty_tab = lt_0014
     例外情况
       infty_not_found = 1
       其他= 2。

   检查sy-subrc EQ 0。
   删除lt_0014在endda NE gc_endda处。
   中频线(lt_0014)GT 0 AND
      line_exists(lt_0014 [lgart ='5504'
                            endda = gc_endda])。

       DATA(ls_0014)= lt_0014 [lgart ='5504'
                                endda = gc_endda]。

       通话功能" HR_INFOTYPE_OPERATION"
         出口
           infty = ls_0014-infty
           数= ls_0014-pernr
           有效性开始= ls_0014-begda
           有效性结束= ls_0014-endda
           记录= ls_0014
           操作='EDQ'
           dialog_mode ='1'
           nocommit = abap_true
         输入
           return = ls_return。
     如果ls_return是INITIAL。
       提交工作并等待。
     万一。
   万一。
 
付费偷看设置
发送
2条回答
野沐沐
1楼 · 2020-08-27 23:48.采纳回答

嗨,

尝试指定完整键

在使用HR_INFOTYPE_OPERATION更新特定记录时,我将始终指定完整键,这样您就可以确定正在更新 正确的记录。

bg

打个大熊猫
2楼-- · 2020-08-28 00:03

感谢布伦登。 就像魅力一样。

我想知道为什么仅对于EDQ才需要完整的密钥,而对于其他操作(INS,MOD,COP,DEL),我只剩下我在OP中提到的密钥了。

一周热门 更多>