mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Introduce common base class for SAPC/SAMC
Introduce common base class lcl_objects_channel_super for SAPC / SAMC
This commit is contained in:
parent
ea1345d5e8
commit
b621fbaa36
|
@ -2,41 +2,16 @@
|
||||||
*& Include ZABAPGIT_OBJECT_SAMC
|
*& Include ZABAPGIT_OBJECT_SAMC
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
CLASS lcl_object_samc DEFINITION INHERITING FROM lcl_objects_super FINAL.
|
CLASS lcl_object_samc DEFINITION INHERITING FROM lcl_objects_channel_super FINAL.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES lif_object.
|
METHODS: lif_object~exists REDEFINITION.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
DATA: mo_persistence TYPE REF TO if_wb_object_persist,
|
|
||||||
mo_amc_appl_obj_data TYPE REF TO if_wb_object_data_model.
|
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
METHODS:
|
METHODS:
|
||||||
get_data_object
|
get_persistence_cls_name REDEFINITION,
|
||||||
RETURNING
|
get_appl_obj_cls_name REDEFINITION,
|
||||||
value(ro_amc_appl_obj_data) TYPE REF TO if_wb_object_data_model
|
get_data_structure_name REDEFINITION.
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
get_persistence
|
|
||||||
RETURNING
|
|
||||||
value(ro_persistence) TYPE REF TO if_wb_object_persist
|
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
get_data
|
|
||||||
EXPORTING
|
|
||||||
p_data TYPE any
|
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
lock
|
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
unlock
|
|
||||||
RAISING
|
|
||||||
lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_samc DEFINITION
|
ENDCLASS. "lcl_object_samc DEFINITION
|
||||||
|
|
||||||
|
@ -47,43 +22,6 @@ ENDCLASS. "lcl_object_samc DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_samc IMPLEMENTATION.
|
CLASS lcl_object_samc IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~has_changed_since.
|
|
||||||
rv_changed = abap_true.
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data.
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
|
||||||
<ls_header> TYPE any,
|
|
||||||
<changed_by> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_data TYPE ('AMC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAMC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
get_data(
|
|
||||||
IMPORTING
|
|
||||||
p_data = <ls_data> ).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <changed_by>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
rv_user = <changed_by>.
|
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~changed_by
|
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
|
||||||
rs_metadata = get_metadata( ).
|
|
||||||
rs_metadata-delete_tadir = abap_true.
|
|
||||||
ENDMETHOD. "lif_object~get_metadata.
|
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
||||||
DATA: ls_tadir TYPE tadir.
|
DATA: ls_tadir TYPE tadir.
|
||||||
|
@ -95,276 +33,26 @@ CLASS lcl_object_samc IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
TRY.
|
|
||||||
get_data_object( ).
|
|
||||||
|
|
||||||
CATCH lcx_exception.
|
|
||||||
RETURN.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
rv_bool = abap_true.
|
rv_bool = abap_true.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~exists
|
ENDMETHOD. "lif_object~exists
|
||||||
|
|
||||||
METHOD lif_object~serialize.
|
METHOD get_appl_obj_cls_name.
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data.
|
r_data_class_name = 'CL_AMC_APPLICATION_OBJ_DATA'.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
ENDMETHOD.
|
||||||
<ls_header> TYPE any,
|
|
||||||
<field> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
METHOD get_data_structure_name.
|
||||||
CREATE DATA lr_data TYPE ('AMC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
r_data_structure_name = 'AMC_APPLICATION_COMPLETE'.
|
||||||
lcx_exception=>raise( 'SAMC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
get_data(
|
ENDMETHOD.
|
||||||
IMPORTING
|
|
||||||
p_data = <ls_data> ).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
METHOD get_persistence_cls_name.
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <ls_header> TO <field>.
|
r_persistence_class_name = 'CL_AMC_APPLICATION_OBJ_PERS'.
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
io_xml->add( iv_name = 'SAMC'
|
|
||||||
ig_data = <ls_data> ).
|
|
||||||
|
|
||||||
ENDMETHOD. "serialize
|
|
||||||
|
|
||||||
METHOD lif_object~deserialize.
|
|
||||||
|
|
||||||
DATA: li_appl_obj_data TYPE REF TO if_wb_object_data_model,
|
|
||||||
lr_data TYPE REF TO data.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_data TYPE ('AMC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAMC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
io_xml->read(
|
|
||||||
EXPORTING
|
|
||||||
iv_name = 'SAMC'
|
|
||||||
CHANGING
|
|
||||||
cg_data = <ls_data> ).
|
|
||||||
|
|
||||||
IF lif_object~exists( ) = abap_true.
|
|
||||||
lif_object~delete( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
li_appl_obj_data = get_data_object( ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lock( ).
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_CORR_INSERT'
|
|
||||||
EXPORTING
|
|
||||||
object = ms_item-obj_name
|
|
||||||
object_class = 'SAMC'
|
|
||||||
mode = 'I'
|
|
||||||
global_lock = abap_true
|
|
||||||
devclass = iv_package
|
|
||||||
master_language = mv_language
|
|
||||||
EXCEPTIONS
|
|
||||||
cancelled = 1
|
|
||||||
permission_failure = 2
|
|
||||||
unknown_objectclass = 3
|
|
||||||
OTHERS = 4.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
lcx_exception=>raise( 'Error occured while creating SAMC' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
li_appl_obj_data->set_data( <ls_data> ).
|
|
||||||
|
|
||||||
get_persistence( )->save( p_object_data = li_appl_obj_data ).
|
|
||||||
|
|
||||||
unlock( ).
|
|
||||||
|
|
||||||
CATCH cx_swb_exception.
|
|
||||||
lcx_exception=>raise( 'Error occured while creating SAMC' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
|
||||||
|
|
||||||
METHOD lif_object~delete.
|
|
||||||
|
|
||||||
DATA: object_key TYPE seu_objkey.
|
|
||||||
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lock( ).
|
|
||||||
|
|
||||||
get_persistence( )->delete( p_object_key = object_key ).
|
|
||||||
|
|
||||||
unlock( ).
|
|
||||||
|
|
||||||
CATCH cx_swb_exception.
|
|
||||||
lcx_exception=>raise( 'Error occured while deleting SAMC' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD. "delete
|
|
||||||
|
|
||||||
METHOD lif_object~jump.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
|
||||||
EXPORTING
|
|
||||||
operation = 'SHOW'
|
|
||||||
object_name = ms_item-obj_name
|
|
||||||
object_type = ms_item-obj_type.
|
|
||||||
|
|
||||||
ENDMETHOD. "jump
|
|
||||||
|
|
||||||
METHOD lif_object~compare_to_remote_version.
|
|
||||||
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
|
|
||||||
ENDMETHOD. "lif_object~compare_to_remote_version
|
|
||||||
|
|
||||||
METHOD get_data_object.
|
|
||||||
|
|
||||||
IF mo_amc_appl_obj_data IS NOT BOUND.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE OBJECT mo_amc_appl_obj_data TYPE ('CL_AMC_APPLICATION_OBJ_DATA').
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAMC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ro_amc_appl_obj_data = mo_amc_appl_obj_data.
|
|
||||||
|
|
||||||
ENDMETHOD. "get_data_object
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_persistence.
|
|
||||||
|
|
||||||
IF mo_persistence IS NOT BOUND.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE OBJECT mo_persistence TYPE ('CL_AMC_APPLICATION_OBJ_PERS').
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAMC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ro_persistence = mo_persistence.
|
|
||||||
|
|
||||||
ENDMETHOD. "get_persistence
|
|
||||||
|
|
||||||
|
|
||||||
METHOD lock.
|
|
||||||
|
|
||||||
DATA: objname TYPE trobj_name,
|
|
||||||
object_key TYPE seu_objkey,
|
|
||||||
objtype TYPE trobjtype.
|
|
||||||
|
|
||||||
objname = ms_item-obj_name.
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
objtype = ms_item-obj_type.
|
|
||||||
|
|
||||||
|
|
||||||
get_persistence( ).
|
|
||||||
|
|
||||||
mo_persistence->lock(
|
|
||||||
EXPORTING
|
|
||||||
p_objname_tr = objname
|
|
||||||
p_object_key = object_key
|
|
||||||
p_objtype_tr = objtype
|
|
||||||
EXCEPTIONS
|
|
||||||
foreign_lock = 1
|
|
||||||
error_occurred = 2
|
|
||||||
OTHERS = 3 ).
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
lcx_exception=>raise( `Error occured while locking SAMC ` && objname ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD. "lock
|
|
||||||
|
|
||||||
METHOD unlock.
|
|
||||||
|
|
||||||
DATA: objname TYPE trobj_name,
|
|
||||||
object_key TYPE seu_objkey,
|
|
||||||
objtype TYPE trobjtype.
|
|
||||||
|
|
||||||
objname = ms_item-obj_name.
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
objtype = ms_item-obj_type.
|
|
||||||
|
|
||||||
get_persistence( )->unlock( p_objname_tr = objname
|
|
||||||
p_object_key = object_key
|
|
||||||
p_objtype_tr = objtype ).
|
|
||||||
|
|
||||||
ENDMETHOD. "unlock
|
|
||||||
|
|
||||||
METHOD get_data.
|
|
||||||
|
|
||||||
DATA: object_key TYPE seu_objkey.
|
|
||||||
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
get_persistence( ).
|
|
||||||
|
|
||||||
mo_persistence->get(
|
|
||||||
EXPORTING
|
|
||||||
p_object_key = object_key
|
|
||||||
p_version = 'A'
|
|
||||||
CHANGING
|
|
||||||
p_object_data = mo_amc_appl_obj_data ).
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAMC error' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
mo_amc_appl_obj_data->get_data(
|
|
||||||
IMPORTING
|
|
||||||
p_data = p_data ).
|
|
||||||
|
|
||||||
ENDMETHOD. "get_data
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_samc IMPLEMENTATION
|
ENDCLASS. "lcl_object_samc IMPLEMENTATION
|
||||||
|
|
|
@ -2,34 +2,16 @@
|
||||||
*& Include ZABAPGIT_OBJECT_SAPC
|
*& Include ZABAPGIT_OBJECT_SAPC
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
CLASS lcl_object_sapc DEFINITION INHERITING FROM lcl_objects_super FINAL.
|
CLASS lcl_object_sapc DEFINITION INHERITING FROM lcl_objects_channel_super FINAL.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES lif_object.
|
METHODS: lif_object~exists REDEFINITION.
|
||||||
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
DATA: mo_persistence TYPE REF TO if_wb_object_persist,
|
|
||||||
mo_apc_appl_obj_data TYPE REF TO if_wb_object_data_model.
|
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
METHODS:
|
METHODS:
|
||||||
create_apc_objects
|
get_persistence_cls_name REDEFINITION,
|
||||||
RAISING
|
get_appl_obj_cls_name REDEFINITION,
|
||||||
lcx_exception,
|
get_data_structure_name REDEFINITION.
|
||||||
|
|
||||||
get_data
|
|
||||||
EXPORTING
|
|
||||||
p_data TYPE any
|
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
lock
|
|
||||||
RAISING
|
|
||||||
lcx_exception,
|
|
||||||
|
|
||||||
unlock
|
|
||||||
RAISING
|
|
||||||
lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_sAPC DEFINITION
|
ENDCLASS. "lcl_object_sAPC DEFINITION
|
||||||
|
|
||||||
|
@ -40,45 +22,6 @@ ENDCLASS. "lcl_object_sAPC DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_sapc IMPLEMENTATION.
|
CLASS lcl_object_sapc IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~has_changed_since.
|
|
||||||
rv_changed = abap_true.
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data.
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
|
||||||
<ls_header> TYPE any,
|
|
||||||
<changed_by> TYPE any.
|
|
||||||
|
|
||||||
create_apc_objects( ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAPC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
get_data(
|
|
||||||
IMPORTING
|
|
||||||
p_data = <ls_data> ).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <changed_by>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
rv_user = <changed_by>.
|
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~changed_by
|
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
|
||||||
rs_metadata = get_metadata( ).
|
|
||||||
rs_metadata-delete_tadir = abap_true.
|
|
||||||
ENDMETHOD. "lif_object~get_metadata.
|
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
||||||
DATA: ls_tadir TYPE tadir.
|
DATA: ls_tadir TYPE tadir.
|
||||||
|
@ -94,243 +37,22 @@ CLASS lcl_object_sapc IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~exists
|
ENDMETHOD. "lif_object~exists
|
||||||
|
|
||||||
METHOD lif_object~serialize.
|
METHOD get_appl_obj_cls_name.
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data.
|
r_data_class_name = 'CL_APC_APPLICATION_OBJ_DATA'.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
|
||||||
<ls_header> TYPE any,
|
|
||||||
<field> TYPE any.
|
|
||||||
|
|
||||||
create_apc_objects( ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAPC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
get_data(
|
|
||||||
IMPORTING
|
|
||||||
p_data = <ls_data> ).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
CLEAR <field>.
|
|
||||||
|
|
||||||
io_xml->add( iv_name = 'SAPC'
|
|
||||||
ig_data = <ls_data> ).
|
|
||||||
|
|
||||||
ENDMETHOD. "serialize
|
|
||||||
|
|
||||||
METHOD lif_object~deserialize.
|
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
|
||||||
|
|
||||||
create_apc_objects( ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
|
|
||||||
ASSIGN lr_data->* TO <ls_data>.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAPC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
io_xml->read(
|
|
||||||
EXPORTING
|
|
||||||
iv_name = 'SAPC'
|
|
||||||
CHANGING
|
|
||||||
cg_data = <ls_data> ).
|
|
||||||
|
|
||||||
IF lif_object~exists( ) = abap_true.
|
|
||||||
lif_object~delete( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lock( ).
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_CORR_INSERT'
|
|
||||||
EXPORTING
|
|
||||||
object = ms_item-obj_name
|
|
||||||
object_class = 'SAPC'
|
|
||||||
mode = 'I'
|
|
||||||
global_lock = abap_true
|
|
||||||
devclass = iv_package
|
|
||||||
master_language = mv_language
|
|
||||||
EXCEPTIONS
|
|
||||||
cancelled = 1
|
|
||||||
permission_failure = 2
|
|
||||||
unknown_objectclass = 3
|
|
||||||
OTHERS = 4.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
lcx_exception=>raise( 'Error occured while creating SAPC' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
mo_apc_appl_obj_data->set_data( <ls_data> ).
|
|
||||||
|
|
||||||
mo_persistence->save( p_object_data = mo_apc_appl_obj_data ).
|
|
||||||
|
|
||||||
unlock( ).
|
|
||||||
|
|
||||||
CATCH cx_swb_exception.
|
|
||||||
lcx_exception=>raise( 'Error occured while creating SAPC' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
|
||||||
|
|
||||||
METHOD lif_object~delete.
|
|
||||||
|
|
||||||
DATA: object_key TYPE seu_objkey.
|
|
||||||
|
|
||||||
create_apc_objects( ).
|
|
||||||
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lock( ).
|
|
||||||
|
|
||||||
mo_persistence->delete( p_object_key = object_key ).
|
|
||||||
|
|
||||||
unlock( ).
|
|
||||||
|
|
||||||
CATCH cx_swb_exception.
|
|
||||||
lcx_exception=>raise( 'Error occured while deleting SAPC' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD. "delete
|
|
||||||
|
|
||||||
METHOD lif_object~jump.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
|
||||||
EXPORTING
|
|
||||||
operation = 'SHOW'
|
|
||||||
object_name = ms_item-obj_name
|
|
||||||
object_type = ms_item-obj_type.
|
|
||||||
|
|
||||||
ENDMETHOD. "jump
|
|
||||||
|
|
||||||
METHOD lif_object~compare_to_remote_version.
|
|
||||||
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
|
|
||||||
ENDMETHOD. "lif_object~compare_to_remote_version
|
|
||||||
|
|
||||||
METHOD create_apc_objects.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
IF mo_apc_appl_obj_data IS NOT BOUND.
|
|
||||||
CREATE OBJECT mo_apc_appl_obj_data TYPE ('CL_APC_APPLICATION_OBJ_DATA').
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF mo_persistence IS NOT BOUND.
|
|
||||||
CREATE OBJECT mo_persistence TYPE ('CL_APC_APPLICATION_OBJ_PERS').
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAPC not supported' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD lock.
|
METHOD get_data_structure_name.
|
||||||
|
|
||||||
DATA: objname TYPE trobj_name,
|
r_data_structure_name = 'APC_APPLICATION_COMPLETE'.
|
||||||
object_key TYPE seu_objkey,
|
|
||||||
objtype TYPE trobjtype.
|
|
||||||
|
|
||||||
objname = ms_item-obj_name.
|
ENDMETHOD.
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
objtype = ms_item-obj_type.
|
|
||||||
|
|
||||||
mo_persistence->lock(
|
METHOD get_persistence_cls_name.
|
||||||
EXPORTING
|
|
||||||
p_objname_tr = objname
|
|
||||||
p_object_key = object_key
|
|
||||||
p_objtype_tr = objtype
|
|
||||||
EXCEPTIONS
|
|
||||||
foreign_lock = 1
|
|
||||||
error_occurred = 2
|
|
||||||
OTHERS = 3 ).
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
r_persistence_class_name = 'CL_APC_APPLICATION_OBJ_PERS'.
|
||||||
lcx_exception=>raise( `Error occured while locking SAPC ` && objname ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD. "lock
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD unlock.
|
|
||||||
|
|
||||||
DATA: objname TYPE trobj_name,
|
|
||||||
object_key TYPE seu_objkey,
|
|
||||||
objtype TYPE trobjtype.
|
|
||||||
|
|
||||||
objname = ms_item-obj_name.
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
objtype = ms_item-obj_type.
|
|
||||||
|
|
||||||
mo_persistence->unlock( p_objname_tr = objname
|
|
||||||
p_object_key = object_key
|
|
||||||
p_objtype_tr = objtype ).
|
|
||||||
|
|
||||||
ENDMETHOD. "unlock
|
|
||||||
|
|
||||||
METHOD get_data.
|
|
||||||
|
|
||||||
DATA: object_key TYPE seu_objkey.
|
|
||||||
|
|
||||||
object_key = ms_item-obj_name.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
mo_persistence->get(
|
|
||||||
EXPORTING
|
|
||||||
p_object_key = object_key
|
|
||||||
p_version = 'A'
|
|
||||||
CHANGING
|
|
||||||
p_object_data = mo_apc_appl_obj_data ).
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
lcx_exception=>raise( 'SAPC error' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
mo_apc_appl_obj_data->get_data(
|
|
||||||
IMPORTING
|
|
||||||
p_data = p_data ).
|
|
||||||
|
|
||||||
ENDMETHOD. "get_data
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_sAPC IMPLEMENTATION
|
ENDCLASS. "lcl_object_sAPC IMPLEMENTATION
|
||||||
|
|
|
@ -1852,6 +1852,363 @@ CLASS lcl_objects_super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_objects_super IMPLEMENTATION
|
ENDCLASS. "lcl_objects_super IMPLEMENTATION
|
||||||
|
|
||||||
|
CLASS lcl_objects_channel_super DEFINITION ABSTRACT
|
||||||
|
INHERITING FROM lcl_objects_super .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES:
|
||||||
|
lif_object
|
||||||
|
ABSTRACT METHODS exists.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
METHODS:
|
||||||
|
get_persistence_cls_name ABSTRACT
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_persistence_class_name) TYPE seoclsname,
|
||||||
|
|
||||||
|
get_appl_obj_cls_name ABSTRACT
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_data_class_name) TYPE seoclsname,
|
||||||
|
|
||||||
|
get_data_structure_name ABSTRACT
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_data_structure_name) TYPE string.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA: mo_persistence TYPE REF TO if_wb_object_persist,
|
||||||
|
mo_appl_obj_data TYPE REF TO if_wb_object_data_model.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
create_channel_objects
|
||||||
|
RAISING
|
||||||
|
lcx_exception,
|
||||||
|
|
||||||
|
get_data
|
||||||
|
EXPORTING
|
||||||
|
p_data TYPE any
|
||||||
|
RAISING
|
||||||
|
lcx_exception,
|
||||||
|
|
||||||
|
lock
|
||||||
|
RAISING
|
||||||
|
lcx_exception,
|
||||||
|
|
||||||
|
unlock
|
||||||
|
RAISING
|
||||||
|
lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_objects_channel_super IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
|
DATA: lr_data TYPE REF TO data,
|
||||||
|
data_structure_name TYPE string.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||||
|
<ls_header> TYPE any,
|
||||||
|
<changed_by> TYPE any.
|
||||||
|
|
||||||
|
create_channel_objects( ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
data_structure_name = get_data_structure_name( ).
|
||||||
|
CREATE DATA lr_data TYPE (data_structure_name).
|
||||||
|
ASSIGN lr_data->* TO <ls_data>.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
lcx_exception=>raise( |{ ms_item-obj_name } not supported| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
get_data(
|
||||||
|
IMPORTING
|
||||||
|
p_data = <ls_data> ).
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <changed_by>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
rv_user = <changed_by>.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~get_metadata.
|
||||||
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-delete_tadir = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
* METHOD lif_object~exists.
|
||||||
|
*
|
||||||
|
* DATA: ls_tadir TYPE tadir.
|
||||||
|
*
|
||||||
|
* ls_tadir = lcl_tadir=>read_single(
|
||||||
|
* iv_object = ms_item-obj_type
|
||||||
|
* iv_obj_name = ms_item-obj_name ).
|
||||||
|
* IF ls_tadir IS INITIAL.
|
||||||
|
* RETURN.
|
||||||
|
* ENDIF.
|
||||||
|
*
|
||||||
|
* rv_bool = abap_true.
|
||||||
|
*
|
||||||
|
* ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~serialize.
|
||||||
|
|
||||||
|
DATA: lr_data TYPE REF TO data,
|
||||||
|
data_structure_name TYPE string.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||||
|
<ls_header> TYPE any,
|
||||||
|
<field> TYPE any.
|
||||||
|
|
||||||
|
create_channel_objects( ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
data_structure_name = get_data_structure_name( ).
|
||||||
|
CREATE DATA lr_data TYPE (data_structure_name).
|
||||||
|
ASSIGN lr_data->* TO <ls_data>.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
lcx_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
get_data(
|
||||||
|
IMPORTING
|
||||||
|
p_data = <ls_data> ).
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
CLEAR <field>.
|
||||||
|
|
||||||
|
io_xml->add( iv_name = ms_item-obj_type
|
||||||
|
ig_data = <ls_data> ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~deserialize.
|
||||||
|
|
||||||
|
DATA: lr_data TYPE REF TO data,
|
||||||
|
data_structure_name TYPE string.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_data> TYPE any.
|
||||||
|
|
||||||
|
create_channel_objects( ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
data_structure_name = get_data_structure_name( ).
|
||||||
|
CREATE DATA lr_data TYPE (data_structure_name).
|
||||||
|
ASSIGN lr_data->* TO <ls_data>.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
lcx_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
io_xml->read(
|
||||||
|
EXPORTING
|
||||||
|
iv_name = ms_item-obj_type
|
||||||
|
CHANGING
|
||||||
|
cg_data = <ls_data> ).
|
||||||
|
|
||||||
|
IF lif_object~exists( ) = abap_true.
|
||||||
|
lif_object~delete( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
lock( ).
|
||||||
|
|
||||||
|
CALL FUNCTION 'RS_CORR_INSERT'
|
||||||
|
EXPORTING
|
||||||
|
object = ms_item-obj_name
|
||||||
|
object_class = ms_item-obj_type
|
||||||
|
mode = 'I'
|
||||||
|
global_lock = abap_true
|
||||||
|
devclass = iv_package
|
||||||
|
master_language = mv_language
|
||||||
|
EXCEPTIONS
|
||||||
|
cancelled = 1
|
||||||
|
permission_failure = 2
|
||||||
|
unknown_objectclass = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lcx_exception=>raise( |Error occured while creating { ms_item-obj_type }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
mo_appl_obj_data->set_data( <ls_data> ).
|
||||||
|
|
||||||
|
mo_persistence->save( p_object_data = mo_appl_obj_data ).
|
||||||
|
|
||||||
|
unlock( ).
|
||||||
|
|
||||||
|
CATCH cx_swb_exception.
|
||||||
|
lcx_exception=>raise( |Error occured while creating { ms_item-obj_type }| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~delete.
|
||||||
|
|
||||||
|
DATA: object_key TYPE seu_objkey.
|
||||||
|
|
||||||
|
create_channel_objects( ).
|
||||||
|
|
||||||
|
object_key = ms_item-obj_name.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
lock( ).
|
||||||
|
|
||||||
|
mo_persistence->delete( p_object_key = object_key ).
|
||||||
|
|
||||||
|
unlock( ).
|
||||||
|
|
||||||
|
CATCH cx_swb_exception.
|
||||||
|
lcx_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~jump.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||||
|
EXPORTING
|
||||||
|
operation = 'SHOW'
|
||||||
|
object_name = ms_item-obj_name
|
||||||
|
object_type = ms_item-obj_type.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~compare_to_remote_version.
|
||||||
|
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD create_channel_objects.
|
||||||
|
|
||||||
|
DATA: appl_obj_cls_name TYPE seoclsname,
|
||||||
|
persistence_cls_name TYPE seoclsname.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
IF mo_appl_obj_data IS NOT BOUND.
|
||||||
|
appl_obj_cls_name = get_appl_obj_cls_name( ).
|
||||||
|
CREATE OBJECT mo_appl_obj_data TYPE (appl_obj_cls_name).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF mo_persistence IS NOT BOUND.
|
||||||
|
persistence_cls_name = get_persistence_cls_name( ).
|
||||||
|
CREATE OBJECT mo_persistence TYPE (persistence_cls_name).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
lcx_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_data.
|
||||||
|
|
||||||
|
DATA: object_key TYPE seu_objkey.
|
||||||
|
|
||||||
|
object_key = ms_item-obj_name.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
mo_persistence->get(
|
||||||
|
EXPORTING
|
||||||
|
p_object_key = object_key
|
||||||
|
p_version = 'A'
|
||||||
|
CHANGING
|
||||||
|
p_object_data = mo_appl_obj_data ).
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
lcx_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
mo_appl_obj_data->get_data(
|
||||||
|
IMPORTING
|
||||||
|
p_data = p_data ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lock.
|
||||||
|
|
||||||
|
DATA: objname TYPE trobj_name,
|
||||||
|
object_key TYPE seu_objkey,
|
||||||
|
objtype TYPE trobjtype.
|
||||||
|
|
||||||
|
objname = ms_item-obj_name.
|
||||||
|
object_key = ms_item-obj_name.
|
||||||
|
objtype = ms_item-obj_type.
|
||||||
|
|
||||||
|
mo_persistence->lock(
|
||||||
|
EXPORTING
|
||||||
|
p_objname_tr = objname
|
||||||
|
p_object_key = object_key
|
||||||
|
p_objtype_tr = objtype
|
||||||
|
EXCEPTIONS
|
||||||
|
foreign_lock = 1
|
||||||
|
error_occurred = 2
|
||||||
|
OTHERS = 3 ).
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lcx_exception=>raise( |Error occured while locking { ms_item-obj_type } | && objname ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. "lock
|
||||||
|
|
||||||
|
METHOD unlock.
|
||||||
|
|
||||||
|
DATA: objname TYPE trobj_name,
|
||||||
|
object_key TYPE seu_objkey,
|
||||||
|
objtype TYPE trobjtype.
|
||||||
|
|
||||||
|
objname = ms_item-obj_name.
|
||||||
|
object_key = ms_item-obj_name.
|
||||||
|
objtype = ms_item-obj_type.
|
||||||
|
|
||||||
|
mo_persistence->unlock( p_objname_tr = objname
|
||||||
|
p_object_key = object_key
|
||||||
|
p_objtype_tr = objtype ).
|
||||||
|
|
||||||
|
ENDMETHOD. "unlock
|
||||||
|
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_object DEFINITION
|
* CLASS lcl_object DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user