您的位置:首页 > 其它

BADI 修改采购订单的shipping point示例

2012-09-05 14:13 253 查看

BADI 修改采购订单的shipping point示例

本文描述如何使用BADI enhancement来修改采购订单的shipping point值。

  待实现的BADI class:ME_PROCESS_PO_CUST (Enhancements for Processing Enjoy Purchase Order: Customer)

  1. 执行se19实现BAD方法:IIF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER

  2. 在方法内输入如下代码:

  method if_ex_me_process_po_cust~process_header .

  

   data : header_data type mepoheader ,

   po_data type mepoitem,

   my_ekpv type ekpv,

   items type purchase_order_items,

   item_obj type purchase_order_item.

  

   data oldvstel type ekpv-vstel.

  

  

   header_data = im_header->get_data( ).

   items = im_header->get_items( ) .

   if header_data-bsart = 'UB'. "stock transport order

  * first,save old value of shipping point b+.

   if not items is initial .

   loop at items into item_obj .

   my_ekpv = item_obj-item->get_shipping_data( ) .

   if oldvalue is initial . "statics var

   ldvalue = my_ekpv-vstel .

   endif.

   endloop.

  

  

  * second, if collect number is 'SAMPLE' , set value 8201 to shipping

  * point

   if header_data-submi = 'SAMPLE' and

   header_data-reswk = supplyplant .

  

   my_ekpv = item_obj-item->get_shipping_data( ) .

   my_ekpv-vstel = shippingpoint.

   item_obj-item->set_shipping_data( im_ekpv = my_ekpv ).

   endif.

  

  * third, if collect number is not 'SAMPLE' ,recover shipping point.

   if header_data-submi <> 'SAMPLE' or

   header_data-reswk <> supplyplant .

  

   my_ekpv = item_obj-item->get_shipping_data( ) .

   my_ekpv-vstel = oldvalue.

   item_obj-item->set_shipping_data( im_ekpv = my_ekpv ).

   endif.

  

   endif.

   endif.

  * ENDIF.

  endmethod.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: