메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요.

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

REPORT z_bapi_salesorder_create.


* Parameters
* Sales document type
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.
PARAMETERS: p_auart TYPE auart OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Sales organization
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Distribution channel
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Division.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.
PARAMETERS: p_spart TYPE spart OBLIGATORY.
SELECTION-SCREEN END OF LINE.


SKIP 1.


* Sold-to
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.
PARAMETERS: p_sold  TYPE kunnr OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Ship-to
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.
PARAMETERS: p_ship  TYPE kunnr OBLIGATORY.
SELECTION-SCREEN END OF LINE.


SKIP 1.


* Material
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.
PARAMETERS: p_matnr TYPE matnr   OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Quantity.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.
PARAMETERS: p_menge TYPE kwmeng  OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Plant
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.
PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
SELECTION-SCREEN END OF LINE.


* Data declarations.
DATA: v_vbeln            LIKE vbak-vbeln.
DATA: header             LIKE bapisdhead1.
DATA: headerx            LIKE bapisdhead1x.
DATA: item               LIKE bapisditem  OCCURS 0 WITH HEADER LINE.
DATA: itemx              LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner            LIKE bapipartnr  OCCURS 0 WITH HEADER LINE.
DATA: return             LIKE bapiret2    OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx   TYPE STANDARD TABLE OF bapischdlx
                         WITH HEADER LINE.
DATA: lt_schedules_in    TYPE STANDARD TABLE OF bapischdl
                         WITH HEADER LINE.


* Initialization.
INITIALIZATION.
v_text   = 'Order type'.
v_text1  = 'Sales Org'.
v_text2  = 'Distribution channel'.
v_text3  = 'Division'.
v_text4  = 'Sold-to'.
v_text5  = 'Ship-to'.
v_text6  = 'Material'.
v_text7  = 'Quantity'.
v_text9  = 'Plant'.


* Start-of-selection.
START-OF-SELECTION.


* Header data


* Sales document type
  header-doc_type = p_auart.
  headerx-doc_type = 'X'.


* Sales organization
  header-sales_org = p_vkorg.
  headerx-sales_org = 'X'.


* Distribution channel
  header-distr_chan  = p_vtweg.
  headerx-distr_chan = 'X'.


* Division
  header-division = p_spart.
  headerx-division = 'X'.


  headerx-updateflag = 'I'.


* Partner data
* Sold to
  partner-partn_role = 'AG'.
  partner-partn_numb = p_sold.
  APPEND partner.


* Ship to
  partner-partn_role = 'WE'.
  partner-partn_numb = p_ship.
  APPEND partner.


* ITEM DATA
  itemx-updateflag = 'I'.


* Line item number.
  item-itm_number = '000010'.
  itemx-itm_number = 'X'.


* Material
  item-material = p_matnr.
  itemx-material = 'X'.


* Plant
  item-plant    = p_plant.
  itemx-plant   = 'X'.


* Quantity
  item-target_qty = p_menge.
  itemx-target_qty = 'X'.


  APPEND item.
  APPEND itemx.


*   Fill schedule lines
  lt_schedules_in-itm_number = '000010'.
  lt_schedules_in-sched_line = '0001'.
  lt_schedules_in-req_qty    = p_menge.
  APPEND lt_schedules_in.


*   Fill schedule line flags
  lt_schedules_inx-itm_number  = '000010'.
  lt_schedules_inx-sched_line  = '0001'.
  lt_schedules_inx-updateflag  = 'X'.
  lt_schedules_inx-req_qty     = 'X'.
  APPEND lt_schedules_inx.


* Call the BAPI to create the sales order.
  CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
       EXPORTING
            sales_header_in     = header
            sales_header_inx    = headerx
       IMPORTING
            salesdocument_ex    = v_vbeln
       TABLES
            return              = return
            sales_items_in      = item
            sales_items_inx     = itemx
            sales_schedules_in  = lt_schedules_in
            sales_schedules_inx = lt_schedules_inx
            sales_partners      = partner.


* Check the return table.
  LOOP AT return WHERE type = 'E' OR type = 'A'.
    EXIT.
  ENDLOOP.


  IF sy-subrc = 0.


    WRITE: / 'Error in creating document'.


  ELSE.


* Commit the work.
    COMMIT WORK AND WAIT.


    WRITE: / 'Document ', v_vbeln, ' created'.


  ENDIF.

번호 제목 글쓴이 날짜 조회 수
307 SAP Tuning-실무 [11] file 대전희망 2008.06.20 3537
306 workflow - purchase order의 예 [2] file gauguin 2008.06.25 3675
305 <b>[완료]</b>sap netweaver 라이센스 문제... [4] 아밥초짜 2008.06.25 4545
304 튜닝자료.. [16] file 세인 2008.07.11 4767
303 클라이언트간 CTS로 데이타이관 [15] file 노름마치 2008.07.11 11094
302 레포트에서_파일_대화상자_띄우기 [3] file xcomedy 2008.07.19 4478
301 Number_Range_사용법 [13] file xcomedy 2008.07.19 3539
300 <b>[완료]</b>netweaver 설치중 오류log 원인 아시는분 좀 알려주세요 [1] 카즈키 2008.07.19 5264
299 테이블컨트롤에서 F4 값 변경시 다른 필드 값도 변경하기 F4IF_INT_TABLE_VALUE_REQUEST [1] 한해동안 2008.07.24 9421
298 <b>[완료]</b>New abap editor block selection 기능 아시는분... [11] file 숨어푸 2008.08.01 5039
297 Open SQL 문법 정리 [14] SAP질 중 2008.08.20 10850
296 abap email report source [7] file SAP질 중 2008.08.22 4706
295 [re] TABLE, DEIVERY CLASS 정보 테이블 궁그미 2008.09.02 4182
294 ABAP Program Tips v3 [13] file 2008.09.04 5827
293 여러 DATE 변환 TIP [9] file 푸른창공 2008.09.11 5061
292 ALV 버퍼 CLEAR 프로그램 [10] sapjoy 2008.09.25 7383
291 Abap에서 ftp command 를 실행시킬수 있는지 [1] 쿠도스 2008.10.09 4435
290 Screen painter가 열리지 않는 경우, tip [2] darkangel 2008.10.21 5565
289 ABAP FAQs [3] 해처리 2008.10.24 3991
288 Abap Eclipse Editor [5] file franticlion 2008.11.03 6168