批量创建可配置物料参数文件
启用可配置物料之后,每次创建新的物料需要通过CU41创建可配置物料,没找大批量创建的程序,所以SHDB录屏搞了一个代码。
前提:物料主数据初始化通过程序导入时,可配置物料参数文件已按照物料代码赋值。
效果:

源代码:
*&---------------------------------------------------------------------*
*& Report ZCU41
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*REPORT zcu41NO STANDARD PAGE HEADING LINE-SIZE 255.TABLES: sscrfields.
TABLES:mara,mseg.
TYPE-POOLS: icon, slis.*-------- ALV structuresDATA: wa_fieldcat TYPE slis_fieldcat_alv,it_fieldcat TYPE slis_t_fieldcat_alv,g_layout TYPE slis_layout_alv,g_title TYPE lvc_title,pos TYPE i,l_field TYPE slis_fieldcat_alv, "字段列结构l_fieldcat TYPE slis_t_fieldcat_alv, "字段列内表l_status_01 TYPE slis_formname VALUE 'L_STATUS_01'.DATA : BEGIN OF itab_data OCCURS 0,icon TYPE icon_d,type(1),sel(1),matnr TYPE marc-matnr, "物料代码maktx TYPE makt-maktx,message(200),END OF itab_data.DATA:itab_bdctab TYPE TABLE OF bdcdata WITH HEADER LINE.
DATA:p_mode TYPE char1 VALUE 'N',p_upda TYPE char1 VALUE 'L'.
DATA lv_mess TYPE string.
DATA BEGIN OF messtab OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA END OF messtab.DEFINE add_col.CLEAR wa_fieldcat.ADD 1 TO pos.wa_fieldcat-col_pos = pos.wa_fieldcat-fieldname = &1.wa_fieldcat-ref_fieldname = &2.wa_fieldcat-ref_tabname = &3.wa_fieldcat-seltext_m = &4.wa_fieldcat-tabname = &5.wa_fieldcat-do_sum = &6.wa_fieldcat-edit_mask = &7.wa_fieldcat-hotspot = &8.wa_fieldcat-checkbox = &9.APPEND wa_fieldcat TO it_fieldcat.
END-OF-DEFINITION.START-OF-SELECTION.PERFORM frm_get_data.PERFORM frm_display_data.*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_display_data .REFRESH: it_fieldcat.CLEAR g_layout.add_col 'ICON' space space '状态' 'ITAB_DATA' space space space space.add_col 'SEL' space space '选择' 'ITAB_DATA' space space 'X' 'X'.add_col 'MATNR' space space '物料代码' 'ITAB_DATA' space '==ALPHA' space space.add_col 'MAKTX' space space '物料描述' 'ITAB_DATA' space space space space.add_col 'MESSAGE' space space '处理消息' 'ITAB_DATA' space space space space.g_layout-colwidth_optimize = 'X'.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = sy-repidi_callback_pf_status_set = 'L_STATUS100'i_callback_user_command = 'FRM_USER_COMMAND'is_layout = g_layoutit_fieldcat = it_fieldcatTABLESt_outtab = itab_dataEXCEPTIONSprogram_error = 1OTHERS = 2.IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
ENDFORM.FORM l_status100 USING extab TYPE slis_t_extab.SET PF-STATUS 'ST01'.
ENDFORM. "L_STATUS100*&---------------------------------------------------------------------*
*& Form frm_user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM frm_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.DATA: ref TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = ref.CALL METHOD ref->check_changed_data.CASE r_ucomm.WHEN '&IC1'.IF rs_selfield-fieldname = 'SEL'.READ TABLE itab_data INDEX rs_selfield-tabindex.IF itab_data-sel = ''.itab_data-sel = 'X'.ELSE.itab_data-sel = ''.ENDIF.MODIFY itab_data INDEX rs_selfield-tabindex.CLEAR itab_data.ENDIF.WHEN 'ALL'.itab_data-sel = 'X'.MODIFY itab_data FROM itab_data TRANSPORTING sel WHERE sel = '' .WHEN 'SAL'.itab_data-sel = ''.MODIFY itab_data FROM itab_data TRANSPORTING sel WHERE sel = 'X' .WHEN 'IMP'.PERFORM frm_excute.ENDCASE.rs_selfield-refresh = 'X'.
ENDFORM.*&---------------------------------------------------------------------*
*& FORM BDC_DYNPRO
*&---------------------------------------------------------------------*
FORM bdc_dynpro USING name value.CLEAR itab_bdctab.itab_bdctab-program = name.itab_bdctab-dynpro = value.itab_bdctab-dynbegin = 'X'.APPEND itab_bdctab.
ENDFORM. "BDC_DYNPRO
*&---------------------------------------------------------------------*
*& FORM BDC_FIELD
*&---------------------------------------------------------------------*
FORM bdc_field USING name value.CLEAR itab_bdctab.itab_bdctab-fnam = name.itab_bdctab-fval = value.APPEND itab_bdctab.
ENDFORM. "BDC_FIELD
*&---------------------------------------------------------------------*
*& Form frm_excute
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_excute .LOOP AT itab_data INTO DATA(lw_data) WHERE sel = 'X' AND type NE 'S'.REFRESH:itab_bdctab,itab_bdctab[],messtab,messtab[].PERFORM bdc_dynpro USING 'SAPLCUCO' '0110'.PERFORM bdc_field USING 'BDC_CURSOR''RCUCO-DATUM'.PERFORM bdc_field USING 'BDC_OKCODE''/00'.PERFORM bdc_field USING 'RCUCO-MATNR'lw_data-matnr."物料代码PERFORM bdc_field USING 'RCUCO-DATUM''20230101'."日期,默认20230101PERFORM bdc_dynpro USING 'SAPLCUCO' '0200'.PERFORM bdc_field USING 'BDC_CURSOR''RCUCO-KLART(01)'.PERFORM bdc_field USING 'BDC_OKCODE''/00'.PERFORM bdc_field USING 'RCUCO-PRFID(01)'lw_data-matnr."参数名,默认物料代码PERFORM bdc_field USING 'RCUCO-KLART(01)''300'."固定值300PERFORM bdc_dynpro USING 'SAPLCUCO' '0200'.PERFORM bdc_field USING 'BDC_OKCODE''=SAVE'.CALL TRANSACTION 'CU41' USING itab_bdctabMODE p_modeUPDATE p_updaMESSAGES INTO messtab.READ TABLE messtab WITH KEY msgtyp = 'E'.IF sy-subrc EQ 0.CALL FUNCTION 'FORMAT_MESSAGE'EXPORTINGid = messtab-msgidlang = '1'no = messtab-msgnrv1 = messtab-msgv1v2 = messtab-msgv2v3 = messtab-msgv3v4 = messtab-msgv4IMPORTINGmsg = lv_messEXCEPTIONSnot_found = 1OTHERS = 2.lw_data-message = lv_mess.lw_data-type = 'E'.lw_data-icon = icon_red_light.ELSE.lw_data-message = '创建成功'.lw_data-type = 'S'.lw_data-icon = icon_green_light.ENDIF.MODIFY itab_data FROM lw_data TRANSPORTING message type icon WHERE matnr = lw_data-matnr AND SEL = 'X' AND type NE 'S'.CLEAR lw_data.ENDLOOP.ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_data .SELECT mara~matnr,makt~maktxINTO CORRESPONDING FIELDS OF TABLE @itab_dataFROM mara INNER JOIN makt ON mara~matnr = makt~matnr AND makt~spras = '1'WHERE mara~kzkfg = 'X'.LOOP AT itab_data.SELECT SINGLE objekFROM cucoINTO @DATA(lv_objek)WHERE objek = @itab_data-matnr.IF sy-subrc = 0.DELETE itab_data.ENDIF.ENDLOOP.
ENDFORM.
相关文章:
批量创建可配置物料参数文件
启用可配置物料之后,每次创建新的物料需要通过CU41创建可配置物料,没找大批量创建的程序,所以SHDB录屏搞了一个代码。 前提:物料主数据初始化通过程序导入时,可配置物料参数文件已按照物料代码赋值。 效果…...
性能压力测试的重要性与实施方法
性能压力测试是在软件开发过程中评估系统在不同负载条件下的表现和稳定性的关键步骤。这种测试是为了确定系统在正常和峰值负载下的性能表现,以验证系统是否能够满足用户需求,同时发现潜在的性能问题并加以解决。 首先,性能压力测试对于确保系…...
HCIP入门静态实验
题目及要求 第一步:拓扑的搭建 第二步:路由、IP的配置 r1: <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sys r1 [r1]int loop [r1]int LoopBack 0 [r1-LoopBack0]ip add 192.168.1.65 27 [r1-LoopBack0]int loop 1 […...
Vue与js的融合,如何编写现代化的前端应用
随着Web应用的不断发展,前端开发已经成为了当今互联网行业中最为流行和重要的领域之一。而在前端开发中,JavaScript无疑是最为常用和基础的语言之一。而Vue.js作为一种轻量级的JavaScript框架,它的出现极大地简化了前端开发的过程,…...
Boost开发指南-3.10singleton_pool
singleton_pool singleton_pool与 pool的接口完全一致,可以分配简单数据类型(POD)的内存指针,但它是一个单件。 singleton_pool位于名字空间boost,为了使用singleton_pool组件,需要包含头文件<boost/p…...
腾讯云从业者认证考试考点——云网络产品
文章目录 腾讯云网络产品功能网络产品概述负载均衡(Cloud Load Balancer)私有网络(Virtual Private Cloud,VPC)专线接入弹性网卡(多网卡热插拔服务)NAT网关(NAT Gateway)…...
Miniled透明屏:超薄、轻便,还有哪些特点?
Miniled透明屏是一种新型的显示屏技术,它采用了微小的LED灯珠作为显示单元,通过透明的材料进行封装,使得整个屏幕具有透明的特性。Miniled透明屏具有以下几个特点: 首先,Miniled透明屏具有高亮度和高对比度的特点。 由…...
MySQL 极速安装使用与卸载
目录 mysql-5.6.51 极速安装使用与卸载 sqlyog工具 mysql简化 mysql-8.1.0下载配置 再完善 mysql-5.6.51 极速安装使用与卸载 mysql-8.1.0下载安装在后 mysql中国官网 MySQLhttps://www.mysql.com/cn/ 点击MySQL社区服务器 点击历史档案 下载完 解压 用管理员运行cmd&a…...
举个栗子!Tableau 技巧(256):灵活折叠文本表的多级数据行
通常,Tableau 默认的图表分层结构是统一打开或关上,有什么办法可以按需选择展开或折叠?如下示例:单击“”展开层级,单击“-“收起层级。 可以试试集操作!今天的栗子,就来分享具体实现方法吧~ 本…...
Android View 初始化完成后,如果再调用measure再设置点击事件则点击事件会失效的解决方案
比如LinearLayout 或RecyclerView 我们在初始化完成并加载完数据后再次调用measure计算高度再setLayoutParams 会导致后面设置的点击事件失效。 比如: RecyclerView rv_select dialog.findViewById(R.id.rv_select); //点击事件rv_select.setOnItemClickListener(n…...
客户端电脑使用 FTP的Cadence_CIS库方法说明 (下)
简介:随着企业的规模扩大,硬件工程师的增多,使用统一服务器上的库管理,可以减少设计错误,提高效率。 使用在FTP上布局Cadence_CIS库,是目前的主流的做法之一; 本文方法,用于已经配置…...
【ES】笔记-let 声明及其特性
let 声明及其特性 声明变量 变量赋值、也可以批量赋值 let a;let b,c,d;let e100;let f521,giloveyou,h[];变量不能重复声明 let star罗志祥;let star小猪;块级作用域,let声明的变量只在块级作用域内有效 {let girl周杨青;}console.log(girl)注意:在 i…...
wps 预加载项插件本地开发启动项目打开wps 客户端,未看到加载项菜单,
wps 预加载项插件本地开发启动项目打开wps 客户端,未看到加载项菜单,请检查本地c盘安装目录下“jsplugins.xml”信息是否添加成功 如下图 name 插件项目 url 本地插件运行地址及端口 <jsplugins><jspluginonline name"wps-soft-copyright…...
uni-app开发微信小程序经常遇到的一些问题及解决方案
1.如何获取用户信息? 可以使用uni.getUserInfo接口获取用户信息。需要用户授权。 2.如何实现下拉刷新? 可以使用uni-app提供的页面组件内置下拉刷新功能,也可以自定义下拉刷新组件。 3.如何实现上拉加载更多? 可以在页面onReachBo…...
一个 git 仓库下拥有多个项目的 git hooks 配置方案
前言 通常情况下,一个 git 仓库就是一个项目,只需要配置一套 git hooks 脚本就可以执行各种校验任务。对于 monorepo 项目也是如此,monorepo 项目下的多个 packages 之间,它们是有关联的,可以互相引用,所以…...
钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口
钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口 对接系统钉钉 钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供PC版,Web版和手机版,有考…...
用python做一个小项目,python做简单小项目
大家好,本文将围绕用python做一个小项目展开说明,python做简单小项目是一个很多人都想弄明白的事情,想搞清楚python入门小项目需要先了解以下几个事情。 来源丨网络 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实&…...
输入筛选框搜索
文章目录 输入筛选框实现效果图需求前端工具版本添加依赖main.js导入依赖 代码 后端代码对应 sql对应 mapper.xml 文件的动态 sql 输入筛选框实现 效果图 需求 通过筛选框,选择公司,传入后端,后端根据公司名称去文章的内容中进行模糊查询 …...
公司植物日常护养方法备忘录
植物为我们净化空气,美化环境,我们要按照科学的经验照顾好它们。公司植物日常通用护养方法如下: 首先剪掉已经枯黄的部分。 需要晒太阳的植物按时搬到外面晒太阳,每次晒1到2个小时。 所有植物统一在每个月的20号左右施肥一次&am…...
小红书JAVA后端一面汇总总结
小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。 从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只 看八股文,还是需要从点到面一层层去掌握, 才能比较好应对这类的面试场景。 问题记录 自我…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
