adesso business consulting Stellenangebote
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
I PURCHASEORDERTP 2
Aus SAP Wiki ツ
Hinweis: Umlagerungserstellungen können damit nicht erstellt werden.
Bestellung erstellen
DATA lt_header_data TYPE if_mm_pur_po_bil=>tt_proj_level_po_create.
lt_header_data = VALUE #( ( %cid = 'CID_PURORDER_1'
PurchaseOrderType = 'NB' " cl_mmpur_create_test_pos=>get_valid_purchaseordertype( )
CompanyCode = lt_result[ 1 ]-CompanyCode "'1710'
PurchasingOrganization = lt_result[ 1 ]-PurchasingOrganization "'1710'
PurchasingGroup = lt_result[ 1 ]-PurchasingGroup "'001'
Supplier = lv_supplier "'0017300001'
%control = VALUE #(
PurchaseOrderType = cl_abap_behv=>flag_changed
CompanyCode = cl_abap_behv=>flag_changed
PurchasingOrganization = cl_abap_behv=>flag_changed
PurchasingGroup = cl_abap_behv=>flag_changed
Supplier = cl_abap_behv=>flag_changed ) ) ).
DATA lv_pos_numbering TYPE I_PurchaseOrderItemAPI01-PurchaseOrderItem.
lv_pos_numbering = 00010.
DATA lv_cid_item_numbering TYPE abp_behv_cid.
lv_cid_item_numbering = 1.
DATA lt_items_data TYPE if_mm_pur_po_bil=>tt_proj_level_items_create.
LOOP AT lt_result ASSIGNING FIELD-SYMBOL(<ls_res>).
lt_items_data = VALUE #( BASE lt_items_data
( %cid_ref = 'CID_PURORDER_1'
%target = VALUE #( ( %cid = |CID_POITEMT_{ lv_cid_item_numbering }|
PurchaseRequisition = <ls_res>-%key-PurchaseRequisition
PurchaseRequisitionItem = <ls_res>-%key-PurchaseRequisitionItem
Material = <ls_res>-%data-Material
ManufacturerMaterial = <ls_res>-%data-Material
Plant = <ls_res>-%data-Plant
OrderQuantity = <ls_res>-%data-RequestedQuantity
PurchaseOrderItem = lv_pos_numbering
NetPriceAmount = <ls_res>-%data-ItemNetAmount
%control = VALUE #(
Material = cl_abap_behv=>flag_changed
ManufacturerMaterial = cl_abap_behv=>flag_changed
Plant = cl_abap_behv=>flag_changed
OrderQuantity = cl_abap_behv=>flag_changed
PurchaseOrderItem = cl_abap_behv=>flag_changed
NetPriceAmount = cl_abap_behv=>flag_changed
PurchaseRequisition = cl_abap_behv=>flag_changed
PurchaseRequisitionItem = cl_abap_behv=>flag_changed ) ) ) ) ).
lv_pos_numbering += 10.
lv_cid_item_numbering += 1.
ENDLOOP.
MODIFY ENTITIES OF i_purchaseordertp_2
ENTITY purchaseorder CREATE FROM lt_header_data
ENTITY purchaseorder CREATE BY \_PurchaseOrderItem FROM lt_items_data
REPORTED DATA(ls_reported)
FAILED DATA(ls_failed)
MAPPED DATA(ls_mapped).
WAIT UP TO 2 SECONDS.
IF ls_failed IS INITIAL.
APPEND VALUE #( %msg = new_message( id = ycl_p2p_prmonitor_constants=>cv_message_class
number = '034'
severity = if_abap_behv_message=>severity-success ) )
TO reported-prmonitor.
ELSE.
IF ls_reported-PurchaseOrder IS NOT INITIAL.
APPEND VALUE #( %msg = new_message_with_text(
severity = ls_reported-PurchaseOrder[ 1 ]-%msg->m_severity
text = ls_reported-PurchaseOrder[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-prmonitor.
ENDIF.
IF ls_reported-PurchaseOrderItem IS NOT INITIAL.
LOOP AT ls_reported-PurchaseOrderItem ASSIGNING FIELD-SYMBOL(<ls_rep_po_item>).
APPEND VALUE #(
%msg = new_message_with_text(
severity = ls_reported-PurchaseOrderItem[ sy-tabix ]-%msg->m_severity
text = ls_reported-PurchaseOrderItem[ sy-tabix ]-%msg->if_message~get_text( ) ) )
TO reported-prmonitor.
ENDLOOP.
ENDIF.
APPEND VALUE #( PurchaseRequisition = keys[ 1 ]-PurchaseRequisition
PurchaseRequisitionItem = keys[ 1 ]-PurchaseRequisitionItem )
TO failed-prmonitor.
ENDIF.
LOOP AT keys ASSIGNING FIELD-SYMBOL(<ls_keys>).
IF ls_mapped IS NOT INITIAL.
APPEND VALUE #( %cid = <ls_keys>-%cid
PurchaseRequisition = <ls_keys>-PurchaseRequisition
PurchaseRequisitionItem = <ls_keys>-PurchaseRequisitionItem ) TO mapped-prmonitor.
ENDIF.
ENDLOOP.
Bestellung lesen
Bestellung ändern
DATA lt_read_result TYPE TABLE FOR READ RESULT yc_purchaseorderitem\\poitem.
DATA ls_read_failed TYPE RESPONSE FOR FAILED EARLY yc_purchaseorderitem.
DATA ls_read_reported TYPE RESPONSE FOR REPORTED EARLY yc_purchaseorderitem.
read( EXPORTING keys = CORRESPONDING #( keys )
CHANGING result = lt_read_result
failed = ls_read_failed
reported = ls_read_reported ).
IF ls_read_failed IS NOT INITIAL.
APPEND VALUE #( %msg = new_message( id = ycl_p2p_prmonitor_constants=>cv_message_class
number = '005'
severity = if_abap_behv_message=>severity-error ) )
TO reported-poitem.
RETURN.
ENDIF.
MODIFY ENTITIES OF i_purchaseordertp_2
ENTITY purchaseorderitem UPDATE FROM VALUE #(
( PurchaseOrder = CONV ebeln( keys[ 1 ]-PurchaseOrder )
PurchaseOrderItem = keys[ 1 ]-PurchaseOrderItem
%data-OrderQuantity = keys[ 1 ]-%param-OrderQuantity
%data-StorageLocation = keys[ 1 ]-%param-StorageLocation
%control-OrderQuantity = COND #( WHEN keys[ 1 ]-%param-OrderQuantity <> lt_read_result[ 1 ]-OrderQuantity
THEN if_abap_behv=>mk-on )
%control-StorageLocation = COND #( WHEN keys[ 1 ]-%param-StorageLocation <> lt_read_result[ 1 ]-StorageLocation
THEN if_abap_behv=>mk-on ) ) )
REPORTED DATA(ls_update_reported)
FAILED DATA(ls_update_failed).
IF ls_update_failed IS INITIAL.
APPEND VALUE #( %msg = new_message( id = ycl_p2p_prmonitor_constants=>cv_message_class
number = '073'
severity = if_abap_behv_message=>severity-success ) )
TO reported-poitem.
RETURN.
ELSE.
IF ls_update_reported-PurchaseOrderItem IS NOT INITIAL.
APPEND VALUE #( %msg = new_message_with_text(
severity = ls_update_reported-PurchaseOrderItem[ 1 ]-%msg->m_severity
text = ls_update_reported-PurchaseOrderItem[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-poitem.
ENDIF.
APPEND VALUE #( PurchaseOrder = keys[ 1 ]-PurchaseOrder
PurchaseOrderItem = keys[ 1 ]-PurchaseOrderItem )
TO failed-poitem.
ENDIF.
Bestellung als gelöscht markieren
DATA lt_delete TYPE TABLE FOR UPDATE I_PurchaseRequisitionTP\\PurchaseRequisitionItem.
lt_delete = CORRESPONDING #( keys ).
LOOP AT lt_delete ASSIGNING FIELD-SYMBOL(<ls_delete>).
<ls_delete>-IsDeleted = abap_true.
<ls_delete>-%data-IsDeleted = abap_true.
<ls_delete>-%control-IsDeleted = if_abap_behv=>mk-on.
ENDLOOP.
MODIFY ENTITIES OF i_purchaserequisitiontp
ENTITY PurchaseRequisitionItem UPDATE FROM lt_delete
MAPPED DATA(ls_mapped) REPORTED DATA(ls_reported) FAILED DATA(ls_failed).
IF ls_failed IS INITIAL.
APPEND VALUE #( %msg = new_message( id = ycl_p2p_prmonitor_constants=>cv_message_class
number = '049'
severity = if_abap_behv_message=>severity-success ) )
TO reported-prmonitor.
ELSE.
IF ls_reported-PurchaseRequisitionItem IS NOT INITIAL.
APPEND VALUE #( %msg = new_message_with_text(
severity = ls_reported-PurchaseRequisition[ 1 ]-%msg->m_severity
text = ls_reported-PurchaseRequisition[ 1 ]-%msg->if_message~get_text( ) ) )
TO reported-prmonitor.
ENDIF.
IF ls_reported-PurchaseRequisitionItem IS NOT INITIAL.
LOOP AT ls_reported-PurchaseRequisitionItem ASSIGNING FIELD-SYMBOL(<ls_rep_po_item>).
APPEND VALUE #(
%msg = new_message_with_text(
severity = ls_reported-PurchaseRequisitionItem[ sy-tabix ]-%msg->m_severity
text = ls_reported-PurchaseRequisitionItem[ sy-tabix ]-%msg->if_message~get_text( ) ) )
TO reported-prmonitor.
ENDLOOP.
ENDIF.
APPEND VALUE #( PurchaseRequisition = keys[ 1 ]-PurchaseRequisition
PurchaseRequisitionItem = keys[ 1 ]-PurchaseRequisitionItem )
TO failed-prmonitor.
ENDIF.
LOOP AT keys ASSIGNING FIELD-SYMBOL(<ls_keys>).
APPEND VALUE #( "%cid = <ls_keys>-%cid
PurchaseRequisition = <ls_keys>-PurchaseRequisition
PurchaseRequisitionItem = <ls_keys>-PurchaseRequisitionItem ) TO mapped-prmonitor.
ENDLOOP.
Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud