168017563-3PL-SAP-Integration

advertisement
3PL > SAP EDI Integration Best Practice
Applies to:
SAP ECC 6.0, Supply Chain Management and EDI.
Summary
The objective of this article is to provide a detailed overview of the EDI interfaces required to collaborate
effectively with third party logistics providers. This article also describes the technical approach for typical
business requirements. The reader will gain a better understanding of the EDI processes needed to
implement EDI 940 (Warehouse shipping order) and EDI 945 (Warehouse Shipping Advice) transactions
for the Advanced Planning, Picking, Packing/Unpacking, Shipment Confirmation/PGI processes. Moreover,
this document covers the use of Handling Unit management (HU) as a part of the overall process and the
automated re-processing of failed IDocs.
Overview
The objective of this article is to provide a detailed overview of the EDI interfaces required to collaborate
effectively with third party logistics providers. This article also describes the technical approach for typical
business requirements. The reader will gain a better understanding of the EDI processes needed to
implement EDI 940 (Warehouse shipping order) and EDI 945 (Warehouse Shipping Advice) transactions
for the Advanced Planning, Picking, Packing/Unpacking, Shipment Confirmation/PGI processes. Moreover,
this document covers the use of Handling Unit management (HU) as a part of the overall process and the
automated re-processing of failed IDocs.
Third party logistics provider’s offer outsourced services to support supply chain management and the
delivery of shipper’s products to customers in an on-demand fashion with real-time
information. Standardized electronic data information exchange (EDI) will increase the efficiency for business
partners. Moreover, it significantly reduces manual intervention, paper work and improves cycle time and
better supports a high volume transaction environment. It provides direct electronic communication between shipper
and 3PL computer systems using national andinternational telecommunication networks and requires agreements
between trading partners. The communication is typically done through a VAN (Value Added Network) using
international EDI standards such as the American NationalStandard Institution (ANSI) or EDI for Administration,
Commerce and Transport (EDIFACT).
Background
Our client is a world leader in premium quality cheese manufacturing and the largest U.S. exporter of
whey products. The client’s mozzarella cheese, cheese blends, and pizza cheese are made especially for
pizzeria and food service operators, frozen food manufacturers and private label cheese packagers. Our
premium mozzarella cheese is the uniform source of our high-quality sweet whey, whey proteins, and
lactose products.
The client has 10 manufacturing plants in US and the client’s whey protein business is 30% of their
business. Whey is the by-product from the cheese manufacturing process and is used for nutritional
supplements and ingredients. Whey customers include baby formula manufacturers, Nestle, Bristol
Meyers, and M&M Mars.
As a part of the Strategic Systems Initiative project, the client decided to implement SAP ERP using the
Deloitte Food & Beverage template solution. EDI plays a key role for the client in transmitting business
information to their customers and vendors.
Business Requirements
1.
2.
3.
4.
5.
6.
7.
8.
3PL Shipments to customers and Internal plants
3PL has to be notified in advance about the warehouse shipping order (EDI 940) to perform the resource
planning. Warehouse shipping order can be generated either from sales order or STO for advance
notification.
Any changes in the warehouse shipping order have to be communicated to 3PL’s. Changes may be
quantity, date, address or product.
If warehouse shipping order has changed the plant values then communication has to be sent to both
parties.
Final confirmation for the warehouse shipping order will be communicated to 3PL from the delivery
document. If the delivery document is deleted after the confirmation to 3PL then the shipping order has
to be sent from sales order/STO with change status.
Warehouse shipping advice (EDI 945) sent by 3PL has to be update the delivery document with Pick
quantity, Packing/Unpacking the Handling unit and Post Goods Issue.
EDI 945 may contain partial pallet, where the original handling unit has to undergo unpacking and
packing with the quantity sent by the 3PL.
Automated reprocess for the failed IDocs to execute the only from the position where it has failed.
Proposed Solution
EDI 940 – Warehouse Shipping Order
To allow the 3PL to begin advance planned activities for labor and space utilization, the warehouse
shipping order will be generated from the sales order. The 3PL will ensure the sales order will not be
shipped from warehouse until a final delivery confirmation status is sent. If any changes take place in the
sales order, the changes will be re-communicated to the 3PL via a change delivery notification. Once the
delivery is created then an EDI 940 document will be triggered to confirm the status with the 3PL.
Whenever a sales order, STO or delivery document is created, changed or deleted, a corresponding IDoc
must be generated.
There was no standard IDoc type or process code to support the business requirements as defined. Using
standard SAP IDocs would have resulted in creating multiple EDI mapping documents with a large volume
of unwanted data for the 3PL thereby increasing the overall VAN transaction costs Additionally,
maintaining multiple mapping documents in the EDI middleware would not have been a cost-effective
solution.
The proposed solution is to have a custom IDoc type with all the required fields for the Sales order, STO,
Delivery and Shipment documents. A custom process code was developed to build the logic based on the
output type and actions (Create/Change/Delete).
When a sales order is created, the plant can be changed based on the customer requirements (geographic
location, stock availability, customer preference). Based on the three variables as defined below, the EDI
output is triggered to fulfill the customer requirement. Custom logic is needed in program MV45AFZZ at
‘USEREXIT_SAVE_DOCUMENT’. Whenever the 940 is triggered from the sales order then the status to the
3PL will always be new/change. Only the document triggered from the delivery should go with a
confirmed status. The confirmed status will signal the 3PL to ship the goods.
Plant number is changed from manufacturing plant to 3PL, and then the IDoc is generated for the 3PL
plant. This is the first IDoc sent to the 3PL.
Plant number is changed from 3PL to manufacturing plant, then a cancellation IDoc is generated to the
3PL.
Plant number is changed from one 3PL to another 3PL, then a cancellation IDoc is generated for the old
3PL and a new IDoc is triggered for the new 3PL.
When the delivery document is deleted then the output has to be triggered to the corresponding STO or sales
document. Custom logic is needed in program MV50AFZ1 at ‘USEREXIT_DELETE_DOCUMENT’ to trigger output for
the preceding document. The 3PL will again start the advanced planning to allocate the resources for the confirmed
shipment document.
EDI 945 - Warehouse Shipping Advice
IDOC_INPUT_DELVRY is the standard SAP function module for processing EDI 945 transactions. Based on
the client and/or 3PL requirements, if minor customization is required then the approach should be to
leverage existing user-exits and/or enhancement spots. If more complex customization is required then
the approach should be to copy the standard function module to a custom function module and enhance
as per the requirement.
The following items are the major custom requirements to consider for processing EDI 945 transactions.





Check if the line item quantity is equal to the handling unit quantity in SAP. Handling unit is nothing but a
Batch number which exists in the IDoc. Retrieve the Handling unit quantity from VEKP and VEPO tables
using the batch number.
Before comparing the quantities check that the batch UOM and Delivery UOM are the same, if not then
convert the delivery UOM to batch UOM and decide whether its partial pallet or not.
If the EDI quantity is greater than the delivery quantity then the IDoc will throw an error and it must be
processed manually. If the quantity is less than delivery quantity then follow the partial pallet process as
defined below.
Add the new handling unit number created from partial pallet process or from the IDoc into the internal
table IT_HANDLING_UNITS_1.
Update the delivery with the new batch numbers for the applicable line items and pass the Handling unit
number internal table to ‘WS_DELIVERY_UPDATE_2’ which will do Pick, Pack and PGI.
Partial Pallet Processing



If the EDI line item quantity doesn't match with the Handling Unit line item quantity then the 3PL
has split the handling unit while shipping to the
customer.
Retrieve the Handling unit details from VEKP and VEPO tables.
Create a Handling Unit with reference to the packaging material of the existing handling unit number
using the FM ‘BAPI_HU_CREATE’. Pass the Packaging Material in the ‘HEADERPROPOSAL-PACK_MAT’. It
will return the new handling unit number which has generated internally with sequence. Use Commit work
after the BAPI and capture the new handling unit number.

Now we have to unpack the existing handling unit and repack with the new handling unit by adjusting the
quantities. Use FM 'BAPI_HU_REPACK’ (Tcode: HU02) to do the process in standard way. Pass the
parameters as defined below.
Import Parameters
HUKEY
<New Handling Unit Number>

Table Parameters
REPACK-SOURCE_HU
<Existing Handling Unit Number>
REPACK-PACK_QTY
<Picked Qty >
REPACK-BASE_UOM
<UOM>
REPACK-MATERIAL
<Material Number>
REPACK-BATCH
<Batch Number>
REPACK-PLANT
<Plant>
REPACK-STGE_LOC
<Storage Location>
If the BAPI was successful, then use execute the commit work command because the unpack/repack
process is completed. Now we have to execute last step below to perform the goods movement for the
new handling unit and to change the receiving batch.
In the partial pallet process, the new batch will always be created with a restricted status as per the
configuration requirements. Once the batch is
generated, the batch status is change to unrestricted as per the parent batch characteristics.

Check the both Parent and Child Batch statuses are the same. If yes, then don't change the status.
If the Statuses are different and the parent has an unrestricted status, then change the child batch
status to unrestricted using the FM
‘VB_CHANGE_BATCH_STATUS’.

For goods movement transfer use FM ‘HU_CREATE_GOODS_MOVEMENT’ (Tcode: VLMOVE) passing the
following parameters.
Import Parameters

IF_TCODE
VLMOVE
IT_MOVE_TO-HUWBEVENT
‘0010’
IT_MOVE_TO-MATNR
<Material Number>
IT_MOVE_TO-CHARG
<New Created HU number>
IT_MOVE_TO-WERKS
<Plant>
IT_MOVE_TO-LGORT
<Storage Location>
IT_MOVE_TO-HU_ITEMS-VENUM
<VEPO-VENUM>
IT_MOVE_TO-HU_ITEMS-VEPOS
<VEPO-VEPOS>
IT_INTERNAL_ID-VENUM
<VEPO-VENUM>
IDoc Re-Processing
For the four processes defined below there is a potential for the IDoc to fail at any point in the process.
When the failed IDocs are re-processed we only want to re-process from the point of failure. Any prior
steps that were completed successfully should not be re-processed. Therefore, to properly manage the
IDoc re-processing a custom table was developed to record the results of each process step and to
document the corresponding transactional information created, such as handling unit number, status
change and goods movement. The custom table may also contain key fields such as IDoc number,
delivery number, material number and batch number.
When posting the IDoc for partial pallet processing the individual process triggers are defined as below.
1.
2.
3.
4.
Handling Unit Creation
Repacking of Handling units
Handling unit status change
Goods Movement
If the above four steps are completed successfully then we can assume that the partial pallet processing
has completed successfully for a given line item in the IDoc. We then need to update the custom table
with the completion indictor. If the pick/pack/PGI process failed, we can retrieve the partial pallet handling
unit from the custom table. The custom table has to be updated before the IDoc is set to status 51 (Error
while posting the document). A more meaningful error message is provided in the long text of the IDoc.
If the 3PL sends an invalid batch number then the IDoc should raise an error. This is true for even legacy
batch numbers (this may occur first few months of
Go-Live). To avoid errors with legacy batch numbers a cross-reference table must be established to
cross-reference the legacy batch numbers with new SAP
batch number.
Conclusion






After reading this article, you should have a better understanding of SAP to 3PL integration and the
technical design across the areas as highlighted below:
Mapping of EDI 940 and EDI 945 transactions
Developing the logic to trigger the EDI 940 document from a Sales Order, STO and delivery
Defining the data requirements needed for 3PL integration
Managing the output determination
Understanding the requirements for batch split and partial pallet process
Understanding the requirements and logic for re-processing of failed IDocs
In general, standard SAP IDoc structures and programming will cover most client requirements. Also
remember that mapping documents will change based on each client’s specific needs. Lastly, the level of
customization may be influenced by the overall process design and 3PL system integration requirements.
Download