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: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 93: | Zeile 93: | ||
ENDLOOP. | ENDLOOP. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Bestellung lesen === | |||
=== Bestellung ändern === | |||
=== 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. |
Version vom 3. Juni 2025, 13:06 Uhr
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
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.