The IDOc WPUWBW for goodsmovement, has a Basic Type WPUWBW01 which has some segments:
As you can notice in the image, the IDOc has three segments:
- E1WPG01: Header segment which will have the information of the transaction (IT_TRANSACTION information)
- E1WPG02: Item segment which will have the information of Goodsmovement (TRANSACTION-GOODSMOVEMENT)
- E1WXX01: This segment is used to map some extra information (customer enhanmecent).
In my POSDM system, the information of GOODSMOVEMENT is not mapped so I have to map them with the information of RETAILLINEITEM. For this purpose I need to implement the /POSDW/TASK badi, and in the CALL method of my implementation, I receive these parameters:
Furthermore, in this method I call the FM /POSDW/IDOC_OUTPUT_WPUWBW, which creates the IDOc.
At this point, the IDOc will be generated and for each transaction we will be able to see two segments (one E1WPG01 header and one or more E1WPG02 segments with goodsmovement information) in the IDoc. If you need to add some enhancement data to the IDoc, you will need to map the GOODSMOVEMENT-EXTENSIONS table in the CALL method that I showed before. This table has three main fields:
And the E1WXX01 segment has the same fields but with other names:
For each EXTENSIONS entry that you map in the CALL method there will be a E1WXX01 segment in the IDoc.
For example: I have mapped one EXTENSIONS entry in the GOODSMOVEMENT-EXTENSIONS table:
The result of my IDoc is:
In addition, if you need to do some extra modifications on the IDoc information, you can implement the /POSDW/IDOCOUTPUT badi to modify EDIDC or EDIDD data. The CALL method of this badi receives as parameters the CT_EDDID table which contains all segments that have been created for all transactions.