事务代码: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