메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_MATERIAL_AVAILABILITY 가용성체크시에 사용하세요.

노름마치 2007.12.10 21:36 조회 수 : 6302 추천:3

 FUNCTION zle_pda_available_qty.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(I_WERKS) TYPE  WERKS_D
*"     REFERENCE(I_MATNR) TYPE  MATNR
*"  TABLES
*"      O_TAB STRUCTURE  ZLES0060 OPTIONAL
*"----------------------------------------------------------------------


  CHECK i_werks >< '' AND i_matnr >< ''.


*" 가용재고 추출용......................
  DATA: l_atp     LIKE bapicm61v-wkbst.
  DATA: it_wmdvex TYPE bapiwmdve OCCURS 0 WITH HEADER LINE,
        it_wmdvsx TYPE bapiwmdvs OCCURS 0 WITH HEADER LINE.


  DATA: l_tabix   LIKE sy-tabix.
  DATA: g_qty1    TYPE cdseq.
  DATA: g_qty2    TYPE cdseq.


  CLEAR   it_zles0060.
  REFRESH it_zles0060.


*" 현재재고 추출.......................
  SELECT mard~matnr AS matnr
         mard~labst AS stock_qty
         makt~maktx AS maktx
         mara~meins AS meins
         APPENDING CORRESPONDING FIELDS OF TABLE it_zles0060
         FROM mard INNER JOIN mara
           ON mard~mandt = mara~mandt
          AND mard~matnr = mara~matnr
        INNER JOIN makt
           ON mard~mandt = makt~mandt
          AND mard~matnr = makt~matnr
          AND makt~spras = sy-langu
        WHERE mard~werks = i_werks
          AND mard~lgort = '2000'
          AND mard~matnr = i_matnr
          AND mard~labst > 0.


  CHECK NOT it_zles0060[] IS INITIAL.


*" 가용재고 추출.......................
  CLEAR   : it_wmdvsx, it_wmdvex, l_atp.
  REFRESH : it_wmdvsx, it_wmdvex.


  LOOP AT it_zles0060.
    l_tabix = sy-tabix.


    CLEAR l_atp.
    CALL FUNCTION 'BAPI_MATERIAL_AVAILABILITY'
      EXPORTING
        plant      = i_werks             " 플랜트
        material   = it_zles0060-matnr   " 자재코드
        unit       = it_zles0060-meins   " 단위
        check_rule = 'RP'
        stge_loc   = '2000'              " 저장위치
      IMPORTING
        av_qty_plt = l_atp
      TABLES
        wmdvsx     = it_wmdvsx
        wmdvex     = it_wmdvex.


    IF sy-subrc IS INITIAL.
      READ TABLE it_wmdvex  INDEX 1.
      IF sy-subrc IS INITIAL.
        it_zles0060-avail_qty = it_wmdvex-com_qty. " 가용재고
      ENDIF.
    ENDIF.


    MODIFY it_zles0060 INDEX l_tabix.
  ENDLOOP.


*" 최종 테이블로 MOVE......................
  LOOP AT it_zles0060.
    MOVE-CORRESPONDING it_zles0060 TO o_tab.
    CLEAR : g_qty1, g_qty2.
    o_tab-avail_qty = g_qty1 = it_zles0060-avail_qty.
    o_tab-stock_qty = g_qty2 = it_zles0060-stock_qty.
    APPEND o_tab.
    CLEAR: o_tab, it_zles0060.
  ENDLOOP.


  FREE it_zles0060.


ENDFUNCTION.

번호 제목 글쓴이 날짜 조회 수
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
» 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
350 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