症状:当PO已经使用ME9F输出后,无法取消订单的审核。 系统提示:
ME175 凭证已输出(功能不可用).
应管理要求,系统后台已设定PO在审核后不能进行更改,即“可更改”设为值1-不能更改.
依照网上搜的资料,实施了两个NOTE:
Note 994269 - ME28 - release reset for already outputted POs
Note 1133900 - ME28 - Release reset for already output purchasing message
实施后发现问题依然存在。
根据用户反馈,这种已审核的订单,有的打印了可以反审核,有的不行。后来依据网上资料的线索及对有差异的订单对比发现,SAP是通过比较在PO中的MESSAGE的状态来判断能否撤消.如果PO中存在MESSAGE,并且全部正常输出,即状态全部为1,则PO不可撤消审核。如果其中一条MESSAGE的状态不是1,则可以撤消审核。
正经方法是:
使用事务ME9F,选择输出状态为 1-成功输出 ,点击执行,这里系统会列出所有成功输出过的消息,勾中任何一个,再点击消息细节.现在看到了类似于采购订单中的消息列表,选中任意一个后,点重复输出,系统会复制一个,并且看起来是黄色的,保存退出.这里,由于存在一个没有成功输出的消息,你可以使用ME28撤消这张PO了.
非正经渠道解决方法有两种,且要求你有相当高的权限:
1、PO输出的MESSAGE放置在表NAST中,字段VSTAT即存放的MESSAGE状态的值。使用SE16N查看表,并在命令栏中输入&sap_edit,使得你可以直接修改表内容,在字段OBJKY中输入PO号,在结果中,将任一vstat字段值改成0。这时,你可以使用ME28撤消审核了。
SE16N查看并修改表:
搜索结果,同时修改值:
![成功输出消息后的采购订单不能取消审核 成功输出消息后的采购订单不能取消审核](https://i-blog.csdnimg.cn/blog_migrate/3fe52ceb25be6093ce30af1367de17c9.jpeg)
方法二:直接在DEBUG中更改变量值,绕过程序。
使用SE38,在程序FM06LFFR_FRG_RESET中设置断点
**********************************************************************
CLEAR GEDRUCKT. "此外断点
IF FEKKO-FRGDR EQ '1'.
GEDRUCKT = 'X'.
ENDIF.
CALL FUNCTION 'ME_REL_RESET'
EXPORTING
I_TITLE = ' '
***********************************************************************
同样,使用事务ME28进行订单的撤消审核。程序运行时会自动弹出DEBUG窗口,强制将FEKKO-FRGDR的值改为0,继续往下执行即可完成订单的撤消审核。 原理不清楚。
如果你的配置场景与我们不一样,比如,你的采购订单在审核后是可以修改的,则可以按上边提到的原理,在PO的MESSAGE中,新增一个MESSAGE,不要输出,再使用ME28进行撤消审核。
ME175 凭证已输出(功能不可用).
应管理要求,系统后台已设定PO在审核后不能进行更改,即“可更改”设为值1-不能更改.
依照网上搜的资料,实施了两个NOTE:
根据用户反馈,这种已审核的订单,有的打印了可以反审核,有的不行。后来依据网上资料的线索及对有差异的订单对比发现,SAP是通过比较在PO中的MESSAGE的状态来判断能否撤消.如果PO中存在MESSAGE,并且全部正常输出,即状态全部为1,则PO不可撤消审核。如果其中一条MESSAGE的状态不是1,则可以撤消审核。
1、PO输出的MESSAGE放置在表NAST中,字段VSTAT即存放的MESSAGE状态的值。使用SE16N查看表,并在命令栏中输入&sap_edit,使得你可以直接修改表内容,在字段OBJKY中输入PO号,在结果中,将任一vstat字段值改成0。这时,你可以使用ME28撤消审核了。
SE16N查看并修改表:
![成功输出消息后的采购订单不能取消审核 成功输出消息后的采购订单不能取消审核](https://i-blog.csdnimg.cn/blog_migrate/64ba68b0ecd5012408cb3f44d652f5bc.jpeg)
搜索结果,同时修改值:
![成功输出消息后的采购订单不能取消审核 成功输出消息后的采购订单不能取消审核](https://i-blog.csdnimg.cn/blog_migrate/3fe52ceb25be6093ce30af1367de17c9.jpeg)
方法二:直接在DEBUG中更改变量值,绕过程序。
使用SE38,在程序FM06LFFR_FRG_RESET中设置断点
**********************************************************************
CLEAR
***********************************************************************
同样,使用事务ME28进行订单的撤消审核。程序运行时会自动弹出DEBUG窗口,强制将FEKKO-FRGDR的值改为0,继续往下执行即可完成订单的撤消审核。 原理不清楚。
如果你的配置场景与我们不一样,比如,你的采购订单在审核后是可以修改的,则可以按上边提到的原理,在PO的MESSAGE中,新增一个MESSAGE,不要输出,再使用ME28进行撤消审核。