Abap HRIQ\u更新\u信息不更新hrp1001

Abap HRIQ\u更新\u信息不更新hrp1001,abap,sap-hr,Abap,Sap Hr,HRIQ_UPDATE_INFTY返回sy subrc=0。但它实际上并没有对其进行任何更改。部分源代码: DATA: lt_single_1001 TYPE STANDARD TABLE OF p1001 WITH HEADER LINE, lt_1001 TYPE STANDARD TABLE OF hrp1001 WITH HEADER LINE. SELECT * FROM hrp1001 INTO TABLE lt_1001 WHERE obji

HRIQ_UPDATE_INFTY返回sy subrc=0。但它实际上并没有对其进行任何更改。部分源代码:

DATA:
lt_single_1001   TYPE STANDARD TABLE OF p1001 WITH HEADER LINE, 
lt_1001          TYPE STANDARD TABLE OF hrp1001 WITH HEADER LINE.

SELECT * FROM hrp1001 INTO TABLE lt_1001 WHERE
       objid = <studies>-cs_objid AND sobid = lv_major_id.

move-corresponding lt_1001 to lt_single_1001.

CALL FUNCTION 'HRIQ_UPDATE_INFTY'
  EXPORTING
      vtask                   = 'D'
  TABLES
      innnn                   = lt_single_1001
  EXCEPTIONS
      error_during_update     = 1
      no_authorization        = 2
      relation_not_reversible = 3
      corr_exit               = 4
      OTHERS                  = 5.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.
ELSE.
  NEW-LINE NO-SCROLLING.
  WRITE: 'Update: '.
  WRITE: lt_1001-objid. "TODO: write proper information
  write: lt_single_1001-begda.
  write: lv_begda.
  write: lt_single_1001-endda.
  write: lv_endda.
ENDIF.

我不确定,但请尝试提供导出参数commit_flg='X'

如果我没有弄错的话,您正在将表lt_1001的头的值移动到表lt_single_1001的头。您至少应该附加它,否则表是空的。此外,P1001与HRP1001不同:应填写一个INFTY成员: 对于以下行:

   move-corresponding It_1001 to It_single_1001.
我会做类似的事情

   loop at It_1001.
      " move header of It_1001 to header of It_single_1001
      move-corresponding It_1001 to It_single_1001.
      " append the infotype information
      It_single_1001-infty = '1001'.
      " append the header to the table
      append lt_single_1001.
   endloop.
   " call to the function...
显示器也一样:您使用的是它的标题\u 1001。您还应该在it_single_1001上循环以显示刚刚发送到初始函数的数据

问候 纪尧姆