Tuesday, October 5, 2010

SAP ECC6.0 : Project SI

This entry is long overdue and I was busy with my job transition. Nevertheless, Project SI had took me to almost half a year to complete (with development, testing and a series of correction) and making the whole process stable. I think the development is still on-going even though the leading functional and the developer had left too. 

This process involved multiple partner sending from one purchase order IDOC (WMMBXY) and certain PO documents with certain account assignment to automatically and dynamically assign FOC, header text and update delivery address. In this entry, I will only touch on the FOC, Header Text, and updating Issuing Storage Location and the delivery address. Though, I personally developed the first and the last part, the middle process was taken over by an ex-colleague before I returned back to this project. 

The first part was so to have a BADI that could manipulate FOC (EKPO-UMSON) in the Purchase Order Creation/Change (ME21N/ME22N) and at the same time catering Header Text Change. Therefore, I'd made use of the following objects :

BADI - ME_PROCESS_PO_CUST,
  - Method : process_item
      - Z_MM01_SI01_INCO_SHIPPING, to update incoterms
      - Z_MM01_SI01_FOC_SO_PO, to update UMSON field
      - Z_MM01_SI01_SHIP_TO_PARTY_ADD, to change ship to party (SH)
  - Method : post
      - Z_MM01_SI01_MY_POST

Then at later stage, it was a requirement to be able to automatically update the line items' supplying storage location based on a customized table:

BADI - MD_EXT_SUP
  - Method : get_supplying_sl
      - Z_MM01_MY01_GET_SUPPLYING_SL, to update supplying storage location

Finally, to be able to refresh and make the changes to earlier FOC and INCOTERM more flexible even though it is automatically updated. Hence the following code allow user to be able to change those updated fields too. 

BADI - ME_PURCHDOC_POSTED
  - Method : posted
      - Z_PU01_MY01_POSTED

Apart from the above enhancements, there is another enhancement need to be taken care, which is, the 3rd Eye Program that do updates on PO based on Inbound IDOC. This is another program that requires all of the above enhancements to be running in the background.  Hence, the following programs were included in my enhancement. This is not particular to any other projects but if there is any resemblance, this can serve as a reminder to take care of external processes.

IDOC FM : Z_MM00_IDOC_OUTPUT_ORDERS_3PL
   - This function module will eventually call below FM to update

3rd Eye PO Create
   - FM : ZMMPU00_UPDATEPO_3RDEYE_EX

williamwilstroth... BADI, ME21N, and ambition!