mmpv期间 开错了 怎么办

2024年11月22日 18:07
有1个网友回答
网友(1):

MMPV物料账期开错了的处理办法

如果用MMPV开物料账期,不小心开过了头,怎么改回来?
  例如:2003年6月底结账时,应该开下一个物料账期为2003.7,用MMRV查看,2003.7月为当前账期,2003.6月为上一账期;不小心开过了头,结果弄成了当前账期为2003.8,上一账期为2003.7,怎么改回来?
  SAP前台没有相应的冲销或更改的操作,后台配置也不支持,只有更改“物料期间表”(MARV)的数据了,经过研究,找到两个解决办法,特将更改方法详细记录,和大家共享,以备急用。
  方法一:(查阅前人资料亲自测试后,重新整理和总结的方法)
  1、 SE11,输入“物料期间表”MARV,点击Display。
  

  2、点击下图红圈里的图标Contents。
  

  3、点击下图红圈中的Execute。
  

  4、在命令栏输入/h,回车,显示debug开关打开。
  

  5、双击想要更改的那行数据,在打开的程序中,找到30行附近(下图红圈),在if code = ‘SHOW’ . 前面双击,设置一个断点(下图蓝圈)。
  

  6、点击下图中的蓝圈,执行程序,在设置断点处停止,见下图中的红圈,多了个蓝色箭头,表示执行到此停止。
  

  7、双击if code = ‘SHOW’ . 这行(下图蓝圈),看到code字段拷贝到了空白行(下图红圈),将code字段的内容SHOW更改为EDIT(注意要大写)
  

  8、见下图红圈,已更改为EDIT,然后点击更改图标(下图蓝圈),再点击存盘(下图白圈),最后再点击执行(下图黑圈)。
  

  9、点击执行后,如下图,当前账期(下图红圈)和上一账期(下图蓝圈)都可以进行更改了,更改后存盘保存数据即可。
  

  
  
  方法二:(我的一个ABAP同事提出的方法,也很好用)
  SE38,更改程序:LSETBF01,在Form SET_STATUS_VAL中,
  找到if code = 'SHOW'.
  用以下语句替换:
  if sy-UNAME = 'SAP001'.
   code = 'EDIT'.
   endif.
   if code = 'EDIT'.
  程序就改成了,当用户名是:SAP001时,表MARV的可编辑的,就可以用SAP001这个用户去更改表MARV的数据了。(当然,这个用户一定要是系统中存在的用户)
  
  替换的程序见下面程序中的红色字体部分:
  *&---------------------------------------------------------------------*
  *& Form SET_STATUS_VAL
  *&---------------------------------------------------------------------*
  * text *
  *----------------------------------------------------------------------*
  * --> p1 text
  * <-- p2 text
  *----------------------------------------------------------------------*
  form set_status_val tables ntab structure x031l
   using code name next for_lines.
   field-symbols: .
  
   “refresh” exclude_tab.
  *{ REPLACE C01K900009 1
  *\ if code = 'SHOW'.
  if sy-UNAME = 'SAP001'.
   code = 'EDIT'.
   endif.
   if code = 'EDIT'.
  *} REPLACE
   set titlebar 'TAB' with name 'anzeigen'(100).
   elseif code = 'EDIT'.
   set titlebar 'TAB' with name '?ndern'(101).
   elseif code = 'INSR'.
   set titlebar 'TAB' with name 'einfügen'(102).
   elseif code = 'ANVO'.
   set titlebar 'TAB' with name 'einfügen'(102).
   elseif code = 'DELE'.
   set titlebar 'TAB' with name 'l?schen'(103).
   endif.