메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_RESERVATION_CREATE1 MB21의 예약생성시 사용하세요.

노름마치 2007.12.10 21:42 조회 수 : 7605 추천:2


  DATA: ls_bapi_header    TYPE bapi2093_res_head.
  DATA: ls_bapi_items     TYPE bapi2093_res_item,
        ls_bapi_return    TYPE bapiret2.


  DATA: lt_bapi_items     TYPE bapi2093_res_item OCCURS 0 WITH HEADER LINE,
        lt_bapi_return    TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
        lt_bapi_pasegment TYPE bapi_profitability_segment OCCURS 0.


  DATA: ls_le169 LIKE zlet0169.


  DATA: l_testrun TYPE bapi2093_test VALUE space.



  ls_bapi_header-res_date  = sy-datum.        " 출고/이동 요청일
  ls_bapi_header-move_type = '309'.           " 이동유형


  ls_bapi_header-move_plant = g_werks.        " 입고될 플랜트
  ls_bapi_header-move_stloc = g_rgort.        " 입고될 저장위치


  LOOP AT gt_le169 INTO ls_le169.
    ls_bapi_items-material  = ls_le169-matnr. " 출고될 품목코드(입/출고 동일)
    ls_bapi_items-plant     = g_werks.        " 출고될 플랜트
    ls_bapi_items-stge_loc  = g_lgort.        " 출고될 저장위치
    ls_bapi_items-batch     = ls_le169-charg. " 출고자(출고될 뱃치번호)
    ls_bapi_items-gr_rcpt   = ls_le169-rharg. " 입고자(입고될 뱃치번호) => 입고시 입고뱃치로 활용
    ls_bapi_items-entry_qnt = ls_le169-erfmg. " 출고될 수량
    ls_bapi_items-entry_uom = ls_le169-erfme. " 출고될 수량단위
    ls_bapi_items-movement = 'X'.
    APPEND ls_bapi_items TO lt_bapi_items.
  ENDLOOP.


  CLEAR g_res_number.
  CALL FUNCTION 'BAPI_RESERVATION_CREATE1'
    EXPORTING
      reservationheader    = ls_bapi_header
      testrun              = l_testrun
    IMPORTING
      reservation          = g_res_number
    TABLES
      reservationitems     = lt_bapi_items
      profitabilitysegment = lt_bapi_pasegment
      return               = lt_bapi_return.


  IF NOT g_res_number IS INITIAL.
    LOOP AT gt_le169 INTO ls_le169.
      ls_le169-rsnum = g_res_number.
      ls_le169-erdat = sy-datum.
      ls_le169-erset = sy-uzeit.
      ls_le169-status = '1'.
      MODIFY gt_le169 FROM ls_le169 TRANSPORTING rsnum erdat erset status.
    ENDLOOP.


    INSERT zlet0169 FROM TABLE gt_le169.


    IF sy-subrc = 0.
      COMMIT WORK.
      MESSAGE s060(m7) WITH g_res_number.
      LEAVE TO SCREEN 0.
    ELSE.
      ROLLBACK WORK.
      MESSAGE s000 WITH '테이블 ZLET0169 업데이트중 오류가 발생했습니다.'.
    ENDIF.
  ELSE.


*"  에러를 화면에 보여주는 간단한 소스......
    DATA : ls_layout TYPE slis_layout_alv.
    DATA : l_repid   TYPE sy-repid.


    l_repid = sy-repid.
    ls_layout-colwidth_optimize = 'X'.


    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        is_layout        = ls_layout
        i_structure_name = 'BAPIRET2'
      TABLES
        t_outtab         = lt_bapi_return
      EXCEPTIONS
        program_error    = 1.
  ENDIF.



  SET PARAMETER ID 'RES' FIELD g_res_number.

번호 제목 글쓴이 날짜 조회 수
367 READ_TEXT 관련 [14] file 노름마치 2007.11.15 5177
366 Background Processing sapjoy 2007.11.20 3436
365 SUBQUERY 사용예 입니다. [1] 노름마치 2007.11.20 9556
364 SAP Tips. [7] file 박성민 2007.11.22 5484
363 스크린에서 리스트 박스의 값을 동적으로 생성하는 tip [1] sapjoy 2007.11.30 4801
362 문자열 자를 때 자르는 위치에 2BYTE문자가 있는지를 체크하는 방법입니다. [8] 꿈하루 2007.12.01 7065
361 abap refresh 함수 [2] 꿈하루 2007.12.03 6130
360 BAPI LIST 입니다. 참고하세요. [24] file 노름마치 2007.12.10 4964
359 BAPI_GOODSMVT_CREATE 입고/출고/재고이동시에 사용하세요. [5] 노름마치 2007.12.10 15100
358 BAPI_INCOMINGINVOICE_CREAE 송장처리시에 사용하세요. [1] 노름마치 2007.12.10 4535
357 BAPI_MATERIAL_AVAILABILITY 가용성체크시에 사용하세요. [1] 노름마치 2007.12.10 6302
356 BAPI_MATERIAL_SAVEDATA 자재마스터 생성시에 사용하세요. [1] 노름마치 2007.12.10 9249
355 BAPI_MESSAGE_GETDETAIL 작업결과에 대한 메세지는 이렇게도 보여줄수 있겠군요 [1] 노름마치 2007.12.10 4819
354 BAPI_PO_CHANGE 구매오더 변경시에 사용하세요 [7] 노름마치 2007.12.10 5557
353 BAPI_PO_CREATE1 구매오더 생성시에 사용하세요 [8] 노름마치 2007.12.10 9701
352 BAPI_PR_CREATE 구매요청 생성시에 사용하세요 [2] 노름마치 2007.12.10 23702
351 BAPI_PR_CREATE 구매요청 생성시에 사용하세요. 이렇게도 쓸 수 있군요. [1] 노름마치 2007.12.10 6678
» BAPI_RESERVATION_CREATE1 MB21의 예약생성시 사용하세요. [2] 노름마치 2007.12.10 7605
349 BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요. [4] 노름마치 2007.12.10 5504
348 ABAP TIP 정리(영문 60페이지) [31] file sapjoy 2008.01.04 4478