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 mit Positionen 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.
Bestellkopf lesen
READ ENTITY i_purchaseordertp_2 ALL FIELDS WITH
VALUE #( ( purchaseorder = ms_purchase_orders-purchaseorder ) )
RESULT DATA(lt_read_result)
REPORTED DATA(ls_read_reported)
FAILED DATA(ls_read_failed).
Bestellposition ä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.
Bestellposition als gelöscht markieren
Bestellposition Löschkennzeichen zurücknehmen
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