Kod: Zaznacz cały
*&---------------------------------------------------------------------*
*& Report Z_IMP_INFOTYPE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_IMP_INFOTYPE_40.
"https://answers.sap.com/questions/5480165/how-to-update-infotype-40-data.html
TABLES: rp50m,pcl1,pcl2.
INFOTYPES: 0040.
DATA return1 TYPE bapireturn1.
INCLUDE: rpc1tx00. "Definition Cluster TX
INCLUDE: rpppxd00. "Buffer-Definition (I)
DATA: BEGIN OF COMMON PART buffer.
INCLUDE: rpppxd10. "Buffer-Definition (II)
DATA: END OF COMMON PART buffer.
INCLUDE: rpppxm00. "Buffer-Subroutines
START-OF-SELECTION.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
number = '128'
IMPORTING
return = return1.
IF return1 IS INITIAL.
p0040-pernr = '128'.
p0040-infty = '0040'.
p0040-subty = '03'.
p0040-begda = '20090101'.
p0040-endda = '20091231'.
p0040-leihg = '03'.
p0040-anzkl = '1'.
p0040-zeinh = '020'. "Pieces
p0040-lobnr = '4'.
p0040-itxex = 'X'.
rp50m-text1 = 'Objects on Loan Infotype working 4'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0040'
number = '128'
validityend = '01012009'
validitybegin = '31122009'
record = p0040
operation = 'INS'
dialog_mode = '0'
IMPORTING
return = return1.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = '128'
IMPORTING
return = return1.
ENDIF.
PERFORM update_cluster.
*&---------------------------------------------------------------------*
*& Form update_cluster
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM update_cluster.
CLEAR tx-key.
MOVE-CORRESPONDING p0040 TO tx-key.
MOVE rp50m-text1 TO ptext-line.
APPEND ptext.
EXPORT text-version
ptext
TO DATABASE pcl1(tx) ID tx-key.
IF sy-subrc = 0.
WRITE: / 'Cluster TX was updated successfully'(001).
ENDIF.
ENDFORM.
Ale po kolei:
uruchamiam program z z wartościami
p0040-lobnr = '1'.
(...)
rp50m-text1 = 'Objects on Loan Infotype working 1'.
program się wykonuje, zmienam wartości na
p0040-lobnr = '2'.
(...)
rp50m-text1 = 'Objects on Loan Infotype working 2'.
...i tak cztery razy. Specjalnie wraz z liczbą w notatce, zmieniam liczbę (nr) wypożyczonej rzeczy, by pokazać, na czym polega problem.
Gdy zerkam w IT, widzę co następuje: ...czyli dodały się wszystkie cztery wpisy.
Jednak w momencie gdy zerkam w ich szczegóły widzę, że notatki zostały nieprawidłowo powiązane w kolejnymi wpisami (patrz: nr wypożyczonej rzeczy -> cyfra w notatce).
Skąd takie przesunięcie?