HCM Import danych IT40 - przesunięcie notatki w stosunku do wpisu

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
ODPOWIEDZ
emil
Posty: 133
Rejestracja: pt gru 27, 2019 11:02 am
Has thanked: 29 times
Been thanked: 42 times

HCM Import danych IT40 - przesunięcie notatki w stosunku do wpisu

Post autor: emil »

Staram się zaimportować do IT40 dane korzystając z poniższego kodu:

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.
Kompletnie nie rozumiem, dlaczego SAP dokonuje swego rodzaju przesunięcia notatki w stosunku do wpisu w IT.
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:
it40_all.png
it40_all.png (9.61 KiB) Przejrzano 760 razy
...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).
it40_1-4.png
it40_1-4.png (59.79 KiB) Przejrzano 760 razy
Skąd takie przesunięcie?
emil
Posty: 133
Rejestracja: pt gru 27, 2019 11:02 am
Has thanked: 29 times
Been thanked: 42 times

Re: HCM Import danych IT40 - przesunięcie notatki w stosunku do wpisu

Post autor: emil »

Dobra, całkiem bezsensownie zabrałem się za temat, próbując borować zęba od strony tyłka.
Prościej było całość importu oprzeć na Batch Inputach.
Temat do zamknięcia.
ODPOWIEDZ