Objekte in der Cloud Entwicklung mit Hilfe eines Sperrobjektes sperren

Aus SAP Wiki ツ

Folgende verwendete Klasse ist nur ein Wrapper und benutzt ebenso die Funktionsbausteine, die das Sperrobjekt automatisch nach Anlage generiert. Allerdings ist die Klasse CL_ABAP_LOCK_OBJECT_FACTORY für die Cloud-Entwicklung freigegeben und daher bevorzugt zu verwenden.

Deklaration

DATA mo_lock_object TYPE REF TO if_abap_lock_object.
</syntaxhighlight lang="abap">

== Sperren ==
<syntaxhighlight lang="abap">
    TRY.
        mo_lock_object = cl_abap_lock_object_factory=>get_instance( 'EXKNA1' ).
        mo_lock_object->enqueue( it_parameter = VALUE #( ( name  = 'KUNNR'
                                                           value = REF #( mv_customer_no ) )
                                                         ( name = 'MODE_KNA1'
                                                           value = REF #( if_abap_lock_object=>cs_mode-write_lock ) )
                               )
        ).
      CATCH cx_abap_lock_failure INTO DATA(lx_lock_fail).
        _add_msg_to_prot( is_message = VALUE #( messageid = _co_message-class
                                                messagenumber = _co_message-number_v1_v2_v3_v4
                                                messagevariable1 = lx_lock_fail->get_text( ) ) ).
        RAISE EXCEPTION TYPE cx_fiil_error.
      CATCH cx_abap_foreign_lock INTO DATA(lx_foreign_lock).
        _add_msg_to_prot( is_message = VALUE #( messageid = _co_message-class
                                             messagenumber = _co_message-number_v1_v2_v3_v4
                                             messagevariable1 = lx_foreign_lock->get_text( ) ) ).
        RAISE EXCEPTION TYPE cx_fiil_error.
    ENDTRY.

Entsperren

   TRY.
      mo_lock_object->dequeue( it_parameter = VALUE #( ( name  = 'KUNNR'
                                                           value = REF #( mv_customer_no ) )
                                                         ( name = 'MODE_KNA1'
                                                           value = REF #( if_abap_lock_object=>cs_mode-write_lock ) )
                               )
        ).
      CATCH cx_abap_lock_failure INTO DATA(lx_lock_fail).
       "catch handling here
      CATCH cx_abap_foreign_lock INTO DATA(lx_foreign_lock).
        "catch handling here
    ENDTRY.

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