期初批量导入物料主数据时,有以下要求:
1.基本数据
博客频遭盗窃,浏览全文,请移步公众号“斌将军”,输入关键字“物料批导”查看
输入项目定义编号和参数文件
2.声明要维护的视图
3.之后根据前台相应字段所在的表,在BAPI参数中找到对应的BAPI参数并维护即可
4.最后调用BAPI_MATERIAL_SAVEDATA创建物料主数据
该BAPI可以满足创建、修改物料,还可以将物料扩展到其他工厂
在实际业务中,需要对物料的会计视图,启用分割评估。
前台操作为,MM02,进入会计视图,并输入现有的工厂,输入评估类别,保存
退出后MM01进入,输入工厂和评估类型
在通过BAPI维护过程中,发现有的物料在BAPI参数中找不到,此时就需要通过增强维护。
物料基本视图2中有物料时可配置的字段,需要打钩,而BAPI参数中找不到该参数,但是这个参数是存在于MARA表中的KZKFG
在自定义BAPI结构中,添加该字段
还有更新结构,也要添加,注意组件类型为更新类型
定义参数
代码示例:
"-----------------------------@斌将军-----------------------------
FORM frm_bapi_creat.
*--------------------------------------------------------------------*
* BAPI 字段
*--------------------------------------------------------------------*
* 物料文本
DATA:ls_header TYPE thead, "
lt_lines TYPE STANDARD TABLE OF tline,
ls_lines TYPE tline.
DATA: ls_mdma LIKE mdma,
ls_dpop LIKE dpop,
ls_sdibe TYPE sdibe_massfields,
ls_return2 TYPE bapireturn1,
lt_return2 TYPE TABLE OF bapireturn1.
"质量视图
DATA:ls_qmat TYPE bapi1001004_qmat,
lt_qmat TYPE TABLE OF bapi1001004_qmat.
DATA:lv_land1 TYPE t001w-land1, "国家代码
lv_tax_type TYPE tatyp VALUE 'MWST', "税类别
lv_matnr TYPE mara-matnr, "物料号
lv_objectkeynew TYPE bapi1003_key-object,
lv_message TYPE char200, "消息
lv_msg TYPE char200, "消息
lv_check TYPE char2. "检查
"进度条使用标志
CLEAR:gv_flag.
DESCRIBE TABLE gt_template LINES gv_lines.
LOOP AT gt_template INTO gs_template WHERE icon <> icon_led_red.
"当前条目
gv_tabix = gv_tabix + 1.
"进度条
PERFORM frm_indicator USING gv_tabix.
REFRESH:gt_makt[],gt_mlan[],gt_mltx[],gt_marm[],gt_marmx[],gt_mean[],gt_return.
CLEAR:gs_headdata,gs_mara,gs_marax,gs_marc,gs_marcx,gs_mpop,gs_mpopx,gs_mpgd,
gs_mpgdx,gs_mard,gs_mardx,gs_mlgn,gs_mlgnx,gs_mvke,gs_mvkex,gs_mlgt,gs_mlgtx,
gs_mbew,gs_mbewx,gs_return,gt_makt,gt_mlan,gt_mltx,gt_marm,gt_marmx,gt_mean.
*&---------------------------------------------------------------------*
*& 基本数据1
*&---------------------------------------------------------------------*
gs_headdata-material = gs_template-matnr. "SAP物料编码
gs_headdata-ind_sector = gs_template-mbrsh. "行业
gs_headdata-matl_type = gs_template-mtart. "物料类型
gs_marc-plant = gs_template-werks. "工厂
gs_marcx-plant = gs_template-werks.
*--------------------------------------------------------------------*
*维护视图
*--------------------------------------------------------------------*
* IF p_jb = 'X'.
gs_headdata-basic_view = 'X'."基本数据视图
* ENDIF.
IF p_xs = 'X'.
gs_headdata-sales_view = 'X'."销售视图
ENDIF.
IF p_cg = 'X'.
gs_headdata-purchase_view = 'X'."采购视图
ENDIF.
IF p_mrp = 'X'.
gs_headdata-mrp_view = 'X'."MRP视图
ENDIF.
* IF p_gz = 'X'.
* gs_headdata-work_sched_view = 'X'."工作计划视图
* ENDIF.
IF p_kj = 'X'.
gs_headdata-account_view = 'X'."会计视图
ENDIF.
IF p_cb = 'X'.
gs_headdata-cost_view = 'X'."成本视图
ENDIF.
IF p_zl = 'X'.
gs_headdata-quality_view = 'X'."质量视图
ENDIF.
IF p_cc = 'X'.
gs_headdata-storage_view = 'X'."存储视图
ENDIF.
* IF p_ck = 'X'.
* gs_headdata-warehouse_view = 'X'."仓库管理视图
* ENDIF.