BDC批量修改物料描述
一、定义变量
type-POOLs:TRUXS,slis. TYPES: BEGIN OF ty_input ,
matnr TYPE mara-matnr , " 物料号
maktx TYPE makt-maktx,"物料描述
END OF ty_input . DATA: gt_input TYPE STANDARD TABLE OF ty_input.
FIELD-SYMBOLS: <gs_input> TYPE ty_input.
DATA: gt_bdcdata TYPE STANDARD TABLE OF bdcdata,"bdc
gt_msg TYPE STANDARD TABLE OF bdcmsgcoll,"消息
gs_msg TYPE bdcmsgcoll."消息 TYPES: BEGIN OF ty_message ,
matnr TYPE mara-matnr , " 物料号
maktx TYPE makt-maktx, "描述
msg TYPE string ,
END OF ty_message . DATA: gt_message TYPE STANDARD TABLE OF ty_message,
gs_message TYPE ty_message.
*alv
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: gs_fieldcat TYPE LINE OF slis_t_fieldcat_alv.
DATA: gs_layout TYPE slis_layout_alv.
二、屏幕元素
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-. "选择文件路径
PARAMETERS: p_ufile LIKE rlgrap-filename OBLIGATORY MEMORY ID p_ufile.
SELECTION-SCREEN END OF BLOCK bk1.
三、调用代码
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ufile.
PERFORM get_filepath. START-OF-SELECTION. PERFORM upload_data. "上载文本资料 PERFORM f_bdc. END-OF-SELECTION. PERFORM f_alv_fieldcat.
PERFORM f_layout.
PERFORM f_display.
四、调用的form
FORM get_filepath . CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
EXPORTING
def_path = ''
mask = ',Excel Files,*.xls,All Files,*.*.'
title = 'Select the File'
IMPORTING
filename = p_ufile
EXCEPTIONS
selection_cancel =
selection_error =
OTHERS = .
IF sy-subrc <> .
MESSAGE '请输入文件名' TYPE 'S'.
ELSEIF sy-subrc = .
MESSAGE '成功' TYPE 'S'.
ENDIF. ENDFORM. FORM upload_data . DATA:t_raw_data TYPE truxs_t_text_data. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' "读取excel到sap的函数
EXPORTING
i_line_header = 'X'
i_tab_raw_data = t_raw_data
i_filename = p_ufile
TABLES
i_tab_converted_data = gt_input
EXCEPTIONS
conversion_failed =
OTHERS = .
IF sy-subrc <> .
ENDIF. IF gt_input IS INITIAL.
MESSAGE '无数据' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF. ENDFORM. " UPLOAD_DATA FORM f_bdc . DATA: inx TYPE sy-tabix. LOOP AT gt_input ASSIGNING <gs_input>. CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = <gs_input>-matnr
IMPORTING
output = <gs_input>-matnr
EXCEPTIONS
length_error =
OTHERS = .
IF sy-subrc <> .
* Implement suitable error handling here
ENDIF. FREE:gt_bdcdata,gt_msg. "这些步骤都是根据bdc里面生成的来写的,类似BDC_SUBSCR之类的可以省去不写 PERFORM f_bdcdata TABLES gt_bdcdata USING : 'SAPLMGMM' '' 'X' '' ''."打开屏幕
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'BDC_CURSOR' 'RMMG1-MATNR'. "光标
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'BDC_OKCODE' '=ENTR'."操作按钮(回车)
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'RMMG1-MATNR' <gs_input>-matnr."输入数据(物料号)
"PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'R62CLORD-FLG_OVIEW' 'X'. PERFORM f_bdcdata TABLES gt_bdcdata USING : 'SAPLMGMM' '' 'X' '' ''."打开屏幕
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'BDC_OKCODE' '=ENTR'."操作按钮(回车)
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'MSICHTAUSW-KZSEL(01)' 'X'."选择视图01(基本数据)
" PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'R62CLORD-FLG_OVIEW' 'X'. PERFORM f_bdcdata TABLES gt_bdcdata USING : 'SAPLMGMM' '' 'X' '' ''.
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'BDC_OKCODE' '=BU'."操作组件按钮
PERFORM f_bdcdata TABLES gt_bdcdata USING : '' '' '' 'MAKT-MAKTX' <gs_input>-maktx."输入数据(物料描述) FREE: gt_msg.
CALL TRANSACTION 'MM02' USING gt_bdcdata
MODE 'N' "执行事务,传递bdc参数,模式为后台模式
"MODE 'A' "前台模式,用户可以看到执行的过程,需要自己点enter键
MESSAGES INTO gt_msg. "message可省去
READ TABLE gt_msg INTO gs_msg WITH KEY msgtyp = 'E'.
IF sy-subrc = .
MOVE-CORRESPONDING <gs_input> TO gs_message.
LOOP AT gt_msg INTO gs_msg.
DATA: return TYPE bapiret2.
CLEAR: return.
PERFORM f_msg USING gs_msg-msgtyp gs_msg-msgid gs_msg-msgnr gs_msg-msgv1 gs_msg-msgv2 gs_msg-msgv3 gs_msg-msgv4 CHANGING return.
IF return-message IS NOT INITIAL.
gs_message-msg = return-message.
ENDIF.
APPEND gs_message TO gt_message.
ENDLOOP.
ROLLBACK WORK.
ELSE.
CLEAR: gs_message.
MOVE-CORRESPONDING <gs_input> TO gs_message.
gs_message-msg = 'OK'.
APPEND gs_message TO gt_message.
COMMIT WORK.
ENDIF. ENDLOOP. ENDFORM. FORM f_alv_fieldcat . DATA: pos TYPE i. DEFINE fieldcat.
clear gs_fieldcat.
pos = pos + .
gs_fieldcat-col_pos = pos.
gs_fieldcat-fieldname = &.
gs_fieldcat-ref_tabname = &.
gs_fieldcat-ref_fieldname = &.
* gs_fieldcat-seltext_l = &.
* gs_fieldcat-no_zero = &.
* gs_fieldcat-key = &.
gs_fieldcat-just = 'L'.
append gs_fieldcat to gt_fieldcat.
END-OF-DEFINITION. fieldcat 'MATNR' 'MARA' 'MATNR'.
fieldcat 'MAKTX' 'MAKT' 'MAKTX' .
fieldcat 'MSG' '' '消息' . ENDFORM. FORM f_layout .
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
* gs_layout-box_fieldname = 'BOX'.
ENDFORM. FORM f_display . * 可以保存格式
DATA:gs_variant TYPE disvariant.
gs_variant-report = sy-repid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_save = 'A' "可以保存格式
is_variant = gs_variant "LAYOUT参数 可以保存格式
is_layout = gs_layout
it_fieldcat = gt_fieldcat
TABLES
t_outtab = gt_message
EXCEPTIONS
program_error =
OTHERS = . ENDFORM. FORM f_msg USING itype icl inumber ipar1 ipar2 ipar3 ipar4 CHANGING return. DATA: type TYPE bapireturn-type,
cl TYPE sy-msgid,
number TYPE sy-msgno,
par1 TYPE sy-msgv1,
par2 TYPE sy-msgv2,
par3 TYPE sy-msgv3,
par4 TYPE sy-msgv4. CLEAR: type,cl,number,par1,par2,par3,par4. type = itype.
cl = icl.
number = inumber.
par1 = ipar1.
par2 = ipar2.
par3 = ipar3.
par4 = ipar4. CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = type
cl = cl
number = number
par1 = par1
par2 = par2
par3 = par3
par4 = par4
IMPORTING
return = return. ENDFORM. FORM f_bdcdata TABLES gt_bdcdata STRUCTURE bdcdata
USING p_program
p_dynpro
p_dynbegin
p_fnam
p_fval.
DATA: gs_bdcdata TYPE bdcdata. CLEAR gs_bdcdata. gs_bdcdata-program = p_program.
gs_bdcdata-dynpro = p_dynpro.
gs_bdcdata-dynbegin = p_dynbegin.
gs_bdcdata-fnam = p_fnam.
gs_bdcdata-fval = p_fval.
APPEND gs_bdcdata TO gt_bdcdata. ENDFORM.
BDC批量修改物料描述的更多相关文章
- 通过BDC批量修改物料文档信息 MM02
*&---------------------------------------------------------------------* *& Report ZMM_03 * ...
- 使用BAPI批量修改采购信息记录的税率
业务方面提出需求:由于国家税率从5月份开始16%更改为13%.要求开发一个批量修改采购信息记录税率的功能. 税代码就是税率,J2代表13% 这个需求在ME13里面就可以单个修改,所以可以用BDC,但后 ...
- 限制ITEM读取其它物料的物料描述
应用 Oracle Purchasing 层 Level Function 函数名 Funcgtion Name CUXPOXPOEPO 表单名 Form Name POXPOEPO 说明 Des ...
- bat批量修改图片的名字实现(两种方法)
问题描述: 业务中遇到需要批量修改大量图片的名字. 如下图,需要修改为图片名字“u=”之后和“,”之前的那一串 解决思路1: bat批处理,网上查找相关代码如下: @echo off SetLocal ...
- SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?
SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值? 记得在D项目上线之前数据导入系统之后,业务提出一些物料采购视图里的’Purchasing value k ...
- MP实战系列(十三)之批量修改操作(前后台异步交互)
MyBatis的批量操作其实同MyBatis基本是一样的.并无多大区别,要说区别,除了封装的方法之外,主要就是注解方面的区别,比如@TableId.@TableField.@TableName等等区别 ...
- springmvc使用list集合实现商品列表的批量修改
1将表单的数据绑定到List 1.1 需求 实现商品数据的批量修改. 1.2 需求分析 要想实现商品数据的批量修改,需要在商品列表中可以对商品信息进行修改,饼干且可以批量提交修改后的商品数据. 1.3 ...
- 批量修改Linux密码脚本(Python)
搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 #!/usr/bin/env python # -*- coding: ...
- mac linux rename命令行批量修改文件名
我的mac使用命令行批量修改名字时发现居然没有rename的指令: zsh: command not found: rename 所以使用HomeBrew先安装一下: ➜ ~ brew install ...
随机推荐
- P2P网络穿越 NAT穿越
http://blog.csdn.net/mazidao2008/article/details/4933730 ——————————————————————————————————————————— ...
- javascript 屏蔽F5,BackSpace等各种按键
function DisableF5(){ with (event){ // F5 and Ctrl+R if (keyCode==116 || (ctrlKey && keyCode ...
- ResultSet是结果集对象
ResultSet是结果集对象 DriverManager管理一组驱动程序 PreparedStatement预编译的,用来发送和执行SQL语句的
- UNIQLO
UNIQLO品牌的迅销公司建立于1963年,当年是一家销售西服的小服装店.公司现任董事长兼总经理柳井正早年毕业于早稻田大学经济学专业,1972年8月进入迅销公司,1984年9月就任公司董事长兼总经理. ...
- 在ASP.NET MVC 3 中自定义AuthorizeAttribute时需要注意的页面缓存问题
一.ASP.NET MVC中使用OutputCache实现服务器端页面级缓存 在ASP.NET MVC中,假如我们想要将某个页面(即某个Action)缓存在服务器端,可以在Action上标上以下特性: ...
- Angular2 Observable 可观察对象
可观察对象支持在应用中的发布者和订阅者之间传递消息.在需要进行事件处理,异步编程和处理多值的时候,可观察对象相对其他技术有显著的优点. 可观察对象是声明式的 —— 也就是说,虽然你定义了一个用于发布值 ...
- 部署mysql后,无法设置用户远程登陆(%只所有用户,不可以,只能给指定的ip?)
MySQL允许远程访问的设置 1.注释bind-address = 127.0.0.1. 代码如下: >sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将 ...
- ssm异步上传图片
1.首先引入jersey jar包 2.在配置文件中,配置允许上传图片 3.修改增加商品页面 <%@ page language="java" import=" ...
- 大圣画廊v0.2(2015.7.17)
0.2版本号加入的功能 以tag分类图片 美化.添加瀑布流效果 添加tag页和单张图片页 添加公布图片页 以下是具体解释. 每添加一个功能,都要从模型.模板,视图,路由四个方面一一改动. 模型:添加t ...
- ios应用, 设置不自己主动备份到iCloud
原创文章,转载请注明出处 ios项目,假设有内置下载或者程序动态生成文件的话,就要注意所下载或生成的文件,要不要自己主动备份到iCloud 假设没有合适的理由就自己主动上传大文件的话,可能在不能通过应 ...