100小时学习SAP之自学环境(一)

SAP MM模块自学实践
本文详细介绍了一位SAP初学者如何通过《100小时学会SAP》这本书籍指导,搭建并配置SAP ECC6EHP7系统环境,进行MM模块的学习与实践。包括系统环境设置、物料主数据批导入程序的编写、参数调整等内容。

《100小时学会SAP》很老的一本书,现在想认真的花些时间学习一下。

系统环境:

选用仁鹏的ECC6 EHP7 纯净系统虚拟机,WIN2003, SQLSERVER2008,磁盘大小80GB。(虽然自己也是BASIS,安装出来其实也是一样,就用这个把,很方便,应该把时间都花到模块上)。

WIN2003 ECC6 EHP7 纯净版_免费高速下载|百度网盘-分享无限制

系统跑起来后,给了16G物理内存,调整SAP总的内存占用 em/initial_size_MB   10000    给SAP 10GB。建立逻辑系统用 T-code: SALE ,SCC4新建一个client100,里面要指定逻辑系统。

退出系统,用SAP*  ,pass 登陆client100, 密码不对。 参数文件(C:\usr\sap\ECC\SYS\profile)中加: login/no_automatic_user_sapstar = 0 搞定。 没空用rz10,自己的系统直接就改参数文件了。

登陆client100,用scc9 从源client000中,参数选SAP_CUST, 把000拷贝到100中。

(3小时完成,db02看看 free 20G, OS C盘还剩5G, 够用就行)

MM配置:

按书中完成MM后台配置,之后要求创建5个原材料物料主数据。

正好练习一下ABAP,写了一个物料主数据的批导入程序:

程序导入数据模版:

物料类型物料号行业领域工厂物料描述基本计量单位物料组采购组MRP类型MRP控制者批量计划交货时间计划边际码安全库存可用性检查评估类价格控制价格单位移动平均价
ROHR999-701MP999金属片M21PG1PD1EX3Z016023000V121

*&---------------------------------------------------------------------*
*& REPORT  ZMM0001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM0001.
DATA: BEGIN OF RECORD OCCURS 0,
      HEAD_MATL_TYPE TYPE MTART,"物料类型
      HEAD_MATERIAL TYPE MATNR,"物料号
      HEAD_IND_SECTOR TYPE MBRSH,"行业领域
      MARC_PLANT TYPE WERKS_D, "工厂
      T_MAKT_MATL_DESC TYPE MAKTX,"物料描述
      MARA_BASE_UOM TYPE MEINS,"基本计量单位
      MARA_MATL_GROUP TYPE MATKL,"物料组
      MARC_PUR_GROUP TYPE EKGRP,"采购组
      MARC_MRP_TYPE TYPE DISMM, "MRP类型
      MARC_MRP_CTRLER TYPE DISPO,"MRP控制者
      MARC_LOTSIZEKEY TYPE DISLS,"批量
      MARC_PLND_DELRY TYPE PLIFZ,"计划交货时间
      MARC_SM_KEY TYPE FHORI," 计划边际码
      MARC_SAFETY_STK TYPE EISBE,"安全库存
      MARC_AVAILCHECK TYPE MTVFP,"可用性检查
      MBEW_VAL_CLASS TYPE BKLAS,"评估类
      MBEW_PRICE_CTRL TYPE VPRSV,"价格控制
      MBEW_PRICE_UNIT TYPE PEINH,"价格单位
      MBEW_MOVING_PR TYPE VERPR_BAPI,"移动平均价
 END OF RECORD.
"输入参数
DATA:
HEADDATA TYPE BAPIMATHEAD, "表头数据
CLIENTDATA TYPE BAPI_MARA, "基本数据
CLIENTDATAX TYPE BAPI_MARAX,
PLANTDATA TYPE BAPI_MARC, "工厂级别数据
PLANTDATAX TYPE BAPI_MARCX,
FORECASTPARAMETERS TYPE BAPI_MPOP, "预测
FORECASTPARAMETERSX TYPE BAPI_MPOPX,
PLANNINGDATA TYPE BAPI_MPGD, "计划
PLANNINGDATAX TYPE BAPI_MPGDX,
STORAGELOCATIONDATA TYPE BAPI_MARD, "存储位置
STORAGELOCATIONDATAX TYPE BAPI_MARDX,
VALUATIONDATA TYPE BAPI_MBEW, "评估数据
VALUATIONDATAX TYPE BAPI_MBEWX,
WAREHOUSENUMBERDATA TYPE BAPI_MLGN, "仓库数据
WAREHOUSENUMBERDATAX TYPE BAPI_MLGNX,
SALESDATA TYPE BAPI_MVKE, "销售数据
SALESDATAX TYPE BAPI_MVKEX,
STORAGETYPEDATA TYPE BAPI_MLGT, "存储类型数据
STORAGETYPEDATAX TYPE BAPI_MLGTX.
"TABLE参数
DATA:
MATERIALDESCRIPTION TYPE TABLE OF BAPI_MAKT WITH HEADER LINE,"描述
UNITSOFMEASURE TYPE TABLE OF BAPI_MARM WITH HEADER LINE,"单位
UNITSOFMEASUREX TYPE TABLE OF BAPI_MARMX WITH HEADER LINE,
TAXCLASSIFICATIONS TYPE TABLE OF BAPI_MLAN WITH HEADER LINE."税分类
"RETURN
DATA RETURN TYPE BAPIRET2.
*声明一个输入框,变量是DATASET
PARAMETERS: DATASET TYPE LOCALFILE.
*屏幕选择输入框,去打开取文件名FORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR DATASET.
  PERFORM OPEN_FILE USING DATASET.
START-OF-SELECTION.
  PERFORM IMPORT_FROM_FILE TABLES RECORD[] USING DATASET.
*如果内表中没内容,退出
  IF RECORD[] IS INITIAL.
    WRITE:/'输入数据为空'.
    EXIT.
  ENDIF.
 DATA: PR_UNIT TYPE MEINS."基本计量单位
  LOOP AT RECORD.
    CLEAR HEADDATA.
    HEADDATA-MATERIAL = RECORD-HEAD_MATERIAL. "物料号
    HEADDATA-MATL_TYPE = RECORD-HEAD_MATL_TYPE. "物料类型
    HEADDATA-IND_SECTOR = RECORD-HEAD_IND_SECTOR."行业领域
    HEADDATA-BASIC_VIEW = 'X'.
    HEADDATA-SALES_VIEW = 'X'.
    HEADDATA-PURCHASE_VIEW = 'X'.
    HEADDATA-MRP_VIEW = 'X'.
    HEADDATA-WAREHOUSE_VIEW = 'X'.
    HEADDATA-ACCOUNT_VIEW = 'X'.
    HEADDATA-COST_VIEW = 'X'.
    "基本数据
    CLEAR CLIENTDATA.
    CLIENTDATA-MATL_GROUP = RECORD-MARA_MATL_GROUP. "物料组
    PERFORM GET_PR_UNIT USING RECORD-MARA_BASE_UOM CHANGING PR_UNIT. "基本计量单位
    CLIENTDATA-BASE_UOM = PR_UNIT.
    CLEAR CLIENTDATAX.
    CLIENTDATAX-MATL_GROUP = 'X'.
    CLIENTDATAX-BASE_UOM = 'X'.
    CLIENTDATAX-EXTMATLGRP = 'X'.
    CLIENTDATAX-ITEM_CAT = 'X'.
    CLIENTDATAX-NET_WEIGHT = 'X'.
    CLIENTDATAX-TRANS_GRP = 'X'.
    "工厂级别数据
    CLEAR PLANTDATA.
    PLANTDATA-PLANT = RECORD-MARC_PLANT. "工厂
    PLANTDATA-PUR_GROUP = RECORD-MARC_PUR_GROUP."采购组
    PLANTDATA-MRP_TYPE = RECORD-MARC_MRP_TYPE."MRP类型
    PLANTDATA-MRP_CTRLER = RECORD-MARC_MRP_CTRLER."MRP控制者
    PLANTDATA-LOTSIZEKEY = RECORD-MARC_LOTSIZEKEY."批量
    PLANTDATA-PLND_DELRY = RECORD-MARC_PLND_DELRY."计划交货时间
    PLANTDATA-SM_KEY = RECORD-MARC_SM_KEY." 计划边际码
    PLANTDATA-SAFETY_STK = RECORD-MARC_SAFETY_STK."安全库存
    PLANTDATA-AVAILCHECK = RECORD-MARC_AVAILCHECK."可用性检查
    CLEAR PLANTDATAX.
    PLANTDATAX-PLANT = RECORD-MARC_PLANT.
    PLANTDATAX-AVAILCHECK = 'X'.
    PLANTDATAX-LOADINGGRP = 'X'.
    PLANTDATAX-PUR_GROUP = 'X'.
    PLANTDATAX-BATCH_MGMT = 'X'.
    PLANTDATAX-AUTO_P_ORD = 'X'.
    PLANTDATAX-IND_POST_TO_INSP_STOCK = 'X'.
    PLANTDATAX-QUOTAUSAGE = 'X'.
    PLANTDATAX-SOURCELIST = 'X'.
    PLANTDATAX-MRP_GROUP = 'X'.
    PLANTDATAX-MRP_TYPE = 'X'.
    PLANTDATAX-MRP_CTRLER = 'X'.
    PLANTDATAX-LOTSIZEKEY = 'X'.
    PLANTDATAX-MINLOTSIZE = 'X'.
    PLANTDATAX-MAXLOTSIZE = 'X'.
    PLANTDATAX-ROUND_VAL = 'X'.
    PLANTDATAX-PROC_TYPE = 'X'.
    PLANTDATAX-BACKFLUSH = 'X'.
    PLANTDATAX-PLND_DELRY = 'X'.
    PLANTDATAX-GR_PR_TIME = 'X'.
    PLANTDATAX-SAFETY_STK = 'X'.
    PLANTDATAX-SM_KEY = 'X'.
    PLANTDATAX-PLAN_STRGP = 'X'.
    PLANTDATAX-ALT_BOM_ID = 'X'.
    "会计、成本
    CLEAR VALUATIONDATA.
    VALUATIONDATA-VAL_AREA = RECORD-MARC_PLANT. "评估范围===================
    VALUATIONDATA-VAL_CLASS = RECORD-MBEW_VAL_CLASS. "评估类
    VALUATIONDATA-PRICE_CTRL = RECORD-MBEW_PRICE_CTRL. "价格控制
    VALUATIONDATA-PRICE_UNIT = RECORD-MBEW_PRICE_UNIT. "价格单位
    VALUATIONDATA-MOVING_PR = RECORD-MBEW_MOVING_PR. "移动平均价
    CLEAR VALUATIONDATAX.
    VALUATIONDATAX-VAL_AREA = RECORD-MARC_PLANT.
    VALUATIONDATAX-VAL_CLASS = 'X'.
    VALUATIONDATAX-PRICE_CTRL = 'X'.
    VALUATIONDATAX-PRICE_UNIT = 'X'.
    VALUATIONDATAX-MOVING_PR = 'X'.
    "物料描述
    CLEAR MATERIALDESCRIPTION[].
    MATERIALDESCRIPTION-LANGU_ISO = 'ZH'.
    MATERIALDESCRIPTION-MATL_DESC = RECORD-T_MAKT_MATL_DESC. "物料描述
    APPEND MATERIALDESCRIPTION.
   CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
   EXPORTING
   HEADDATA = HEADDATA
   CLIENTDATA = CLIENTDATA
   CLIENTDATAX = CLIENTDATAX
   PLANTDATA = PLANTDATA
   PLANTDATAX = PLANTDATAX
   VALUATIONDATA = VALUATIONDATA
   VALUATIONDATAX = VALUATIONDATAX
   IMPORTING
   RETURN = RETURN
   TABLES
   MATERIALDESCRIPTION = MATERIALDESCRIPTION[].
  IF SY-SUBRC = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'.
    WRITE:/ RETURN-MESSAGE.
  ENDIF.
  ENDLOOP.
  "获取基本计量单位内码
FORM GET_PR_UNIT USING UNIT1 CHANGING UNIT2.
  SELECT SINGLE MSEHI INTO UNIT2 FROM T006A WHERE SPRAS = 1 AND MSEH3 = UNIT1.
  IF SY-SUBRC <> 0.
    UNIT2 = UNIT1.
  ENDIF.
ENDFORM.
*--------------取文件名的FORM-------------
FORM OPEN_FILE CHANGING X TYPE LOCALFILE .
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      DEF_FILENAME     = ''
      DEF_PATH         = ''
      MASK             = ',*.TXT,*.TXT.'
      MODE             = '0'
      TITLE            = '取文件名'
    IMPORTING
      FILENAME         = X
    EXCEPTIONS
      INV_WINSYS       = 01
      NO_BATCH         = 02
      SELECTION_CANCEL = 03
      SELECTION_ERROR  = 04.
ENDFORM.
*--------把文件放内表的FORM----------------
FORM IMPORT_FROM_FILE TABLES RECORD_TEMP LIKE RECORD[]
                      USING X TYPE LOCALFILE.
  DATA: FLENGTH TYPE I.
  CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      FILENAME            = X
      FILETYPE            = 'DAT'
    IMPORTING
      FILELENGTH          = FLENGTH
    TABLES
      DATA_TAB            = RECORD_TEMP
    EXCEPTIONS
      CONVERSION_ERROR    = 1
      FILE_OPEN_ERROR     = 2
      FILE_READ_ERROR     = 3
      INVALID_TABLE_WIDTH = 4
      INVALID_TYPE        = 5.
ENDFORM.

代码很长,影响文本连贯性,不贴上来,又影响完整性。只有把文章分开了。接下来请看:

100小时学习SAP之自学MM模块(二)_james-lx的博客-优快云博客_sap系统mm模块优快云的blog上传图片不是很方便,虽然图片展现更加生动。 学习时间不应该浪费到发帖上,所有多用文字记录。为了测试物料主数据导入程序,结果我多导入了20个物料。按书上后续内容一看mm60里面垃圾物料太多,需要归档!1、 用MM17批量选择垃圾物料,使用字段MARA-LVORM。 批量给物料打上删除标记。2、 运行程序 MMREO001 选择要删除的物料...https://basis.blog.youkuaiyun.com/article/details/51799475

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值