批量生成销售订单、退货订单
来源:互联网 发布:滴滴打车java面试题 编辑:程序博客网 时间:2024/04/30 11:26
生成一般销售订单和退货订单所要使用的BAPI不同,
一般销售订单: BAPI_SALESORDER_CREATEFROMDAT2
退货订单: BAPI_CUSTOMERRETURN_CREATE
二者的参数基本一样。
以下为例:
" tables for bapi
DATA: gt_order_header_in LIKE bapisdhd1.
DATA: gt_order_header_inx LIKE bapisdhd1x.
DATA: gt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: gt_message LIKE TABLE OF bapiret2 WITH HEADER LINE.
DATA: gt_order_items_in LIKE bapisditm OCCURS 0 WITH HEADER LINE.
DATA: gt_order_items_inx LIKE bapisditmx OCCURS 0 WITH HEADER LINE.
DATA: gv_salesdocument LIKE bapivbeln-vbeln.
DATA: gt_order_partners LIKE bapiparnr OCCURS 0 WITH HEADER LINE.
DATA: gt_schedules_in LIKE bapischdl OCCURS 0 WITH HEADER LINE.
DATA: gt_schedules_inx LIKE bapischdlx OCCURS 0 WITH HEADER LINE.
DATA: gt_order_conditions_in LIKE bapicond OCCURS 0 WITH HEADER LINE.
DATA: gt_order_conditions_inx LIKE bapicondx OCCURS 0 WITH HEADER LINE.
DATA: gt_order_text LIKE bapisdtext OCCURS 0 WITH HEADER LINE.
DATA: gv_number TYPE vbap-posnr.
" internal tables
TYPES: BEGIN OF ty_sales_order,
numbr TYPE i, " 序号
auart TYPE vbak-auart, " 订单类型
vkorg TYPE vbak-vkorg, " 销售组织
vtweg TYPE vbak-vtweg, " 分销渠道
spart TYPE vbak-spart, " 产品组
vkbur TYPE vbak-vkbur, " 销售办公室
vkgrp TYPE vbak-vkgrp, " 销售组
kunag TYPE vbak-kunnr, " 售达方
kunwe TYPE vbak-kunnr, " 送达方
kunre TYPE vbak-kunnr, " 收票方
kunrg TYPE vbak-kunnr, " 付款方
matnr TYPE vbap-matnr, " 物料编码
kwmeng TYPE vbap-kwmeng," 订单数量
zieme TYPE vbap-zieme, " 订单单位
werks TYPE vbap-werks, " 生产工厂
lgort TYPE vbap-lgort, " 仓库
kschl TYPE komv-kschl, " 条件类型
cond_value TYPE bapicond-cond_value, " 金额
bstkd TYPE vbkd-bstkd, "客户采购订单编号
charg TYPE vbap-charg, "批次
route TYPE vbap-route, "路线
END OF ty_sales_order.
TYPES:BEGIN OF ty_result,
numbr TYPE i, " 序号
vbeln TYPE vbak-vbeln,
message TYPE bapiret2-message,
bstkd TYPE vbkd-bstkd, "客户采购订单编号
END OF ty_result.
DATA: gs_result TYPE ty_result.
DATA: gt_result TYPE TABLE OF ty_result.
DATA: gs_sales_order TYPE ty_sales_order.
DATA: gt_sales_order TYPE TABLE OF ty_sales_order.
DATA: gv_error_exit_flag TYPE flag. " whether error exit
DATA: BEGIN OF gt_excel_result OCCURS 0,
text TYPE string,
END OF gt_excel_result.
DATA: gt_fcat TYPE lvc_t_fcat.
FIELD-SYMBOLS:
TYPE lvc_s_fcat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
PARAMETERS p_file TYPE ibipparms-path OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
PARAMETERS p_th AS CHECKBOX. "是否为退货订单
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.xls'
def_path = 'C:\'
mask = ',*.xls.'
mode = 'O'
title = 'Choose Input file'(002)
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
START-OF-SELECTION.
" upload excel
PERFORM process_logic.
*&---------------------------------------------------------------------*
*& Form UPLOAD_EXCEL
*&---------------------------------------------------------------------*
* upload excel
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_logic .
DATA: l_row TYPE i,
l_text TYPE string.
" local parameters
DATA: lt_file TYPE STANDARD TABLE OF alsmex_tabline.
DATA: ls_file TYPE alsmex_tabline.
FIELD-SYMBOLS: TYPE ty_sales_order.
" upload excel with sales order information
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = 1
i_begin_row = 2
i_end_col = 37