当前位置: 首页 > news >正文

批量创建可配置物料参数文件

启用可配置物料之后,每次创建新的物料需要通过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.

http://www.lryc.cn/news/107201.html

相关文章:

  • 性能压力测试的重要性与实施方法
  • HCIP入门静态实验
  • Vue与js的融合,如何编写现代化的前端应用
  • Boost开发指南-3.10singleton_pool
  • 腾讯云从业者认证考试考点——云网络产品
  • Miniled透明屏:超薄、轻便,还有哪些特点?
  • MySQL 极速安装使用与卸载
  • 举个栗子!Tableau 技巧(256):灵活折叠文本表的多级数据行
  • Android View 初始化完成后,如果再调用measure再设置点击事件则点击事件会失效的解决方案
  • 客户端电脑使用 FTP的Cadence_CIS库方法说明 (下)
  • 【ES】笔记-let 声明及其特性
  • wps 预加载项插件本地开发启动项目打开wps 客户端,未看到加载项菜单,
  • uni-app开发微信小程序经常遇到的一些问题及解决方案
  • 一个 git 仓库下拥有多个项目的 git hooks 配置方案
  • 钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口
  • 用python做一个小项目,python做简单小项目
  • 输入筛选框搜索
  • 公司植物日常护养方法备忘录
  • 小红书JAVA后端一面汇总总结
  • 【图论】强连通分量进阶
  • perl GetOptions
  • QGIS下载谷歌地图或者其他地图
  • Python-re模块-正则表达式模块常用方法
  • 修改el-select或者el-input样式失效
  • 【Apifox】Apifox设置参数说明:
  • 离线数仓中,为什么用两个flume,一个kafka
  • p7付费课程笔记6:CMS GC
  • Linux性能分析--cpuinfo的内核实现
  • 鲁大师7月新机性能/流畅/久用榜:骁龙8 Gen2领先版亮相,性能跑分再破新高
  • 【QT学习】01:helloqt