首页 > 代码库 > BAPI_PO_CREATE1 创建PO ch_memory_complete = ‘x',导致hold on 解决方案,

BAPI_PO_CREATE1 创建PO ch_memory_complete = ‘x',导致hold on 解决方案,

1.尝试注释标准逻辑,看会不会有什么问题,

ZME_BAPI_PO_CUST

IF_EX_ME_BAPI_PO_CREATE_02~INBOUND 里面有个控制很费解 我给注释了


技术分享

 
2.改用 BAPI_PO_CREATE,


3.用 BAPI_PO_CREATE1 后,  and status on hold.
再使用 BAPI_PO_CHANGE 将状态改回来,


3.

 Hello Jürgen,

Thanks for your reply~
According to NOTE 354771:
MEMORY_UNCOMPLETE:
You can use this parameter to define whether an INCORRECT or incomplete purchase order is to be held.

           If the value of the parameter is ‘X‘, then the purchase order is held.

           If the value of the parameter is ‘ ‘, then the purchase order NOT is created.

Seems possible to hold an incorrect or incomplete purchase order.

But in our situtaion, both of the parameters MEMORY_COMPLETE and MEMORY_UNCOMPLETE are set to ‘ ‘.

That means:

If purchase order is incomplete.

     it will NOT be created since the parameter MEMORY_UNCOMPLETE is set to ‘ ‘;

Else.

     it will BE saved not held since the parameter MEMORY_COMPLETE is set to ‘ ‘.

ENDIF.

Actually, the MEMORY_COMPLETE is set to ‘X‘ by a BADI:

INCLUDE ‘L2012F47‘, found a BADI: CL_EXM_IM_ME_BAPI_PO_CUST

Example Implementation for BAdI ME_BAPI_PO_CUST.

IF NOT ch_poheader-vendor IS INITIAL.

* hold PO without error

      ch_memory_complete = cl_mmpur_constants=>yes.

* do not perform application authority check

      ch_no_authority = cl_mmpur_constants=>yes.

    ENDIF.

Could it be other parameters to control the hold status? Please kindly to correct me if i am not right above.

Best regards,

Eason 

BAPI_PO_CREATE1 创建PO ch_memory_complete = ‘x',导致hold on 解决方案,