bapi (物料主数据导入)的部分基础用法

阿蒙同学的博客抄来滴http://blog.sina.com.cn/s/blog_98dd7e1101013mxx.html


如果确定了用某个bapi函数,则就在se37中打开这个函数,那么要定义的结构或表当然要参照这里的import里的结构、或tables中的表,return是用来返回消息的,可以是结构或内表吧(这个还不太确定),下面以BAPI_MATERIAL_SAVEDATA(这个函数可以创建或更改物料主数据)为例吧:
根据需求我们要用到的字段都有:
matnr LIKE mara-matnr,  "物料号
      mbrsh LIKE mara-mbrsh,  "行业领域
      mtart LIKE mara-mtart,  "物料类型
      maktx LIKE makt-maktx,  "物料描述
      meins LIKE mara-meins,  "基本单位
      bismt LIKE mara-bismt," 旧物料编码
      matkl LIKE mara-matkl,"物料组


***组织级别
      werks LIKE marc-werks,  "工厂
      lgort LIKE mard-lgort,  "库存地点
      vkorg LIKE mvke-vkorg,  "销售组织
      vtweg LIKE mvke-vtweg,  "分销渠道
***销售组织1以视图
      dwerk LIKE mvke-dwerk,  "交货工厂
      spart LIKE mara-spart,  "产品组
      taxkm LIKE mlan-taxm1,  "税分类
***销售组织2以视图
       ktgrm LIKE mvke-ktgrm,  "科目设置组
***一般/工厂视图
       mtvfp LIKE marc-mtvfp,  "可用性检查
       tragr LIKE mara-tragr,  "运输组
       ladgr LIKE marc-ladgr,  "装载组
*** 采购视图,要扩展的字段
        ekgrp LIKE marc-ekgrp,  "采购组
        mfrgr LIKE marc-mfrgr,"物料运输组
那么这些字段在bapi的这个函数中对应在哪里呢,分别找出来就是了
例如:在wa_header中就包含了物料号、物料领域、物料类型及各基本视图
在wa_mara中就包含了物料组、计量单位、旧物料号、产品组、运输组
在wa_marc中就包含了工厂、可用性检查、装载组、采购组、物料运输组
同理找到自己需要的字段对应的结构
找到了这些当然在程序中要定义相应的结构和内表了要不然程序就识别不了
DATA: wa_header LIKE bapimathead,"带有控制信息的表头段,也就是各视图
      wa_mara   LIKE bapi_mara,"客户端层次物料数据
      wa_marax  LIKE bapi_marax,"BAPI_MARA 的复选框结构
      wa_marc   LIKE bapi_marc,"工厂级别的物料数据
      wa_marcx  LIKE bapi_marcx,"BAPI_MARC 的复选框结构
      wa_mard   LIKE bapi_mard,"存储位置级别的物料数据
      wa_mardx  LIKE bapi_mardx,"BAPI_MARD 的复选框结构
      wa_mvke   LIKE bapi_mvke,"销售数据
      wa_mvkex  LIKE bapi_mvkex,"BAPI_MVKE 复选框结构
      it_makt   LIKE bapi_makt OCCURS 0 WITH HEADER LINE,"物料描述
      it_marm   LIKE bapi_marm OCCURS 0 WITH HEADER LINE,"计量单位
      it_marmx  LIKE bapi_marmx OCCURS 0 WITH HEADER LINE,
      it_mlan   LIKE bapi_mlan OCCURS 0 WITH HEADER LINE,"税分类
      wa_return like bapiret2."用来判断返回情况
注意:如果在bapi中有成对出现的,比方bapi_mara,bapi_marax,在这里也要成对定义,赋值时也要都赋值,一般像bapi_marax的给他一个标志就行了可以为'X'也可以自己设个标志,不过有时候bapi_marax赋的也是具体字段,这是因为他的短文本限定了是个字段,如

 
相应的字段赋值完就可以调用bapi了
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
      headdata             = wa_header
      clientdata           = wa_mara
      clientdatax          = wa_marax
      plantdata            = wa_marc
      plantdatax           = wa_marcx
      storagelocationdata  = wa_mard
      storagelocationdatax = wa_mardx
      salesdata            = wa_mvke
      salesdatax           = wa_mvkex
    IMPORTING
      return               = wa_return
    TABLES
      materialdescription  = it_makt
      unitsofmeasure       = it_marm
      unitsofmeasurex      = it_marmx
      taxclassifications   = it_mlan.
然后在alv上显示执行是否成功,就是定义的一个message内表
DATA:BEGIN OF it_message OCCURS 0,
     flag,
     index LIKE sy-tabix,
     matnr LIKE mara-matnr,
     maktx LIKE makt-maktx,
     msgtp TYPE bapi_mtype,"消息类型: S 成功,E 错误,W 警告,I 信息,A 中断
     id TYPE symsgid,"消息, 消息类
     num TYPE symsgno,"消息, 消息编号
     text(220),"消息文本
     END OF it_message.
这个内表里除了消息相关的也要定义一些和取数内表有关的,如这里的物料号及物料描述,便于测试时用
其他步骤就参照alv就行了。
注:这里要进行单位转化,meins如果不转化,你导入的是pc,在系统中的就是st,转化表在t006a中,还有就是税分类这块也要注意一下发货国,这个可以在mlan中看,税分类在不同的国家是不同的,所以根据国家选择。 
几个有用的事物代码mm01:创建物料 mm03:显示物料初始屏幕 se39:同时打开两个程序在一个窗口显示 se37:打开bapi module。
添加一个有用的字段:  ICON  TYPE ICON_D,      "红绿灯标志

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值