I gotta requirement in IDOC extension and i m new to this concept.Can anyone help me in doing this task...Full marks would be given...
here is the requirement..
Current system has an issue that when product is cut or removed from an order an all that is left are pallets, and an ASN is still processed and eventually sent out to customers.
If the delivery is fully cut in the warehouse ie picking confirmation IDoc comes with Zero quantity and it has only pallet that delivery should not be sent in the ASN to customers.
The Delivery which is fully cut in the warehouse and has only pallet material should be removed from ASN. This is being achieved by sending a flag in the SHPMNT05 IDoc for delivery cut at the delivery level and ASN preprocessor, if find the value of Flag asu201D Y u201Cremoves the delivery from the customer ASN IDoc.
Step 1: Modify extension [ZSHPMNT_TNDR] and create NEW field for NO Product ASN FLAG on the DELIVERY HEADER LEVEL under E1EDL20.
Object- Data element
Desc-DELIVERY CUT INDICATOR
Possible value--Y or blank
Step2-Create New custom Field DELCUT_INDICATOR under Segment Z1EDLHAD for IDoc Extension : ZSHPMNT_TND
Descrp--DELIVERY CUT INDICATOR
Step 3: Modify Method PO_ME_1060_Z1EDLHAD in the class ZVXX_CL_FILL_SEGMENTS for populating the DELCUT_INDICATOR in Z1EDLHAD segment for extension IDoc ZSHPMNT_TND.
For Message Type ZSHPMNT_ASN, Check for each delivery segment E1EDL20 and child segments E1EDL24, if one material in the delivery is found ne Zero ie as soon as it finds in one E1EDL24 segment Material qty for Non ZPAL material ne Zero, no further validation required and exit
if Material quantity for Non ZPAL material eq Zero in all E1EDL24 segments under delivery, the DELCUT_INDICATOR in Z1EDLHAD Segment should be populated with value u201CYu201D.
Pseudo Code in Processing Logic
Object : Method PO_ME_1060_Z1EDLHAD in the class ZVXX_CL_FILL_SEGMENTS
For Message Type ZSHPMNT_ASN
Read Idoc Data
Loop at Segnam E1EDL20
Loop at segnam E1EDL24
if E1EDL24- LFIMG ne 0 whereas E1EDL26-PSTVY ne ZPAL
Do nothing, stop further validation.
Else if E1EDL24- LFIMG eq 0 whereas E1EDL26-PSTVY ne ZPAL
Populate Z1EDLHAD-ZDELCUT with value "Y"