CAFE

ABAP/4 Tip

[함수]자재 마스터 생성& 수정 BAPI(BAPI_MATERIAL_SAVEDATA)

작성자무정이|작성시간10.10.12|조회수7,738 목록 댓글 0

참고하실 내용은 자재 마스터의 각 view들에 대하여 설정하는 내용들을 담았지만 각 프로젝트 마다 상이하리라 봅니다.

하지만 필드들을 참조하면 모든 것들이 다 이해 가능하리라고 봅니다.

본 내용은 예측, 일반 플랜트 데이터/저장소 1 , 일반 플랜트 데이터/저장소 2, 플랜트 재고, 저장 위치 재고 view는 제외 되었습니다.

 

** BAPI 함수 호출부분 **

 

  call function 'BAPI_MATERIAL_SAVEDATA'
    exporting
      headdata             = Gs_headdata
      clientdata           = Gs_clientdata
      clientdatax          = Gs_clientdatax
      plantdata            = Gs_plantdata
      plantdatax           = Gs_plantdatax
*      forecastparameters   = s_forecast
*      forecastparametersx  = s_forecastx
      PLANNINGDATA         = GS_PLANNINGDATA
      PLANNINGDATAX        = GS_PLANNINGDATAX
      storagelocationdata  = Gs_stoloc
      storagelocationdatax = Gs_stolocx
      valuationdata        = Gs_valclass
      valuationdatax       = Gs_valclassx
*      warehousenumberdata  = s_whno
*      warehousenumberdatax = s_whnox
      salesdata            = Gs_sales
      salesdatax           = Gs_salesx
      storagetypedata      = Gs_stotyp
      storagetypedatax     = Gs_stotypx
    importing
      return               = Gs_return
    tables
      materialdescription  = GT_matdesc
      TAXCLASSIFICATIONS   = GT_taxclass
      unitsofmeasure       = GT_uom
      unitsofmeasurex      = GT_uomx   .

** 데이타 처리 부분..

** 기본 VIEW

  Gs_headdata-material       = GT_REC-MATNR.
  Gs_headdata-ind_sector     = 'M'.
  Gs_headdata-matl_type      = GT_REC-MTART.

  Gs_headdata-basic_view       = 'X'.

  Gs_clientdatax-base_uom      = 'X'.
  Gs_clientdatax-matl_group    = 'X'.
  Gs_clientdatax-division      = 'X'.
  Gs_clientdatax-item_cat      = 'X'.
  Gs_clientdataX-DSN_OFFICE    = 'X'.

  Gs_clientdata-matl_group     = GT_REC-MATKL.    "자재그룹
  Gs_clientdata-division       = GT_REC-SPART.    "제품군
  Gs_clientdata-base_uom       = GT_REC-MEINS.    "기본단위
  Gs_clientdata-item_cat       = GT_REC-MTPOS.    "일반품목범주
  Gs_clientdata-DSN_OFFICE     = GT_REC-LABOR.    "실험실/설계실

  PERFORM f_fill_bapi_uomdata .         " 추가 데이타 처리 부분
  PERFORM f_fill_bapi_matdescdata.    " 자재 DESCRIPTION 처리 부분(언어별)

 

  PERFORM add_sales.                      " 영업view처리 부분

  PERFORM add_purchasing.              " 구매view처리 부분

  PERFORM add_mrp.                        " MRP view처리 부분

  PERFORM add_shcdule.                  " 작업일정 view처리 부분

  PERFORM add_fi.                            " 회계view 처리부분

  PERFORM add_co.                          " 원가계산 view처리부분


*&---------------------------------------------------------------------*
*&      Form  ADD_CO
*&---------------------------------------------------------------------*
*       원가 VIEW
*----------------------------------------------------------------------*
form ADD_CO .
  Gs_headdata-cost_view      = 'X'.
  Gs_headdata-account_view   = 'X'.

*  GS_SALESX-MAT_PR_GRP       = 'X'.

  GS_VALCLASSX-VAL_AREA      = GT_REC-WERKS.
  GS_VALCLASSX-VAL_CLASS     = 'X'.
  GS_VALCLASSX-PRICE_CTRL    = 'X'.
  GS_VALCLASSX-PRICE_UNIT    = 'X'.
  CASE GT_REC-VPRSV.
    WHEN 'V'.  GS_VALCLASSX-MOVING_PR = 'X'.
    WHEN 'S'.  GS_VALCLASSX-STD_PRICE = 'X'.
  ENDCASE.
  GS_VALCLASSX-ORIG_GROUP    = 'X'.
  GS_VALCLASSX-ML_ACTIVE     = 'X'.
  GS_VALCLASSX-ML_SETTLE     = 'X'.
  GS_VALCLASSX-PLND_PRICE    = 'X'.
  GS_VALCLASSX-PLNDPRICE1    = 'X'.
  GS_VALCLASSX-PLNDPRDATE1   = 'X'.
  GS_VALCLASSX-QTY_STRUCT    = 'X'.

  GS_PLANTDATAX-NO_COSTING   = 'X'.
  GS_PLANTDATAX-VARIANCE_KEY = 'X'.


*  GS_SALES-MAT_PR_GRP        = GT_REC-mlast.      "가격결정

  GS_VALCLASS-VAL_AREA       = GT_REC-WERKS.      "평가영역
  GS_VALCLASS-VAL_CLASS      = GT_REC-BKLAS.      "평가클래스
  GS_VALCLASS-PRICE_CTRL     = GT_REC-vprsv.      "가격관리 결정(S/V)
  GS_VALCLASS-ML_ACTIVE      = 'X'.               "기본값...(DEFAULT)
  GS_VALCLASS-ML_SETTLE      = GT_REC-MLAST.      "유형에 따른 값.(
  GS_VALCLASS-PRICE_UNIT     = GT_REC-PEINH.      "가격단위
  PACK GT_REC-PEINH TO GS_VALCLASS-PRICE_UNIT.

  CLEAR: GS_VALCLASS-PLND_PRICE    .
  GS_VALCLASS-PLNDPRICE1     = GT_REC-ZPLP1.      "미래가격 금액
  CONCATENATE SY-DATUM(4) '0101' INTO GT_REC-ZPLD1.

  GS_VALCLASS-PLNDPRDATE1    = GT_REC-ZPLD1.      "미래가격 일자

  CASE GT_REC-VPRSV.
    WHEN 'V'.  GS_VALCLASS-MOVING_PR = GT_REC-pvprs.
    WHEN 'S'.  GS_VALCLASS-STD_PRICE = GT_REC-STprs.
  ENDCASE.
  GS_VALCLASS-ORIG_GROUP     = GT_REC-hrkft.      "오리진 그룹
  GS_VALCLASS-QTY_STRUCT     = GT_REC-EKALR.      "양적구조로 원가계산한 자재

  GS_PLANTDATA-NO_COSTING    = GT_REC-NCOST.      "원가계산 금지
  GS_PLANTDATA-VARIANCE_KEY  = GT_REC-AWSLS.      "원가 차이키
endform.                    " ADD_CO

*&---------------------------------------------------------------------*
*&      Form  ADD_FI
*&---------------------------------------------------------------------*
*       회계 VIEW
*----------------------------------------------------------------------*
form ADD_FI .
  Gs_headdata-cost_view      = 'X'.
  Gs_headdata-account_view   = 'X'.

*  GS_SALESX-MAT_PR_GRP       = 'X'.

  GS_VALCLASSX-VAL_AREA      = GT_REC-WERKS.
  GS_VALCLASSX-VAL_CLASS     = 'X'.
  GS_VALCLASSX-PRICE_CTRL    = 'X'.
  GS_VALCLASSX-PRICE_UNIT    = 'X'.
  CASE GT_REC-VPRSV.
    WHEN 'V'.  GS_VALCLASSX-MOVING_PR = 'X'.
    WHEN 'S'.  GS_VALCLASSX-STD_PRICE = 'X'.
  ENDCASE.
  GS_VALCLASSX-ORIG_GROUP    = 'X'.
  GS_VALCLASSX-ML_ACTIVE     = 'X'.
  GS_VALCLASSX-ML_SETTLE     = 'X'.

  GS_PLANTDATAX-NO_COSTING   = 'X'.
  GS_PLANTDATAX-VARIANCE_KEY = 'X'.


*  GS_SALES-MAT_PR_GRP        = GT_REC-mlast.      "가격결정

  GS_VALCLASS-VAL_AREA       = GT_REC-WERKS.      "평가영역
  GS_VALCLASS-VAL_CLASS      = GT_REC-BKLAS.      "평가클래스
  GS_VALCLASS-PRICE_CTRL     = GT_REC-vprsv.      "가격관리 결정(S/V)
  GS_VALCLASS-ML_ACTIVE      = 'X'.               "기본값...(DEFAULT)
  GS_VALCLASS-ML_SETTLE      = GT_REC-MLAST.      "유형에 따른 값.(
  GS_VALCLASS-PRICE_UNIT     = GT_REC-PEINH.      "가격단위
  PACK GT_REC-PEINH TO GS_VALCLASS-PRICE_UNIT.

  CASE GT_REC-VPRSV.
    WHEN 'V'.  GS_VALCLASS-MOVING_PR = GT_REC-pvprs.
    WHEN 'S'.  GS_VALCLASS-STD_PRICE = GT_REC-STprs.
  ENDCASE.
  GS_VALCLASS-ORIG_GROUP     = GT_REC-hrkft.      "오리진 그룹

  GS_PLANTDATA-NO_COSTING    = GT_REC-NCOST.      "원가계산 금지
  GS_PLANTDATA-VARIANCE_KEY  = GT_REC-AWSLS.      "원가 차이키
endform.                    " ADD_FI

*&---------------------------------------------------------------------*
*&      Form  ADD_SCHEDULE
*&---------------------------------------------------------------------*
*       작업일정 VIEW
*----------------------------------------------------------------------*
form ADD_SCHEDULE .
  GS_HEADDATA-WORK_SCHED_VIEW = 'X'.
  GS_PLANNINGDATA-PLANT       = GT_REC-WERKS.
  GS_PLANNINGDATAX-PLANT      = GT_REC-WERKS.
endform.                    " ADD_SCHEDULE

*&---------------------------------------------------------------------*
*&      Form  ADD_MRP
*&---------------------------------------------------------------------*
*  <--  p2        text
*----------------------------------------------------------------------*
form ADD_MRP .
  Gs_headdata-mrp_view         = 'X'.

  GS_PLANTDATAX-PLANT          = GT_REC-WERKS.
  GS_PLANTDATAX-PL_TI_FNCE     = 'X'.
  Gs_plantdatax-mrp_type       = 'X'.
  Gs_plantdatax-mrp_ctrler     = 'X'.
  Gs_plantdatax-lotsizekey     = 'X'.
  Gs_plantdatax-proc_type      = 'X'.
  GS_PLANTDATAX-SPPROCTYPE     = 'X'.
  GS_PLANTDATAX-ISS_ST_LOC     = 'X'.
  Gs_plantdatax-sm_key         = 'X'.
  GS_PLANTDATAX-PLAN_STRGP     = 'X'.
  GS_PLANTDATAX-ALT_BOM_ID     = 'X'.
  GS_PLANTDATAX-DEP_REQ_ID     = 'X'.
  GS_pLANTDATAX-REP_MANUF      = 'X'.
  GS_PLANTDATAX-REPMANPROF     = 'X'.
  GS_PLANTDATAX-ASSY_SCRAP     = 'X'.
  GS_PLANTDATAX-QUOTAUSAGE     = 'X'.
  GS_PLANTDATAX-MIN_SAFETY_STK = 'X'.
  GS_PLANTDATAX-COMP_SCRAP     = 'X'.
  Gs_plantdatax-period_ind     = 'X'.
  GS_PLANTDATAX-AVAILCHECK     = 'X'.
  GS_PLANTDATAX-PERIOD_IND     = 'X'.

  GS_PLANTDATA-PLANT           = GT_REC-WERKS.
  Gs_plantdata-mrp_type        = GT_REC-DISMM .   "MRP유형
  GS_PLANTDATA-PL_TI_FNCE      = GT_REC-FXHOR .   "계획타임펜스
  Gs_plantdata-mrp_ctrler      = GT_REC-DISPO.    "MRP관리자
  GS_PLANTDATA-AVAILCHECK      = GT_REC-mtvfp.  "가용성점검
  Gs_plantdata-lotsizekey      = GT_REC-DISLS.    "로트크기
  Gs_plantdata-proc_type       = GT_REC-BESKZ.    "조달유형
  GS_PLANTDATA-SPPROCTYPE      = GT_REC-SOBSL.    "특별조달유형
  GS_PLANTDATA-ISS_ST_LOC      = GT_REC-LGPRO.    "출고저장위치
  Gs_plantdata-sm_key          = GT_REC-FHORI.    "일정계획 마진키
  GS_PLANTDATA-PLAN_STRGP      = GT_REC-STRGR.    "계획전략(생산전략)
  GS_PLANTDATA-ALT_BOM_ID      = GT_REC-ALTSL.    "대체 BOM 선택방법
  GS_pLANTDATA-DEP_REQ_ID      = GT_REC-SBDKZ.    "개별/일괄
  GS_PLANTDATA-REP_MANUF       = GT_REC-SAUFT.    "반복제조 허용
  GS_PLANTDATA-REPMANPROF      = GT_REC-SFEPR.    "REM 프로파일
  GS_PLANTDATA-ASSY_SCRAP      = GT_REC-ausss.    "조립품 스크랩(%)
  GS_PLANTDATA-QUOTAUSAGE      = GT_REC-USEQU.    "쿼터 조정 사용
  GS_PLANTDATA-MIN_SAFETY_STK  = GT_REC-eisbe.    "최소안전재고
  GS_PLANTDATA-PERIOD_IND      = GT_REC-perkz.    "기간 지시자
  GS_PLANTDATA-COMP_SCRAP      = GT_REC-kausf.    "구성부품스크랩 (%)
  GS_PLANTDATA-PERIOD_IND      = 'M'.             "기간 지시자
endform.                    " ADD_MRP


*&---------------------------------------------------------------------*
*&      Form  ADD_PURCHASING
*&---------------------------------------------------------------------*
*       구매 VIEW
*----------------------------------------------------------------------*
form ADD_PURCHASING .
  GS_HEADDATA-PURCHASE_VIEW    = 'X'.

  Gs_plantdatax-plant          = GT_REC-WERKS.
  Gs_plantdatax-pur_group      = 'X'.
  Gs_plantdatax-gr_pr_time     = 'X'.
  GS_PLANTDATAX-AVAILCHECK     = 'X'.
  GS_CLIENTDATAX-PO_UNIT       = 'X'.

  Gs_plantdata-plant           = GT_REC-WERKS.
  GS_CLIENTDATA-PO_UNIT        = GT_REC-TXT02.    "구매오더단위
  Gs_plantdata-pur_group       = GT_REC-EKGRP.    "구매그룹
  Gs_plantdata-gr_pr_time      = GT_REC-webaz.    "입고소요일수
  GS_PLANTDATA-AVAILCHECK      = GT_REC-mtvfp.    "가용성점검
endform.                    " ADD_PURCHASING


*&---------------------------------------------------------------------*
*&      Form  ADD_SALES
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form ADD_SALES .
  Gs_headdata-sales_view   = 'X'.

  Gs_salesx-sales_org      = GT_REC-VKORG.
  Gs_salesx-distr_chan     = GT_REC-vtweg.
  Gs_salesx-delyg_plnt     = 'X'.
  GS_SALESX-ACCT_ASSGT     = 'X'.
  GS_SALESX-ITEM_CAT       = 'X'.
  GS_SALESX-SALES_UNIT     = 'X'.

  GS_PLANTDATAX-AVAILCHECK = 'X'.
  GS_PLANTDATAX-LOADINGGRP = 'X'.
  GS_PLANTDATAX-PROFIT_CTR = 'X'.
  GS_PLANTDATAX-COMM_CODE  = 'X'.

  GS_CLIENTDATAX-TRANS_GRP = 'X'.


  Gs_sales-sales_org       = GT_REC-VKORG.
  Gs_sales-distr_chan      = GT_REC-vtweg.
  Gs_sales-delyg_plnt      = GT_REC-dwerk.  "납품플랜트
  GS_SALES-ACCT_ASSGT      = GT_REC-KTGRM.  "계정지정그룹
  GS_SALES-ITEM_CAT        = GT_REC-TXT01.  "품목범주그룹
  GS_SALES-SALES_UNIT      = GT_REC-VRKME.  "판매단위

  GS_PLANTDATA-AVAILCHECK  = GT_REC-mtvfp.  "가용성점검
  GS_PLANTDATA-LOADINGGRP  = GT_REC-LADGR.  "적하 그룹
  GS_PLANTDATA-PROFIT_CTR  = GT_REC-PRCTR.  "손익 센터
  GS_PLANTDATAX-COMM_CODE  = GT_REC-STAWN.  "해외무역: 상품/수입 코드

  GS_CLIENTDATA-TRANS_GRP  = GT_REC-tragr.  "운송 그룹

  perform f_fill_bapi_taxclassdata.         "세금분류 처리
endform.                    " ADD_SALES

*&------------ --------- --------- --------- --------- --------- --------- ---*
*&      Form  f_fill_bapi_ taxclassdata
*&------------ --------- --------- --------- --------- --------- --------- ---*
form f_fill_bapi_taxclassdata .
  GT_taxclass-depcountry = 'KR'.
  GT_taxclass-tax_type_1 = 'MWST'.
  GT_taxclass-taxclass_1 = GT_REC-TAXKM.
  append GT_taxclass.    clear: GT_taxclass.
endform.                    " f_fill_bapi_ taxclassdata

*&------------ --------- --------- --------- --------- --------- --------- ---*
*&      Form  f_fill_bapi_ uomdata
*&------------ --------- --------- --------- --------- --------- --------- ---*
form f_fill_bapi_uomdata .
  CHECK GT_REC-SKIP2 IS NOT INITIAL.
  GT_uomx-alt_unit   = GT_REC-SKIP2.
  GT_uomx-numerator = 'X'.
  GT_uomx-denominatr = 'X'.
  append GT_uomx. clear: GT_uomx.

  GT_uom-alt_unit   = GT_REC-SKIP2.
  GT_uom-numerator = GT_REC-SKIP3 .
  GT_uom-denominatr = GT_REC-SKIP1.
*
  append GT_uom. clear: GT_uom.
endform. .                    " f_fill_bapi_ uomdata

*&------------ --------- --------- --------- --------- --------- --------- ---*
*&      Form  f_fill_bapi_ matdescdata
*&------------ --------- --------- --------- --------- --------- --------- ---*
form f_fill_bapi_matdescdata .
  GT_matdesc-langu     = sy-langu.
  GT_matdesc-matl_desc = GT_REC-MAKTX.
  append GT_matdesc.   clear: GT_matdesc.
endform.                    " f_fill_bapi_ matdescdata

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼