메뉴 건너뛰기

SAP 한국 커뮤니티

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

노름마치 2007.12.10 21:42 조회 수 : 5504 추천: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 유용한 System 관리자 Transactions [5] sapjoy 2006.12.20 5572
306 CS_BOM [1] 꿀단지 2011.10.11 5571
305 Screen painter가 열리지 않는 경우, tip [2] darkangel 2008.10.21 5560
304 BAPI_PO_CHANGE 구매오더 변경시에 사용하세요 [7] 노름마치 2007.12.10 5557
303 제가 모은 팁들입니다. [62] file 풍운사랑 2007.09.07 5540
302 <img src=c.gif>Regular Expression Processing in ABAP[추천:e-abap][추천:유리선율] [5] file magicsy69 2010.11.24 5539
301 CALL FUNCTION 'STRING_REPLACE' [1] 꿀단지 2011.10.11 5526
300 BUFFER RESET 등 [2] sapjoy 2007.01.23 5506
» BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요. [4] 노름마치 2007.12.10 5504
298 인터널 테이블의 사이즈의 의미 [4] 양키(이경환) 2014.02.12 5496
297 System field 정리한 내용이에요 [4] 김창훈 2007.08.21 5487
296 SAP Tips. [7] file 박성민 2007.11.22 5484
295 외부 명령어 등록(EXTERNAL COMMAND) [2] sapjoy 2012.11.02 5478
294 스마트 폼에서 워드를 기본에디터로 설정하는 방법. [8] 혀나미 2008.01.30 5466
293 PDF 변환 소스 [5] sapjoy 2006.12.20 5439
292 간단팁1 : 텍스트 금액에서 천단위 구분자 ',' 삭제(개수 상관없음) [12] 윤훈태 2007.10.15 5432
291 영업오더 UserExit [5] 한해동안 2009.08.12 5427
290 REM PROCESS1 밤의화신 2013.09.11 5399
289 T-CODE 별 USER EXTI 찾는 프로그램 [15] sapjoy 2006.12.20 5395
288 ALPHA Conversion [4] sapjoy 2006.12.18 5384