VIEW_MAINTENANCE_CALL 使用物料编码选择条件报错:BGM140 物料编号大于长度设置
=>吐槽一下这系统实施得真TM坑
1. 问题
- 使用 VIEW_MAINTENANCE_CALL 传参调用SM30维护视图是使用MATNR参数会报错:BGM140
- 使用 CONVERSION_EXIT_MATN1_INPUT 转换物料时传入参数只要大于12位报错:BGM140
- 小于等于12位时转换正常
2. 解决方法 (这里只介绍问题产生的原因,更多的业务风险请自行评估)
- 参考Note:2922763 - MATNR: CONVERSION_EXIT_MATN1_INPUT returns error BMG 140
- 原因:OMSL维护的物料长度为12(表:TMCNV 代码:MATCONV)
- 解决方法一:OMSL维护物料长度为常规的18位,大于18位的物料编码请参考Note(业务顾问处理)
- 解决方法二:在生成参数的时候,去前导0(开发处理)
TABLES: ztwms_t008. DATA: sellist TYPE TABLE OF vimsellist. SELECT-OPTIONS: s8_aufnr FOR ztwms_t008-aufnr MODIF ID m8, s8_rueck FOR ztwms_t008-rueck MODIF ID m8, s8_rmzhl FOR ztwms_t008-rmzhl MODIF ID m8, s8_matnr FOR ztwms_t008-matnr MODIF ID m8, s8_kdauf FOR ztwms_t008-kdauf MODIF ID m8, s8_kdpos FOR ztwms_t008-kdpos MODIF ID m8, s8_ersda FOR ztwms_t008-ersda MODIF ID m8, s8_erzet FOR ztwms_t008-erzet MODIF ID m8. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'AUFNR' TABLES sellist = sellist rangetab = s8_aufnr. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'RUECK' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_rueck. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'RMZHL' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_rmzhl. "去前导0,防止matnr异常 LOOP AT s8_matnr ASSIGNING FIELD-SYMBOL(<fs_matnr>). <fs_matnr>-low = |{ <fs_matnr>-low ALPHA = OUT }|. <fs_matnr>-high = |{ <fs_matnr>-high ALPHA = OUT }|. ENDLOOP. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'MATNR' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_matnr. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'KDAUF' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_kdauf. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'KDPOS' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_kdpos. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'ERSDA' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_ersda. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'ERZET' append_conjunction = 'AND' TABLES sellist = sellist rangetab = s8_erzet. CALL FUNCTION 'VIEW_MAINTENANCE_CALL' EXPORTING action = 'U' * CORR_NUMBER = ' ' * GENERATE_MAINT_TOOL_IF_MISSING = ' ' * SHOW_SELECTION_POPUP = ' ' view_name = 'ZTWMS_T008' * NO_WARNING_FOR_CLIENTINDEP = ' ' * RFC_DESTINATION_FOR_UPGRADE = ' ' * CLIENT_FOR_UPGRADE = ' ' * VARIANT_FOR_SELECTION = ' ' complex_selconds_used = 'X' * CHECK_DDIC_MAINFLAG = ' ' * SUPPRESS_WA_POPUP = ' ' TABLES dba_sellist = sellist EXCEPTIONS client_reference = 1 foreign_lock = 2 invalid_action = 3 no_clientindependent_auth = 4 no_database_function = 5 no_editor_function = 6 no_show_auth = 7 no_tvdir_entry = 8 no_upd_auth = 9 only_show_allowed = 10 system_failure = 11 unknown_field_in_dba_sellist = 12 view_not_found = 13 maintenance_prohibited = 14 OTHERS = 15.
- 解决方法一:OMSL维护物料长度为常规的18位,大于18位的物料编码请参考Note(业务顾问处理)
post SAP-Garson
原文链接:https://blog.csdn.net/qq_30797051/article/details/125108177文章来自于网络,如果侵犯了您的权益,请联系站长删除!