I PURCHASEORDERTP 2

Aus SAP Wiki ツ
Version vom 3. Juni 2025, 13:01 Uhr von M1ch3lde (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:Behavior Definitionen und Implementierungen Hinweis: Umlagerungserstellungen können damit nicht erstellt werden. === Bestellung erstellen === <syntaxhighlight line copy> 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( )…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Hinweis: Umlagerungserstellungen können damit nicht erstellt werden.

Bestellung erstellen

<syntaxhighlight line copy>

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.

</syntaxhighligh>


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