ABAP

장비번호(Equipment Number)로 DO 정보찾기

프라임콩 2025. 3. 7. 17:19

1. RFC import parameter로 EQUNR을 받음

2. EQUNR로 LIKP-WADAT_IST ( Actual GI Date ) 찾기


1. EQUNR로 OBKNR 값 찾기

- OBJK(Plant Maintenance Object List)-OBKNR

 

2. OBKNR로 DO 값 찾기

- SER01(Document Header for Serial Numbers for Delivery)-LIEF_NR

 

3. DO로 Actual GI date 찾기

- LIKP-WADAT_IST 

 

   " get Object list number
    SELECT obknr equnr
      INTO TABLE lt_objk
      FROM objk
       FOR ALL ENTRIES IN lt_equi
     WHERE equnr = lt_equi-equnr
       AND taser = 'SER01'.

    DELETE ADJACENT DUPLICATES FROM lt_objk COMPARING ALL FIELDS.
    SORT lt_objk BY obknr.

    " get DO
    SELECT lief_nr obknr
      INTO CORRESPONDING FIELDS OF TABLE lt_lief_nr
      FROM ser01
       FOR ALL ENTRIES IN lt_objk
     WHERE obknr = lt_objk-obknr.

    DELETE ADJACENT DUPLICATES FROM lt_lief_nr COMPARING ALL FIELDS.
    SORT lt_lief_nr BY lief_nr.

    " get Actual GI date
    SELECT vbeln wadat_ist
      FROM likp
      INTO CORRESPONDING FIELDS OF TABLE lt_likp
       FOR ALL ENTRIES IN lt_lief_nr
     WHERE vbeln = lt_lief_nr-lief_nr.

    SORT lt_likp BY vbeln.

    LOOP AT lt_lief_nr INTO ls_lief_nr.
      CLEAR ls_objk.
      READ TABLE lt_objk INTO ls_objk WITH KEY obknr = ls_lief_nr-obknr
                                      BINARY SEARCH.
      IF sy-subrc = 0.
        ls_lief_nr-equnr = ls_objk-equnr.

        CLEAR ls_likp.
        READ TABLE lt_likp INTO ls_likp WITH KEY vbeln = ls_lief_nr-lief_nr
                                        BINARY SEARCH.
        IF sy-subrc = 0.
          ls_likp-equnr = ls_lief_nr-equnr.
          "동일한 DO의 equnr을 lt_likp-equnr에 넣어줌.
          MODIFY lt_likp FROM ls_likp TRANSPORTING equnr WHERE vbeln = ls_lief_nr-lief_nr.
        ENDIF.
      ENDIF.
    ENDLOOP.

    SORT lt_likp BY equnr.

 

**CRM I/F 개발 플젝중에 정리함.

**회사마다 세팅이 달라서 다를 수 있음.