cancel
Showing results for 
Search instead for 
Did you mean: 

采购订单收货后不允许改价格?

yiqiangWang
Participant
0 Kudos

各专家们:

下午好。

是否可以通过自定义的增强,达到采购订单收货后就不允许更改价格?要更改,就要冲销收货或者其它操作。

如果可以,具体的增强点及逻辑是怎样的?

期待回复。

Accepted Solutions (1)

Accepted Solutions (1)

Zhehui_Xia
Product and Topic Expert
Product and Topic Expert
0 Kudos

您好,

可以尝试使用 BAdI 增强解决问题。

业务上下文是 购:采购凭证 / 采购:采购凭证项目 ,业务加载项描述是 保存前检查采购订单 ,拓展点标识是 BD_MMPUR_FINAL_CHECK_PO

具体代码如下。

    select count(*) from I_PurchaseOrderHistoryAPI01 with privileged access
        where PURCHASEORDER = @PURCHASEORDER-PURCHASEORDER
        into @data(ls_PO_NUM) .
    if ls_PO_NUM ne '0'.
        loop at PURCHASEORDERITEMS REFERENCE INTO DATA(i_poitem).
            if i_poitem->PURCHASEORDER = PURCHASEORDER-PURCHASEORDER.
                select single * from I_PURCHASEORDERITEMAPI01
                    where PURCHASEORDER = @PURCHASEORDER-PURCHASEORDER and PURCHASEORDERITEM = @i_poitem->PURCHASEORDERITEM
                    into @data(ls_PO_COMPARE) .
                if i_poitem->NETAMOUNT ne ls_PO_COMPARE-NETAMOUNT.
                    append value #(  messagetype = 'E' messagevariable1 = '采购订单已发货,无法修改价格。' ) to messages.
                endif.
            endif.
        endloop.
    endif.

可以参考我写的这篇 Blog ,了解关于本问题的具体分析过程。

在 SAP S/4HANA Cloud 中通过自定义逻辑限制收货后的采购订单进行价格的修改

yiqiangWang
Participant
0 Kudos

非常感谢,我会按照您的方法去测试。

Zhehui_Xia
Product and Topic Expert
Product and Topic Expert
0 Kudos

Blog 已经发布,欢迎您阅读了解我的分析过程。也期待您的反馈!

yiqiangWang
Participant
0 Kudos

通过I_PURCHASEORDERHISTORYAPI01 这个 CDS View 里的记录数不为 0 ,会将冲销收货的订单也禁止改价格。而禁止改价格的真实需求应该在于有收货才不能改,冲销收货是有过,不是有。理应可以改。正常的流程也是强制操作人员如果要改价格,应该先冲销。

是否可以用行项目收货数量不等于0来判断而不是收货记录不为0来判断?

Answers (0)