MM 计划协议批量导入

该博客详细介绍了如何在SAP系统中使用事务代码ME31和BAPI_SAG_CREATE进行MM计划协议的批量导入。首先,通过ME31输入抬头和项目信息,然后利用BAPI_SAG_CREATE的批量导入功能,提供所需的抬头和行项目数据。代码示例展示了如何构造和传递这些数据,最后通过ALV显示导入结果。
摘要由CSDN通过智能技术生成

事务代码:ME31,输入抬头信息:供应商、协议类型、协议日期、采购组织、采购组。

输入协议日期、有效起始日期、有效截止日期、付款条件、目标价值、货比码。

输入项目、物料、短文本、目标数量、单位、净价、每、单位、物料组、工厂、存储:

实际业务中需要导入大量的计划协议数据,因此需要使用BAPI批量导入功能位置。可使用BAPI:BAPI_SAG_CREATE批量导入。

需要传入的数据数据:

抬头数据:

 

行项目数据:

导入BAPI

通过事务代码ME31,通过生成的号码查询导入信息。

 

代码:

DATA:BEGIN OF gt_input OCCURS 0,
       znum(3)      TYPE c,          "编号
       lifnr        TYPE ekko-lifnr, "供应商
       bsart        TYPE ekko-bsart, "订单类型
       ekorg        TYPE ekko-ekorg, "采购组织
       ekgrp        TYPE ekko-ekgrp, "采购组
       bedat        TYPE ekko-bedat, "协议日期
       kdatb        TYPE ekko-kdatb, "有效期起始日期
       kdate        TYPE ekko-kdate, "有效期截止日期
       zterm        TYPE ekko-zterm, "付款条件
       ktwrt        TYPE ekko-ktwrt, "目标值
       waers        TYPE ekko-waers, "货币码
       wkurs        TYPE ekko-wkurs, "汇率
       ebelp        TYPE ekpo-ebelp, "行项目号
       pstyp        TYPE ekpo-pstyp, "项目类别
       knttp        TYPE ekpo-knttp, "科目类别
       ematn        TYPE ekpo-ematn, "物料编码
       txz01        TYPE ekpo-txz01, "短文本
       ktmng        TYPE ekpo-ktmng, "目标数量
       meins        TYPE ekpo-meins, "OUN
       netpr        TYPE ekpo-netpr, "净价
       peinh        TYPE ekpo-peinh, "
       bprme        TYPE ekpo-bprme, "OPU
       matkl        TYPE ekpo-matkl, "物料组
       werks        TYPE ekpo-werks, "工厂
       lgort        TYPE ekpo-lgort, "库存地点

       status(20)   TYPE c,         "导入是否成功状态
       drjg         TYPE c,         "导入结果
       message(100) TYPE c,         "消息
     END OF gt_input.
DATA:gt_output LIKE gt_input OCCURS 0 WITH HEADER LINE.

DATA: gt_specific LIKE bapi_itob_fl_only OCCURS 0 WITH HEADER LINE,
      gt_general  LIKE bapi_itob OCCURS 0 WITH HEADER LINE,
      g_funcloc   TYPE bapi_itob_parms-funcloc,
      gt_return   LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
*      gt_return   TYPE TABLE OF bapiret2.


*----------------------------------------------------------------------*
*  定义alv数据对象
*----------------------------------------------------------------------*
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
      w_fieldcat TYPE slis_fieldcat_alv,
      w_layout   TYPE slis_layout_alv.

*----------------------------------------------------------------------*
*  定义选择屏幕
*----------------------------------------------------------------------*
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_infile TYPE rlgrap-filename OBLIGATORY MEMORY ID m01.
SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.
  PERFORM frm_get_path."获取路径

AT SELECTION-SCREEN.
  PERFORM frm_download_excel."下载模板

AT SELECTION-SCREEN OUTPUT.
  PERFORM frm_set_screen."屏幕设置

INITIALIZATION.
  PERFORM frm_screen_ini."初始化屏幕

START-OF-SELECTION.
  PERFORM frm_check_data1."上传文件校验

  PERFORM frm_upload_data."上载数据

  PERFORM frm_call_bapi."调用BAPI

  PERFORM frm_display_alv."ALV显示

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form FRM_GET_PATH
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_path .
  CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
    EXPORTING
*     DEF_FILENAME     = ' '
*     DEF_PATH         = ' '
      mask             = 'Excel Files,*.xlsx,*.*. '
*     MODE             = ' '
*     TITLE            = ' '
    IMPORTING
      filename         = p_infile
*     PATH             =
*     FILE             =
    EXCEPTIONS
      selection_cancel = 1
      selection_erro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值