Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZUV_01_GK_REP_07_TEST
- *&---------------------------------------------------------------------*
- *&
- *&---------------------------------------------------------------------*
- REPORT ZUV_01_GK_REP_07_TEST.
- " TEST REPORT FÜR ZUV_01_GK_07
- DATA ls_person TYPE zuv_s_01_person.
- PARAMETERS:
- p_id TYPE zuv_e_01_person_id.
- CALL FUNCTION 'Z_UV_01_OPEN_PERSON'
- EXPORTING
- iv_id = p_id
- IMPORTING
- ES_PERSON = ls_person
- EXCEPTIONS
- NOT_FOUND = 1
- OTHERS = 2
- .
- IF sy-subrc <> 0.
- WRITE: 'ERROR HAPPENED.'.
- ELSE.
- WRITE: ls_person-id , /.
- WRITE: ls_person-firstname , /.
- WRITE: ls_person-lastname , /.
- WRITE: ls_person-gender , /.
- WRITE: ls_person-age , /.
- ENDIF.
- -------------------------------------------------------------------------------- FuBa
- FUNCTION ZUV_11_OPEN_PERSON.
- *"----------------------------------------------------------------------
- *"*"Lokale Schnittstelle:
- *" IMPORTING
- *" REFERENCE(IV_ID) TYPE ZUV_11_GK_E_ID
- *" EXPORTING
- *" REFERENCE(ES_PERSON) TYPE ZUV_11_GK_S_PERSON
- *" EXCEPTIONS
- *" NOT_FOUND
- *"----------------------------------------------------------------------
- SELECT SINGLE *
- FROM ZUV_11_PERSON
- INTO CORRESPONDING FIELDS OF ES_PERSON
- WHERE id = IV_ID.
- IF SY-SUBRC <> 0.
- RAISE NOT_FOUND.
- ENDIF.
- ENDFUNCTION.
- *&---------------------------------------------------------------------*
- *& Include ZCL_UV_11_LCL_PERSON
- *&---------------------------------------------------------------------*
- CLASS lcl_person DEFINITION CREATE PRIVATE.
- PUBLIC SECTION.
- INTERFACES lif_persist.
- DATA:
- gs_person TYPE ZUV_11_PERSON READ-ONLY.
- METHODS:
- CONSTRUCTOR IMPORTING is_person TYPE ZUV_11_PERSON,
- SET_FIRSTNAME IMPORTING iv_firstname TYPE ZUV_11_GK_E_FIRSTNAME,
- SET_LASTNAME IMPORTING iv_lastname TYPE ZUV_11_GK_E_LASTNAME,
- SET_AGE IMPORTING iv_age TYPE ZUV_11_GK_E_AGE,
- SET_GENDER IMPORTING iv_gender TYPE ZUV_11_GK_E_GENDER.
- ENDCLASS.
- CLASS lcl_person IMPLEMENTATION.
- METHOD CONSTRUCTOR.
- gs_person = is_person.
- ENDMETHOD.
- * Interface Implementierung - lif_persist
- METHOD lif_persist~load.
- DATA:
- ls_person TYPE ZUV_11_PERSON,
- lo_person TYPE REF TO lcl_person.
- SELECT SINGLE *
- FROM ZUV_11_PERSON
- INTO ls_person
- WHERE id = IV_ID.
- IF SY-SUBRC = 0.
- CREATE OBJECT lo_person EXPORTING is_person = ls_person.
- ro_lif_persist = lo_person.
- ENDIF.
- ENDMETHOD.
- METHOD lif_persist~new.
- DATA:
- lo_person TYPE REF TO lcl_person,
- ls_person TYPE ZUV_11_PERSON,
- lv_maxid TYPE ZUV_11_GK_E_ID.
- SELECT MAX( id )
- FROM ZUV_11_PERSON
- INTO lv_maxid.
- ls_person-id = lv_maxid + 1.
- CREATE OBJECT lo_person EXPORTING is_person = ls_person.
- ro_lif_persist = lo_person.
- ENDMETHOD.
- METHOD lif_persist~save.
- *Prüfung, ob Daten vorhanden
- IF gs_person-id <> 0.
- *Speichern in Datenbank
- MODIFY ZUV_11_PERSON FROM gs_person.
- COMMIT WORK.
- ENDIF.
- ENDMETHOD.
- METHOD lif_persist~delete.
- *Prüfung, ob Daten vorhanden
- IF gs_person-id <> 0.
- *Löschen aus Datenbank
- DELETE FROM ZUV_11_PERSON
- WHERE id = gs_person-id.
- COMMIT WORK.
- ENDIF.
- ENDMETHOD.
- * Setter-Methoden
- METHOD SET_FIRSTNAME.
- gs_person-firstname = iv_firstname.
- ENDMETHOD.
- METHOD SET_LASTNAME.
- gs_person-lastname = iv_lastname.
- ENDMETHOD.
- METHOD SET_AGE.
- gs_person-age = iv_age.
- ENDMETHOD.
- METHOD SET_GENDER.
- gs_person-gender = iv_gender.
- ENDMETHOD.
- ENDCLASS.
- *&---------------------------------------------------------------------*
- *& Include ZCL_UV_11_LIF_PERSIST
- *&---------------------------------------------------------------------*
- INTERFACE lif_persist.
- CLASS-METHODS:
- load
- IMPORTING iv_id TYPE ZUV_11_GK_E_ID
- RETURNING VALUE(ro_lif_persist) TYPE REF TO lif_persist,
- new
- RETURNING VALUE(ro_lif_persist) TYPE REF TO lif_persist.
- METHODS:
- save,
- delete.
- ENDINTERFACE.
- -------------------------------------------------------------------------------- Global Interface
- INTERFACE ZCL_UV_11_ZIF_PERSIST
- PUBLIC.
- CLASS-METHODS:
- load
- IMPORTING iv_id TYPE ZUV_11_GK_E_ID
- RETURNING VALUE(ro_zif_persist) TYPE REF TO ZCL_UV_11_ZIF_PERSIST
- RAISING ZCX_11_PERSON,
- new
- RETURNING VALUE(ro_zif_persist) TYPE REF TO ZCL_UV_11_ZIF_PERSIST.
- METHODS:
- save
- RAISING ZCX_11_PERSON,
- delete
- RAISING ZCX_11_PERSON.
- ENDINTERFACE.
- -------------------------------------------------------------------------------- Global Klasse
- class ZCL_11_PERSON definition
- public
- final
- create public .
- PUBLIC SECTION.
- INTERFACES ZCL_UV_11_ZIF_PERSIST.
- DATA:
- gs_person TYPE ZUV_11_PERSON READ-ONLY.
- METHODS:
- CONSTRUCTOR IMPORTING is_person TYPE ZUV_11_PERSON,
- SET_FIRSTNAME IMPORTING iv_firstname TYPE ZUV_11_GK_E_FIRSTNAME,
- SET_LASTNAME IMPORTING iv_lastname TYPE ZUV_11_GK_E_LASTNAME,
- SET_AGE IMPORTING iv_age TYPE ZUV_11_GK_E_AGE,
- SET_GENDER IMPORTING iv_gender TYPE ZUV_11_GK_E_GENDER RAISING ZCX_11_PERSON.
- ENDCLASS.
- CLASS ZCL_11_PERSON IMPLEMENTATION.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->CONSTRUCTOR
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IS_PERSON TYPE ZUV_11_PERSON
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD CONSTRUCTOR.
- gs_person = is_person.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->SET_AGE
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_AGE TYPE ZUV_11_GK_E_AGE
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD SET_AGE.
- gs_person-age = iv_age.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->SET_FIRSTNAME
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_FIRSTNAME TYPE ZUV_11_GK_E_FIRSTNAME
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD SET_FIRSTNAME.
- gs_person-firstname = iv_firstname.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->SET_GENDER
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_GENDER TYPE ZUV_11_GK_E_GENDER
- * | [!CX!] ZCX_11_PERSON
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD SET_GENDER.
- IF iv_gender = 'W' OR iv_gender = 'M' OR iv_gender = 'w' OR iv_gender = 'm' OR iv_gender = ''.
- gs_person-gender = iv_gender.
- ELSE.
- RAISE EXCEPTION TYPE ZCX_11_PERSON_INVALID_GENDER EXPORTING textid = ZCX_11_PERSON_INVALID_GENDER=>ZCX_11_PERSON_INVALID_GENDER.
- ENDIF.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->SET_LASTNAME
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_LASTNAME TYPE ZUV_11_GK_E_LASTNAME
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD SET_LASTNAME.
- gs_person-lastname = iv_lastname.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->ZCL_UV_11_ZIF_PERSIST~DELETE
- * +-------------------------------------------------------------------------------------------------+
- * | [!CX!] ZCX_11_PERSON
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD ZCL_UV_11_ZIF_PERSIST~delete.
- *Prüfung, ob Daten vorhanden
- IF gs_person-id <> 0.
- *Löschen aus Datenbank
- DELETE FROM ZUV_11_PERSON
- WHERE id = gs_person-id.
- COMMIT WORK.
- ELSE.
- RAISE EXCEPTION TYPE ZCX_11_PERSON EXPORTING textid = ZCX_11_PERSON=>ID_NOT_SET.
- ENDIF.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Static Public Method ZCL_11_PERSON=>ZCL_UV_11_ZIF_PERSIST~LOAD
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_ID TYPE ZUV_11_GK_E_ID
- * | [<-()] RO_ZIF_PERSIST TYPE REF TO ZCL_UV_11_ZIF_PERSIST
- * | [!CX!] ZCX_11_PERSON
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD ZCL_UV_11_ZIF_PERSIST~load.
- DATA:
- ls_person TYPE ZUV_11_PERSON,
- lo_person TYPE REF TO ZCL_11_PERSON.
- SELECT SINGLE *
- FROM ZUV_11_PERSON
- INTO ls_person
- WHERE id = IV_ID.
- IF SY-SUBRC = 0.
- CREATE OBJECT lo_person EXPORTING is_person = ls_person.
- ro_ZIF_PERSIST = lo_person.
- ELSE.
- RAISE EXCEPTION TYPE ZCX_11_PERSON_ID_NOT_FOUND EXPORTING textid = ZCX_11_PERSON_ID_NOT_FOUND=>ZCX_11_PERSON_ID_NOT_FOUND VALUE_ID = IV_ID.
- ENDIF.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Static Public Method ZCL_11_PERSON=>ZCL_UV_11_ZIF_PERSIST~NEW
- * +-------------------------------------------------------------------------------------------------+
- * | [<-()] RO_ZIF_PERSIST TYPE REF TO ZCL_UV_11_ZIF_PERSIST
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD ZCL_UV_11_ZIF_PERSIST~new.
- DATA:
- lo_person TYPE REF TO ZCL_11_PERSON,
- ls_person TYPE ZUV_11_PERSON,
- lv_maxid TYPE ZUV_11_GK_E_ID.
- SELECT MAX( id )
- FROM ZUV_11_PERSON
- INTO lv_maxid.
- ls_person-id = lv_maxid + 1.
- CREATE OBJECT lo_person EXPORTING is_person = ls_person.
- ro_ZIF_PERSIST = lo_person.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_11_PERSON->ZCL_UV_11_ZIF_PERSIST~SAVE
- * +-------------------------------------------------------------------------------------------------+
- * | [!CX!] ZCX_11_PERSON
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD ZCL_UV_11_ZIF_PERSIST~save.
- *Prüfung, ob Daten vorhanden
- IF gs_person-id <> 0.
- *Speichern in Datenbank
- MODIFY ZUV_11_PERSON FROM gs_person.
- COMMIT WORK.
- ELSE.
- RAISE EXCEPTION TYPE ZCX_11_PERSON_ID_NOT_SET EXPORTING textid = ZCX_11_PERSON_ID_NOT_SET=>ZCX_11_PERSON_ID_NOT_SET.
- ENDIF.
- ENDMETHOD.
- ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement