Advertising:
Create and cancel operation for goods receipt purchase order with Behavior Definition/Implementation I MATERIALDOCUMENTTP
From SAP Knowledge Base
After reading this wiki entry, you should able to do operations Create and Cancel for purchase order goods receipt.
This is done by Entity Manipulation Language (EML)
Create goods receipt for purchase order
Cancel for goods receipt for purchase order
MODIFY ENTITIES OF I_MaterialDocumentTP
ENTITY MaterialDocumentItem
EXECUTE Cancel
FROM VALUE #( ( MaterialDocument = keys[ 1 ]-PurchasingHistoryDocument
MaterialDocumentItem = keys[ 1 ]-PurchasingHistoryDocumentItem
MaterialDocumentYear = keys[ 1 ]-PurchasingHistoryDocumentYear ) )
REPORTED DATA(reported)
FAILED DATA(failed).
IF failed IS INITIAL.
APPEND VALUE #( %msg = new_message( id = ycl_p2p_prmonitor_constants=>cv_message_class
number = '092'
severity = if_abap_behv_message=>severity-success
v1 = '' ) )
TO reported-stohistory.
ELSE.
IF reported-MaterialDocument IS NOT INITIAL.
APPEND VALUE #( %msg = new_message_with_text(
severity = reported-MaterialDocument[ 1 ]-%msg->m_severity
text = reported-MaterialDocument[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-poitemhistory.
ENDIF.
IF reported-MaterialDocumentItem IS NOT INITIAL.
APPEND VALUE #( %msg = new_message_with_text(
severity = reported-MaterialDocumentItem[ 1 ]-%msg->m_severity
text = reported-MaterialDocumentItem[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-poitemhistory.
ENDIF.
IF reported-materialdocumentitemserialno IS NOT INITIAL.
APPEND VALUE #(
%msg = new_message_with_text(
severity = ls_reported-materialdocumentitemserialno[ 1 ]-%msg->m_severity
text = ls_reported-materialdocumentitemserialno[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-poitemhistory.
ENDIF.
APPEND VALUE #( PurchaseOrder = keys[ 1 ]-PurchaseOrder
PurchaseOrderItem = keys[ 1 ]-PurchaseOrder
PurchasingHistoryDocument = keys[ 1 ]-PurchasingHistoryDocument
PurchasingHistoryDocumentItem = keys[ 1 ]-PurchasingHistoryDocumentItem
PurchasingHistoryDocumentYear = keys[ 1 ]-PurchasingHistoryDocumentYear )
TO failed-poitemhistory.
ENDIF.