메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_MATERIAL_SAVEDATA 자재마스터 생성시에 사용하세요.

노름마치 2007.12.10 21:36 조회 수 : 9249 추천:2

REPORT z_bapi_mat.
**********************************************************************
*                STRUCTURE  DECLARATIONS                             *
**********************************************************************


TABLES: bapimathead,  "Headerdata
        bapi_mara,    "Clientdata
        bapi_marax,   "Clientdatax
        bapi_marc,    "Plantdata
        bapi_marcx,   "Plantdatax
        bapi_makt,    "Material description
        bapiret2.     "Return messages


DATA:v_file TYPE string.



DATA:
  BEGIN OF lsmw_material_master,
    matnr(018) TYPE c,  "Material number
    mtart(004) TYPE c,  "Material type
    mbrsh(001) TYPE c,  "Industry sector
    werks(004) TYPE c,  "Plant
    maktx(040) TYPE c,  "Material description
    dismm(002) TYPE c,  "Extra Field Added In the Program as itsrequired
    meins(003) TYPE c,  "Base unit of measure
    matkl(009) TYPE c,  "Material group
    spart(002) TYPE c,  "Division
    labor(003) TYPE c,  "Lab/office
    prdha(018) TYPE c,  "Product hierarchy
    mstae(002) TYPE c,  "X-plant matl status
    mtpos_mara(004) TYPE c,  "Gen item cat group
    brgew(017) TYPE c,  "Gross weight
    gewei(003) TYPE c,  "Weight unit
    ntgew(017) TYPE c,  "Net weight
    groes(032) TYPE c,  "Size/Dimensions
    magrv(004) TYPE c,  "Matl grp pack matls
    bismt(018) TYPE c,  "Old material number
    wrkst(048) TYPE c,  "Basic material
    profl(003) TYPE c,  "DG indicator profile
    kzumw(001) TYPE c,  "Environmentally rlvt
    bstme(003) TYPE c,  "Order unit
    vabme(001) TYPE c,
    ekgrp(003) TYPE c,  "Purchasing group
    xchpf(001) TYPE c,  "Batch management
    ekwsl(004) TYPE c,  "Purchasing key value
    webaz(003) TYPE c,  "GR processing time
    mfrpn(040) TYPE c,  "Manufacturer part number
    mfrnr(010) TYPE c,  "Manufacturer number
    vprsv(001) TYPE c,  "Price control indicator
    stprs(015) TYPE c,  "Standard price
    bwprh(014) TYPE c,  "Commercial price1
    bklas(004) TYPE c,  "Valuation class
  END OF lsmw_material_master.



**********************************************************************
*                INTERNAL TABLE DECLARATIONS                         *
**********************************************************************


*to store the input data
DATA: BEGIN OF it_matmaster OCCURS 0.
        INCLUDE STRUCTURE lsmw_material_master.
DATA: END OF it_matmaster.


*for material description
DATA:BEGIN OF it_materialdesc OCCURS 0.
        INCLUDE STRUCTURE bapi_makt .
DATA:END OF it_materialdesc.


*to return messages
DATA:BEGIN OF it_return OCCURS 0.
        INCLUDE STRUCTURE bapiret2.
DATA:END OF it_return.


************************************************************************
*  SELECTION SCREEN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.


PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .


************************************************************************
* AT SELECTION SCREEN
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
      field_name    = 'P_FILE'
    IMPORTING
      file_name     = p_file.


**********************************************************************
*                TO UPLOAD THE DATA                                  *
**********************************************************************


START-OF-SELECTION.
  v_file = p_file.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = v_file
      filetype                = 'ASC'
      has_field_separator     = 'X'
    TABLES
      data_tab                = it_matmaster
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      OTHERS                  = 17.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


**********************************************************************
*                DATA POPULATIONS                                    *
**********************************************************************


  LOOP AT it_matmaster.
    bapimathead-material      = it_matmaster-matnr.
    bapimathead-ind_sector    = it_matmaster-mbrsh.
    bapimathead-matl_type     = it_matmaster-mtart.
    bapimathead-basic_view    = 'X'.
    bapimathead-purchase_view = 'X'.
    bapimathead-account_view  = 'X'.
    bapi_mara-matl_group      = it_matmaster-matkl.
    bapi_mara-old_mat_no      = it_matmaster-bismt.
    bapi_mara-base_uom        = it_matmaster-meins.
    bapi_mara-basic_matl      = it_matmaster-wrkst.
    bapi_mara-mfr_no          = it_matmaster-mfrnr.
    bapi_marax-matl_group     = 'X'.
    bapi_marax-old_mat_no     = 'X'.
    bapi_marax-base_uom       = 'X'.
    bapi_marax-basic_matl     = 'X'.
    bapi_marax-mfr_no         = 'X'.
    bapi_marc-plant           = it_matmaster-werks.
    bapi_marc-pur_group       = it_matmaster-ekgrp.
    bapi_marcx-plant          = it_matmaster-werks.
    bapi_marcx-pur_group      = 'X'.
    it_materialdesc-langu     = 'EN'.
    it_materialdesc-matl_desc = it_matmaster-maktx.
    APPEND it_materialdesc.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata            = bapimathead
        clientdata          = bapi_mara
        clientdatax         = bapi_marax
        plantdata           = bapi_marc
        plantdatax          = bapi_marcx
      IMPORTING
        return              = it_return
      TABLES
        materialdescription = it_materialdesc.


    WRITE:/    it_return-type,
           2   it_return-id,
           22  it_return-number,
           25  it_return-message.
  ENDLOOP.

번호 제목 글쓴이 날짜 조회 수
487 Effective_Code_Writing [3] file sapjoy 2007.04.18 2991
486 sap perforamnce check t-code list [2] sapjoy 2014.06.16 3042
485 Creating Custom Screen in XD01 [2] file 노름마치 2009.07.10 3055
484 Working with Substitution Exit [6] file 노름마치 2009.07.10 3064
483 Implementing Field Exit for the transaction MK01 [3] file 노름마치 2009.07.10 3150
482 Working with User-Exits for the transaction VA01 [3] file 노름마치 2009.07.10 3169
481 User Parameter 조회 펑션 [3] 양키(이경환) 2014.03.04 3176
480 Do and Dont's in ABAP Programming [5] file sapjoy 2007.04.18 3182
479 Creating Change Documents for Custom tables (Step-by-step procedure) Using SCDO [2] file 노름마치 2009.07.10 3194
478 jco_tutorial-ja_doo [2] file kk 2008.01.23 3197
477 Adding Custom Fields using EEWB Transaction [1] file 노름마치 2009.07.10 3217
476 BTE_Scenario on Business Transaction Events [7] file 노름마치 2009.07.10 3272
475 대용량 DATA 병렬 처리 샘플 프로그램 - Parallel Process [2] file moonical 2021.09.09 3285
474 Restrict users (sales persons) to view or change Sales order data - Using Enhancement framework [3] file 노름마치 2009.07.10 3297
473 BDC 수행시 COMMAND 명령어 sapjoy 2014.09.18 3300
472 SAP tips Journal - 6,7월 호 (2008) [9] file onefineday 2009.02.11 3303
471 Setting the screen elements as mandatory in the transaction DP95 using Enhancement Framework [2] file 노름마치 2009.07.10 3314
470 ALV TOOLBAR 메뉴 버튼을 올립니다. [6] file 블루보이 2013.06.26 3321
469 드롭다운 리스트 key값 조회하기 [4] file 아밥뽀 2014.09.21 3341
468 앞의 0으로 시작하는 문자 모두 지우기 sapjoy 2014.08.20 3349